路由通告方法及装置与流程

文档序号:14124551阅读:1052来源:国知局
路由通告方法及装置与流程

本公开涉及网络技术领域,尤其涉及一种路由通告方法及装置。



背景技术:

bgp(bordergatewayprotocol,边界网关协议)是一种既可以用于不同as(autonomoussystem,自治系统)之间,又可以用于同一as内部的动态路由协议。当前使用的bgp版本是bgp-4,bgp-4作为internet外部路由协议标准,被isp(internetserviceprovider,互联网服务提供商)广泛应用。

根据bgp协议规定,当路由器接收到目的地址和掩码均相同的多条路由时,只能通告一条路由,例如,通告最优路由。如果最优路由失效,流量无法快速切换到其他路径上,造成流量的中断。

另外,在当前的bgp协议实现中,bgp路由器只能够针对最优路由匹配路由发送策略。bgp协议的这种处理方式在一些组网环境下缺少了灵活性。举例来说,如图1所示组网中,路由器rt2、rt3、rt5、rt6分别与rt4(rt4为rr,英文:routereflector,中文:路由反射器)建立ibgp邻居关系,路由器rt1和rt2、rt3之间建立ebgp邻居关系,rt7与rt5、rt6建立ebgp邻居关系。

假设在rt1上,希望流量通过如下两条路径走到rt7,这两条路径如下:

路径1:rt1—>rt2—>rt5—>rt7。

路径2:rt1—>rt3—>rt6—>rt7。

在现有的情况下,bgp协议是没有办法实现的,因为rt7将路由发布给rt5和rt6之后,rt5和rt6会将该路由发布给rt4,在rt4上,其最优路由要么是来自于rt5要么是来自于rt6(假设rt4上最优的路由来自于rt5)。当rt4将路由反射给rt2和rt3时,rt2和rt3上学到的路由均来自于rt5。其流量的转发路径为:

路径1:rt1—>rt2—>rt5—>rt7。

路径2:rt1—>rt3—>rt5—>rt7。

因此,现有的技术无法根据实际的需求通告到达同一目的地址的多条路由中的任意一条路由,用户无法对非最优路由进行配置以满足实际的流量转发需求。



技术实现要素:

有鉴于此,本公开提出了一种路由通告方法及装置,可以将到达同一目的地址的多条路由中的任意一条通告出去,可以为用户提供了更加灵活的路径选择和网络配置。

根据本公开的一方面,提供了一种路由通告方法,所述方法应用于路由器,所述方法包括:

对于任一邻居路由器,确定向该邻居路由器待发布的路由;

将所述待发布的路由按照目的地址进行分组;

对于任一所述分组,从中选择与该邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。

根据本公开的另一方面,提供了一种路由通告装置,所述装置应用于路由器,所述装置包括:

确定模块,用于对于任一邻居路由器,确定向该邻居路由器待发布的路由;

分组模块,用于将所述待发布的路由按照目的地址进行分组;

匹配模块,用于对于任一所述分组,从中选择与该邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。

通过设置的与邻居路由器对应的路由出口策略,对于目的地址相同的路由,从中选择与邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。

根据本公开的路由通告方法及装置可以将到达同一目的地址的多条路由中的任意一条通告出去,为用户提供了更加灵活的路径选择和网络配置,同时,可以实现针对不同的邻居路由器通告到达同一目的地址的多条路由,如果其中一条路由失效,可以快速切换到其他路径上,尽量避免造成流量的中断,还可以实现对非最优路由进行配置以满足实际的流量转发需求。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出一示例的bgp组网示意图。

图2示出根据本公开一实施例的路由通告方法的流程图。

图3示出根据本公开一示例的路由通告方法的应用场景示意图。

图4示出根据本公开一实施例的路由通告方法的流程图。

图5示出根据本公开一实施例的路由通告装置的框图。

图6示出根据本公开一实施例的路由通告装置的框图。

图7示出根据本公开一实施例的路由通告装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

