BGP/MPLS IP中PE间VPN-IPv4路由发布原理

发布时间:2022-01-15 13:00:44 作者:华为阅读:0

[导读]:在BGP/MPLS IP VPN中,同一个VPN的各PE间要建立MP-IBGP对等体关 系,通过MP-BGP Update消息发布本端的VPN-IPv4路由,以便相互学习对端所连接的用户网络VPN-I...

在BGP/MPLS IP VPN中,同一个VPN的各PE间要建立MP-IBGP对等体关 系,通过MP-BGP Update消息发布本端的VPN-IPv4路由,以便相互学习对端所连接的用户网络VPN-IPv4私网路由,加入到自己对应的VPN实例中。

在PE间整个私网路由的发布和学习过程中涉及到几个重要的步骤:私网标签分配、私网路交叉、公网隧道迭代、私网路由的选择。下面分别予以介绍。

1、私网路由标签分配

BGP/MPLS IP VPN中的PE设备在收到用户报文后要进行MPLS标签封装,这个MPSL标签是插入在二层协议头和三层协议头之间。但在BGP/MPLS IP VPN中,PE对用户报文所封装的不是仅一层公网隧道MPLS标签,还要封装用来代表用户网络路由的一层私网MPLS标签,即要封装两层MPLS标签,私网MPLS标签在里层,公网MPLS标签在外层。

PE在利用MP-BGP向对端PE发布私网路由时,会通过MP-BGP的Update报文 携带该私网标签(还携带对应VPN实例配置的RD、VPN—Target属性),其目的是使对端PE连接的Site中的用户通过该VPN-IPv4路由访问本端所连接的对应Site中的目的用户时,VPN报文中会带上这层MPLS标签(作为内层标签),到达本端PE时,就可以直接根据报文中所携带的私网标签找到对应的路由表项,然后转发给对应的Site中的目的用户。

说明

BGP的Update消息在发布时仍然会在外面加上一层MPLS骨干网各设备间建立

的本地LDP LSP标签,报文中的源IP地址是本端PE上代表MPLS LSR-ID的Loopback接口IP地址,目的地址就是与本端PE建立了MP-IBGP对等体关系的其他PE上代表MPLS MSR-ID的Loopback接口IP地址。

私网路由标签、RD和VPN-IPv4路由信息都在MP-BGP Update消息中的 NLRI (Network Layer Reachability Information,网络层可通达性信息)字段 中,而VPN-Target属性是在Update消息Extended_Communities(扩展团体) 属性字段中。设备是否接收所收到的路由更新的唯一依据是Update消息中所携带的VPN-Target属性是否与本所配置的VPN实例的VPN-Target属性匹配,匹配 到哪个VPN实例,该路由就会加入到哪个VPN实例的VRF中。

另外,RD、VPN-Target属性仅在MP-BGP Update消息中,用于路由更新, 在VPN报文中是不携带的,但私网路由标签会在VPN报文的帧头后添加,用于MP-BGP对等体区分VPN报文所属的VPN实例。

PE上为私网路由分配私网标签的方法有如下两种。

基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(one label per route)。这方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求,因为每个LSP都会对应一条ILM表项。

基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。

【经验提示】私网路由标签是由MP-BGP分配的,用于在MP-BGP对等体间唯一标识一条路由或一个VPN实例。该私网路由标签是在本端PE设备接收到私网路由更新、加入到对应的VPN实例VRF,并引入到本地BGP路由表中后由BGP分配的,仅在本地MP-BGP对等体间有意义,即不同MP-BGP对等体对于同一私网VPN-IPv4路由的私网标签分配是独立的,即所分配的私网标签可以一样,也可以不一样。MP-BGP对等体学习到该私网路由后,也会在VPN路由表中的对应路由表项中映射相同的私网路由标签,使得通过该VPN-IPv4路由访问的VPN报文能带上对应的私网标签。

为每个VPN实例中每个路由所分配的MP-BGP LSP可以通过执行displaympls Isp命令查看到。如下所示上面显示的“LSP Information:BGP LSP”部分 所列出的就是PE为所学习的各用户私网路由分配的LSP标签(参见输出信息中的粗体字部分)。

BGP/MPLS IP中PE间VPN-IPv4路由发布原理

2、私网路由交叉

当PE通过MP-BGP的Update消息接收到其他PE发来的VPN-IPv4路由时,并 不一定会把这些所有学习到的路由都加入自己的对应VPN实例中,而是要先经过一定规则检查,只有通过检查的VPN-IPv4路由才可进行下一步的VPN—Target属性匹配。

两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到来自对端PE或RR(路由反射器)发来的VPNv4路由后,本端PE先进行如下处理。

检查其下一跳(是与本端PE建立了iBGP对等体关系的对端PE,或RR)是否可达。如果下一跳不可达,该路由被丢弃。

对于RR发送过来的VPNv4路由,如果收到的路由中Cluster_List包含自己的Cluster ID,则丢弃这条路由,因为这是一条环回路由。

说明

在路由反射器(Route Reflector,RR)技术中规定,同一集群内的客户机只需要与该集群的RR直接交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量。在BGP/MPLS IP VPN方案中,通常MPLS骨干网中各节点都在同一个AS中(也有经过多个AS的),一个VPN中的各PE之间是iBGP对等体关系。

