Published On: July 20ᵗʰ, 2021 07:30

Multiprotocol Label Switching (MPLS) Configuration Guide, Cisco IOS XE Amsterdam 17.3.x (Catalyst 9500 Switches)


Prerequisites for 6PE

Redistribute PE-CE IGP IPv6 routes into core BGP and vice-versa

Restrictions for 6PE

eBGP as CE-PE is not supported. Static Routes, OSPFv3, ISIS, RIPv2 are supported as CE-PE.

Information About 6PE

6PE is a technique that provides global IPv6 reachability over IPv4 MPLS. It allows one shared routing table for all other devices. 6PE allows IPv6 domains to communicate with one another over the IPv4 without an explicit tunnel setup, requiring only one IPv4 address per IPv6 domain.

While implementing 6PE, the provider edge routers are upgraded to support 6PE, while the rest of the core network is not touched (IPv6 unaware). This implementation requires no reconfiguration of core routers because forwarding is based on labels rather than on the IP header itself. This provides a cost-effective strategy for deploying IPv6.The IPv6 reachability information is exchanged by PE routers using multiprotocol Border Gateway Protocol (mp-iBGP) extensions.

6PE relies on mp-iBGP extensions in the IPv4 network configuration on the PE router to exchange IPv6 reachability information in addition to an MPLS label for each IPv6 address prefix to be advertised. PE routers are configured as dual stacks, running both IPv4 and IPv6, and use the IPv4 mapped IPv6 address for IPv6 prefix reachability exchange. The next hop advertised by the PE router for 6PE and 6VPE prefixes is still the IPv4 address that is used for IPv4 L3 VPN routes. A value of ::FFFF: is prepended to the IPv4 next hop, which is an IPv4-mapped IPv6 address.

The following figure illustrates the 6PE topology. Figure 1. 6PE Topology

Configuring 6PE

Ensure that you configure 6PE on PE routers participating in both the IPv4 cloud and IPv6 clouds.

BGP running on a PE router should establish (IPv4) neighborhood with BGP running on other PEs. Subsequently, it should advertise the IPv6 prefixes learnt from the IPv6 table to the neighbors. The IPv6 prefixes advertised by BGP would automatically have IPv4-encoded-IPv6 addresses as the nexthop-address in the advertisement.

To configure 6PE, complete the following steps:


  Command or Action Purpose
Step 1



Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal


Device# configure terminal

Enters global configuration mode.

Step 3

ipv6 unicast-routing


Device(config)# ipv6 unicast-routing

Enables the forwarding of IPv6 unicast datagrams.

Step 4

router bgp as-number


Device(config)# router bgp 65001

Enters the number that identifies the autonomous system (AS) in which the router resides.

as-number —Autonomous system number. Range for 2-byte numbers is 1 to 65535. Range for 4-byte numbers is 1.0 to 65535.65535.

Step 5

bgp router-id interface interface-id


Device(config-router)# bgp router-id interface Loopback1

Configures a fixed router ID for the local Border Gateway Protocol (BGP) routing process.

Step 6

bgp log-neighbor-changes


Device(config-router)# bgp log-neighbor-changes

Enables logging of BGP neighbor resets.

Step 7

bgp graceful-restart


Device(config-router)# bgp graceful-restart

Enables the Border Gateway Protocol (BGP) graceful restart capability globally for all BGP neighbors.

Step 8

neighbor { ip-address | ipv6-address | peer-group-name } remote-as as-number


Device(config-router)# neighbor remote-as 65001

Adds an entry to the BGP or multiprotocol BGP neighbor table.

  • ip-address —IP address of a peer router with which routing information will be exchanged.

  • ipv6-address —IPv6 address of a peer router with which routing information will be exchanged.

  • peer-group-name —Name of the BGP peer group.

  • remote-as —Specifies a remote autonomous system.

  • as-number —Number of an autonomous system to which the neighbor belongs, ranging from 1 to 65535.

Step 9

neighbor { ip-address | ipv6-address | peer-group-name } update-source interface-type interface-number


Device(config-router)# neighbor update-source Loopback1

Configures BGP sessions to use any operational interface for TCP connections.

Step 10

address-family ipv6


Device(config-router)# address-family ipv6

Enters address family configuration mode for configuring routing sessions, such as BGP, that use standard IPv6 address prefixes.

Step 11

