6PE is one of the efficient solutions for interconnecting IPv6 islands over an IPv4-only MPLS cloud without needing to drastically change the core network design by having all your Core routers dual-stacked
6PE does not use manual standard tunnels, it provides an alternative where all tunnels are established dynamically eliminating the need to configure and maintain tunnels.
The approach requires that the edge routers connected to IPv6 islands be Dual Stack Multiprotocol-BGP-speaking routers. while the core routers can only run IPv4 MPLS
Configuring 6PE is has a lot of similarities with configuring IPv4 VPNs as both use MP-BGP to distribute non-IPv4 reachability information over an IPv4 MPLs Core with the obvious perk that on 6PE we don’t have to deal with all VPN concepts like VRFs, Route-distinguishers & Route-targets.
6PE @ the Access:
The interface between the 6PE router and the CE is native IPv6 speaking , routing protocols ( whether static or dynamic ) may be configured to deliver IPv6 reachability information between CE and the ISP
6PE @ the Core:
IPv6 talking Routers (i.e. 6PE) exchange IPv6 prefixes over MP-BGP session running over IPv4 with the AFI ( Address Family Identifier ) set to value 2 (IPv6). Depending on the size of the network well known bgp scalability mechanisms will be in place for these bgp peerings be that Route-Reflectors or full meshed network.As a result 6PE sets the BGP nexthop address as the IPv4 address for the advertised IPv6 prefixes.That IPv4 address will be encoded as an IPv4-mapped IPv6 address in the bgp next-hop table for example ::ffff:10.0.0.1
6PE must bind a label to the IPv6 prefix, SAFI ( Sub-sequence Address Family Identifier ) must be set to value 4, we wil come back to this point later on in discussing the forwarding part of the mechanism.
The transport of IPv6 packets from the ingress 6PE to egress 6PE router will be done over IPv4 signaled LSPs which is advertised n the IPv4-mapped Ipv6 address of the bgp nexthop for the corresponding IPv6 prefix
Ingress 6PE router having already already a label for the IPv4 bgp nexthop of the egress label ( through traditional label allocation protocols such as LDP ) uses that label as the top label on the packet destined to the egress 6PE, internal label will be the label assigned by MP-BGP which is bound to IPv6 prefixes.
Some approaches uses a single layer of labels ( so the IPv4 next-hop label ) but makes more sense to have a multi level labeling as that gives more flexibility to use PHP in the Core.which is the standard for most Core MPLS implementations in Major ISPs
Some adaptation of MTU is needed which is one of the most un-popular things among network engineers to do 🙂
So I will keep it simple every link talking IPv6 must have an MTU of 1280 octets or larger
Therefore, on MPLS links that are used for transport of IPv6, as per the 6PE approach the MTU must be configured to at least 1280 octets plus the encapsulation overhead.