拓扑

目标
- 两侧的CE 可以互相通信
- ABC 和 SHARE 可以通信,XYZ 和 SHARE 可以通信
- 不同VRF 的 CE不可以通信
步骤
- 从外到内,先CE,然后PE,然后P 或者反过来
- 配置区域内的OSPF
- 配置PE之间的iBGP
- 配置MPLS,开启LDP
- CE —— R1
!R1
router 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
!
!R2
ip 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