为了解决以上技术问题,本公开提供了一种路由通告方法,图2示出根据本公开一实施例的路由通告方法的流程图,该方法可以应用于路由器。如图2所示,该方法包括:

步骤s11,对于任一邻居路由器,确定向该邻居路由器待发布的路由。

路由器在从邻居路由器学习到路由后,要向其他邻居路由器发布该路由。图3示出根据本公开一示例的路由通告方法的应用场景示意图,如图3所示,路由器rt’连接五个邻居路由器rt1’、rt2’、rt3’、rt4’、rt5’,rt’从路由器rt1’学习到路由1、从路由器rt2’学习到路由2、从路由器rt3’学习到路由3、从路由器rt4’学习到路由4、从路由器rt5’学习到路由5,其中,路由1和路由2的目的地址相同(目的地址1,路由1优于路由2),路由3、路由4和路由5的目的地址相同(目的地址2,路由3优于路由4优于路由5);那么,对于学习到的路由1,rt’要向邻居路由器rt2’、rt3’、rt4’、rt5’发布该路由,对于学习到的路由2,rt’要向邻居路由器rt1’、rt3’、rt4’、rt5’发布该路由……,同样的,对于每一个学习到的路由,可以向除了发送该路由的邻居路由器以外的邻居路由器发布该路由。

因此,对于邻居路由器rt1’,可以确定向邻居路由器rt1’待发布的路由为路由2、路由3、路由4、路由5;对于邻居路由器rt3’,可以确定向邻居路由器rt3’待发布的路由为路由1、路由2、路由4、路由5,同样的对于rt’的任一邻居路由器,都可以根据学习到的路由确定向该邻居路由器待发布的路由。

步骤s12,将所述待发布的路由按照目的地址进行分组。

如上所述,所述待发布的路由中可能存在目的地址相同的路由,例如,向邻居路由器rt1’待发布的路由2、路由3、路由4、路由5中,路由3、路由4和路由5的目的地址相同,路由2的目的地址与路由3、路由4和路由5不同,根据目的地址可以将待发布的路由分为两组,第一组为路由2,第二组为路由3、路由4和路由5;向邻居路由器rt3’待发布的路由1、路由2、路由4、路由5中,路由1和路由2的目的地址相同,路由4和路由5的目的地址相同,根据目的地址可以将待发布的路由分为两组,第一组为路由1和路由2,第二组为路由4和路由5。

步骤s13,对于任一所述分组,从中选择与该邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。

其中,路由出口策略是指针对邻居路由器预先设置的路由发布策略,路由出口策略可以包括路由的属性信息,例如路由的来源信息、目的地址、下一跳等。针对一个邻居路由器可以预先设置一个或多个路由出口策略,也就是说一个邻居路由器对应的路由出口策略中可以包括一条或多条路由的属性信息,每一条路由属性信息中包括路由的来源信息、目的地址、下一跳等。

其中,路由的来源信息为向本路由器发布路由的邻居路由器的信息,例如,邻居路由器的标识信息。

在一种可能的实现方式中,若待发布路由的所述属性信息与路由出口策略中包括的所述路由的属性信息全部相同,则该待发布路由与路由出口策略匹配。

在一个示例中,路由出口策略包括路由的来源信息和目的地址,也就是说向邻居路由器发布与该邻居路由器对应的路由出口策略中包括的路由的来源信息和目的地址相同的路由。

比如说,对于向邻居路由器rt1’待发布的路由,第一组为路由2,若路由2的路由来源信息(路由器rt2’)和目的地址1与邻居路由器rt1’对应的路由出口策略中包括的路由来源信息(路由器rt2’)和目的地址相同,则向邻居路由器rt1’发布路由2,若不同,则不向邻居路由器rt1’发布路由2。第二组为路由3、路由4和路由5,假设邻居路由器rt1’对应的路由出口策略包括:路由的来源信息为邻居路由器rt4’、目的地址为目的地址2,那么从第二组中选择路由4发送给邻居路由器rt1’。

