向外部边界网关协议邻居通告路由的方法及装置制造方法及图纸

技术编号:11510261 阅读:143 留言:0更新日期:2015-05-27 15:12
本申请提出向外部边界网关协议邻居通告路由的方法及装置。方法包括:AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。本申请避免了BGP设备在允许AS_PATH属性不同的多条路径进行负载分担时出现流量环路。

【技术实现步骤摘要】
向外部边界网关协议邻居通告路由的方法及装置
本申请涉及路由通告
,尤其涉及向EBGP(ExternalBorderGatewayProtocol,外部边界网关协议)邻居通告路由的方法及装置。
技术介绍
BGP(BorderGatewayProtocol,边界网关协议)是一种用于AS(AutonomousSystem,自治系统)之间的动态路由协议。AS是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。BGP的着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。发送BGP消息的路由器称为BGP发言者(BGPSpeaker),它接收或产生新的路由信息,并发布给其它BGP发言者。当BGP发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给所有其它BGP发言者。相互交换消息的BGP发言者之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peergroup)。BGP在路由器上以下列两种方式运行:1、IBGP(InternalBGP,内部BGP):当BGP运行于同一自治系统内部时,称为IBGP;2、EBGP:当BGP运行于不同自治系统之间时,称为EBGP。AS_PATH属性按一定次序记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP发言者将一条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。根据BGP规定,当BGP发言者存在目的地址和掩码均相同的多条路径时,只能通告一条最优路径。如图1所示,路由器RT1和RT2建立BGP邻居关系,假设RT1上先后存在两条到达9.0.0.0/24的路径(暂且称为路径A和路径B),RT1先向RT2通告路径A,然后发现路径B优于路径A,则再向RT2通告路径B,RT2收到路径B后,会将路径A删除,这样RT2上只会保留最后被通告过来的路径B。基于这一规定,那么当针对一目的地址和掩码具有AS_Path属性不同的多条路径时,由于BGP对等体最终只能通告这些路径中最优的那条路径,因此,即使用户允许该多条路径进行负载分担,也会导致部分路径的AS_Path属性被丢失,从而引发流量环路。图2为AS组网及路由学习示例图。AS100中包含设备DUT1,AS200中包含DUT2,AS300中包含DUT3,DUT1、DUT2、DUT3两两之间均创建EBGP对等体。DUT3向DUT1和DUT2通告前缀9.0.0.0/24的路由,路由的AS_PATH属性为AS300、400。为了最大程度地提升DUT1和DUT2上的链路使用效率,用户在DUT1和DUT2上均进行配置:允许不同AS_PATH属性的多条路径进行负载分担,图中用圆圈圈起来的路径表示的是该设备上能够形成负载分担的多条路径。图2中,路由学习的过程如下:1)DUT1和DUT2分别从DUT3学习到前缀9.0.0.0/24的路由,如图2中所标识的箭头1和2,路由的AS_PATH属性为300、400。2)DUT1学习到了前缀9.0.0.0/24的路由后,会向其邻居DUT2扩散,如图2中所标识的箭头3。向EBGP邻居发送的路由,会附加上本AS的AS号,因此,路由的AS_PATH属性为100、300、400;同理,DUT2也会在学到9.0.0.0/24前缀的路由之后,向邻居DUT1扩散,如图2中所标识的箭头4,路由的AS_PATH属性为200、300、400。3)DUT1收到来自DUT2的前缀9.0.0.0/24的路由,学习该路由;这样,在DUT1上存在前缀9.0.0.0/24的两条路由,其中,DUT3发送过来的路由的AS_PATH属性更短,最终,DUT1上前缀9.0.0.0/24的最优路径为箭头1所标识的路径;同理,DUT2上收到来自DUT1的前缀9.0.0.0/24的路由,学习该路由;这样,在DUT2上存在前缀9.0.0.0/24的两条路由,其中,DUT3发送过来的路由的AS_PATH属性更短,最终,DUT2上前缀9.0.0.0/24的最优路径为箭头2所标识的路径。在路由稳定下来之后:在DUT1上存在9.0.0.0/24前缀的两条不同路径,一条的AS_PATH属性为300、400(来自DUT3),另一条的AS_PATH属性为200、300、400(来自对端DUT2);在DUT2上同样存在9.0.0.0/24前缀的两条不同路径,一条的AS_PATH属性为300、400(来自DUT3),另一条的AS_PATH属性为100、300、400(来自对端DUT1)。DUT1、DUT2上的路由表如表1所示:表1通过上述的路由学习过程,最终的流量图如图3所示:如图3,从DUT1去往9.0.0.0/24的流量,一部分直接发向DUT3,一部分会流向DUT2(图中实箭头所示);从DUT2去往9.0.0.0/24的流量,一部分直接发向DUT3,一部分会流向DUT1(图中空箭头所示)。
技术实现思路
本申请提供向EBGP邻居通告路由的方法及装置,以避免BGP设备出现流量环路。本申请的技术方案是这样实现的:一种向EBGP邻居通告路由的方法,该方法包括:AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。一种向EBGP邻居通告路由的装置,位于AS中的BGP设备上,该装置包括:路由学习模块:学习前缀的路由;AS_Path属性生成模块:发现路由学习模块学习到一前缀的路由时,若发现本BGP设备已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;路由通告模块:向所有EBGP邻居发送该前缀的路由,该路由中携带AS_Path属性生成模块生成的新AS_Path属性。可见,本申请中,当BGP设备向EBGP邻居通告前缀路由时,会在ASAS_PATH属性中携带:该前缀的所有能够与最优路由形成负载分担的非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号,从而避免了在允许AS_PATH属性不同的多条路径进行负载分担时出现流量环路。本文档来自技高网
...
向外部边界网关协议邻居通告路由的方法及装置

【技术保护点】
一种向外部边界网关协议EBGP邻居通告路由的方法,其特征在于,该方法包括:自治系统AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。

【技术特征摘要】
1.一种向外部边界网关协议EBGP邻居通告路由的方法,其特征在于,该方法包括:自治系统AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性;所述AS中的BGP设备学习到一前缀的路由包括:步骤a、AS中的BGP设备接收EBGP邻居发来的一前缀的路由,判断自身路由表中是否已存在该EBGP邻居发来的该前缀的路由,若已存在,删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤b;若不存在,直接执行步骤b;步骤b、BGP设备判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,丢弃接收到的路由,结束本流程;否则,将接收到的路由学习到自身的路由表中。2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:BGP设备接收到发往一前缀的数据报文,在自身的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。3.根据权利要求1所述的方法,其特征在于,所述BGP设备被预先配置为支持AS_Path属性生成新规则;所述BGP设备学习到一前缀的路由之后、若发现自身已存在该前缀的多条路由之前进一步包括:发现自身被配置为支持AS_Path属性生成新规则。4.根据权利要求1所述的方法,其特征在于,所述BGP设备学习到一前缀的路由之后进一步包括:若发现自身仅存在该前缀的一条路由,则将本AS的AS号添加到该路由的AS_Path属性的AS_Sequence的最前面,将该路由发给自身的所有EBGP邻居;或者,所述BGP设备查找到最优路由之后进一步包括:若发现针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。5.一种向外部边界网关协议EBGP邻居通告路由的装置,位于自治系统AS中的BGP设备上,其特征在于,该装置包括:路由...

【专利技术属性】
技术研发人员:余清炎
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1