• MPLS VPN跨域 Option C2


    1. 拓扑设计

    1. 拓扑介绍

      如图,上海分公司与山东分公司之间为保证业务可以互通,需要使用MPLS VPN技术进行连接。且为了使设备减轻压力,只有R1与R6设备需要建立VPN实例且运行MP-BGP协议,因为网络需要经过联通与移动两个AS域,所以使用MPLS VPN OptionC方案来进行配置。

    1. 数据配置

    R1配置

    ip vpn-instance vpn1

     ipv4-family

      route-distinguisher 1:1

      vpn-target 1:6 export-extcommunity

      vpn-target 6:1 import-extcommunity

    #

    mpls lsr-id 1.1.1.1

    mpls                                     

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 49.0000.0000.0001.00

    #

    interface GigabitEthernet0/0/0

     ip binding vpn-instance vpn1

     ip address 17.1.1.1 255.255.255.0       

     ospf enable 1 area 0.0.0.0

    #

    interface GigabitEthernet0/0/1

     ip address 12.1.1.1 255.255.255.0

     isis enable 1

     mpls

     mpls ldp

    #

    interface LoopBack0

     ip address 1.1.1.1 255.255.255.255

     isis enable 1

    #

    bgp 100

     peer 3.3.3.3 as-number 100

     peer 3.3.3.3 connect-interface LoopBack0

     peer 6.6.6.6 as-number 200

     peer 6.6.6.6 ebgp-max-hop 255

     peer 6.6.6.6 connect-interface LoopBack0

     #

     ipv4-family unicast                     

      undo synchronization

      peer 3.3.3.3 enable

      peer 3.3.3.3 label-route-capability

      peer 6.6.6.6 enable

     #

     ipv4-family vpnv4

      policy vpn-target

      peer 6.6.6.6 enable

     #

     ipv4-family vpn-instance vpn1

      import-route ospf 1

    #

    ospf 1 vpn-instance vpn1

     import-route bgp

     area 0.0.0.0

    R2配置

    mpls lsr-id 2.2.2.2

    mpls

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 49.0000.0000.0002.00

    #

    interface GigabitEthernet0/0/0

     ip address 12.1.1.2 255.255.255.0

     isis enable 1

     mpls

     mpls ldp

    #

    interface GigabitEthernet0/0/1

     ip address 23.1.1.2 255.255.255.0

     isis enable 1                           

     mpls

     mpls ldp

    #

    interface LoopBack0

     ip address 2.2.2.2 255.255.255.255

     isis enable 1

    R3配置

    mpls lsr-id 3.3.3.3

    mpls

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 49.0000.0000.0003.00

    #

    interface GigabitEthernet0/0/0

     ip address 23.1.1.3 255.255.255.0

     isis enable 1

     mpls

     mpls ldp

    #

    interface GigabitEthernet0/0/1

     ip address 34.1.1.3 255.255.255.0

     mpls                                    

    #

    interface LoopBack0

     ip address 3.3.3.3 255.255.255.255

     isis enable 1

    #

    bgp 100

     peer 1.1.1.1 as-number 100

     peer 1.1.1.1 connect-interface LoopBack0

     peer 34.1.1.4 as-number 200

     #

     ipv4-family unicast

      undo synchronization

      network 1.1.1.1 255.255.255.255

      peer 1.1.1.1 enable

      peer 1.1.1.1 route-policy 2 export

      peer 1.1.1.1 label-route-capability

      peer 34.1.1.4 enable

      peer 34.1.1.4 route-policy 1 export

      peer 34.1.1.4 label-route-capability

    #                                        

    route-policy 1 permit node 10

     if-match ip-prefix 1.1.1.1

     apply mpls-label

    #

    route-policy 2 permit node 10

     if-match mpls-label

     apply mpls-label

    R4配置

    mpls lsr-id 4.4.4.4

    mpls

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 50.0000.0000.0004.00

    interface GigabitEthernet0/0/0

     ip address 34.1.1.4 255.255.255.0

     mpls

    #

    interface GigabitEthernet0/0/1

     ip address 45.1.1.4 255.255.255.0

     isis enable 1

     mpls

     mpls ldp                                

    #

    interface LoopBack0

     ip address 4.4.4.4 255.255.255.255

     isis enable 1

    #

    bgp 200

     peer 6.6.6.6 as-number 200

     peer 6.6.6.6 connect-interface LoopBack0

     peer 34.1.1.3 as-number 100

     #

     ipv4-family unicast

      undo synchronization

      network 6.6.6.6 255.255.255.255

      peer 6.6.6.6 enable

      peer 6.6.6.6 route-policy 2 export

      peer 6.6.6.6 label-route-capability

      peer 34.1.1.3 enable

      peer 34.1.1.3 route-policy 1 export

      peer 34.1.1.3 label-route-capability

    #                                        

    route-policy 2 permit node 10

     if-match mpls-label

     apply mpls-label

    #

    route-policy 1 permit node 10

     if-match ip-prefix 6.6.6.6

     apply mpls-label

    #

    ip ip-prefix 6.6.6.6 index 10 permit 6.6.6.6 32

    R5配置

    mpls lsr-id 5.5.5.5

    mpls

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 50.0000.0000.0005.00

    #

    interface GigabitEthernet0/0/0

     ip address 45.1.1.5 255.255.255.0

     isis enable 1

     mpls

     mpls ldp

    #

    interface GigabitEthernet0/0/1

     ip address 56.1.1.5 255.255.255.0

     isis enable 1                           

     mpls

     mpls ldp

    #

    interface LoopBack0

     ip address 5.5.5.5 255.255.255.255

     isis enable 1

    R6配置

    ip vpn-instance vpn1

     ipv4-family

      route-distinguisher 6:6

      vpn-target 6:1 export-extcommunity

      vpn-target 1:6 import-extcommunity

    #

    mpls lsr-id 6.6.6.6

    mpls                                     

    #

    mpls ldp

    #

    isis 1

     is-level level-2

     cost-style wide

     network-entity 50.0000.0000.0006.00

    interface GigabitEthernet0/0/0

     ip address 56.1.1.6 255.255.255.0

     isis enable 1                           

     mpls

     mpls ldp

    #

    interface GigabitEthernet0/0/1

     ip binding vpn-instance vpn1

     ip address 68.1.1.6 255.255.255.0

     ospf enable 1 area 0.0.0.0

    #

    interface NULL0

    #

    interface LoopBack0

     ip address 6.6.6.6 255.255.255.255

     isis enable 1

    #

    bgp 200

     peer 1.1.1.1 as-number 100

     peer 1.1.1.1 ebgp-max-hop 255

     peer 1.1.1.1 connect-interface LoopBack0

     peer 4.4.4.4 as-number 200

     peer 4.4.4.4 connect-interface LoopBack0

     #

     ipv4-family unicast                     

      undo synchronization

      peer 1.1.1.1 enable

      peer 4.4.4.4 enable

      peer 4.4.4.4 label-route-capability

     #

     ipv4-family vpnv4

      policy vpn-target

      peer 1.1.1.1 enable

     #

     ipv4-family vpn-instance vpn1

      import-route ospf 1

    #

    ospf 1 vpn-instance vpn1

     import-route bgp

     area 0.0.0.0

    R7配置

    interface GigabitEthernet0/0/0

     ip address 17.1.1.7 255.255.255.0

     ospf enable 1 area 0.0.0.0

    #

    interface GigabitEthernet0/0/1

    #

    interface GigabitEthernet0/0/2

    #

    interface NULL0

    #

    interface LoopBack0

     ip address 7.7.7.7 255.255.255.255

     ospf enable 1 area 0.0.0.0

    #

    ospf 1

     area 0.0.0.0

    R8配置

    interface GigabitEthernet0/0/0

     ip address 68.1.1.8 255.255.255.0

     ospf enable 1 area 0.0.0.0

    #

    interface GigabitEthernet0/0/1

    #

    interface GigabitEthernet0/0/2

    #

    interface NULL0

    #

    interface LoopBack0

     ip address 8.8.8.8 255.255.255.255

     ospf enable 1 area 0.0.0.0

    #

    interface LoopBack9

    #

    ospf 1

     area 0.0.0.0

    1. 查看现象

    此处会封装三层标签,分别是内层标签,以及R3分配的二层标签与LDP标签

    当数据包进入R3的端口时,LDP标签会被次末跳弹出,中间层标签会执行swap动作换为R4分配的标签,内层标签保持不变,此时会有两层标签携带

    此时数据包会依靠R4分配的标签进行跨域,跨域后会把策略标签弹出,封装LDP标签依靠隧道去找R6,此时会有两层标签,分别是LDP标签和内层标签,在R4的出口上面进行抓包

    因为内层标签是R6分配的,所以访问目的地在R6的实例上面,迭代到去往6.6.6.6的隧道里面,封装标签为1024

    1. 配置细节
    1. R1与R6建立MP-BGP邻居(此时肯定建立不会成功,EBGP跨跳功能打开)
    2. R3与R4建立EBGP邻居,R3宣告1.1.1.1,R4宣告6.6.6.6
    3. 此时R3与R1建立IBGP邻居,R4与R6建立IBGP邻居,这样R1学习到了6.6.6.6,R6学习到了1.1.1.1(但是下一跳不可达)
    4. AS 100与AS 200内部分别开启LDP协议用于分配标签
    5. R3与R4之间开启MPLS功能,用于传递策略标签
    6. R3配置策略抓取1.1.1.1的路由向R4传递时携带标签
    7. 配置发送与接收标签的能力
    8. R4配置向R6传递路由时携带标签并进行swap动作(以及发送与接收标签能力)
    9. 相反,R4配置向R3传递路由时携带策略标签,R3向R1传递路由时携带标签

    1. 控制平面
    1. R6把内层标签传递给R1设备,R1发送数据包时会封装这个内层标签
    2. R4把策略标签附加到IPV4路由中,形成一个带标签的IPV4路由传递给R3设备,让它可以进行跨域
    3. R3swap一个策略标签附加到IPV4路由中,形成一个带标签的IPV4路由传递给R1设备,因为标签变了,下一跳一定会变,R3还会产生一个LDP标签。
    4. 此时R1如果向外发送数据会封装3个数据包。

    1. 转发平面
    1. 此时R7封装数据包向R8发送,数据包首先进入R1设备并封装最内层标签1027(用于数据包到R6时,R6决定去往哪一个VRF)
    2. R1设备会查看FIB去往R8的下一跳是谁,是否要走隧道
    3. 这时候,我们先封装上路由携带的标签1027,再去查看隧道的详情
    4. 查看之后隧道ID不为0,下一跳是3.3.3.3,所以我们要去看发往3.3.3.3设备的标签封装信息

      此时因为要去3.3.3.3所以需要封装外层标签1025进行传递
    5. 数据包这时来到了R2设备,查看MPLS信息,发现来自1025的标签要次末跳弹出换位3号标签发出
    6. 此时因为要发送给R3的时候已经把最外层标签弹出,所以只剩了两层标签分别是策略标签和内层标签
    7. 数据包来到了R3查看MPLS标签,发现来自于1027的BGP标签要swap为1024再进行转发(这就是中间层标签,手动让BGP路由产生的)

    8. 数据包下一步按照MPLS标签传递给了R4,R4是最后一台产生BGP标签的设备,所以需要进行弹出,另外要去6.6.6.6还需要LDP标签的支持,所以需要再封装LDP标签1024,然后向外发送数据包给R5
    9. R5根据MPLS标签表发现来自1024的标签要发给R6时进行次末跳弹出操作这个时候仅仅还剩最后一层标签1027交给R6设备

    10.R6根据内层标签决定数据交给了哪个VRF,到此结束

  • 相关阅读:
    Tensorflow: Allocation of XXXXXX exceeds 10% of system memory 可能的原因
    构建无限画布,协作数字绘图 | 开源日报 0915
    人工智能轨道交通行业周刊-第60期(2023.9.11-9.17)
    HarmonyOS应用API手势方法-SwipeGesture
    [计算机网络]---TCP协议
    达芬奇调色:色彩理论入门
    【WSN通信】基于Matlab模拟(AODV)路由协议
    Linux-scheduler之负载均衡(一)
    karmada v1.7.0安装指导
    145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,
  • 原文地址:https://blog.csdn.net/weixin_45988710/article/details/133208917