CCIE SP—Inter-Provider VPN Option 2

所谓ASBR-ASBR的方案,就是ASBR之间起VPNv4的neighbor(MP-EBGP),域间传送VPNv4的路由。
然而为了允许传送VPNv4,ASBR与ASBR之间必须支持交换MPLS数据包,因为VPNv4是被封装在MPLS中的。

对于这种方法需要理解MPLS VPN的转发过程。
这个可以参考我以前的文章《CCIE SP—MPLS VPN Basic 1
在这里我简要替下,VPN的顶层标签是LDP分配的,更进一步说是根据MP-BGP路由的下一跳分配的。
所以关键就在于路由的下一跳,当路由经过多个AS时,BGP的下一跳就会发生变化,标签也就会被重新分配。

此种方法要注意以下两点

1. 32位主机路由
如果ASBR-ASBR之间是直连建立MP-eBGP,那么链路之前不需要TDP/LDP或是任何IGP,因为它会产生一条32位的主机路由。由这条32位主机路由提供顶层标签。

那么为什么会产生这个32位的主机路由呢?
主要是因为ASBR之间传送的是双层标签,而不是一层标签。所以当在ASBR上下一跳改为对端接口地址后,双层标签会查找匹配的标签进行转发,顶层标签在LFIB中查到这个下一跳的出口标签是POP(这个就是自动生成的32位主机路由),而底层标签则是MP-eBGP邻居给他分的。

2013.10.01 更新:在IOX下,不会默认产生这个32位主机路由
在IOX下,这个32位主机路由不会自动生成,这就导致了顶层标签断裂,所以需要手动写1条主机路由,完成顶层标签交换。

2. BGP自动过滤机制
默认情况下,BGP的自动过滤机制会过滤掉VPNv4的信息。
如果本地启用的VRF跟VPNV4中携带的VRF相匹配,那么本地路由器就仅接受这部分VPNV4路由。
因为ASBR没有必要启用VRF,所以通过ASBR所有VPNv4的路由都会被过滤掉。
为了解决此问题,要在BGP中关闭此feature:“no bgp default route-target filter”

注意:
当在ASBR中键入no bgp default route-target filter时,ASBR不会立即发送路由更新。因此,必须清除BGP会话,也可以用软清除,以便能够学习到被过滤掉的VPNV4路由。
另外在RR上,自动会接收所有VPNv4的路由,所以不用特意的关闭自动过滤机制!

在Option2中有三种方法可以完成域间传送VPNv4路由

Option 2a —Next-hop-self method
这种方法的原理主要是在ASBR发送路由给RR的同时,改变从ASBR2学来的VPNV4路由的下一条为自己。
这样RR收到后,就会把VPNV4路由传给PE了,整个vpn路由也就通了。
如果不更改下一跳,路由发送到RR后,由于下一跳是对端ASBR的地址,这样RR就不会把路由加入全局表。
因此可以看到底层标签可以顺利交换,但是却ping不通,就是因为顶层标签在RR处中断了。
例如:

R2_RR#sh ip bgp vpn al 172.16.2.0
#从AS2学来的vpn路由
BGP routing table entry for 2:100:172.16.2.0/24, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  200, (Received from a RR-client)
    10.10.10.2 (inaccessible) from 1.1.1.1 (1.1.1.1)
#1.1.1.1是ASBR1的环回地址,10.10.10.2是ASBR2的直连地址(全局不可达)
      Origin incomplete, metric 0, localpref 100, valid, internal
      Extended Community: RT:2:100
      mpls labels in/out nolabel/21

这种模型标签需要变更2次,一次在ASBR1上变更一次,一次在ASBR2上变更一次。
而且这种模型给ASBR的压力很大,在ASBR上可以从“show mpls for”看到所有PE的路由都在,所以如果跨域vpn用户非常多,那么这个压力可想而知。

Option 2b — Redistribute connected method
1. 这种方法的原理跟更改下一跳的方法其实是一样的,只不过把ASBR之间的直连公布到IGP中,这样下一跳可达,所以就较少了一次变更标签的过程。这样有一个很明显的好处,就是可以减轻ASBR的压力,可以说是减轻了一半的压力。

2. 这种方法有一个要注意的地方,当你重分发直连,发现24位直连路由和32位主机路由全都被red进IGP了,根据下一跳精确匹配,只要把32位主机路由放入路由表就可以了。(可用前缀列表过滤)

3. 不建议把直连重分发到BGP中。那么在ASBR上直接在IGP network这个32位路由行么?不行!因为ASBR本身没有这个32位的直连端口。所以只有上面说得重分布到直连到IGP中。

Option 2c — Multi-hop MP-eBGP between ASBRs
这种方法主要是利用ASBR之间的环回口来建立邻居关系,但如果是这样的话,数据到达ASBR后就会untug,因为ASBR之间是多跳而不是直连,所以不会产生32位主机路由,因此也没有POP签,所以数据传送中断。

解决这种问题有两个方法:
1. 在直连端口上直接运行mpls ip
使其能够标签转发。
这样ASBR2的环回地址就会给ASBR1分配一个空标签,在ASBR1上看到的也就是POP标签。

2. mpls bgp forwarding
这条命令的效果可以说跟32位主机路由的效果差不多,但是确有着本质的不同。
因为这条命令可以使mpls数据包在BGP间传送,可以说把ASBR之间直连的两个端口看成透明的两个端口。标签在ASBR间自由转发。另外这个features只有在12.0(29)S或更新的版本支持。在企业版中,不支持此命令,所以只能开启ldp功能。

这种模型只有一次标签变更,同重分布直连一样。

本文出自 Frank's Blog

版权声明:


本文链接:CCIE SP—Inter-Provider VPN Option 2
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos