Skip to main content

IPv6 over MPLS 6PE/6vPE

·1690 words·8 mins
Rory
Author
Rory
Step by step the ladder is ascended

6PE
#

什么是 6PE
#

摘录一段华为文档的解释:

6PE(IPv6 Provider Edge)是一种 IPv4 到 IPv6 过渡的技术。通过 6PE 技术,ISP 可以利用已有的 IPv4 骨干网为分散的 IPv6 网络提供接入能力,使得 IPv6 孤岛穿越 IPv4 骨干网进行通信。

- 在基于 MPLS 的 6PE 网络中:6PE 和 CE 之间利用 IPv6 路由协议交换 IPv6 路由信息。
- 6PE 之间利用 MP-BGP 交换 IPv6 路由信息,并为 IPv6 前缀分配 MPLS 标签。
- IPv4 骨干网络中 6PE 和 P 之间利用 IPv4 路由协议交换路由信息,并利用 MPLS 在 6PE 间建立 LSP。

6PE 不涉及 VPN 路由即 VRF,其目的就是为了让 IPv6 孤岛能通过 IPv4 骨干网传输。所以对于骨干网只需要在 PE 侧进行配置即可,如下拓扑,简单测试下 6PE:

配置
#

TOPO 是随便找的测试环境,主要为测了下 6vPE ,所以 6PE 这块就不在 CE/PE 间进行 IPv6 配置, 简单使用 PE1/PE2 loopback 进行连通性测试。AS132203 是 v4 的骨干网环境,配置了 ISIS/LDP。

PE1
#

RP/0/0/CPU0:ios#show run router
router  router-convergence
RP/0/0/CPU0:ios#show run router bgp
Thu Sep 17 09:35:26.678 UTC
router bgp 132203
 nsr
 bfd minimum-interval 500
 bfd multiplier 3
 bgp router-id 10.100.0.1
 address-family ipv6 unicast
  redistribute connected
  allocate-label all
 !
 neighbor 10.100.0.3    <<<< 与PE2建立ipv6 label unicast邻居
  remote-as 132203
  update-source Loopback0
  address-family ipv6 labeled-unicast
  !

RP/0/0/CPU0:ios#show run int loopback 0
Thu Sep 17 09:35:31.087 UTC
interface Loopback0
 ipv4 address 10.100.0.1 255.255.255.255
 ipv6 address 2000::1/128
!

PE2
#

RP/0/0/CPU0:ios#show run router bgp
Thu Sep 17 09:48:13.907 UTC
router bgp 132203
 nsr
 bfd minimum-interval 500
 bfd multiplier 3
 bgp router-id 10.100.0.3
 address-family ipv6 unicast
  redistribute connected
  allocate-label all
 !
 neighbor 10.100.0.1
  remote-as 132203
  update-source Loopback0
  address-family ipv6 labeled-unicast
  !
 RP/0/0/CPU0:ios#show run int lo0
Thu Sep 17 09:49:21.972 UTC
interface Loopback0
 ipv4 address 10.100.0.3 255.255.255.255
 ipv6 address 2000::3/128
!

连通性检查
#

RP/0/0/CPU0:ios#show bgp ipv6 labeled-unicast summary
Thu Sep 17 09:44:57.719 UTC
BGP router identifier 10.100.0.1, local AS number 132203
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0800000   RD version: 12
BGP main routing table version 12
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

BGP is operating in STANDALONE mode.


Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer
Speaker              12         12         12         12          12           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
10.100.0.3        0 132203     488     489       12    0    0 05:39:26          1

RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#show bgp ipv6 labeled-unicast
Thu Sep 17 09:45:03.778 UTC
BGP router identifier 10.100.0.1, local AS number 132203
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0800000   RD version: 12
BGP main routing table version 12
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop            Metric LocPrf Weight Path
*> 2000::1/128        ::                       0         32768 ?
*>i2000::3/128        10.100.0.3               0    100      0 ?

Processed 2 prefixes, 2 paths
RP/0/0/CPU0:ios#show bgp ipv6 labeled-unicast 2000::3/128 detail
Thu Sep 17 09:45:12.188 UTC
BGP routing table entry for 2000::3/128
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 12          12
    Flags: 0x00001001+0x00000000;
Last Modified: Sep 17 04:05:36.288 for 05:39:35
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Flags: 0x4000000001060005, import: 0x20
  Not advertised to any peer
  Local
    10.100.0.3 (metric 20000) from 10.100.0.3 (10.100.0.3)
      Received Label 24007
      Origin incomplete, metric 0, localpref 100, valid, internal, best, group-best
      Received Path ID 0, Local Path ID 0, version 12
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#show route ipv6  2000::3/128
Thu Sep 17 09:45:25.967 UTC