再比如说,对于向邻居路由器rt3’待发布的路由,第一组为路由1和路由2,假设邻居路由器rt3’对应的路由出口策略包括:路由的来源信息为邻居路由器rt1’、目的地址为目的地址1,那么从第一组中选择路由1发送给邻居路由器rt3’;第二组为路由4和路由5,假设邻居路由器rt3’对应的路由出口策略包括:路由的来源信息为邻居路由器rt5’、目的地址为目的地址2,那么从第二组中选择路由5发送给邻居路由器rt3’。

因此,根据本公开的路由通告方法,通过设置的与邻居路由器对应的路由出口策略可以将到达同一目的地址的多条路由中的任意一条通告出去,可以实现对非最优路由进行配置以满足实际的流量转发需求。

针对目的地址相同的多条路由(例如,路由3、路由4和路由5),可以针对不同的邻居路由器通告到达同一目的地址的多条路由(例如,向邻居路由器rt1’发送路由4、向邻居路由器rt3’发送路由5),如果其中一条路由失效,可以快速切换到其他路径上,尽量避免造成流量的中断,还可以实现对非最优路由进行配置以满足实际的流量转发需求。

对于图1所示示例,将图2所示的方法应用于图1中的rr,rr可以接收来自rt5和rt6的目的地址(假设为目的地址3)相同的两条路由,假设rr上针对邻居路由器rt3预先设置的路由出口策略包括:路由的来源信息为邻居路由器rt6、目的地址为目的地址3,那么,rr在学习到来自rt5和rt6的、目的地址为目的地址3的两条路由后,可以选择来自rt6的路由发布给邻居路由器rt3。

假设rr上针对邻居路由器rt2预先设置的路由出口策略包括:路由的来源信息为邻居路由器rt5、目的地址为目的地址3,那么,rr在学习到来自rt5和rt6的、目的地址为目的地址3的两条路由后,可以选择来自rt5的路由发布给邻居路由器rt2。

这样,rt2学习到来自于rt5的路由,rt3学习到来自于rt6的路由,即可以获得如上所述的两条路径。

路径1:rt1—>rt2—>rt5—>rt7。

路径2:rt1—>rt3—>rt6—>rt7。

通过设置的与邻居路由器对应的路由出口策略,对于目的地址相同的路由,从中选择与邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。根据本公开的路由通告方法可以将到达同一目的地址的多条路由中的任意一条通告出去,为用户提供了更加灵活的路径选择和网络配置;同时,可以实现针对不同的邻居路由器通告到达同一目的地址的多条路由,如果其中一条路由失效,可以快速切换到其他路径上,尽量避免造成流量的中断,还可以实现对非最优路由进行配置以满足实际的流量转发需求。

图4示出根据本公开一实施例的路由通告方法的流程图。如图4所示,步骤s13,对于任一所述分组,从中选择与该邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器,可以包括:

步骤s131,将分组中的待发布路由进行优先级排序。

对于目的地址相同的多条路由,根据路由优先级可以对已经分组的待发布路由进行排序,例如,仍然以图3为例进行说明,对于向邻居路由器rt1’待发布的路由,第一组为路由2,不需要进行排序,第二组为路由3、路由4和路由5,路由3优于路由4优于路由5,那么可以按照优先级由高到低进行排序,也可以按照优先级由低到高进行排序,本公开对此不做限定;对于向邻居路由器rt3’待发布的路由,第一组为路由1和路由2,路由1优于路由2,第二组为路由4和路由5,路由4优于路由5。

步骤s132,选择优先级最高的待发布路由与该邻居路由器对应的路由出口策略进行匹配。

步骤s133,若匹配成功,则发布给该邻居路由器,并针对所述分组终止与该邻居路由器对应的路由出口策略的匹配。

步骤s134,若匹配失败,则从所述分组中剩余的待发布路由中选择优先级最高的待发布路由与该邻居路由器对应的路由出口策略进行匹配。

