路由发布方法和运营商边缘设备
技术领域
本发明涉及网络通信技术,特别涉及路由发布方法和运营商边缘设备(PE:Provider Edge)。
背景技术
现有多协议标签交换(MPLS:Multiprotocol Label Switching)三层(L3)虚拟专用网(VPN:Virtual Private Network)组网是服务提供商VPN解决方案中的一种基于PE的三层技术,其使用边界网关协议(BGP:Border GatewayProtocol)在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。
在MPLS L3VPN组网中,特别是嵌套VPN中,PE与用户侧设备(CE:Custom Edge)、以及PE之间通过发送VPNv4路由来交互VPN信息。其中,VPNv4路由包括8个字节的路由标识符(RD:Route distinguisher)和4个字节的IPv4地址前缀,这里RD添加在IPv4地址前缀之前,目的是使添加RD之后的IPv4地址前缀称为全局唯一的VPN IPv4地址前缀,以便于区分VPN不同的路由。参见图1,图1为现有路由发布示意图。图1应用于嵌套VPN组网中,其中,CE-B1和CE-B3为PE-A1的嵌套子PE。在图1中,PE-A1和CE-B1之间使用VPNB,PE-A1和CE-B3之间使用VPNB或VPNA,基于此,图1通过箭头示出了路由发布过程,具体为:
首先,CE-C1和CE-C3发布了地址前缀为1.1.1.1/24的IPv4路由,并分别到达CE-B1和CE-B3。
CE-B3作为嵌套子PE,在接收来自CE-C3的普通IPv4路由后,在地址前缀为1.1.1.1/24上添加用户VPN即CE-B3和CE-C3之间使用的VPN B2的RD形成VPNv4路由,并通过MP-BGP发布给PE-A1。同理,CE-B1作为嵌套子PE,在接收来自CE-C1的普通IPv4路由后,在地址前缀为1.1.1.1/24上添加用户VPN即CE-B1和CE-C1之间使用的VPN B1的RD形成VPNv4路由,并通过MP-BGP发布给PE-A1。
至此,PE-A1会接收到以下两条VPNv4路由:
路由1,地址前缀为1.1.1.1/24、附加的RD为VPN B1的RD;
路由2,地址前缀为1.1.1.1/24、附加的RD为VPN B2的RD。
当PE-A1接收到路由1和路由2后,根据嵌套VPN的RD替换特性,就需要将路由1的RD替换为:PE-A1和CE-B1之间使用的VPNB的RD(此时将RD替换后的路由1记为路由3),同理,也会将路由2的RD替换为:PE-A1和CE-B3之间使用VPNB或VPNA的RD(此时将RD替换后的路由2记为路由4)。
其中,由于PE-A1和CE-B3之间使用VPNB或VPNA,则,在PE-A1和CE-B3之间使用VPNA时(记为情况1),路由4的RD就为VPN A的RD,这与路由3中VPNB的RD不同,因此,PE-A1会认为路由3与路由4为两条完全不同的私网路由,为该两条完全不同的私网路由申请不同的私网标签,并发布至对端PE-A2;而在PE-A1和CE-B3之间使用VPNB时(记为情况2),则路由4的RD就为VPN B的RD,这与路由3相同,因此,PE-A1会认为路由3与路由4为同一条私网路由,优选出其中一条路由比如路由3发布至对端PE-A2。
当PE-A2接收到PE-A1在情况1下发布的两条完全不同的路由3和路由4后,该路由3和路由4均来自PE-A1,且具有相同地址前缀,因此,PE-A2会根据一系列优选方式从接收到的路由3和路由4中选择一个路由并下发到本地转发表项里。而当PE-A2接收到PE-A1在情况2下仅发布的一条路由后,直接将该接收到的路由下发到本地转发表项里。
至此,完成现有的路由发布描述。
但是,由于现有路由发布过程中,当PE-A2接收到PE-A1在情况1下发布的两条完全不同的路由3和路由4后,会出从路由3和路由4中优选一个路由来使用并下发到本地转发表项里,这会限制PE-A2下连的CE比如CE-B2只会与PE-A1下的特定CE互通,而不能与同时与PE-A1下连的且与该特定CE发布了相同地址前缀的其他CE互通。以PE-A2选择了路由3为例,该路由3中的RD属于VPN B,如此,就限制PE-A2下连的CE比如CE-B2只会与PE-A1下连的属于VPN B的CE-B1互通,而不能与属于VPN A的、但与CE-B1发布了相同地址前缀的CE-B3互通。同样,当PE-A2接收到PE-A1在情况2下仅发布的一条路由比如路由3后,由于仅选择了一条路由,这也会导致PE-A2下连的CE比如CE-B2不能同时与发布了相同地址前缀的CE-B3和CE-B1互通。
发明内容
本发明提供了路由发布方法和运营商边缘PE,以保证对端PE下连的CE同时与本端PE下连的发布了相同地址前缀的所有CE互通。
本发明提供的技术方案包括:
一种路由发布方法,包括:
A,运营商边缘设备PE接收到N条具有相同地址前缀的私网路由,所述N大于等于2;
B,若所述PE确定N条私网路由来自于不同设备,则为所述N条私网路由分配不同的私网标签,并发布至上游邻居设备;
若所述PE确定N条私网路由均来自于同一设备,则在所述N条私网路由具有不同私网标签时,将该来自于同一设备的N条具有相同地址前缀但不同私网标签的私网路由确定为等价私网路由,并为该N条等价私网路由分配不同的私网标签,发布至上游邻居设备。
优选地,在步骤B执行之前,进一步包括:所述PE和所述上游邻居设备协商并使能私网标签等价能力;所述私网标签能力包含用于执行步骤B中操作的功能;
基于此,步骤B中的发布操作包括:确定本PE是否已和上游邻居设备协商了所述私网标签等价能力,如果是,则继续执行所述发布操作。
优选地,本发明中,所述PE和上游邻居设备协商私网标签能力包括:
所述PE和上游邻居设备通过交互边界网关协议BGP中的OPEN报文协商私网标签能力,其中,所述OPEN报文通过扩展来增加用于协商所述私网标签等价能力的字段。
优选地,本发明中,所述私网标签能力还包含用于释放私网路由的功能;
基于此,所述方法进一步包括:
所述PE基于所述用于释放私网路由的功能执行私网路由释放。
本发明中,所述PE基于所述用于释放私网路由的功能执行私网路由释放具体包括:
C,PE在需要释放路由时,将该路由被分配的私网标签告知给上游邻居设备,以使上游邻居设备根据接收的私网标签释放对应的路由;
D,PE接收到下游邻居设备告知的需要释放的路由被分配的私网标签时,释放该接收的私网标签对应的路由。
其中,所述需要释放的路由被分配的私网标签通过BGP协议中UPDATE报文的MP Unreach NLRI Label Stack字段携带。
本发明还提供了一种报文传输方法,包括:
PE接收到上游邻居设备发送的报文;
PE确定所述报文的入标签,如果该入标签为本PE针对如上所述方法确定的等价私网路由中的一条私网路由分配的私网标签,则将该入标签交换为本PE接收到该私网路由时该私网路由携带的私网标签并转发所述报文;或者,
PE接收到其下连的用户侧设备CE发送的报文;
PE确定用于发送该报文的路由为上述方法确定的等价私网路由,则从所述等价私网路由中选择一条私网路由,在所述报文中添加本PE在接收到该私网路由时该私网路由携带的私网标签来作为所述报文的入标签并转发所述报文。
本发明还提供了一种PE,其关键在于,该PE用于路由发布,包括:
路由接收单元,用于接收到N条具有相同地址前缀的私网路由,所述N大于等于2;
发布单元,用于在所述N条私网路由来自不同设备时,为该N条私网路由分配不同的私网标签,并发布至上游邻居设备;以及用于在所述N条私网路由均来自同一设备时,如果所述N条私网路由具有不同私网标签,则将该来自于同一设备的N条具有相同地址前缀但不同私网标签的私网路由确定为等价私网路由,并为该N条等价私网路由分配不同的私网标签,发布至上游邻居设备。
优选地,本发明中,所述PE进一步包括:
协商并使能单元,用于和所述上游邻居设备协商并使能私网标签能力,所述私网标签能力包含所述发布单元执行的操作;
所述发布单元执行的发布操作是在确定出所述PE已和所述上游邻居设备协商了所述私网标签等价能力后执行的。
其中,所述协商并使能单元通过向所述上游邻居设备发送边界网关协议BGP中的OPEN报文来协商私网标签能力,其中,所述OPEN报文通过扩展增加了用于协商所述私网标签等价能力的字段来协商所述私网标签等价能力。
优选地,本发明中,所述私网标签能力还包含用于释放私网路由的功能;
基于此,所述PE进一步包括:
释放单元,用于基于所述私网标签能力进一步包含的用于释放私网路由的功能执行私网路由释放,具体为:在需要释放路由时,将该需要释放的路由被分配的私网标签告知给上游邻居设备,以使上游邻居PE根据接收的私网标签释放对应的路由;以及在接收到下游邻居设备告知的需要释放的路由被分配的私网标签时,释放该接收的私网标签对应的路由。
其中,所述需要释放的路由被分配的私网标签通过BGP协议中UPDATE报文的MP Unreach NLRI Label Stack字段携带。
本发明还提供了另外一种PE,该PE用于报文传输,包括:如上所述PE包含的各个单元、报文接收单元和报文转发单元;
其中,报文接收单元,用于接收上游邻居设备发送的报文,以及接收所述PE下连的用户侧设备CE发送的报文;
报文转发单元,用于在确定出来自所述上游邻居设备的报文的入标签为所述发布单元针对等价私网路由中的一条私网路由分配的私网标签时,将该入标签交换为本PE接收到该私网路由时该私网路由携带的私网标签并转发所述报文;以及,
在确定出用于发送来自所述CE的报文的路由为所述发布单元确定的等价私网路由时,从所述等价私网路由中选择一条私网路由,在所述报文中添加所述PE在接收到该私网路由时该私网路由携带的私网标签来作为所述报文的入标签并转发所述报文。
优选地,所述报文转发单元按照负载分担策略从所述等价私网路由中选择一条路由,利用被选择的路由转发所述报文。
由以上技术方案可以看出,本发明中,PE在本地接收到N条具有相同地址前缀的私网路由时,不管该N条私网路由是否携带相同RD,只要是从不同设备接收得到,则为该N条私网路由分配不同的私网标签,并发布至上游邻居设备,并非视为同一路由仅选择其中一条路由发布;或者,即使是从同一设备接收得到,但如果具有不同私网标签,则将该N条私网路由作为等价私网路由来维护,并非从接收的该N条私网路由中优选一个,这保证了上游邻居设备下的CE与本PE下发布了相同地址前缀的CE的互通。
附图说明
图1为现有路由发布示意图;
图2为本发明实施例扩展的OPEN报文示意图;
图3为本发明第一实施例实现示意图;
图4为本发明第二一实施例实现示意图;
图5为本发明实施例提供的PE结构图;
图6为本发明实施例提供的另一PE结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的路由发布方法涉及的PE可为连接至MPLS骨干网上的基本PE,比如图1中的PE-A1或PE-A2;也可为嵌套VPN网络中作为MPLS骨干网上基本PE的嵌套子PE,比如图1中的CE-B1或CE-B3。以下为方便描述,均统称为PE。
本发明实施例提供的路由发布方法主要包括:PE接收到N条具有相同地址前缀的私网路由;如果所述N条私网路由来自于不同设备,则为该N条私网路由分配不同的私网标签,并发布至上游邻居设备;如果所述N条私网路由均来自于同一设备,则在所述N条私网路由具有不同私网标签时,将该来自于同一设备的N条具有相同地址前缀但不同私网标签的N条私网路由作为等价私网路由,并为该N条等价私网路由分配不同的私网标签,发布至上游邻居设备。优选地,本发明中,以下为便于描述,将PE的上游邻居设备简称为上游邻居PE。
如此,当PE接收到上游邻居PE发送的报文时,如果确定出所述报文的入标签为本PE针对等价私网路由中的一条私网路由分配的私网标签,则将该入标签交换为本PE接收到该私网路由时该私网路由携带的私网标签并转发所述报文。其中,转发所述报文具体包括:利用本PE接收到该私网路由的端口转发所述报文;
而当PE接收到其下连的CE发送的报文时,则如果PE确定出用于发送该报文的路由为如上确定的等价私网路由,则从所述等价私网路由中选择(该选择可按照负载分担策略或者随机方式执行)一条私网路由,在所述报文中添加本PE在接收到该私网路由时该私网路由携带的私网标签来作为所述报文的入标签并转发所述报文。
下面针对本发明提供的路由发布方法进行详细描述:
首先,为了实现本发明提供的路由发布方法,需要上述PE与其上游邻居PE之间相互协商私网标签等价能力(label-ecmp-capability)。其中,PE和其上游邻居PE可通过相互交互BGP协议中的OPEN报文来实现私网标签能力的协商。本发明中,为了实现PE和其上游PE通过交互OPEN报文来实现私网标签能力的协商,需要对该OPEN报文进行扩展,使扩展后的OPEN报文增加用于协商所述私网标签等价能力的字段。图2示出了OPEN报文中增加的用于协商所述私网标签等价能力的字段,其遵守BGP协议的规定,包含:能力编码字段(capability code)和能力长度字段(capability length),其中,capability code占用1个字节,用于指示所述私网标签等价能力,capability length占用1个字节,用于指示所述私网标签等价能力可用属性比如value等的字段长度,而由于本发明主要涉及私网标签等价能力的协商,不涉及私网标签等价能力可用属性,因此,可建议该capability length为空,或者取值为0,这里之所以设置capability length,目的是为了遵守BGP协议针对增加字段的规定。如此,基于图2所示的OPEN报文,则PE和其上游邻居PE在设定的时间内可通过交互图2所示的OPEN报文即可完成私网标签等价能力的协商。
本发明中的私网标签等价能力具体可包含以下功能:
功能1,用于PE在发布本地接收到的N条具有相同地址前缀的私网路由时,增加一种判断,具体为:判断该N条私网路由是否来自于不同的设备,即从不同设备接收到所述N条私网路由;
如果该N条私网路由均从不同设备接收得到,则认为该N条私网路由为不同路由,为该N条私网路由分配不同的私网标签,并发布至与本PE协商了所述私网标签等价能力的上游邻居PE。可以看出,不管该N条私网路由在发布时是否添加相同的RD,只要该N条私网路由从不同设备接收得到,就认为该N条私网路由为N条不同的路由,继续发布该N条私网路由至协商了所述私网标签等价能力的上游邻居PE。
而如果该N条私网路由是从同一设备接收得到,则,再增加一种判断,具体为:判断该N条私网路由是否已被分配了不同私网标签,如果该N条私网路由均被分配了不同私网标签,则认为该N条私网路由为不同路由,为该N条私网路由分配不同的私网标签,并发布至协商了所述私网标签等价能力的上游邻居PE。可以看出,即使PE确定该N条私网路由从同一设备接收得到,由于N条私网路由具有不同的私网标签,也会认为该N条私网路由为N条不同的路由,继续发布该N条私网路由至协商了所述私网标签等价能力的上游邻居PE。
需要说明的是,本功能1中,判断N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到的方式具体实现时可有多种方式,下面仅举三个例子进行描述:
例1,依赖于该N条私网路由的下一跳设备的设备标识(Route id)。其中,下一跳设备的Route id可为该设备在BGP中的标识,MPLS L3VPN网络中每一设备具有唯一的Route id,不同设备具有不同的Route id,每一设备在通过BGP和其他设备建立邻居连接时将自身的Route id携带在BGP的OPEN报文中告知给邻居,并记录邻居告知的Route id。当PE在本地接收到N条私网路由时,针对该N条私网路由中任一路由,利用开发商预先设置的代码能够将该路由与已记录的发布该路由的下一跳设备的Route id关联,基于此,上述判断N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到通过比较所述N条私网路由关联的下一跳设备的Route id即可获知,如果均不同,则表示所述N条私网路由均从不同设备接收得到,反之,如果相同,则表示所述N条私网路由均从同一设备接收得到。
综上基于Route ID的描述,本发明可以将功能1称为基于Route id的VPNv4转发(Route id-VPNv4-Export)功能。
例2,基于发布路由的TCP端口。本领域技术人员知道,设备在发送路由时通常是通过TCP端口发送,基于此,当PE在本地接收到N条私网路由时,针对该N条私网路由中任一路由,确定发布该路由的TCP端口(该TCP端口一般携带在路由中),基于此,上述判断N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到通过比较发送所述N条私网路由的TCP端口是否相同即可获知,如果均不同,则表示所述N条私网路由均从不同设备接收得到,反之,如果相同,则表示所述N条私网路由均从同一设备接收得到。
例3,基于路由的下一跳地址。当PE在本地接收到N条私网路由时,针对该N条私网路由中任一路由,确定该路由的下一跳地址(该下一跳地址一般携带在路由中),基于此,上述判断N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到通过比较所述N条私网路由的下一跳是否相同即可获知,如果均不同,则表示所述N条私网路由均从不同设备接收得到,反之,如果相同,则表示所述N条私网路由均从同一设备接收得到。
至此,通过上述例1至例3中的任一种很容易确定该N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到。作为本发明实施例的扩展,上述例1至例3只是一种举例,并非限定本发明,在实现本发明思想不变的情况下,其他判断N条具有相同地址前缀的私网路由是从不同设备接收得到还是从同一设备接收得到的方式也是可行的,在此不一一举例。
功能2,称为VPNv4多等价路径转发(VPNv4-ECMP)能力,其用于在功能1判断出所述N条私网路由从同一设备接收得到且已被分配了不同私网标签时,将该N条私网路由形成等价私网路由,并下发至本地转发表项。
基于功能2,本发明是将来自于同一设备(即下一跳相同)的N条具有相同地址前缀但不同私网标签的私网路由确定为等价私网路由,这和传统确定等价私网路由的方式不同,传统确定等价私网路由的方式为:将来自于不同设备(即下一跳不同)但地址前缀相同的路由确定为等价私网路由。
基于上述对私网标签等价能力的描述,则本发明中,PE在与其上游邻居PE协商完私网标签等价能力后,使能该协商的私网标签等价能力,以利用该私网标签等价能力所包含的功能1和功能2对接收的N条具有相同地址前缀的私网路由进行处理。
下面对本发明提供的方法进行举例描述:
实施例1:
本实施例1以图3所示的MPLS L3VPN网络为例,在图3中,PE-A1分别与作为其嵌套子PE的CE-B1和CE-B3之间使用的用户VPN相同,均为VPN B。则,如图3所示,CE-B3和CE-B1分别发布了以下两条私网路由至PE-A1:路由1,附加的RD为VPN B2的RD、地址前缀为1.1.1.1/24的VPNv4路由;路由2,附加的RD为VPN B1的RD、地址前缀为1.1.1.1/24的VPNv4路由。
由于PE-A1分别与CE-B1和CE-B3之间使用的用户VPN相同,均为VPNB,则基于RD替换特点,PE-A1会将接收到的路由1和路由2的RD均更换为VPN B的RD。在完成RD替换后,路由1和路由2就具有相同的RD和地址前缀,按照现有路由发布方式则会确定路由1和路由2为同一条路由,而本发明中,在PE-A1与其上游邻居PE即PE-A2协商且使能了上述私网标签等价能力后,基于上述功能1,由于路由1和路由2是PE-A1分别从两个不同设备即CE-B1和CE-B3接收得到的,因此,便将路由1和路由2作为两条不同路由发布给PE-A2,并为该两条不同的路由分配两个不同私网标签比如,为路由1分配私网标签为100,为路由2分配私网标签为300。
当PE-A2接收到PE-A1发布的路由1和路由2后,发现该路由1和路由2被同一个设备即PE-A1发布的,且该路由1和路由2的RD、地址前缀都是一样的,主要区别就是私网标签不一样。则在PE-A2使能了上述私网标签等价能力后,基于上述功能2,将路由1和路由2确定为等价私网路由。以PE-A1为路由1分配私网标签为100,为路由2分配私网标签为300为例,则当PE-A2收到CE-B2向PE-A1侧发送的数据报文时,则会基于路由负载分担策略从上述形成的等价私网路由中选择其中一个,比如选择私网标签为100的路由,当PE-A1接收到私网标签为100的数据报文时,会将该私网标签交换为其他标签,转发给CE-B3。
另外,若PE-A2仍然存在上游邻居PE,且已和该上游邻居PE协商了所述私网标签等价能力,则基于上述功能1,认为尽管该路由1和路由2都来自于PE-A1且地址前缀都是一样的,但由于私网标签不一样,比如路由1的私网标签为100,路由2的私网标签为300,则,即使本PE-A2将该路由1和路由2确定为等价私网路由,还是确认该路由1和路由2作为两条不同路由,为该两条不同的路由分配两个不同私网标签,并发送给与本PE-A2协商了私网标签等价能力的上游邻居PE,。
至此,完成实施例1的描述。实施例1是以PE-A1分别与作为其嵌套子PE的CE-B1和CE-B3之间使用的用户VPN相同为例对本发明提供的方法进行了描述,而如果PE-A1与作为其嵌套子PE的CE-B1和CE-B3之间使用的用户VPN不相同,比如,PE-A1与CE-B1之间使用的用户VPN为VPN B,而PE-A1与CE-B3之间使用的用户VPN为VPN A,则参见图4所示的实施例2:
实施例2:
本实施例2以图4所示的MPLS L3VPN网络为例,在图4中,PE-A1与作为其嵌套子PE的CE-B1和CE-B3之间使用的用户VPN不相同,比如,PE-A1与CE-B1之间使用的用户VPN为VPN B,而PE-A1与CE-B3之间使用的用户VPN为VPN A,则,如图4所示,CE-B3和CE-B1分别发布了以下两条私网路由至PE-A1:路由1,附加的RD为VPN B2的RD、地址前缀为1.1.1.1/24的VPNv4路由;路由2,附加的RD为VPN B1的RD、地址前缀为1.1.1.1/24的VPNv4路由。
基于RD替换特点,PE-A1会将接收到的路由1的RD更换为VPN A的RD,将路由2的RD更换为VPN B的RD。在完成RD替换后,路由1和路由2具有不同的RD,不管是按照现有路由方式还是按照本发明中的上述功能1,均会将路由1和路由2发布给PE-A2,并为该两条不同的路由分配两个不同私网标签。
而当PE-A2接收到PE-A1发布的路由1和路由2后,发现该路由1和路由2被同一个设备即PE-A1发布、且具有相同的地址前缀,如果按照现有路由方式会从路由1和路由2中优选出一个,并记录至本地转发表项;而本发明中,尽管路由1和路由2被同一个设备发布、且具有相同的地址前缀,但私网标签不一样,则在PE-A2使能了上述私网标签等价能力后,基于上述功能2的描述,将路由1和路由2形成私网出标签不同、但下一跳和地址前缀相同的等价私网路由。
另外,若PE-A2仍然存在上游邻居PE,且已和该上游邻居PE协商了所述私网标签等价能力,则基于上述功能1,认为尽管该路由1和路由2来自于同一个设备、且地址前缀都是一样的,但由于私网标签不一样,还是应该确认该路由1和路由2作为两条不同路由,因此,为该两条不同的路由分配两个不同私网标签,并发布给与本PE-A2协商了私网标签等价能力的上游邻居PE。
至此,完成实施例2的描述。
从实施例1和实施例2可以看出,本发明中,PE在本地接收到N条具有相同地址前缀的私网路由时,不管该N条私网路由是否携带相同RD,在使能了本发明中的私网标签等价能力后,只要是从不同设备接收得到,则为该N条私网路由分配不同的私网标签,并发布至上游邻居PE;或者,即使是从同一设备接收得到,但如果具有不同私网标签,则将该N条私网路由作为等价私网路由来维护,并为该N条等价私网路由分配不同的私网标签,发布至上游邻居PE,这相比于现有技术,能够保证上游邻居PE下的CE与本PE下发布了相同地址前缀的CE的互通。
另外,本发明中的私网标签等价能力还包括以下能力:
路由撤销能力(Withdraw-ECMP-Label),用于释放私网路由,具体为:在PE需要释放路由时,将该需要释放的路由被分配的私网标签告知给上游邻居PE,以使上游邻居PE根据接收的私网标签释放对应的路由;或者,在接收到下游邻居PE告知的需要释放的路由被分配的私网标签时,释放该接收的私网标签对应的路由。
其中,需要释放的路由被分配的私网标签通过BGP协议中UPDATE报文的MP Unreach NLRI Label Stack字段携带。
比如,若图4中的PE-A1要释放路由1和路由2,则向PE-A2发送UPDATE报文,其中,UPDATE报文中的MP Unreach NLRI Label Stack字段携带了PE-A1为路由1分配的私网标签比如100,以及携带了PE-A1为路由2分配的私网标签比如300。当PE-A2收到来自PE-A1的UPDATE报文后,根据UPDATE报文中MP Unreach NLRI Label Stack字段携带的私网标签识别出需要撤销的路由为两条等价VPNV4路由即路由1和路由2并撤销这两条等价VPNV4路由。
至此,完成了本发明提供的路由发布方法描述,下面对本发明提供的PE进行描述。
参见图5,图5为本发明提供的PE结构图。该PE主要用于路由发布,包括:
路由接收单元,用于接收到N条具有相同地址前缀的私网路由,所述N大于等于2;
发布单元,用于在所述N条私网路由来自不同设备时,为该N条私网路由分配不同的私网标签,并发布至上游邻居设备;以及用于在所述N条私网路由均来自同一设备时,如果所述N条私网路由具有不同私网标签,则将该来自于同一设备的N条具有相同地址前缀但不同私网标签的私网路由确定为等价私网路由,并为该N条等价私网路由分配不同的私网标签,发布至上游邻居设备。
优选地,如图5所示,所述PE进一步包括:
协商并使能单元,用于和所述上游邻居设备协商并使能私网标签能力,所述私网标签能力包含所述发布单元执行的操作;
所述发布单元执行的发布操作是在确定出所述PE已和所述上游邻居设备协商了所述私网标签等价能力后执行的。
本发明中,所述协商并使能单元通过向所述上游邻居设备发送BGP中的OPEN报文来协商私网标签能力,其中,所述OPEN报文通过扩展增加了用于协商所述私网标签等价能力的字段来协商所述私网标签等价能力。
本发明中,所述私网标签能力还包含用于释放私网路由的功能;
基于此,所述PE进一步包括:
释放单元,用于基于所述私网标签能力进一步包含的用于释放私网路由的功能执行私网路由释放,具体为:在需要释放路由时,将该需要释放的路由被分配的私网标签告知给上游邻居设备,以使上游邻居PE根据接收的私网标签释放对应的路由;以及在接收到下游邻居设备告知的需要释放的路由被分配的私网标签时,释放该接收的私网标签对应的路由。
本发明中,所述需要释放的路由被分配的私网标签通过BGP协议中UPDATE报文的MP Unreach NLRI Label Stack字段携带。
至此,完成图5所示的PE结构描述。
另外,本发明还提供了一种应用于报文传输的PE,其除了包含图5所示的各个单元外,还进一步包括:报文接收单元、路由确定单元和报文转发单元,具体如图6所示。
其中,图5所示的各个单元在此不再赘述。
至于报文接收单元,其用于接收上游邻居设备发送的报文,以及接收所述PE下连的用户侧设备CE发送的报文;
报文转发单元,用于在确定出来自所述上游邻居设备的报文的入标签为所述发布单元针对等价私网路由中的一条私网路由分配的私网标签时,将该入标签交换为本PE接收到该私网路由时该私网路由携带的私网标签并转发所述报文;以及
在确定出用于发送来自所述CE的报文的路由为所述发布单元确定的等价私网路由时,从所述等价私网路由中选择一条私网路由,在所述报文中添加所述PE在接收到该私网路由时该私网路由携带的私网标签来作为所述报文的入标签并转发所述报文。
至此,完成图6所示的结构描述。
由以上技术方案可以看出,本发明中,PE在本地接收到N条具有相同地址前缀的私网路由时,不管该N条私网路由是否携带相同RD,只要是从不同设备接收得到,则为该N条私网路由分配不同的私网标签,并发布至上游PE,并非视为同一路由仅选择其中一条路由发布;或者,即使是从同一设备接收得到,但如果具有不同私网标签,则将该N条私网路由作为等价私网路由来维护,并非从接收的该N条私网路由中优选一个,这保证了上游PE下的CE与本PE下发布了相同地址前缀的CE的互通。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。