经过上述处理之后, PE把没有丢弃的路由与本地的各个VPN实例所配置的Import Target属性进行匹配,这个匹配的过程就称为“私网路由交叉”。也就是"私网路由交叉"就是把所接收到的私网VPN路由所携带的Export Target属性与本地PE上VPN实例的Import Target属性进行匹配,一致的话就认为交叉成功,可以作为候选(还不能最后决定)加入到该VPN实例的VPN路由。最终可执行displayip routing—table vpn—instance命令要查看某VPN实例中已学习的VPN-IPv4路由,如下是在一个BGP/MPLS IP VPN实际应用中查看名为vpna中的VPN-IPv4路由,都是用户私网路由。

BGP/MPLS IP中PE间VPN-IPv4路由发布原理

PE上有种特殊的路由,即来自本地CE、属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功, PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称之为“本地交叉” (对来自其他PE的VPN路由进行的路由交叉可称之为“远端交叉”) 。例如: CE1所在的Site属于VPNI, CE2所在的Site属于VPN2,且CE1和CE2同时接入PE1,当PE1收到来自CE1的VPN1的路由时,也会与VPN2对应的VPN实例的Import Target属性匹配,因为在BGP/MPLS IP VPN方案中,一个Site可以加入多个VPN,并连接多个远程站点。

3、公网隧道迭代

经过前面的私网路由交叉完成后,需要根据VPN—IPV4路由的目的1PV4前缀进行路由迭代,查找合适的隧道,以便确定到达该目的网络的报文所用的VPN隧道。在一个PE上每个隧道都有一个唯一的Tunnel ID。只有隧道迭代成功,该路由才可能(也不是最后的决定)被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做“隧道迭代”。

私网VPN路由隧道迭代成功(即找到对应的隧道)后,保留该隧道的标识符Tunnel ID,供后续转发报文时使用。VPN报文转发时会VPN实例中对应的路由表项的Tunnel ID查找对应的隧道,然后从隧道上发送出去。

4、私网路由的选择规则

经过路由交叉和隧道迭代成功,来自其他PE的私网VPN路由仍有可能不能被放入VPN实例路由表中,从本地CE收到的普通IPv4路由和本地交叉成功的路由也不是全部被放入VPN实例路由表,还要进行私网路由的选择。

对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条。

同时存在直接从CE收到的路由和交叉(包括本地交叉和远端交叉)成功后的同一目的地址路由,则优选从CE收到的路由。

同时存在本地交叉路由和从其他PE接收并远端交叉成功后的同一目的地址路由,则优选本地交叉路由。

对于到同一目的地址的多条路由,如果进行路由的负载分担,则:

优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。

·只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。

负载分担的AS_PATH属性必须完全相同。

以上从入口PE到出口PE之间的私网VPN路由发布的四大流程,可用图1-1简单描述。

BGP/MPLS IP中PE间VPN-IPv4路由发布原理

图1-1从入口PE到出口PE之间的私网VPN路由发布的流程

下面以图1-2为例(PE-CE之间使用BGP,公网隧道为LSP),说明将CE2的 一条路由发布到CE1的整个过程。

(1)在CE2的BGP IPv4单播地址族下引入CE2下面所连接网段的IGP路由。

(2)CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE 从连接CE2的接口收到Update消息,根据入接口所绑定的VPN实例,把该路由转 化为VPN-IPv4路由,加入对应的VPN实例对应的VRF中。

BGP/MPLS IP中PE间VPN-IPv4路由发布原理

图1-2 VPN-IPv4路由发布示例

(3) Egress PE为该路由分配MPLS标签(是内层标签) ,并将标签和VPN-IPv4路由信息加入MP-IBGP的Update消息中的NLRI字段中, Export Target属性 加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给其MP— IBGP对等体的Ingress PE.

(4) Ingress PE对收到来自Egress PE的路由进行路由交叉。交叉成功则根据 路由目的的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该 隧道的Tunnel ID和MPLS标签(内层标签) ,然后再进行VPN-Target属性匹配, 匹配成功后将该VPN路由加入到对应VPN实例VRF中。

(5) Ingress PE根据对应VPN实例所绑定的接口,把该路由通过BGP Update 消息(本示例中PE与CE之间也采用BGP路由)发布给CE1。此时发布的路由是普 通IPv4路由。

(6) CE1收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP 路由的方法可使CE1把该路由加入IGP路由表。

通过以上步骤就把CE2端的私网路由依次成功发布到了直连的PE2、远端的 PE1,以及远端Site CE2上,完成整个VPN路由的发布过程。当然,以上过程只是 将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给 CE2,其过程与上面的步骤类似,在此不再赘述。

以上就是BGP/MPLS IP VPN中PE间VPN-IPv4路由发布原理的介绍。如果你还有其他问题,欢迎进行咨询探讨,希望VeCloud的专业的解决方案,可以解决你目前遇到的问题。微云网络提供全球主机托管、服务器租用、MPLS专线接入、SD-WAN组网等方面的专业服务,资源覆盖全球。欢迎咨询。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

标题:BGP/MPLS IP中PE间VPN-IPv4路由发布原理

TAG标签:BGPMPLSIPv4

地址:https://www.kd010.com/hyzs/591.html

上一篇:中尼光缆双路由100G传输系统成功开通
下一篇:​BGP/MPLS IP的报文转发

Vecloud云网络解决方案

点击获取方案

返回顶部