redistribute protocol as-number match { internal | external 1 | external 2


Device(config-router-af)# redistribute ospf 11 match internal external 1

Redistributes routes from one routing domain into another routing domain.

Step 12

neighbor { ip-address | ipv6-address | peer-group-name } activate


Device(config-router-af)# neighbor activate

Enables the exchange of information with a BGP neighbor.

Step 13

neighbor { ip-address | ipv6-address | peer-group-name } send-label


Device(config-router-af)#  neighbor send-label

Sends MPLS labels with BGP routes to a neighboring BGP router.

Step 14



Device(config-router-af)# exit-address-family

Exits BGP address-family submode.

Step 15



Device(config)# end

Returns to privileged EXEC mode.

Configuration Examples for 6PE

Figure 2. 6PE Topology

PE Configuration

CE Configuration

router ospfv3 11
ip routing 
ipv6 unicast-routing
address-family ipv6 unicast
redistribute bgp 65001
router bgp 65001
bgp router-id interface Loopback1
bgp log-neighbor-changes
bgp graceful-restart
neighbor remote-as 65001
neighbor update-source Loopback1
address-family ipv4
neighbor activate
address-family ipv6
redistribute ospf 11 match internal external 1 external 2 include-connected
neighbor activate
neighbor send-label
neighbor send-community extended
ipv6 unicast-routing 
interface vlan4
no ip address
ipv6 address 10:1:1:2::2/64
ipv6 enable
ospfv3 11 ipv6 area 0
router ospfv3 11
address-family ipv6 unicast

The following is a sample output of show bgp ipv6 unicast summary :

BGP router identifier, local AS number 100
BGP table version is 34, main routing table version 34
4 network entries using 1088 bytes of memory
4 path entries using 608 bytes of memory
4/4 BGP path/bestpath attribute entries using 1120 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2816 total bytes of memory
BGP activity 6/2 prefixes, 16/12 paths, scan interval 60 secs
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd         4          100      21      21       34    0    0 00:04:57        2

sh ipv route
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, I1 - ISIS L1, I2 - ISIS L2
       IA - ISIS interarea, IS - ISIS summary, D - EIGRP, EX - EIGRP external
       ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
       RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
       OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid lA - LISP away
C   10:1:1:2::/64 [0/0]
     via Vlan4, directly connected
L   10:1:1:2::1/128 [0/0]
     via Vlan4, receive
LC  11:11:11:11::11/128 [0/0]
     via Loopback1, receive
B   30:1:1:2::/64 [200/0]
     via, indirectly connected
B   40:1:1:2::/64 [200/0]
     via, indirectly connected
The following is a sample output of show bgp ipv6 unicast command :

BGP table version is 112, local router ID is
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
     Network          Next Hop            Metric LocPrf Weight Path
 *>   10:1:1:2::/64    ::                       0         32768 ?
 *>i  30:1:1:2::/64    ::FFFF:
                                                0    100      0 ?
 *>i  40:1:1:2::/64    ::FFFF:
                                                0    100      0 ?
 *>i  173:1:1:2::/64   ::FFFF:
                                                2    100      0 ?
The following is a sample output of show ipv6 cef 40:1:1:2::0/64 detail command :

40:1:1:2::/64, epoch 6, flags [rib defined all labels]
  recursive via label 67
    nexthop Port-channel103 label 99-(local:147)

Feature History for IPv6 Provider Edge over MPLS (6PE)

This table provides release and related information for features explained in this module.

These features are available on all releases subsequent to the one they were introduced in, unless noted otherwise.



Feature Information

Cisco IOS XE Everest 16.6.1

IPv6 Provider Edge over MPLS (6PE)

IPv6 Provider Edge over MPLS (6PE) provides global IPv6 reachability over IPv4 MPLS and allows one shared routing table for all other devices.

Support for this feature was introduced only on the C9500-12Q, C9500-16X, C9500-24Q, C9500-40X models of the Cisco Catalyst 9500 Series Switches.

Cisco IOS XE Fuji 16.9.1

IPv6 Provider Edge over MPLS (6PE)

Support for this feature was introduced on the C9500-32C, C9500-32QC, C9500-48Y4C, and C9500-24Y4C models of the Cisco Catalyst 9500 Series Switches.

Use Cisco Feature Navigator to find information about platform and software image support. To access Cisco Feature Navigator, go to