MPLS VPN跨域 Option C2

  1. 拓扑设计

MPLS VPN跨域 Option C2_第1张图片

  1. 拓扑介绍

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

  1. 数据配置

R1配置

ip -instance 1

 ipv4-family

  route-distinguisher 1:1

  -target 1:6 export-extcommunity

  -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 -instance 1

 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 v4

  policy -target

  peer 6.6.6.6 enable

 #

 ipv4-family -instance 1

  import-route ospf 1

#

ospf 1 -instance 1

 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 -instance 1

 ipv4-family

  route-distinguisher 6:6

  -target 6:1 export-extcommunity

  -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 -instance 1

 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 v4

  policy -target

  peer 1.1.1.1 enable

 #

 ipv4-family -instance 1

  import-route ospf 1

#

ospf 1 -instance 1

 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. 查看现象

MPLS VPN跨域 Option C2_第2张图片

此处会封装三层标签,分别是内层标签,以及R3分配的二层标签与LDP标签MPLS VPN跨域 Option C2_第3张图片

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

MPLS VPN跨域 Option C2_第4张图片

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

MPLS VPN跨域 Option C2_第5张图片MPLS VPN跨域 Option C2_第6张图片

因为内层标签是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设备的标签封装信息
    MPLS VPN跨域 Option C2_第7张图片
    此时因为要去3.3.3.3所以需要封装外层标签1025进行传递
  5. 数据包这时来到了R2设备,查看MPLS信息,发现来自1025的标签要次末跳弹出换位3号标签发出MPLS VPN跨域 Option C2_第8张图片
  6. 此时因为要发送给R3的时候已经把最外层标签弹出,所以只剩了两层标签分别是策略标签和内层标签
    MPLS VPN跨域 Option C2_第9张图片
  7. 数据包来到了R3查看MPLS标签,发现来自于1027的BGP标签要swap为1024再进行转发(这就是中间层标签,手动让BGP路由产生的)
    MPLS VPN跨域 Option C2_第10张图片
    MPLS VPN跨域 Option C2_第11张图片
  8. 数据包下一步按照MPLS标签传递给了R4,R4是最后一台产生BGP标签的设备,所以需要进行弹出,另外要去6.6.6.6还需要LDP标签的支持,所以需要再封装LDP标签1024,然后向外发送数据包给R5
  9. R5根据MPLS标签表发现来自1024的标签要发给R6时进行次末跳弹出操作这个时候仅仅还剩最后一层标签1027交给R6设备

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

你可能感兴趣的:(数据通信,网络)