拓扑

实验01 - MPLS Layer3 VPN - 图1

目标

  • 两侧的CE 可以互相通信
  • ABC 和 SHARE 可以通信,XYZ 和 SHARE 可以通信
  • 不同VRF 的 CE不可以通信

步骤

  • 从外到内,先CE,然后PE,然后P 或者反过来
    • 配置区域内的OSPF
    • 配置PE之间的iBGP
    • 配置MPLS,开启LDP
  • CE —— R1
  1. !R1
  2. router bgp 65100
  3. bgp log-neighbor-changes
  4. no bgp default ipv4-unicast
  5. neighbor 10.12.1.2 remote-as 65200
  6. !
  7. address-family ipv4
  8. network 1.1.1.1 mask 255.255.255.255
  9. neighbor 10.12.1.2 activate
  10. exit-address-family
  11. !
  • PE —— R2,R6
  1. !R2
  2. ip vrf ABC
  3. rd 65200:100
  4. route-target export 65200:100
  5. route-target import 65200:100
  6. !
  7. ip vrf XYZ
  8. rd 65200:200
  9. route-target export 65200:200
  10. route-target import 65200:200
  11. !
  12. router ospf 100
  13. network 2.2.2.2 0.0.0.0 area 0
  14. network 10.23.1.0 0.0.0.255 area 0
  15. !
  16. router bgp 65200
  17. bgp log-neighbor-changes
  18. no bgp default ipv4-unicast
  19. neighbor 5.5.5.5 remote-as 65200
  20. neighbor 5.5.5.5 update-source Loopback0
  21. neighbor 9.9.9.9 remote-as 65600
  22. neighbor 9.9.9.9 update-source Loopback0
  23. !
  24. address-family ipv4
  25. exit-address-family
  26. !
  27. address-family vpnv4
  28. neighbor 5.5.5.5 activate
  29. neighbor 5.5.5.5 send-community extended
  30. neighbor 9.9.9.9 activate
  31. neighbor 9.9.9.9 send-community extended
  32. exit-address-family
  33. !
  34. address-family ipv4 vrf ABC
  35. neighbor 10.12.1.1 remote-as 65100
  36. neighbor 10.12.1.1 activate
  37. exit-address-family
  38. !
  39. address-family ipv4 vrf XYZ
  40. neighbor 10.27.1.7 remote-as 65400
  41. neighbor 10.27.1.7 activate
  42. exit-address-family
  43. !
  • PE —— R9
  1. ip vrf SHARE
  2. rd 65600:100
  3. !
  4. router ospf 100
  5. network 9.9.9.9 0.0.0.0 area 0
  6. network 10.39.1.0 0.0.0.255 area 0
  7. network 10.49.1.0 0.0.0.255 area 0
  8. !
  9. router bgp 65200
  10. bgp log-neighbor-changes
  11. no bgp default ipv4-unicast
  12. neighbor 2.2.2.2 remote-as 65200
  13. neighbor 2.2.2.2 update-source Loopback0
  14. neighbor 5.5.5.5 remote-as 65200
  15. neighbor 5.5.5.5 update-source Loopback0
  16. !
  17. address-family ipv4
  18. exit-address-family
  19. !
  20. address-family vpnv4
  21. neighbor 2.2.2.2 activate
  22. neighbor 2.2.2.2 send-community extended
  23. neighbor 5.5.5.5 activate
  24. neighbor 5.5.5.5 send-community extended
  25. exit-address-family
  26. !
  27. address-family ipv4 vrf SHARE
  28. bgp router-id auto-assign
  29. neighbor 10.90.1.10 remote-as 65600
  30. neighbor 10.90.1.10 activate
  31. exit-address-family
  32. !
  • 通过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

实验01 - MPLS Layer3 VPN - 图2

实验01 - MPLS Layer3 VPN - 图3

  • R1 和 R7 上查看路由

实验01 - MPLS Layer3 VPN - 图4

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

实验01 - MPLS Layer3 VPN - 图5

  • 验证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

实验01 - MPLS Layer3 VPN - 图6

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

实验01 - MPLS Layer3 VPN - 图7

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

实验01 - MPLS Layer3 VPN - 图8

  • 接下来来实现 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

实验01 - MPLS Layer3 VPN - 图9

实验01 - MPLS Layer3 VPN - 图10

  • 与此同时,XYZ 不会收到 ABC的路由

实验01 - MPLS Layer3 VPN - 图11

  • 命令用法
    • 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