MPLS/BGP虚拟专用网络路由通告和数据转发

MPLS/BGP虚拟专用网络路由通告

当PE设备从某个VRF中的VPN站点接收到IPv4路由之后,它就在IPv4前缀前面添加该VRF的RD(8个字节长),这样IPv4前缀就变成了VPNv4前缀。PE为本地每个VRF分配一个BGP标签(3个字节长)。这里还有另外两种方式,第一种是为本地每个启用了VRF的接口分配一个BGP标签,第二种是为本地每条VPNv4路由分配一个BGP标签。长度、标签、VPNv4前缀三部分,组成了MP_REACH_NLRI属性中的NLRI字段。

地址族设置为AFI=1,SAFI=128,代表是带标签的VPNv4地址。下一跳设置为当前PE的loopback地址。地址族、下一跳和NLRI组成了MP_REACH_NLRI属性。

将扩展团体属性RT的值设置为该VRF的export RT。

然后将含有上面的MP_REACH_NLRI和RT属性的update报文发送给AS中所有其它PE。每个PE都可以收到所有的VPN路由。收到路由之后根据RT筛选出需要的路由,丢弃其它路由。如果学到的VPN路由的RT与和PE上的某个VRF的import RT相同,则保留它。记录该路由的MBGP标签和RD,从VPNv4路由中提取出IPv4路由放进相应的VRF。然后将IPv4路由通告给CE。

当CE回收路由时,PE通过MP_UNREACH_NLRI属性来回收路由。其中的NLRI字段和MP_REACH_NLRI中的相同。

注意:

1、PE和CE之间传播的是普通的IPv4路由。CE不知道自己是CE。

2、PE的VRF下有CE通告的路由,但是全局路由表中没有CE通告的路由。

3、P路由器使用LDP来维护PE之间的LSP,它不需要运行MBGP,VPNv4路由信息对它来说是透明的。

MPLS/BGP虚拟专用网络数据转发

说明:

  1. 通常LDP都是倒数第二跳弹出的,但是这里不是专门讲解MPLS的基本原理,为了方便起见,直接按照LDP没有启用倒数第二跳弹出的方式来进行了讲解。
  2. PE为VPN路由分配标签有三种方式,这里我我讲解时假设为一个VRF的VPN路由分配相同的标签。

 

基础拓扑

CE1---PE1---P--- PE2---CE2

 

1、CE1将VPN数据作为普通的IP报文发送给PE。

2、IP报文到了PE1,PE1查找到对应的VPN路由。首先push对端PE在通告VPNv4路由时携带的BGP标签,然后根据VPN路由的下一跳(PE2的loopback地址),找到对应的LDP标签,push LDP标签,然后进行转发。

3、P设备对外层LDP标签进行swap操作。

4、LDP LSP保证数据到达PE2。PE2收到报文后,首先pop外层LDP标签,然后pop内层的BGP标签,根据BGP标签,判断出数据属于哪个VRF。然后查找VRF路由表将普通的IP报文送给具体的CE2。

5、CE2收到报文后当做普通的IP报文进行处理。

 

如果MBGP标签标识了出接口,或者直接标识到具体的VPN路由。那就可以不用再查询一次VRF路由表,就直接转发数据。

 

因为内层的MBGP标签的存在,所以同一PE上不同VRF内使用相同的IP地址时,数据转发也可以正常进行。

 

注意:

PE和CE之间,是没有任何标签的IPv4报文。CE不知道自己是CE。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值