Configuring IPv6 Provider Edge over MPLS (6PE)

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.

Configuring 6PE

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


For scale information related to this feature, see Cisco Catalyst 9300 Series Switches Data Sheet.

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.

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:

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ipv6 unicast-routing
  4. router bgp as-number
  5. bgp router-id interface interface-id
  6. bgp log-neighbor-changes
  7. bgp graceful-restart
  8. neighbor { ip-address | ipv6-address | peer-group-name } remote-as as-number
  9. neighbor { ip-address | ipv6-address | peer-group-name } update-source interface-type interface-number
  10. address-family ipv6
  11. redistribute protocol as-number match { internal | external 1 | external 2
  12. neighbor { ip-address | ipv6-address | peer-group-name } activate
  13. neighbor { ip-address | ipv6-address | peer-group-name } send-label
  14. exit-address-family
  15. end

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

ipv6 unicast-routing

Example:


Device(config)# ipv6 unicast-routing

Enables the forwarding of IPv6 unicast datagrams.

Step 4

router bgp as-number

Example:


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

Example:


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

Example:


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

Enables logging of BGP neighbor resets.

Step 7

bgp graceful-restart

Example:


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

Example:


Device(config-router)# neighbor 33.33.33.33 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

Example:


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

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

Step 10

address-family ipv6

Example:


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

Example:


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

Example:


Device(config-router-af)# neighbor 33.33.33.33 activate

Enables the exchange of information with a BGP neighbor.

Step 13

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

Example:


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

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

Step 14

exit-address-family

Example:


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

Exits BGP address-family submode.

Step 15

end

Example:


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
exit-address-family
!
router bgp 65001
bgp router-id interface Loopback1
bgp log-neighbor-changes
bgp graceful-restart
neighbor 33.33.33.33 remote-as 65001
neighbor 33.33.33.33 update-source Loopback1
!
address-family ipv4
neighbor 33.33.33.33 activate
!
address-family ipv6
redistribute ospf 11 match internal external 1 external 2 include-connected
neighbor 33.33.33.33 activate
neighbor 33.33.33.33 send-label
neighbor 33.33.33.33 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
exit-address-family
!
The following is a sample output of show bgp ipv6 unicast summary :

BGP router identifier 1.1.1.1, 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
2.2.2.2         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 33.33.33.33%default, indirectly connected
B   40:1:1:2::/64 [200/0]
     via 44.44.44.44%default, indirectly connected
The following is a sample output of show bgp ipv6 unicast command :

BGP table version is 112, local router ID is 11.11.11.11
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:33.33.33.33
                                                0    100      0 ?
 *>i  40:1:1:2::/64    ::FFFF:44.44.44.44
                                                0    100      0 ?
 *>i  173:1:1:2::/64   ::FFFF:33.33.33.33
                                                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 44.44.44.44 label 67
    nexthop 1.20.4.2 Port-channel103 label 99-(local:147)