生成路由表项的方法和边界网关协议演讲者的制作方法

文档序号:8003120阅读:318来源:国知局
生成路由表项的方法和边界网关协议演讲者的制作方法
【专利摘要】本发明实施例提供了一种生成路由表项的方法,包括:第一BGP speaker接收第二BGP speaker分别通过第一分发路径和第二分发路径分发的第一路由消息和第二路由消息。第一BGP speaker确定第一next hop list attribute中的next hop的数量小于第二next hop list attribute中的next hop的数量。第一BGP speaker根据第一路由消息中的到达目的地的路径属性生成路由表项。此外,本发明实施例还提供了第一BGP speaker。上述技术方案有助于降低配置路由优选策略的工作量。
【专利说明】生成路由表项的方法和边界网关协议演讲者

【技术领域】
[0001 ] 本发明实施例涉及通信技术,尤其涉及生成路由表项的方法和边界网关协议演讲者(Border Gateway Protocol speaker, BGP speaker)。

【背景技术】
[0002]边界网关协议(Border Gateway Protocol, BGP)是一种应用非常广泛的路由协议。关于BGP,可以参考网际工程任务组(Internet Engineering Task Force, IETF)发布的RFC4271。一个BGP speaker可能会接收到多个邻居(peer)发送的到达某个目的地的多个路由消息。所述BGP speaker需要从所述多个路由消息中选择一个路由消息作为优选的路由消息,从而生成到达所述目的地的路由表项。现有技术中,需要针对所述多个邻居分别配置对应的路由优选策略。举例来说,可以分别为所述多个邻居配置多个peer pr1rity.或者,可以分别为所述多个邻居配置多个local-preference的值。上述技术方案,需要为多个邻居分别配置对应的路由优选策略,工作量较大,实现比较复杂。


【发明内容】

[0003]本发明实施例提供了生成路由表项的方法和BGP speaker,有助于降低配置路由优选策略的工作量,简化实现。
[0004]第一方面,提供了一种生成路由表项的方法,包括:
[0005]第一 BGP speaker接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发(distribute)的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGP speaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性(path attributes)包括下一跳列表属性(next hop list attribute),所述第二路由消息中的到达所述目的地的路径属性包括nexthop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到:
[0006]所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的下一跳属性(NEXT_H0P attribute),所述第三路由消息中的next hop list attribute包括下一跳(next hop),所述第三路由消息中的next hop list attribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute的值;
[0007]所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ;
[0008]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 nexthop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息;
[0009]所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0010]所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ;
[0011]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 nexthop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二 next hop list attribute,所述第二 next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息;
[0012]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量小于所述第二 next hop list attribute中的next hop的数量;
[0013]所述第一BGP speaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0014]上述技术方案中,第一 BGP speaker接收第一路由消息和第二路由消息。所述第一路由消息和所述第二路由消息都携带了到达所述目的地的路由。所述第一路由消息和所述第二路由消息分别携带第一 next hop list attribute以及第二 next hop listattribute。所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。所述第一 BGPspeaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。所述第一BGP speaker根据next hop list attribute选择了路由消息。上述技术方案中,不需要为多个邻居分别配置对应的路由优选策略,有助于降低配置路由优选策略的工作量。
[0015]第一方面的第一种可能的实现方式中,
[0016]所述第一路径的尾节点生成所述第一路由消息包括:
[0017]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级;
[0018]所述第二路径的尾节点生成所述第二路由消息包括:
[0019]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级;
[0020]所述方法还包括:
[0021]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0022]所述第一 BGP speaker确定所述第一优先级高于所述第二优先级;
[0023]所述第一BGP speaker根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0024]第一方面提供的第二种可能的实现方式中,
[0025]所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0026]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0027]所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0028]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0029]所述方法还包括:
[0030]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0031]所述第一 BGP speaker确定第一开销小于第二开销,所述第一开销等于所述第一 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一 BGPspeaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop listattribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第二路径的尾节点的开销;
[0032]所述第一BGP speaker根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0033]根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
[0034]所述路径开销是内部网关协仪(Inter1r Gateway Protocol, IGP)开销(cost)。
[0035]根据第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,
[0036]所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0037]第二方面,提供了一种第一 BGP speaker,包括:
[0038]接收单元,用于接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGP speaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括next hop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到:
[0039]所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括next hop,所述第三路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0040]所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ;
[0041]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 nexthop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息;
[0042]所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0043]所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ;
[0044]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 nexthop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二 next hop list attribute,所述第二 next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息;
[0045]确定单元,用于确定所述第一next hop list attribute中的next hop的数量小于所述第二 next hop list attribute 中的 next hop 的数量;
[0046]生成单元,用于根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0047]上述技术方案中,第一 BGP speaker接收第一路由消息和第二路由消息。所述第一路由消息和所述第二路由消息都携带了到达所述目的地的路由。所述第一路由消息和所述第二路由消息分别携带第一 next hop list attribute以及第二 next hop listattribute。所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。所述第一 BGPspeaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。所述第一BGP speaker根据next hop list attribute选择了路由消息。上述技术方案中,不需要为多个邻居分别配置对应的路由优选策略,有助于降低配置路由优选策略的工作量。
[0048]第二方面的第一种可能的实现方式中,
[0049]所述第一路径的尾节点生成所述第一路由消息包括:
[0050]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级;
[0051]所述第二路径的尾节点生成所述第二路由消息包括:
[0052]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级;
[0053]所述确定单元还用于:
[0054]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0055]确定所述第一优先级高于所述第二优先级;
[0056]所述生成单元还用于:
[0057]根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0058]第二方面的第二种可能的实现方式中,
[0059]所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0060]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0061]所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0062]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0063]所述确定单元还用于:
[0064]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0065]确定第一开销小于第二开销,所述第一开销等于所述第一 next hop listattribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一BGP speaker到所述第二路径的尾节点的开销;
[0066]所述生成单元还用于:
[0067]根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0068]根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
[0069]所述路径开销是IGP cost。
[0070]根据第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
[0071]所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。

