拓扑

目标
- 两侧的CE 可以互相通信
- ABC 和 SHARE 可以通信,XYZ 和 SHARE 可以通信
- 不同VRF 的 CE不可以通信
步骤
- 从外到内,先CE,然后PE,然后P 或者反过来
- 配置区域内的OSPF
- 配置PE之间的iBGP
- 配置MPLS,开启LDP
- CE —— R1
!R1router bgp 65100 bgp log-neighbor-changes no bgp default ipv4-unicast neighbor 10.12.1.2 remote-as 65200 ! address-family ipv4 network 1.1.1.1 mask 255.255.255.255 neighbor 10.12.1.2 activate exit-address-family!
!R2ip vrf ABC rd 65200:100 route-target export 65200:100 route-target import 65200:100!ip vrf XYZ rd 65200:200 route-target export 65200:200 route-target import 65200:200!router ospf 100 network 2.2.2.2 0.0.0.0 area 0 network 10.23.1.0 0.0.0.255 area 0!router bgp 65200 bgp log-neighbor-changes no bgp default ipv4-unicast neighbor 5.5.5.5 remote-as 65200 neighbor 5.5.5.5 update-source Loopback0 neighbor 9.9.9.9 remote-as 65600 neighbor 9.9.9.9 update-source Loopback0 ! address-family ipv4 exit-address-family ! address-family vpnv4 neighbor 5.5.5.5 activate neighbor 5.5.5.5 send-community extended neighbor 9.9.9.9 activate neighbor 9.9.9.9 send-community extended exit-address-family! address-family ipv4 vrf ABC neighbor 10.12.1.1 remote-as 65100 neighbor 10.12.1.1 activate exit-address-family ! address-family ipv4 vrf XYZ neighbor 10.27.1.7 remote-as 65400 neighbor 10.27.1.7 activate exit-address-family!
ip vrf SHARE rd 65600:100!router ospf 100 network 9.9.9.9 0.0.0.0 area 0 network 10.39.1.0 0.0.0.255 area 0 network 10.49.1.0 0.0.0.255 area 0!router bgp 65200 bgp log-neighbor-changes no bgp default ipv4-unicast neighbor 2.2.2.2 remote-as 65200 neighbor 2.2.2.2 update-source Loopback0 neighbor 5.5.5.5 remote-as 65200 neighbor 5.5.5.5 update-source Loopback0 ! address-family ipv4 exit-address-family ! address-family vpnv4 neighbor 2.2.2.2 activate neighbor 2.2.2.2 send-community extended neighbor 5.5.5.5 activate neighbor 5.5.5.5 send-community extended exit-address-family ! address-family ipv4 vrf SHARE bgp router-id auto-assign neighbor 10.90.1.10 remote-as 65600 neighbor 10.90.1.10 activate exit-address-family!
- 通过R2查看vpnv4 的邻居信息,注意看此时R9 没有发送路由(PfxRcd 为0) —— 因为R9 的 ip vrf 里我们没有配置 import,R2和R5上也没有配置给R9 的 export
- export 的意思是R5 向MPLS 内部发送时,设置 commmunity 为65200:200
- import 的意思是只要路由携带了65200:100,R2就会把路由从bpg vpnv4 的路由表里 import 到 vrf XYZ ,然后就可以通过 eBGP 宣告给CE. 所以控制vrf 之间的路由传递,依赖的是 route-target



- 如果我们在R2 的 ip vrf ABC 下,加1个命令 import 65200:200 —— 即把XYZ的路由发给vrf ABC,于是R1就会收到8.8.8.8 和 7.7.7.7

- 验证CE1和CE2的连通性,ping 和 traceroute 可以成功,
- 同时看到Traceroute 展示了MPLS内部的节点信息,可以通过 no mpls ip propagate-ttl 隐藏
- ping 和 traceroute 需要带上 source lo0 —— 对外只宣告了 Lo0
- 但是没有R4到R5 这段,为什么
- 在CE上,可用的信息就是
- show ip route
- show ip bgp ipv4 unicast

- 我们在R2上执行no mpls ip propagate-ttl,可以看到R1 的traceroute 信息少了10.23.1.3 和 10.34.1.4 —— MPLS 内部的都不显示了

- 观察R2 上 vrf路由信息
- show bgp vrf * all —— 所有的address-family 信息
- show bgp vpnv4 unicast all summary

- 接下来来实现 ABC到SHARE,XYZ到SHARE的联通
- 在R9的 SHARE里,
- route export 65200:888
- route import 65200:999
- 然后在R2、R5的ABC,XYZ里分别添加下面2条语句 —— 反向
- route import 65200:888
- route export 65200:999
- 然后到R9、R10 上确认收到的路由
- show bgp vpnv4 unicast vrf SHARE 1.1.1.1



- 命令用法
- show ip cef ——R1 转发层
- show ip route vrf ABC ——R2 控制层,下一跳5.5.5.5
- show ip cef 5.5.5.5 ——R2 转发层
- show mpls forwarding-table ——R3 控制层
- show mpls ip binding ——R3 控制层,显示的是LFIB的内容
- show bgp vpnv4 unicast vrf ABC labels——查看VPN label,通过MP—BGP传递给PE
- MPLS 内部只拆LDP Label
- 只有egress PE 才拆 VPN Label