Routing entry for 2000::3/128
  Known via "bgp 132203", distance 200, metric 0, type internal
  Installed Sep 17 04:05:36.583 for 05:39:49
  Routing Descriptor Blocks
    ::ffff:10.100.0.3, from ::ffff:10.100.0.3
      Nexthop in Vrf: "default", Table: "default", IPv4 Unicast, Table Id: 0xe0000000
      Route metric is 0
  No advertising protos.
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#show cef 10.100.0.3
Thu Sep 17 09:46:29.312 UTC
10.100.0.3/32, version 86, internal 0x1000001 0x0 (ptr 0xa1455b74) [1], 0x0 (0xa143b3b0), 0xa28 (0xa183807c)
 Updated Sep 17 01:47:42.680
 local adjacency 10.100.4.6
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
   via 10.100.4.6/32, GigabitEthernet0/0/0/1, 5 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0xa0f3d3f4 0x0]
    next hop 10.100.4.6/32
    local adjacency
     local label 24002      labels imposed {24002}
   via 10.100.4.10/32, GigabitEthernet0/0/0/2, 5 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 1 NHID 0x0 [0xa0f3d4f0 0x0]
    next hop 10.100.4.10/32
    local adjacency
     local label 24002      labels imposed {24001}
RP/0/0/CPU0:ios#show cef ipv6 2000::3/128 detail
Thu Sep 17 09:46:41.681 UTC
2000::3/128, version 11, internal 0x1000001 0x0 (ptr 0xa1303ff4) [1], 0x0 (0x0), 0x208 (0xa1513118)
 Updated Sep 17 04:05:36.603
 Prefix Len 128, traffic index 0, precedence n/a, priority 4
  gateway array (0xa124dc6c) reference count 1, flags 0x4038, source rib (7), 0 backups
                [1 type 1 flags 0x48441 (0xa152d320) ext 0x0 (0x0)]
  LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]
  gateway array update type-time 1 Sep 17 04:05:36.603
 LDI Update time Sep 17 04:05:36.603
   via ::ffff:10.100.0.3/128, 5 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0xa1794050 0x0]
    recursion-via-/128
    next hop VRF - 'default', table - 0xe0000000
    next hop ::ffff:10.100.0.3/128 via 24002/0/21
     next hop 10.100.4.6/32 Gi0/0/0/1    labels imposed {24002 24007}   <<<<<< 外层为LDP标签/内层为MP-BGP分配的
     next hop 10.100.4.10/32 Gi0/0/0/2    labels imposed {24001 24007}


    Load distribution: 0 (refcount 1)

    Hash  OK  Interface                 Address
    0     Y   Unknown                   ::ffff:10.100.0.3:0
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#traceroute 2000::3 source 2000::1
Thu Sep 17 09:48:12.945 UTC

Type escape sequence to abort.
Tracing the route to 2000::3

 1  ::ffff:10.100.0.2 [MPLS: Labels 24002/24007 Exp 0] 9 msec 9 msec 9 msec
 2  2000::3 9 msec 9 msec 9 msec
RP/0/0/CPU0:ios#

6vPE
#

什么是 6vPE
#

对比 6PE 来看, 6vPE 是为了解决 VPN 用户的连通性问题,涉及到 VPN 路由的传递。

配置
#

VRF Configuration
#

RP/0/0/CPU0:ios#show run vrf GLOBAL
Thu Sep 17 09:56:10.322 UTC
vrf GLOBAL
 address-family ipv6 unicast
  import route-target
   100:100
  !
  export route-target
   100:100
  !
 !
!
RP/0/0/CPU0:ios#show run int gigabitEthernet 0/0/0/3
Thu Sep 17 09:59:44.148 UTC
interface GigabitEthernet0/0/0/3
 vrf GLOBAL
 ipv4 address 10.100.8.1 255.255.255.252
 ipv6 address 2001::1/64
!

BGP VPNv6 Address Family
#

router bgp 132203
 nsr
 bfd minimum-interval 500
 bfd multiplier 3
 bgp router-id 10.100.0.1
 address-family vpnv6 unicast
 !
 neighbor 10.100.0.3
  remote-as 132203
  update-source Loopback0
  address-family vpnv6 unicast
  !
 !

BGP IPv6 VRF address-family
#