【专利附图】

【附图说明】
[0072]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0073]图1是本发明实施例提供的一种生成路由表项的方法的流程示意图;
[0074]图2是本发明实施例提供的一种BGP speaker的结构示意图;
[0075]图3是本发明实施例提供的一种BGP speaker的结构示意图。

【具体实施方式】
[0076]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0077]图1为本发明实施例提供的一种生成路由表项的方法的流程示意图。所述方法的执行主体可以是能够运行BGP的网络设备。所述网络设备可以是路由器。参见图1,所述方法包括:
[0078]S101、第一 BGP speaker接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发的第一路由消息和第二路由消息。
[0079]所述第一分发路径的首节点为所述第二 BGP speaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括next hop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到:
[0080]所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括next hop,所述第三路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0081]所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ;
[0082]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 nexthop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息;
[0083]所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0084]所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ;
[0085]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 nexthop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二next hop list attribute,所述第二next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息。
[0086]举例来说,所述目的地可以是一个主机或者一个网络。当所述目的地是所述主机时,可以用一个IP地址表示所述主机。当所述目的地是所述网络时,可以用一个IP地址前缀表示所述网络。
[0087]举例来说,所述第一路径可以不包括任何BGP speaker。也就是说,所述第一 BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0088]举例来说,所述第二路径可以仅包括一个BGP speaker.也就是说,所述第二路径中的BGP speaker可以是所述第一 BGP speaker的peer。并且,所述第二路径中的BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0089]举例来说,SlOl的执行主体可以是接收器。
[0090]S102、所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。
[0091]举例来说,当所述第一路径不包括任何BGP speaker时,所述第一 next hop listattribute中的next hop的数量为0。
[0092]举例来说,当所述第二路径仅包括一个BGP speaker时,所述第二 next hop listattribute中的next hop的数量为I。
[0093]举例来说,S102的执行主体可以是处理器。
[0094]S103、所述第一 BGP speaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0095]举例来说,所述路由表项的匹配域(match field)可以包括所述目的地的标识。所述目的地的标识可以是所述IP地址或者所述IP地址前缀。所述路由表项可以用于指导到达所述目的地的网际协议数据报(Internet Protocol datagram, IP datagram)的转发。
[0096]举例来说,S103的执行主体可以是所述处理器。
[0097]上述技术方案中,第一 BGP speaker接收第一路由消息和第二路由消息。所述第一路由消息和所述第二路由消息都携带了到达所述目的地的路由。所述第一路由消息和所述第二路由消息分别携带第一 next hop list attribute以及第二 next hop listattribute。所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。所述第一 BGPspeaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。所述第一BGP speaker根据next hop list attribute选择了路由消息。上述技术方案中,不需要为多个邻居分别配置对应的路由优选策略,有助于降低配置路由优选策略的工作量。
[0098]可选地,图1所示的方法中,
[0099]所述第一路径的尾节点生成所述第一路由消息包括:
[0100]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级;
[0101]所述第二路径的尾节点生成所述第二路由消息包括:
[0102]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级;
[0103]所述方法还包括:
[0104]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0105]所述第一 BGP speaker确定所述第一优先级高于所述第二优先级;
[0106]所述第一BGP speaker根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0107]可选地,图1所示的方法中,
[0108]所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0109]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0110]所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0111]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0112]所述方法还包括:
[0113]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0114]所述第一 BGP speaker确定第一开销小于第二开销,所述第一开销等于所述第一 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一 BGPspeaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop listattribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第二路径的尾节点的开销;
[0115]所述第一BGP speaker根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0116]可选地,上述技术方案中,
[0117]所述路径开销是内部网关协仪(Inter1r Gateway Protocol, IGP)开销(cost)。
[0118]可选地,上述技术方案中,
[0119]所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0120]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0121]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二 BGP speaker到所述目的地的路径开销等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。例如,所述第三路由消息中的所述第二 BGPspeaker到所述目的地的路径开销可以是O。所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销可以是O。
[0122]可选地,上述技术方案中,
[0123]所述第三路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0124]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级;
[0125]所述第五路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0126]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级。
[0127]可选地,所述方法还包括:
[0128]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0129]所述第一 BGP speaker确定第一优先级高于第二优先级,所述第一优先级和所述第二优先级分别是所述第三路由消息中的优先级列表中的所述第二BGP speaker的优先级和所述第五路由消息中的优先级列表中的所述第二BGP speaker的优先级,或者,所述第一优先级和所述第二优先级分别是所述第一路径的尾节点添加的本地BGP speaker的优先级和所述第二路径的尾节点添加的本地BGP speaker的优先级;
[0130]所述第一BGP speaker根据包含所述第一优先级的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0131]图2为本发明实施例提供的一种第一 BGP speaker的结构不意图。所述第一 BGPspeaker可以用于执行图1所示的方法。参见图2,所述第一 BGP speaker包括:
[0132]接收单元201,用于接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGPspeaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括next hop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到:
[0133]所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括next hop,所述第三路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0134]所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ;
[0135]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 nexthop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息;
[0136]所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0137]所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ;
[0138]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 nexthop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二 next hop list attribute,所述第二 next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息。
[0139]举例来说,所述目的地可以是一个主机或者一个网络。当所述目的地是所述主机时,可以用一个IP地址表示所述主机。当所述目的地是所述网络时,可以用一个IP地址前缀表示所述网络。
[0140]举例来说,所述第一路径可以不包括任何BGP speaker。也就是说,所述第一 BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0141]举例来说,所述第二路径可以仅包括一个BGP speaker.也就是说,所述第二路径中的BGP speaker可以是所述第一 BGP speaker的peer。并且,所述第二路径中的BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0142]确定单元202,用于确定所述第一 next hop list attribute中的next hop的数量小于所述第二 next hop list attribute中的next hop的数量。
[0143]举例来说,当所述第一路径不包括任何BGP speaker时,所述第一 next hop listattribute中的next hop的数量为0。
[0144]举例来说,当所述第二路径仅包括一个BGP speaker时,所述第二 next hop listattribute中的next hop的数量为I。
[0145]生成单元203,用于根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0146]举例来说,所述路由表项的匹配域可以包括所述目的地的标识。所述目的地的标识可以是所述IP地址或者所述IP地址前缀。所述路由表项可以用于指导到达所述目的地的IP datagram的转发。
[0147]上述技术方案中,第一 BGP speaker接收第一路由消息和第二路由消息。所述第一路由消息和所述第二路由消息都携带了到达所述目的地的路由。所述第一路由消息和所述第二路由消息分别携带第一 next hop list attribute以及第二 next hop listattribute。所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。所述第一 BGPspeaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。所述第一BGP speaker根据next hop list attribute选择了路由消息。上述技术方案中,不需要为多个邻居分别配置对应的路由优选策略,有助于降低配置路由优选策略的工作量。
[0148]可选地,图2所示的第一 BGP speaker中,
[0149]所述第一路径的尾节点生成所述第一路由消息包括:
[0150]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级;
[0151]所述第二路径的尾节点生成所述第二路由消息包括:
[0152]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级;
[0153]所述确定单元202还用于:
[0154]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0155]确定所述第一优先级高于所述第二优先级;
[0156]所述生成单元203还用于:
[0157]根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0158]可选地,图2所示的第一 BGP speaker中,
[0159]所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0160]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0161]所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0162]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0163]所述确定单元202还用于:
[0164]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0165]确定第一开销小于第二开销,所述第一开销等于所述第一 next hop listattribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一BGP speaker到所述第二路径的尾节点的开销;
[0166]所述生成单元203还用于:
[0167]根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0168]可选地,上述技术方案中,
[0169]所述路径开销是IGP cost。
[0170]可选地,上述技术方案中,
[0171]所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0172]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0173]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二 BGP speaker到所述目的地的路径开销等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。例如,所述第三路由消息中的所述第二 BGPspeaker到所述目的地的路径开销可以是O。所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销可以是O。
[0174]可选地,上述技术方案中,
[0175]所述第三路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0176]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级;
[0177]所述第五路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0178]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级。
[0179]可选地,所述技术方案还可以包括:
[0180]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0181]所述第一 BGP speaker确定第一优先级高于第二优先级,所述第一优先级和所述第二优先级分别是所述第三路由消息中的优先级列表中的所述第二BGP speaker的优先级和所述第五路由消息中的优先级列表中的所述第二BGP speaker的优先级,或者,所述第一优先级和所述第二优先级分别是所述第一路径的尾节点添加的本地BGP speaker的优先级和所述第二路径的尾节点添加的本地BGP speaker的优先级;
[0182]所述第一BGP speaker根据包含所述第一优先级的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0183]图3为本发明实施例提供的一种第一 BGP speaker的结构示意图。图3所示的第一 BGP speaker可以用于执行图1所示的方法。图3所示的第一 BGP speaker可以通过图2所示的第一 BGP speaker实现。参见图3,所述第一 BGP speaker包括:接收器301、存储器302以及处理器303。所述处理器303与所述接收器301耦合。所述处理器303与所述存储器302耦合。
[0184]所述接收器301,用于接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGPspeaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括next hop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到:
[0185]所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括next hop,所述第三路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0186]所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ;
[0187]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 nexthop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息;
[0188]所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值;
[0189]所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ;
[0190]当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 nexthop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二 next hop list attribute,所述第二 next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息。
[0191]举例来说,所述目的地可以是一个主机或者一个网络。当所述目的地是所述主机时,可以用一个IP地址表示所述主机。当所述目的地是所述网络时,可以用一个IP地址前缀表示所述网络。
[0192]举例来说,所述第一路径可以不包括任何BGP speaker。也就是说,所述第一 BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0193]举例来说,所述第二路径可以仅包括一个BGP speaker。也就是说,所述第二路径中的BGP speaker可以是所述第一 BGP speaker的peer。并且,所述第二路径中的BGPspeaker 可以是所述第二 BGP speaker 的 peer。
[0194]所述存储器302中包含代码。所述处理器303可以访问所述代码。所述代码包括确定单元304以及生成单元305。所述存储器是非易失存储介质(non-transitory storagemedium)。
[0195]所述确定单兀304,用于确定所述第一 next hop list attribute中的next hop的数量小于所述第二 next hop list attribute中的next hop的数量。
[0196]举例来说,当所述第一路径不包括任何BGP speaker时,所述第一 next hop listattribute中的next hop的数量为0。
[0197]举例来说,当所述第二路径仅包括一个BGP speaker时,所述第二 next hop listattribute中的next hop的数量为I。
[0198]所述生成单元305,用于根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0199]举例来说,所述路由表项的匹配域可以包括所述目的地的标识。所述目的地的标识可以是所述IP地址或者所述IP地址前缀。所述路由表项可以用于指导到达所述目的地的IP datagram的转发。
[0200]上述技术方案中,第一 BGP speaker接收第一路由消息和第二路由消息。所述第一路由消息和所述第二路由消息都携带了到达所述目的地的路由。所述第一路由消息和所述第二路由消息分别携带第一 next hop list attribute以及第二 next hop listattribute。所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 nexthop的数量小于所述第二 next hop list attribute中的next hop的数量。所述第一 BGPspeaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。所述第一BGP speaker根据next hop list attribute选择了路由消息。上述技术方案中,不需要为多个邻居分别配置对应的路由优选策略,有助于降低配置路由优选策略的工作量。
[0201]可选地,图3所示的第一 BGP speaker中,
[0202]所述第一路径的尾节点生成所述第一路由消息包括:
[0203]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级;
[0204]所述第二路径的尾节点生成所述第二路由消息包括:
[0205]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级;
[0206]所述确定单元304还用于:
[0207]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0208]确定所述第一优先级高于所述第二优先级;
[0209]所述生成单元305还用于:
[0210]根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0211]可选地,图3所示的第一BGP speaker中,
[0212]所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0213]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0214]所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销;
[0215]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销;
[0216]所述确定单元304还用于:
[0217]确定所述第一next hop list attribute中的next hop的数量等于所述第二nexthop list attribute 中的 next hop 的数量;以及
[0218]确定第一开销小于第二开销,所述第一开销等于所述第一 next hop listattribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一BGP speaker到所述第二路径的尾节点的开销;
[0219]所述生成单元305还用于:
[0220]根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0221]可选地,上述技术方案中,
[0222]所述路径开销是IGP cost。
[0223]可选地,上述技术方案中,
[0224]所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0225]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
[0226]举例来说,可以预先对所述第二 BGP speaker进行配置,从而使得所述第三路由消息中的所述第二 BGP speaker到所述目的地的路径开销等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。例如,所述第三路由消息中的所述第二 BGPspeaker到所述目的地的路径开销可以是O。所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销可以是O。
[0227]可选地,上述技术方案中,
[0228]所述第三路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0229]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级;
[0230]所述第五路由消息中的next hop list attribute还包括优先级列表,所述优先级列表包括所述第二 BGP speaker的优先级;
[0231]当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的优先级列表添加本地BGP speaker的优先级。
[0232]可选地,所述技术方案还可以包括:
[0233]所述第一BGP speaker 确定所述第一 next hop list attribute 中的 next hop的数量等于所述第二 next hop list attribute中的next hop的数量;
[0234]所述第一 BGP speaker确定第一优先级高于第二优先级,所述第一优先级和所述第二优先级分别是所述第三路由消息中的优先级列表中的所述第二BGP speaker的优先级和所述第五路由消息中的优先级列表中的所述第二BGP speaker的优先级,或者,所述第一优先级和所述第二优先级分别是所述第一路径的尾节点添加的本地BGP speaker的优先级和所述第二路径的尾节点添加的本地BGP speaker的优先级;
[0235]所述第一BGP speaker根据包含所述第一优先级的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
[0236]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0237]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0238]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0239]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0240]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0241]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0242]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种生成路由表项的方法,其特征在于,包括: 第一边界网关协议演讲者BGP speaker接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发distribute的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGP speaker,所述第一分发路径的尾节点为所述第一 BGP speaker,所述第二分发路径的首节点为所述第二 BGPspeaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括下一跳列表属性nexthop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hoplist attribute,所述第一路由消息和所述第二路由消息通过如下处理得到: 所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的下一跳属性NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括下一跳next hop,所述第三路由消息中的next hop list attribute中的next hop的值等于所述第二BGP speaker分配的到达所述目的地的NEXT_H0P attribute的值; 所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的邻居peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 next hop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一 next hop list attribute,所述第一 next hop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息; 所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值; 所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 next hop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二next hop list attribute,所述第二next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息;所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 next hop 的数量小于所述第二 next hop list attribute中的next hop的数量;以及 所述第一BGP speaker根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
2.根据权利要求1所述的方法,其特征在于, 所述第一路径的尾节点生成所述第一路由消息包括: 当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级; 所述第二路径的尾节点生成所述第二路由消息包括: 当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级; 所述方法还包括: 所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 next hop 的数量等于所述第二 next hop list attribute中的next hop的数量; 所述第一 BGP speaker确定所述第一优先级高于所述第二优先级;以及所述第一BGP speaker根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
3.根据权利要求1所述的方法,其特征在于, 所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销; 所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销; 所述方法还包括: 所述第一 BGP speaker 确定所述第一 next hop list attribute 中的 next hop 的数量等于所述第二 next hop list attribute中的next hop的数量; 所述第一 BGP speaker确定第一开销小于第二开销,所述第一开销等于所述第一 nexthop list attribute中携带的路径开销列表中的路径开销的总和加所述第一BGP speaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一BGP speaker到所述第二路径的尾节点的开销;以及 所述第一BGP speaker根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
4.根据权利要求3所述的方法,其特征在于, 所述路径开销是内部网关协议开销IGP cost。
5.根据权利要求3或者4所述的方法,其特征在于, 所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
6.一种第一边界网关协议演讲者BGP speaker,其特征在于,包括: 接收单元,用于接收第二 BGP speaker分别通过第一分发路径和第二分发路径分发distribute的第一路由消息和第二路由消息,所述第一分发路径的首节点为所述第二 BGPspeaker,所述第一分发路径的尾节点为所述第一 BGPspeaker,所述第二分发路径的首节点为所述第二 BGP speaker,所述第二分发路径的尾节点为所述第一 BGP speaker,所述第一路由消息中的到达目的地的路径属性包括下一跳列表属性next hop list attribute,所述第二路由消息中的到达所述目的地的路径属性包括next hop list attribute,所述第一路由消息和所述第二路由消息通过如下处理得到: 所述第二 BGP speaker构造第三路由消息,所述第三路由消息包括到达所述目的地的路由,所述第三路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的下一跳属性NEXT_H0P attribute,所述第三路由消息中的next hop list attribute包括下一跳next hop,所述第三路由消息中的next hop list attribute中的next hop的值等于所述第二BGP speaker分配的到达所述目的地的NEXT_H0P attribute的值; 所述第二 BGP speaker向第一路径的首节点发送所述第三路由消息,从而向所述第一路径中的每个节点分发到达所述目的地的路由,所述第一路径为所述第一分发路径中的路径,所述第一路径的首节点为所述第二 BGP speaker的邻居peer,所述第一路径的尾节点为所述第一 BGP speaker 的 peer ; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第四路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第一 next hop,从而生成第一 next hop list attribute,所述第四路由消息中包含到达所述目的地的路径属性,所述第四路由消息中的路径属性包含NEXT_H0P attribute,所述第四路由消息中的路径属性包括所述第一next hop list attribute,所述第一nexthop的值等于所述第四路由消息中的NEXT_H0P attribute的值,其中,所述第一路径的尾节点生成所述第一路由消息; 所述第二 BGP speaker构造第五路由消息,所述第五路由消息包括到达所述目的地的路由,所述第五路由消息中的到达所述目的地的路由包括next hop list attribute以及所述第二 BGP speaker分配的到达所述目的地的NEXT_H0P attribute,所述第五路由消息中的next hop list attribute包括next hop,所述第五路由消息中的next hop listattribute中的next hop的值等于所述第二 BGP speaker分配的到达所述目的地的NEXT_HOP attribute 的值; 所述第二 BGP speaker向第二路径的首节点发送所述第五路由消息,从而向所述第二路径中的每个节点分发到达所述目的地的路由,所述第二路径为所述第二分发路径中的路径,所述第二路径的首节点为所述第二 BGP speaker的peer,所述第二路径的尾节点为所述第一 BGP speaker 的 peer ; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点根据到达所述目的地的路由生成待发往下一跳BGP speaker的第六路由消息,具体包括向到达所述目的地的路由中的next hop list attribute添加第二 next hop,生成第二 next hop list attribute,所述第六路由消息中包含到达所述目的地的路径属性,所述第六路由消息中的路径属性包含NEXT_H0P attribute,所述第六路由消息中的路径属性包括所述第二next hop list attribute,所述第二next hop的值等于所述第六路由消息中的NEXT_H0P attribute的值,其中,所述第二路径的尾节点生成所述第二路由消息;确定单元,用于确定所述第一 next hop list attribute中的next hop的数量小于所述第二 next hop list attribute 中的 next hop 的数量;以及 生成单元,用于根据所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
7.根据权利要求6所述的第一BGP speaker,其特征在于, 所述第一路径的尾节点生成所述第一路由消息包括: 当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第一路径的尾节点时,所述第一路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第一优先级; 所述第二路径的尾节点生成所述第二路由消息包括: 当所述第二 BGP speaker分发的到达所述目的地的路由到达所述第二路径的尾节点时,所述第二路径的尾节点向到达所述目的地的路由中的next hop list attribute添加所述第二优先级; 所述确定单元还用于: 确定所述第一next hop list attribute中的next hop的数量等于所述第二next hoplist attribute中的next hop的数量;以及确定所述第一优先级高于所述第二优先级; 所述生成单元还用于: 根据所述第一优先级对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
8.根据权利要求6所述的第一BGP speaker,其特征在于, 所述第三路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第一路径的每个节点时,每个节点生成所述第四路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销; 所述第五路由消息中的next hop list attribute还包括路径开销列表,所述路径开销列表包括所述第二 BGP speaker到所述目的地的路径开销; 当所述第二BGP speaker分发的到达所述目的地的路由到达所述第二路径的每个节点时,每个节点生成所述第六路由消息具体包括:向到达所述目的地的路由中的路径开销列表添加本地BGP speaker到达上一跳BGP speaker的路径开销; 所述确定单元还用于: 确定所述第一next hop list attribute中的next hop的数量等于所述第二next hoplist attribute中的next hop的数量;以及 确定第一开销小于第二开销,所述第一开销等于所述第一 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第一路径的尾节点的开销,所述第二开销等于所述第二 next hop list attribute中携带的路径开销列表中的路径开销的总和加所述第一 BGP speaker到所述第二路径的尾节点的开销;所述生成单元还用于: 根据所述第一开销对应的所述第一路由消息中的到达所述目的地的路径属性生成路由表项。
9.根据权利要求7所述的第一BGP speaker,其特征在于, 所述路径开销是内部网关协议开销IGP cost。
10.根据权利要求8或者9所述的第一BGP speaker,其特征在于, 所述第三路由消息中的所述第二BGP speaker到所述目的地的路径开销不等于所述第五路由消息中的所述第二 BGP speaker到所述目的地的路径开销。
【文档编号】H04L12/721GK104348723SQ201310326163
【公开日】2015年2月11日 申请日期:2013年7月30日 优先权日:2013年7月30日
【发明者】张力 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1