CN105591931B - 一种路由更新的方法和装置 - Google Patents
一种路由更新的方法和装置 Download PDFInfo
- Publication number
- CN105591931B CN105591931B CN201510390080.0A CN201510390080A CN105591931B CN 105591931 B CN105591931 B CN 105591931B CN 201510390080 A CN201510390080 A CN 201510390080A CN 105591931 B CN105591931 B CN 105591931B
- Authority
- CN
- China
- Prior art keywords
- bgp neighbor
- bgp
- router
- update
- multicast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Abstract
本发明实施方式提出一种路由更新的方法和装置。方法包括:确定需要更新相同的路由信息的边界网关协议(BGP)邻居,将所确定的BGP邻居加入BGP邻居组;以组播方式对所述BGP邻居组中的BGP邻居进行路由更新。
Description
技术领域
本发明涉及边界网关协议(Border Gateway Protocol,BGP)技术领域,特别是一种路由更新的方法和装置。
背景技术
BGP是一种既可以用于不同自治系统(Autonomous System,AS)之间,又可以用于同一AS内部的动态路由协议。与开放式最短路径优先(Open Shortest Path First,OSPF)、路由信息协议(Routing Information Protocol,RIP)等内部网关协议(Interior GatewayProtocol,IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。两个AS中利用BGP交换信息的路由器被称为边界网关(Border Gateway)或边界路由器(Border Router)。
在BGP中,更新(Update)报文用于在对等体之间交换路由信息。Update报文可以发布具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由。
在现有技术中,BGP邻居会逐一地向对端发送Update报文以进行路由更新。然而,随着网络的规模的不断扩大,BGP邻居和路由信息日益增多,通过这样的方式传输Update报文会占用大量网络带宽和CPU资源,极限情况下甚至可能导致网络和设备不可用。
发明内容
有鉴于此,本发明提出一种路由更新的方法和装置,从而降低对资源的利用。
本发明实施方式的技术方案如下:
根据本发明实施方式的一方面,提出一种路由更新的方法,该方法应用于BGP路由器,该方法包括:
确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;
以组播方式对所述BGP邻居组中的BGP邻居进行路由更新。
优选地,在确定需要更新相同的路由信息的BGP邻居之前,该方法还包括:
通过Open报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居;
所述确定需要更新相同的路由信息的BGP邻居包括:从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。
优选地,在所述通过Open报文与BGP邻居协商组播接收能力之后,所述方法还包括:
将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居;
以单播方式对所述不具有组播接收能力的BGP邻居进行路由更新。
优选地,所述将所确定的BGP邻居加入BGP邻居组包括:
为所述BGP邻居组分配组播地址;
向所述所确定的BGP邻居发送所述组播地址,从而由存储有到达所述BGP路由器的组播路由的BGP邻居加入所述BGP邻居组。
优选地,该方法还包括:
以单播方式对不加入所述BGP邻居组的BGP邻居进行路由更新。
优选地,所述向所确定的BGP邻居发送组播地址包括:
将所述组播地址携带在Refresh报文中,并向所述所确定的BGP邻居发送所述Refresh报文。
优选地,所述以组播方式对所述BGP邻居组中的BGP邻居进行路由更新包括:
为每条更新报文分配不同的序列号;
以组播方式分别向所述BGP邻居组中的BGP邻居发送每条更新报文;
该方法还包括:
接收所述BGP邻居组中的BGP邻居发送的回复报文,所述回复报文携带有与所述更新报文相对应的序列号;
根据未接收到的序列号,确定所述BGP邻居组中的BGP邻居未接收到的更新报文;
以组播方式向所述BGP邻居重新发送所述未接收到的更新报文。
根据本发明实施方式的另一方面,提出一种路由更新的装置,该方法应用于BGP路由器,该装置包括:
分组模块,用于确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;
路由更新模块,用于以组播方式对所述BGP邻居组中的BGP邻居进行路由更新。
优选地,还包括:
协商模块,用于在分组模块确定需要更新相同的路由信息的BGP邻居之前,通过Open报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居;
分组模块,用于从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。
优选地,协商模块,还用于将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居;该装置还包括:
单播发送模块,用于以单播方式对所述不具有组播接收能力的BGP邻居进行路由更新。
优选地,分组模块,用于为所述BGP邻居组分配组播地址;向所述所确定的BGP邻居发送所述组播地址,从而由存储有到达所述BGP路由器的组播路由的BGP邻居加入所述BGP邻居组。
优选地,还包括:
单播发送模块,用于以单播方式对不加入所述BGP邻居组的BGP邻居进行路由更新。
优选地,分组模块,用于将所述组播地址携带在Refresh报文中,并向所述所确定的BGP邻居发送所述Refresh报文。
优选地,路由更新模块,用于为每条更新报文分配不同的序列号;以组播方式分别向所述BGP邻居组中的BGP邻居发送每条更新报文;接收所述BGP邻居组中的BGP邻居发送的回复报文,所述回复报文携带有与所述更新报文相对应的序列号;根据未接收到的序列号,确定所述BGP邻居组中的BGP邻居未接收到的更新报文;以组播方式向所述BGP邻居重新发送所述未接收到的更新报文。
在本发明实施方式中,确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;以组播方式对BGP邻居组中的BGP邻居进行路由更新。由此可见,BGP路由器通过组播方式对BGP邻居进行路由更新,从而降低对资源的利用。
附图说明
图1为根据本发明的路由更新的方法流程图;
图2为根据本发明的路由更新的第一示范性组网系统示意图;
图3为根据本发明的路由更新的第二示范性组网系统示意图;
图4为根据本发明的路由更新的第三示范性组网系统示意图;
图5为根据本发明的路由更新的装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
针对现有技术中作为更新报文发送设备的BGP路由器通过逐一向BGP邻居发送更新报文导致资源压力增加的技术缺陷,在本发明实施方式中,BGP路由器通过组播方式向BGP邻居发送更新报文以进行路由更新,从而降低对资源的利用。
图1为根据本发明的路由更新的方法流程图,该方法应用于作为更新报文发送设备的BGP路由器。
如图1所示,该方法包括:
步骤101:BGP路由器确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组。
在这里,BGP路由器从自身的所有BGP邻居中,确定出需要更新相同的路由信息的BGP邻居,并将所确定的需要更新相同路由信息的BGP邻居加入到一个共同的BGP邻居组。
在一个实施方式中,在BGP路由器确定需要更新相同的路由信息的BGP邻居之前,该方法还包括:通过打开(Open)报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居;步骤101中BGP路由器确定需要更新相同的路由信息的BGP邻居包括:BGP路由器从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。优选地,BGP路由器进一步将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居。
在一个实施方式中,BGP路由器首先为BGP邻居组分配组播地址;并向所确定的需要更新相同路由信息的BGP邻居分别发送组播地址。BGP邻居接收到组播地址之后,分别判断自身是否存储有到达BGP路由器的组播路由。自身存储有到达BGP路由器的组播路由的BGP邻居,加入BGP邻居组。自身没有存储到达BGP路由器的组播路由的BGP邻居,不加入BGP邻居组。优选地,BGP路由器将组播地址携带在刷新(Refresh)报文中,并向所确定的BGP邻居发送该携带有组播地址的Refresh报文。
步骤102:BGP路由器以组播方式对BGP邻居组中的BGP邻居进行路由更新。
BGP路由器可以通过更新(update)报文向BGP邻居发布一或多条可达路由以进行路由更新;BGP路由器也可以通过更新报文向BGP邻居撤销一或多条不可达路由以进行路由更新。一次路由更新所需要发送的更新报文数量是根据需要更新的路由数量确定的。举例来说,一条更新报文可以携带10条路由,那么更新100条路由则需要连续发送10条更新报文。
BGP路由器以组播方式对BGP邻居组中的BGP邻居进行路由更新具体包括:BGP路由器生成更新报文,该更新报文中包含BGP邻居组中的各个BGP邻居需要更新的相同路由信息。然后,BGP路由器以该组播地址为目的地址发送更新报文,从而BGP邻居组中的各个BGP邻居分别接收到更新报文,然后BGP邻居组中的各个BGP邻居分别从更新报文中解析出路由信息并执行路由更新。
在一个实施方式中,BGP路由器以单播方式对不具有组播接收能力的BGP邻居进行路由更新。具体包括:BGP路由器确定不具有组播接收能力的BGP邻居需要更新的路由信息,并将该路由信息携带在更新报文中,然后BGP路由器以单播方式将该更新报文发送到不具有组播接收能力的BGP邻居。
在一个实施方式中,BGP路由器以单播方式对具有组播接收能力且因自身没有存储到达BGP路由器的组播路由而不加入BGP邻居组的BGP邻居进行路由更新。具体包括:BGP路由器确定该不加入BGP邻居组的BGP邻居需要更新的路由信息,并将该路由信息携带在更新报文中,然后BGP路由器以单播方式将该更新报文发送到不加入BGP邻居组的BGP邻居。
当路由信息较多时,BGP路由器可以通过多条更新报文承载路由信息。在一个实施方式中,BGP路由器以组播方式对BGP邻居组中的BGP邻居进行路由更新包括:为每条更新报文分配不同的序列号;以组播方式分别向BGP邻居组中的BGP邻居发送每条更新报文。该方法还包括:BGP路由器接收BGP邻居组中的BGP邻居发送的回复报文,回复报文携带有与更新报文相对应的序列号;BGP路由器根据未接收到的序列号,确定BGP邻居组中的BGP邻居未接收到的更新报文;BGP路由器以组播方式向BGP邻居重新发送未接收到的更新报文。
需要说明的是,在进行路由更新时,无法以组播方式进行路由更新的BGP邻居,可能由于该BGP邻居不具备组播能力,也可能由于该BGP邻居无法加入BGP邻居组,还可能由于设置该BGP邻居进行单播更新。对于进行单播更新的BGP邻居和进行组播更新的BGP邻居来说,进行路由更新时更新报文中所携带的路由可能是相同的。
另外,通过为不同的更新报文分配序列号(可以携带于更新报文的TLV属性中,但不限于此)来检查BGP邻居对更新报文的接收情况,也不仅限于组播形式更新的过程中,同样也可以适用于单播更新的情况下,本发明实施方式对此并无限定。
下面结合具体实例对本发明进行详细说明。
对于BGP路由器,首先从所有的BGP邻居中确定出具有组播接收能力的BGP邻居,再将具有组播接收能力且接收相同的更新报文的BGP邻居划分到一个共同的BGP邻居组。BGP邻居组的数目可以为一或多个。
BGP路由器确定BGP邻居组后,为BGP邻居组设置组播地址。如果BGP邻居组有多个,则BGP路由器为每个BGP邻居组都设置互不相同的组播地址。而且,BGP路由器向BGP邻居组中的每个BGP邻居发送该BGP邻居组的组播地址。BGP邻居组中的BGP邻居收到组播地址后,判断本地是否有到达BGP路由器的组播路由,如果有,向BGP路由器发送组加入请求,从而加入对应于该组播地址的BGP邻居组;如果没有,则向BGP路由器发送通知,以告知BGP路由器自身没有组播路由,从而无法加入对应于该组播地址的BGP邻居组。
比如,BGP路由器的BGP邻居包括BGP邻居A、BGP邻居B、BGP邻居C、BGP邻居D、BGP邻居E、BGP邻居F和BGP邻居G,其中BGP邻居A、BGP邻居B、BGP邻居C、BGP邻居D、BGP邻居E和BGP邻居F具有组播接收能力,而BGP邻居G不具有组播接收能力。而且,BGP路由器需要向BGP邻居A、BGP邻居B和BGP邻居C发送更新报文1,向BGP邻居D、BGP邻居E、BGP邻居F和BGP邻居G发送更新报文2,其中更新报文1不同于更新报文2。那么,BGP路由器可以将BGP邻居A、BGP邻居B和BGP邻居C确定为一个BGP邻居组A,而将BGP邻居D、BGP邻居E和BGP邻居F确定为另外一个BGP邻居组B。BGP邻居组A的各个组员都接收相同的更新报文(即更新报文1);BGP邻居组B的各个组员都接收相同的更新报文(即更新报文2)。
BGP路由器可以为BGP邻居组A设置组播地址A,为BGP邻居组B设置组播地址B。BGP路由器分别向BGP邻居组A中的BGP邻居A、BGP邻居B和BGP邻居C发送携带组播地址A的Refresh报文。BGP邻居A、BGP邻居B和BGP邻居C收到Refresh报文并解析出组播地址A后,各自判断本地是否有到达BGP路由器的组播路由,如果有,向BGP路由器发送组加入请求,从而加入对应于该组播地址A的BGP邻居组A;如果没有,则向BGP路由器发送通知,以告知BGP路由器自身没有组播路由。假定BGP邻居A和BGP邻居B分别在本地具有到达BGP路由器的组播路由,而BGP邻居C的本地没有到达BGP路由器的组播路由,因此BGP邻居A和BGP邻居B将加入BGP邻居组A,而BGP邻居C没有加入BGP邻居组A。
而且,BGP路由器分别向BGP邻居组B中的BGP邻居D、BGP邻居E和BGP邻居F发送携带组播地址B的Refresh报文。BGP邻居D、BGP邻居E和BGP邻居F收到Refresh报文并解析出组播地址B后,各自判断本地是否有到达BGP路由器的组播路由,如果有,向BGP路由器发送组加入请求,从而加入对应于该组播地址B的BGP邻居组B;如果没有,则向BGP路由器发送通知,以告知BGP路由器自身没有组播路由。假定BGP邻居D和BGP邻居E分别在本地具有到达BGP路由器的组播路由,而BGP邻居F的本地没有到达BGP路由器的组播路由,因此BGP邻居D和BGP邻居E将最终加入BGP邻居组B,而BGP邻居F没有加入BGP邻居组B。
BGP路由器以组播方式向组播地址A发送更新报文1,以组播方式向组播地址B发送更新报文2。BGP邻居组A中的BGP邻居A和BGP邻居B将收到更新报文1,BGP邻居C由于没有加入BGP邻居组A将无法接收到更新报文1。BGP邻居组B中的BGP邻居D和BGP邻居E将收到更新报文2,而BGP邻居F由于没有加入BGP邻居组B因此无法接收到更新报文2。
BGP路由器通过组播接收能力协商确定BGP邻居G不具有组播接收能力,则BGP路由器通过单播方式向BGP邻居G发送更新报文2。而且,BGP邻居C和BGP邻居F具有组播接收能力但是没有到达BGP路由器的组播路由,因此BGP路由器通过单播方式向BGP邻居C发送更新报文1,而且BGP路由器通过单播方式向BGP邻居F发送更新报文2。
基于上述描述,下面结合具体的组网结构描述本发明实施方式。
图2为根据本发明路由更新的第一示范性组网系统示意图。如图2所示,该组网系统包括具体实施为ISIS网络的超级核心网(super core)和具体实施为OSPF网络的标准核心(normal core)网。
ISIS网络包括:路由器R1、路由器R2、路由器R3、路由器R4、路由器R5、路由器R6、路由器R7、路由器R8、路由控制路由器RR1和路由控制路由器RR2,其中控制路由器RR1和控制路由器RR2互为备份。
OSPF网络包括:路由器R5、路由器R6、路由器R7、路由器R8、路由器R9和路由器R10。
路由器R5、路由器R6、路由器R7、路由器R8作为ISIS网络和OSPF网络的边界网关,分别运行有BGP协议;RR1和RR2也分别运行有BGP协议。
在RR1和RR2中协商出一个更新报文发送设备。假定RR1为协商出的更新报文发送设备。RR1需要向作为BGP邻居的路由器R5、路由器R6、路由器R7、路由器R8发送更新报文,其中RR1在BGP邻居发现过程中,通过Open报文与路由器R5、路由器R6、路由器R7、路由器R8协商组播接收能力,已经确定路由器R5、路由器R6、路由器R7、路由器R8都具有组播接收能力。
RR1确定路由器R5、路由器R6、路由器R7、路由器R8需要更新相同的路由信息,即RR1需要往路由器R5、路由器R6、路由器R7、路由器R8分别发送携带该路由信息的相同更新报文。因此,RR1确定路由器R5、路由器R6、路由器R7、路由器R8属于一个共同的BGP邻居组,并且为该BGP邻居组设置组播地址。而且,RR1向BGP邻居组中的各个组员(即路由器R5、路由器R6、路由器R7、路由器R8)分别发送组播地址。路由器R5、路由器R6、路由器R7、路由器R8收到组播地址后,通过在自身的PIM转发表中查找出接口的方式判断本地是否有到达RR1的组播路由,如果有,向RR1发送组加入请求,从而加入对应于该组播地址的BGP邻居组;如果没有,则向RR1发送通知,以告知RR1自身没有组播路由,并且不加入BGP邻居组。
假定路由器R5、路由器R6、路由器R7、路由器R8都具有到达RR1的组播路由,则路由器R5、路由器R6、路由器R7、路由器R8都加入BGP邻居组。然后,BGP路由器以组播方式向组播地址发送更新报文,从而BGP邻居组中的路由器R5、路由器R6、路由器R7、路由器R8分别可以接收到更新报文。在更新报文的组播传输过程中,RR1可以在更新报文中新增一个序列号属性的TLV,该序列号为8字节,从0000000000000001开始。BGP路由器每发送一条更新报文,此序列号属性值加1。组播组内所有组员(即路由器R5、路由器R6、路由器R7、路由器R8)在接收到更新报文后,分别通过Refresh报文向RR1回复序列号值,以确保更新报文的正常传输。当RR1接收到组播组内所有组员针对所有更新报文的回复后,确认所有更新报文已经实现可靠传输,重置序列号为初始值。
当RR1没有接收到组播组内所有组员针对所有更新报文的回复后,RR1根据未接收到的序列号确定出没有被全部组员接收到的更新报文,并且以组播方式向BGP邻居重新发送未接收到的更新报文。假定RR1需要通过组播方式发送三条更新报文,第一条更新报文的序列号为1;第二条更新报文的序列号为2;第三条更新报文的序列号为3。路由器R5、路由器R6、路由器R7、路由器R8在接收到第一条更新报文后,分别通过Refresh报文向RR1回复序列号1;路由器R5、路由器R6、路由器R7、路由器R8在接收到第二条更新报文后,分别通过Refresh报文向RR1回复序列号2;路由器R5、路由器R6、路由器R7、路由器R8在接收到第三条更新报文后,分别通过Refresh报文向RR1回复序列号3。如果RR1接收到四个(即组播组的组员数)包含序列号3的Refresh报文,则RR1认定第三条更新报文已经成功发送到所有的组播组员。如果RR1不能接收到四个包含序列号1的Refresh报文,则RR1认定第1条更新报文没有成功发送到所有的组播组员,此时RR1以组播方式重新发送第1条更新报文。
可见,应用本发明之后,RR1不再以单播方式向路由器R5、路由器R6、路由器R7、路由器R8各自发送更新报文,而是通过组播方式发送更新报文,从而降低对资源的利用。
图3为根据本发明路由更新的第二示范性组网系统示意图。
如图3所示,该组网系统包括具体实施为ISIS网络的超级核心网和具体实施为OSPF网络的标准核心网。
ISIS网络包括:路由器R1、路由器R2、路由器R3、路由器R4、路由器R5、路由器R6、路由器R7、路由器R8、路由控制路由器RR1和路由控制路由器RR2,其中控制路由器RR1和控制路由器RR2互为备份。
OSPF网络包括:路由器R5、路由器R6、路由器R7、路由器R8、路由器R9和路由器R10。
路由器R5、路由器R6、路由器R7、路由器R8作为ISIS网络和OSPF网络的边界网关,分别运行有BGP协议;RR1和RR2也分别运行有BGP协议。
在RR1和RR2中协商出一个更新报文发送设备。假定RR1为更新报文发送设备。RR1需要向作为BGP邻居的路由器R5、路由器R6、路由器R7、路由器R8发送更新报文,其中RR1在BGP邻居发现过程中,通过与路由器R5、路由器R6、路由器R7、路由器R8协商组播接收能力,已经确定路由器R5、路由器R6具有组播接收能力,而路由器R7和路由器R8不具有组播接收能力。
假定路由器R5、路由器R6、路由器R7、路由器R8需要更新相同的路由信息,那么RR1需要往路由器R5、路由器R6、路由器R7、路由器R8发送携带该路由信息的相同更新报文。RR1确定路由器R5和路由器R6都具有组播接收能力,因此属于一个共同的BGP邻居组,并且为该BGP邻居组设置组播地址。而且,RR1向BGP邻居组中的各个组员(即路由器R5和路由器R6)分别发送组播地址。路由器R5和路由器R6收到组播地址后,通过在自身的PIM转发表中查找出接口的方式判断本地是否有到达RR1的组播路由,如果有,向RR1发送组加入请求,从而加入对应于该组播地址的BGP邻居组;如果没有,则向RR1发送通知,以告知RR1自身没有组播路由。
假定路由器R5和路由器R6都具有到达RR1的组播路由,则路由器R5和路由器R6加入BGP邻居组。然后,RR1以组播方式向组播地址发送更新报文,从而BGP邻居组中的路由器R5和路由器R6通过组播方式接收到更新报文。在更新报文的组播传输过程中,RR1可以在更新报文中新增一个序列号属性的TLV,该序列号为8字节,从0000000000000001开始。BGP路由器每发送一条更新报文,此序列号属性值加1。组播组内所有组员(即路由器R5和路由器R6)在收到更新报文后,分别通过Refresh报文向RR1回复序列号值,以确保更新报文的正常传输。当RR1接收到组播组内所有组员针对所有更新报文的回复后,确认所有更新报文已经实现可靠传输,重置序列号为初始值。类似地,当RR1没有接收到组播组内所有组员针对所有更新报文的回复后,RR1根据未接收到的序列号确定出没有被全部组员接收到的更新报文,并且以组播方式向BGP邻居重新发送未接收到的更新报文。
由于路由器R7和路由器R8不具有组播接收能力,因此RR1分别以单播方式向路由器R7和路由器R8分别发送更新报文。
图4为根据本发明路由更新的第三示范性组网系统示意图。
如图4所示,该组网系统包括具体实施为ISIS网络的超级核心网和具体实施为OSPF网络的标准核心网。
ISIS网络包括:路由器R1、路由器R2、路由器R3、路由器R4、路由器R5、路由器R6、路由器R7、路由器R8、路由控制路由器RR1和路由控制路由器RR2,其中控制路由器RR1和控制路由器RR2互为备份。
OSPF网络包括:路由器R5、路由器R6、路由器R7、路由器R8、路由器R9和路由器R10。
路由器R5、路由器R6、路由器R7、路由器R8作为ISIS网络和OSPF网络的边界网关,分别运行有BGP协议;RR1和RR2也分别运行有BGP协议。
在RR1和RR2中协商出一个更新报文发送设备。假定RR1为协商出的更新报文发送设备。RR1需要向作为BGP邻居的路由器R5、路由器R6、路由器R7、路由器R8发送更新报文,其中RR1在BGP邻居发现过程中,通过与路由器R5、路由器R6、路由器R7、路由器R8协商组播接收能力,已经确定路由器R5、路由器R6、路由器R7和路由器R8都具有组播接收能力。
RR1需要向路由器R5和路由器R6发送更新报文1,需要向路由器R7和路由器R8发送更新报文2。因此,RR1确定路由器R5和路由器R6属于BGP邻居组1,而路由器R7和路由器R8属于另一个BGP邻居组2。RR1为BGP邻居组1设置组播地址A,为BGP邻居组2设置组播地址B。而且,RR1分别向BGP邻居组1中的各个组员(即路由器R5和路由器R6)发送组播地址A,分别向BGP邻居组2中的各个组员(即路由器R7和路由器R8)发送组播地址B。BGP邻居组1中的路由器R5和路由器R6收到组播地址后,分别判断本地是否有到达RR1的组播路由,如果有,向RR1发送组加入请求,从而加入对应于该组播地址A的BGP邻居组1;如果没有,则向RR1发送通知,以告知RR1自身没有组播路由,并且不加入BGP邻居组1。假定路由器R5和路由器R6都具有到达RR1的组播路由,则路由器R5和路由器R6加入BGP邻居组1。类似地,BGP邻居组2中的路由器R7和路由器R8收到组播地址B后,分别判断本地是否有到达RR1的组播路由,如果有,向RR1发送组加入请求,从而加入对应于该组播地址B的BGP邻居组2;如果没有,则向RR1发送通知,以告知RR1自身没有组播路由,并且不加入BGP邻居组2。假定路由器R7有到达RR1的组播路由,则路由器R7加入BGP邻居组2,而路由器R8没有到达RR1的组播路由,则路由器R8不加入BGP邻居组2。
RR1以组播方式向组播地址A发送更新报文1,从而BGP邻居组1中的路由器R5和路由器R6分别接收到更新报文。RR1以组播方式向组播地址B发送更新报文2,从而BGP邻居组2中的路由器R7接收到更新报文2。由于路由器R8没有加入BGP邻居组2,因此路由器R8不能够接收到以组播方式传播的更新报文2。在更新报文的组播传输过程中,RR1可以在更新报文中新增一个序列号属性的TLV,该序列号为8字节,从0000000000000001开始。BGP路由器每发送一条更新报文,此序列号属性值加1。组播组内所有组员接收到更新报文后,分别通过Refresh报文向RR1回复序列号值以确保数据的正常传输。RR1接收到组播组内所有组员针对所有更新报文的回复后,确认所有更新报文已经实现可靠传输并重置序列号为初始值。类似地,当RR1没有接收到组播组内所有组员针对所有更新报文的回复后,RR1根据未接收到的序列号确定出没有被全部组员接收到的更新报文,并且以组播方式向BGP邻居重新发送未接收到的更新报文。
对于路由器8,RR1以单播方式向路由器R8发送更新报文2。
在图2,3和4中,以ISIS网络和OSPF网络为例分别对超级核心网和正常核心网进行说明,本领域技术人员可以意识到这种描述仅是阐述性的,并不用于对本发明的实施方式进行限定。
基于上述分析,本发明还提出了一种发送BGP更新报文的装置。
图5为根据本发明的发送BGP更新报文的装置结构图,该装置应用于BGP路由器,该装置500包括:
分组模块501,用于确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;
路由更新模块502,用于以组播方式对所述BGP邻居组中的BGP邻居进行路由更新。
在一个实施方式中,该装置500还包括:
协商模块503,用于在分组模块确定需要更新相同的路由信息的BGP邻居之前,通过Open报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居;
分组模块501,用于从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。
在一个实施方式中,协商模块503,还用于将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居;该装置500还包括:
单播发送模块504,用于以单播方式对所述不具有组播接收能力的BGP邻居进行路由更新。
在一个实施方式中,分组模块501,用于为所述BGP邻居组分配组播地址;向所述所确定的BGP邻居发送所述组播地址,从而由存储有到达所述BGP路由器的组播路由的BGP邻居加入所述BGP邻居组。
在一个实施方式中,该装置500还包括:
单播发送模块504,用于以单播方式对不加入所述BGP邻居组的BGP邻居进行路由更新。
在一个实施方式中,分组模块501,用于将所述组播地址携带在Refresh报文中,并向所述所确定的BGP邻居发送所述Refresh报文。
在一个实施方式中,路由更新模块502,用于为每条更新报文分配不同的序列号;以组播方式分别向所述BGP邻居组中的BGP邻居发送每条更新报文;接收所述BGP邻居组中的BGP邻居发送的回复报文,所述回复报文携带有与所述更新报文相对应的序列号;根据未接收到的序列号,确定所述BGP邻居组中的BGP邻居未接收到的更新报文;以组播方式向所述BGP邻居重新发送所述未接收到的更新报文。
综上所述,在本发明实施方式中,确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;以组播方式对BGP邻居组中的BGP邻居进行路由更新。由此可见,BGP路由器通过组播方式对BGP邻居进行路由更新,从而降低对资源的利用。
而且,即使网络中存在部分设备不支持组播功能或不具有组播路由,也可以按照单播方式发送更新报文。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种路由更新的方法,其特征在于,该方法应用于边界网关协议BGP路由器,该方法包括:
通过Open报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居;
确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;
以组播方式对所述BGP邻居组中的BGP邻居进行路由更新。
2.根据权利要求1所述的方法,其特征在于,
所述确定需要更新相同的路由信息的BGP邻居包括:从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。
3.根据权利要求2所述的方法,其特征在于,在所述通过Open报文与BGP邻居协商组播接收能力之后,所述方法还包括:
将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居;
以单播方式对所述不具有组播接收能力的BGP邻居进行路由更新。
4.根据权利要求1所述的方法,其特征在于,所述将所确定的BGP邻居加入BGP邻居组包括:
为所述BGP邻居组分配组播地址;
向所述所确定的BGP邻居发送所述组播地址,从而由存储有到达所述BGP路由器的组播路由的BGP邻居加入所述BGP邻居组。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
以单播方式对不加入所述BGP邻居组的BGP邻居进行路由更新。
6.根据权利要求4所述的方法,其特征在于,所述向所确定的BGP邻居发送组播地址包括:
将所述组播地址携带在Refresh报文中,并向所述所确定的BGP邻居发送所述Refresh报文。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述以组播方式对所述BGP邻居组中的BGP邻居进行路由更新包括:
为每条更新报文分配不同的序列号;
以组播方式分别向所述BGP邻居组中的BGP邻居发送每条更新报文;
该方法还包括:
接收所述BGP邻居组中的BGP邻居发送的回复报文,所述回复报文携带有与所述更新报文相对应的序列号;
根据未接收到的序列号,确定所述BGP邻居组中的BGP邻居未接收到的更新报文;
以组播方式向所述BGP邻居重新发送所述未接收到的更新报文。
8.一种路由更新的装置,其特征在于,该装置应用于边界网关协议BGP路由器,该装置包括:
分组模块,用于确定需要更新相同的路由信息的BGP邻居,将所确定的BGP邻居加入BGP邻居组;
路由更新模块,用于以组播方式对所述BGP邻居组中的BGP邻居进行路由更新;
协商模块,用于在分组模块确定需要更新相同的路由信息的BGP邻居之前,通过Open报文与BGP邻居协商组播接收能力,并将协商成功的BGP邻居确定为具有组播接收能力的BGP邻居。
9.根据权利要求8所述的装置,其特征在于,还包括:
分组模块,用于从具有组播接收能力的BGP邻居中,确定需要更新相同的路由信息的BGP邻居。
10.根据权利要求9所述的装置,其特征在于,
协商模块,还用于将协商失败的BGP邻居确定为不具有组播接收能力的BGP邻居;该装置还包括:
单播发送模块,用于以单播方式对所述不具有组播接收能力的BGP邻居进行路由更新。
11.根据权利要求8所述的装置,其特征在于,
分组模块,用于为所述BGP邻居组分配组播地址;向所述所确定的BGP邻居发送所述组播地址,从而由存储有到达所述BGP路由器的组播路由的BGP邻居加入所述BGP邻居组。
12.根据权利要求11所述的装置,其特征在于,还包括:
单播发送模块,用于以单播方式对不加入所述BGP邻居组的BGP邻居进行路由更新。
13.根据权利要求11所述的装置,其特征在于,
分组模块,用于将所述组播地址携带在Refresh报文中,并向所述所确定的BGP邻居发送所述Refresh报文。
14.根据权利要求8-13中任一项所述的装置,其特征在于,
路由更新模块,用于为每条更新报文分配不同的序列号;以组播方式分别向所述BGP邻居组中的BGP邻居发送每条更新报文;接收所述BGP邻居组中的BGP邻居发送的回复报文,所述回复报文携带有与所述更新报文相对应的序列号;根据未接收到的序列号,确定所述BGP邻居组中的BGP邻居未接收到的更新报文;以组播方式向所述BGP邻居重新发送所述未接收到的更新报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510390080.0A CN105591931B (zh) | 2015-07-02 | 2015-07-02 | 一种路由更新的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510390080.0A CN105591931B (zh) | 2015-07-02 | 2015-07-02 | 一种路由更新的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105591931A CN105591931A (zh) | 2016-05-18 |
CN105591931B true CN105591931B (zh) | 2019-06-28 |
Family
ID=55931165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510390080.0A Active CN105591931B (zh) | 2015-07-02 | 2015-07-02 | 一种路由更新的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105591931B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801783A (zh) * | 2006-01-23 | 2006-07-12 | 北京交通大学 | 一种基于ip/mpls/bgp的多域组播一体化数据分发结构及方法 |
CN101631274A (zh) * | 2009-07-28 | 2010-01-20 | 北京交通大学 | 基于标识的组播路由实现系统及其方法 |
CN101640691A (zh) * | 2008-07-28 | 2010-02-03 | 中国移动通信集团公司 | 数据存储、查找的方法及数据存储网络 |
US7930424B1 (en) * | 2007-05-09 | 2011-04-19 | Narus, Inc. | System and method for detecting bogus BGP route information |
CN102761482A (zh) * | 2012-06-29 | 2012-10-31 | 杭州华三通信技术有限公司 | 一种bgp邻居的建立方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100534625B1 (ko) * | 2003-02-18 | 2005-12-07 | 삼성전자주식회사 | 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법 |
-
2015
- 2015-07-02 CN CN201510390080.0A patent/CN105591931B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801783A (zh) * | 2006-01-23 | 2006-07-12 | 北京交通大学 | 一种基于ip/mpls/bgp的多域组播一体化数据分发结构及方法 |
US7930424B1 (en) * | 2007-05-09 | 2011-04-19 | Narus, Inc. | System and method for detecting bogus BGP route information |
CN101640691A (zh) * | 2008-07-28 | 2010-02-03 | 中国移动通信集团公司 | 数据存储、查找的方法及数据存储网络 |
CN101631274A (zh) * | 2009-07-28 | 2010-01-20 | 北京交通大学 | 基于标识的组播路由实现系统及其方法 |
CN102761482A (zh) * | 2012-06-29 | 2012-10-31 | 杭州华三通信技术有限公司 | 一种bgp邻居的建立方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105591931A (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8005054B2 (en) | Communication system, communication method, communication terminal device, control method thereof, and program | |
US7065059B1 (en) | Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network | |
US8599683B2 (en) | System and method for changing a delivery path of multicast traffic | |
EP2515581B1 (en) | Multicast distribution tree establishment and maintenance in a wireless multi-hop relay communication system | |
CN101455030B (zh) | 动态共享风险节点组(srng)成员发现 | |
US7035202B2 (en) | Network routing using link failure information | |
EP3070890A1 (en) | Multicast flow overlay using registration over a reliable transport | |
CN101005452A (zh) | 一种在ip设备之间进行通信的方法和系统 | |
JP2004529572A (ja) | コネクション型ネットワークにおける分散マルチキャストルーティング方法、及びこの方法を用いたネットワーク | |
CN102045237A (zh) | 一种路由撤销的方法、装置和系统 | |
CN104144122B (zh) | 建立标签交换路径的方法、设备及系统 | |
JP2013026829A (ja) | 伝送システムおよび伝送システムの制御方法 | |
EP2892196B1 (en) | Method, network node and system for implementing point-to-multipoint multicast | |
CN102292942B (zh) | 一种路由处理方法、系统和路由器 | |
CN104243303B (zh) | 一种自治系统环路组网中发送更新报文的方法和装置 | |
US8014371B1 (en) | System, model and method for evaluating a network | |
CN103227724A (zh) | 一种在vrrp网络环境下实现pim组播的方法及装置 | |
JP2009273140A (ja) | ハイブリッド型メッシュ・ルーティング・プロトコル | |
WO2021004213A1 (zh) | 融合网络的路径标签确定方法及装置、存储介质及电子装置 | |
Ballardie et al. | Core Based Tree (CBT) Multicast | |
CN109412942B (zh) | 云网传输路由方法和系统 | |
CN105591931B (zh) | 一种路由更新的方法和装置 | |
CN113810274A (zh) | 一种路由处理方法及相关设备 | |
CN113193988B (zh) | 一种多pce的路径计算交互方法和系统 | |
CN104994556B (zh) | 一种基于混合无线网状网络协议的路由建立的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |