The 6PE solution allows IPv6 traffic to traverse an existing IPv4 MPLS network without requiring the MPLS core to support IPv6 natively. In this section, we will explain the underlying mechanics of 6PE and provide a Cisco-based configuration example to demonstrate its implementation in a practical, real-world scenario.

Table of Contents

6PE Fundamental

6PE vs. 6VPE

One application of IPv6-over-IPv4 tunneling is in service provider networks, where customer sites are interconnected through IPv4 MPLS services like MPLS VPN and VPLS. But what happens when the customers of such a provider decide to exchange IPv6 traffic between their sites?

Migrating to an IPv6 backbone can be a complex and resource-intensive process for service providers, especially given the current limitations of MPLS in IPv6 networks.

To address this challenge without requiring a complete backbone migration, service providers can use two key solutions: 6PE and 6VPE.

Concept Description
Challenge Service providers face difficulty exchanging IPv6 traffic between customer sites using IPv4 MPLS services like MPLS VPN and VPLS.
Solution Migrating to an IPv6 backbone is complex. Two solutions, 6PE and 6VPE, help address this without a complete migration.
6PE
  • - IPv6 traffic is routed without isolating customers via VRFs.
  • - Overlapping addresses between customers are not supported (rarely needed in IPv6 due to ample address space).
  • - Focus of this lesson.
6VPE
  • - Customers are isolated using VRFs, enabling support for overlapping addresses.
  • - Details will be covered in the next lesson.

6PE (IPv6 Provider Edge):

In 6PE, customer traffic is routed without isolating customers using VRFs. Consequently, overlapping addresses are not supported between different customers. However, in the IPv6 world, overlapping addresses are rarely needed, as there is enough IPv6 address space available for each customer. This lesson focuses on 6PE.

6VPE (IPv6 VPN Provider Edge):

In contrast, 6VPE isolates different customers using VRFs, which enables support for overlapping addresses. The details of 6VPE will be covered in the next lesson.

6PE Core Concept

What is the Core Concept of 6PE (and 6VPE)?

Understanding 6PE and 6VPE is significantly easier if you have a foundational knowledge of MPLS and MPLS VPNs. It is highly recommended that you familiarize yourself with these concepts before delving into the detail configuration of 6PE and 6VPE mechanisms.

6PE Operation in Control Plane and Data Plane
6PE Operation in Control Plane and Data Plane

In 6PE:

  • Control Plane: IPv4-based BGP is used to advertise IPv6 routes between Provider Edge (PE) routers.

  • Data Plane: IPv6 packets are encapsulated within MPLS labels for transport across the IPv4 MPLS backbone.

How Does 6PE Work?

  1. Route Advertisement: PE routers use IPv4-based BGP to learn which PE router is responsible for each IPv6 subnet.

  2. Encapsulation: Once this information is available, PE routers encapsulate IPv6 traffic destined for that specific subnet within MPLS labels or Label Switched Paths (LSPs) to the corresponding PE router.

  3. Traffic Forwarding: Encapsulated IPv6 packets are forwarded across the IPv4 MPLS backbone using these labels.

Cisco 6PE Configuration Example

To better understand 6PE (IPv6 Provider Edge), I’ve prepared a topology similar to the one used in the 6PE operation example. In this setup, there are one P router, two PE routers and a single customer with two sites, where each site is connected to one PE router.

This is the procedure to implement 6PE:

1. Configure IPv4 Addressing and OSPF in the IPv4 Backbone:

  • Set up IPv4 addressing and configure OSPF routing on the IPv4 backbone.

  • Ensure that the loopback addresses of the PE routers are reachable from each other to verify basic connectivity.

!!! PE1
interface Loopback0
 ip address 10.10.10.1 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.1.2 255.255.255.0
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:1::1/64
!
router ospf 1
 router-id 10.10.10.1
 network 10.0.0.0 0.255.255.255 area 0
!!! PE2
interface Loopback0
 ip address 10.10.10.2 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.2.2 255.255.255.0
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:2::1/64
!
router ospf 1
 router-id 10.10.10.2
 network 10.0.0.0 0.255.255.255 area 0
!!! P
interface Loopback0
 ip address 10.10.10.10 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.1.1 255.255.255.0
!
interface Ethernet0/1
 no shutdown
 ip address 10.1.2.1 255.255.255.0
!
router ospf 1
 router-id 10.10.10.10
 network 10.0.0.0 0.255.255.255 area 0
PE1#ping 10.10.10.2 source 10.10.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.2, timeout is 2 seconds:
Packet sent with a source address of 10.10.10.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/7 ms

2. Enable MPLS in the Service Provider’s IPv4 Backbone:

  • Configure MPLS in the IPv4 backbone of the service provider.

  • Use the traceroute command to confirm that traffic between the PE routers is being forwarded with MPLS labels.

!!! PE1
ip cef
!
mpls label protocol ldp
!
interface Ethernet0/0
 mpls ip
!
mpls ldp router-id Loopback0
!!! PE2
ip cef
!
mpls label protocol ldp
!
interface Ethernet0/0
 mpls ip
!
mpls ldp router-id Loopback0
!!! P
ip cef
!
mpls label protocol ldp
!
interface Ethernet0/0
 mpls ip
!
interface Ethernet0/1
 mpls ip
!
mpls ldp router-id Loopback0
PE1#traceroute 10.10.10.2 source 10.10.10.1
Type escape sequence to abort.
Tracing the route to 10.10.10.2
VRF info: (vrf in name/id, vrf out name/id)
  1 10.1.1.1 [MPLS: Label 16 Exp 0] 10 msec 5 msec 6 msec
  2 10.1.2.2 8 msec 6 msec 5 msec

3. Configure IPv4 BGP Between PE Routers:

  • Set up IPv4 BGP peering between the PE routers.

  • Ensure that the BGP neighborship is established correctly by checking the BGP status.

!!! PE1
router bgp 1
 bgp router-id 10.10.10.1
 bgp log-neighbor-changes
 neighbor 10.10.10.2 remote-as 1
 neighbor 10.10.10.2 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.10.10.2 activate
  neighbor 10.10.10.2 next-hop-self
 exit-address-family
!!! PE2
router bgp 1
 bgp router-id 10.10.10.2
 bgp log-neighbor-changes
 neighbor 10.10.10.1 remote-as 1
 neighbor 10.10.10.1 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.10.10.1 activate
  neighbor 10.10.10.1 next-hop-self
 exit-address-family
PE1#show ip bgp summary
BGP router identifier 10.10.10.1, local AS number 1
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.10.10.2      4            1     736     743        1    0    0 11:06:00        0

4. Enable BGP to Advertise IPv6 Routes and MPLS Labels:

  • Activate BGP to advertise IPv6 routes and the corresponding MPLS labels for each route.

  • Verify that the IPv6 routes and MPLS labels are correctly exchanged between the PE routers.

!!! PE1
router bgp 1
 address-family ipv6
  network 2001:BEBE:1:1::/64
  neighbor 10.10.10.2 activate
  neighbor 10.10.10.2 send-community both
  neighbor 10.10.10.2 send-label
 exit-address-family
!!! PE2
router bgp 1
 address-family ipv6
  network 2001:BEBE:1:2::/64
  neighbor 10.10.10.1 activate
  neighbor 10.10.10.1 send-community both
  neighbor 10.10.10.1 send-label
 exit-address-family
PE1#show bgp ipv6 unicast
BGP table version is 3, local router ID is 10.10.10.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2001:BEBE:1:1::/64
                       ::                       0         32768 i
 *>i 2001:BEBE:1:2::/64
                       ::FFFF:10.10.10.2
                                                0    100      0 i
PE1#show bgp ipv6 unicast labels
   Network          Next Hop      In label/Out label
   2001:BEBE:1:1::/64
                    ::              19/nolabel
   2001:BEBE:1:2::/64
                    ::FFFF:10.10.10.2
                                    nolabel/19

5. Configure IPv6 Connectivity for Customer Sites:

  • Set up IPv6 addressing for the customer’s sites (CE routers) and configure IPv6 routing between the PE and CE routers.

  • Configure an IPv6 default route to ensure that all IPv6 traffic is forwarded to the appropriate PE router.

!!! PE1
ipv6 unicast-routing
ipv6 cef
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:1::1/64
!!! PE2
ipv6 unicast-routing
ipv6 cef
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:2::1/64
!!!! CE1
interface Ethernet0/0
 no shutdown
 ipv6 address 2001:BEBE:1:1::2/64
!
ipv6 route ::/0 2001:BEBE:1:1::1
!!!! CE2
interface Ethernet0/0
 no shutdown
 ipv6 address 2001:BEBE:1:2::2/64
!
ipv6 route ::/0 2001:BEBE:1:2::1

6. Verify End-to-End Connectivity:

  • Use ping and traceroute commands to test end-to-end IPv6 connectivity between the PE routers and ensure proper forwarding of traffic.

CE1#ping  2001:BEBE:1:2::2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:BEBE:1:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/5 ms
CE1#traceroute  2001:BEBE:1:2::2
Type escape sequence to abort.
Tracing the route to 2001:BEBE:1:2::2

  1 2001:BEBE:1:1::1 0 msec 5 msec 5 msec
  2 ::FFFF:10.1.1.1 [MPLS: Labels 16/19 Exp 0] 1 msec 2 msec 1 msec
  3 2001:BEBE:1:2::1 0 msec 0 msec 5 msec
  4 2001:BEBE:1:2::2 5 msec 5 msec 4 msec

This is the complete configuration code that consolidates all the necessary configurations.

!!! PE1
hostname PE1
!
ip cef
ipv6 unicast-routing
ipv6 cef
!
mpls label protocol ldp
!
interface Loopback0
 ip address 10.10.10.1 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.1.2 255.255.255.0
 mpls ip
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:1::1/64
!
router ospf 1
 router-id 10.10.10.1
 network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
 bgp router-id 10.10.10.1
 bgp log-neighbor-changes
 neighbor 10.10.10.2 remote-as 1
 neighbor 10.10.10.2 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.10.10.2 activate
  neighbor 10.10.10.2 next-hop-self
 exit-address-family
 !
 address-family ipv6
  network 2001:BEBE:1:1::/64
  neighbor 10.10.10.2 activate
  neighbor 10.10.10.2 send-community both
  neighbor 10.10.10.2 send-label
 exit-address-family
!
mpls ldp router-id Loopback0
!!! PE2
hostname PE2
!
ip cef
ipv6 unicast-routing
ipv6 cef
!
mpls label protocol ldp
!
interface Loopback0
 ip address 10.10.10.2 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.2.2 255.255.255.0
 mpls ip
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:BEBE:1:2::1/64
!
router ospf 1
 router-id 10.10.10.2
 network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
 bgp router-id 10.10.10.2
 bgp log-neighbor-changes
 neighbor 10.10.10.1 remote-as 1
 neighbor 10.10.10.1 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.10.10.1 activate
  neighbor 10.10.10.1 next-hop-self
 exit-address-family
 !
 address-family ipv6
  network 2001:BEBE:1:2::/64
  neighbor 10.10.10.1 activate
  neighbor 10.10.10.1 send-community both
  neighbor 10.10.10.1 send-label
 exit-address-family
!
mpls ldp router-id Loopback0
!!! P
hostname P
!
ip cef
ipv6 unicast-routing
ipv6 cef
!
mpls label protocol ldp
!
interface Loopback0
 ip address 10.10.10.10 255.255.255.255
!
interface Ethernet0/0
 no shutdown
 ip address 10.1.1.1 255.255.255.0
 mpls ip
!
interface Ethernet0/1
 no shutdown
 ip address 10.1.2.1 255.255.255.0
 mpls ip
!
router ospf 1
 router-id 10.10.10.10
 network 10.0.0.0 0.255.255.255 area 0
!
mpls ldp router-id Loopback0
Back to: IPv6 (in progress) > Service Provider based IPv6 over IPv4 Tunneling methods

Leave a Reply

Your email address will not be published. Required fields are marked *


Post comment