如上,对于向邻居路由器rt1’待发布的路由,对于第一组路由,可以直接将路由2与邻居路由器rt1’对应的路由出口策略进行匹配,若匹配成功,则发布给邻居路由器rt1’,并终止与邻居路由器rt1’对应的路由出口策略的匹配,若匹配失败,则结束操作;对于第二组路由可以选择路由3与邻居路由器rt1’对应的路由出口策略进行匹配,由于邻居路由器rt1’对应的路由出口策略包括:路由的来源信息为邻居路由器rt4’、目的地址为目的地址2,因此,匹配失败;再从第二组中剩余的待发布路由(路由4和路由5)选择优先级最高的待发布路由(路由4)与该邻居路由器对应的路由出口策略进行匹配,匹配成功,则发布给邻居路由器rt1’,并终止第二组路由与rt1’对应的路由出口策略的匹配。

对于向邻居路由器rt3’待发布的路由,第一组为路由1和路由2,路由1优于路由2,由于邻居路由器rt3’对应的路由出口策略包括:路由的来源信息为邻居路由器rt1’、目的地址为目的地址1,因此,匹配成功,则发布给邻居路由器rt3’,并终止第一组路由与rt3’对应的路由出口策略的匹配;第二组为路由4和路由5,路由4优于路由5,由于邻居路由器rt3’对应的路由出口策略包括:路由的来源信息为邻居路由器rt5’、目的地址为目的地址2,因此,匹配失败,再从第二组中剩余的待发布路由(路由5)选择优先级最高的待发布路由(路由5)与该邻居路由器对应的路由出口策略进行匹配,匹配成功,则发布给邻居路由器rt3’,并终止第二组路由与rt3’对应的路由出口策略的匹配。

根据本公开的路由通告方法,使得当存在相同目的地址的多条路由时,路由器不只是发送其中的最优路径,而是可以根据配置的路由出口策略,灵活的决定bgp邻居发送的路径。

图5示出根据本公开一实施例的路由通告装置的框图,该装置可以应用于路由器。如图5所示,该装置可以包括:

确定模块51,用于对于任一邻居路由器,确定向该邻居路由器待发布的路由;

分组模块52,用于将所述待发布的路由按照目的地址进行分组;

匹配模块53,用于对于任一所述分组,从中选择与该邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。

通过设置的与邻居路由器对应的路由处理策略,对于目的地址相同的路由,从中选择与邻居路由器对应的路由出口策略匹配的一条路由发布给该邻居路由器。根据本公开的路由通告装置可以将到达同一目的地址的多条路由中的任意一条通告出去,为用户提供了更加灵活的路径选择和网络配置,同时,可以实现针对不同的邻居路由器通告到达同一目的地址的多条路由,如果其中一条路由失效,可以快速切换到其他路径上,尽量避免造成流量的中断,还可以实现对非最优路由进行配置以满足实际的流量转发需求。

在一种可能的实现方式中,所述路由出口策略包括路由的属性信息;所述路由的属性信息包括路由的来源信息、目的地址、下一跳中的一项或几项;所述路由的来源信息为向本路由器发布路由的邻居路由器的信息;

所述选择与该邻居路由器对应的路由出口策略匹配的路由,包括:

若待发布路由的所述属性信息与路由出口策略中包括的所述路由的属性信息全部相同,则该待发布路由与路由出口策略匹配。

图6示出根据本公开一实施例的路由通告装置的框图。如图6所示,

在一种可能的实现方式中,所述匹配模块包括:

排序单元531,用于将分组中的待发布路由进行优先级排序;

匹配单元532,用于选择优先级最高的待发布路由与该邻居路由器对应的路由出口策略进行匹配;

发布单元533,用于若匹配成功,则发布给该邻居路由器,并针对所述分组终止与该邻居路由器对应的路由出口策略的匹配。

在一种可能的实现方式中,所述匹配单元532还用于若匹配失败,则从所述分组中剩余的待发布路由中选择优先级最高的待发布路由与该邻居路由器对应的路由出口策略进行匹配。

图7是根据一示例性实施例示出的一种用于路由通告装置900的框图。参照图7,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与路由通告逻辑对应的机器可执行指令以执行上文所述的路由通告方法。

本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1