RP/0/0/CPU0:ios#show run router bgp 132203 vrf GLOBAL
Thu Sep 17 10:01:03.712 UTC
router bgp 132203
 vrf GLOBAL
  rd auto
  address-family ipv6 unicast
  !
  neighbor 2001::2
   remote-as 64512
   address-family ipv6 unicast
    route-policy pass-all in
    route-policy pass-all out
   !
  !

连通性测试
#

//PE1
RP/0/0/CPU0:ios#show bgp vpnv6 unicast summary
Thu Sep 17 10:02:19.067 UTC
BGP router identifier 10.100.0.1, local AS number 132203
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 30
BGP NSR Initial initsync version 1 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

BGP is operating in STANDALONE mode.


Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer
Speaker              30         30         30         30          30           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
10.100.0.3        0 132203     505     506       30    0    0 05:56:47          1

RP/0/0/CPU0:ios#show bgp vpnv6 unicast
Thu Sep 17 10:02:21.597 UTC
BGP router identifier 10.100.0.1, local AS number 132203
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 30
BGP NSR Initial initsync version 1 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 10.100.0.1:0 (default for vrf GLOBAL)
*> 2011::1/128        2001::2                  0             0 64512 i
*>i2013::1/128        10.100.0.3               0    100      0 64513 i
Route Distinguisher: 10.100.0.3:0
*>i2013::1/128        10.100.0.3               0    100      0 64513 i

Processed 3 prefixes, 3 paths
RP/0/0/CPU0:ios#show bgp vpnv6 unicast rd 10.100.0.3:0 2013::1/128 detail
Thu Sep 17 10:02:31.756 UTC
BGP routing table entry for 2013::1/128, Route Distinguisher: 10.100.0.3:0
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 29          29
    Flags: 0x00040001+0x00000200;
Last Modified: Sep 17 04:05:36.288 for 05:56:55
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Flags: 0x4000000025060005, import: 0x1f
  Not advertised to any peer
  64513
    10.100.0.3 (metric 20000) from 10.100.0.3 (10.100.0.3)
      Received Label 24008
      Origin IGP, metric 0, localpref 100, valid, internal, best, group-best, import-candidate, not-in-vrf
      Received Path ID 0, Local Path ID 0, version 29
      Extended community: RT💯100
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios#show route vrf GLOBAL ipv6 2013::1/128
Thu Sep 17 10:02:53.335 UTC

Routing entry for 2013::1/128
  Known via "bgp 132203", distance 200, metric 0
  Tag 64513, type internal
  Installed Sep 17 04:05:36.353 for 05:57:17
  Routing Descriptor Blocks
    ::ffff:10.100.0.3, from ::ffff:10.100.0.3
      Nexthop in Vrf: "default", Table: "default", IPv4 Unicast, Table Id: 0xe0000000
      Route metric is 0
  No advertising protos.
RP/0/0/CPU0:ios#
//CE1
RP/0/0/CPU0:ios#show bgp ipv6 unicast summary
Thu Sep 17 10:13:04.543 UTC
BGP router identifier 10.100.8.2, local AS number 64512
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0800000   RD version: 19
BGP main routing table version 19
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

BGP is operating in STANDALONE mode.


Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer
Speaker              19         19         19         19          19           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
2001::1           0 132203     441     439       19    0    0 07:12:20          1

RP/0/0/CPU0:ios#show bgp ipv6 unicast
Thu Sep 17 10:13:07.483 UTC
BGP router identifier 10.100.8.2, local AS number 64512
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0800000   RD version: 19
BGP main routing table version 19
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop            Metric LocPrf Weight Path
*> 2011::1/128        ::                       0         32768 i
*> 2013::1/128        2001::1                                0 132203 64513 i

Processed 2 prefixes, 2 paths
RP/0/0/CPU0:ios#
//CE
RP/0/0/CPU0:ios#traceroute 2013::1 source 2011::1
Thu Sep 17 10:13:53.710 UTC

Type escape sequence to abort.
Tracing the route to 2013::1

 1  2001::1 9 msec 0 msec 0 msec
 2  ::ffff:10.100.0.2 [MPLS: Labels 24002/24008 Exp 0] 19 msec 19 msec 29 msec
 3  2003::1 [MPLS: Label 24008 Exp 0] 29 msec 29 msec 29 msec
 4  2013::1 19 msec 29 msec 19 msec
RP/0/0/CPU0:ios#

相关文档
#

测试 TOPO/FULL CONFIG
#

Configuration Download