Chapter 17: IP Version 6

Cisco Press

1 2 3 4 5 6 Page 5
Page 5 of 6

Step 4 If the type of dynamic address assignment is stateful DHCP, the host uses DHCP messages to ask a stateful DHCP server for a lease of an IP address/prefix length, as well as default router addresses, the DNS server IP addresses, and domain name.

NOTE - Other tasks occur when a host initializes as well, but they are beyond the scope of this book.

IPv6 includes many different types of addresses, including unicast and multicast. By way of summary, Table 17-9 lists the types of IPv6 addresses mentioned by this chapter, with a few details, for easier reference when studying.

Table 17-9 Common Link Local Multicast Addresses

Type of Address



Easily Seen Hex Prefix(es)

Global unicast

Unicast packets sent through the public Internet


2 or 3

Unique local

Unicast packets inside one organization



Link Local

Packets sent in the local subnet



Multicast (link local scope)

Multicasts that stay on the local subnet



Configuring IPv6 Routing and Routing Protocols

To support IPv6, all the IPv4 routing protocols had to go through varying degrees of changes, with the most obvious being that each had to be changed to support longer addresses and prefixes. The following sections first examine a few details about routing protocols and then show how to configure IPv6 routing and routing protocols on Cisco routers.

IPv6 Routing Protocols

As with IPv4, most IPv6 routing protocols are interior gateway protocols (IGP), with Border Gateway Protocol (BGP) still being the only exterior gateway protocol (EGP) of note. All these current IGPs and BGP have been updated to support IPv6. Table 17-10 lists the routing protocols and their new RFCs (as appropriate).

Table 17-10 Updates to Routing Protocols for IPv6

Routing Protocol

Full Name



RIP Next Generation



OSPF version 3



Multiprotocol BGP-4


EIGRP for IPv6

EIGRP for IPv6


Each of these routing protocols has to make several changes to support IPv6. The actual messages used to send and receive routing information have changed, using IPv6 headers instead of IPv4 headers and using IPv6 addresses in those headers. For example, RIPng sends routing updates to the IPv6 destination address FF02::9, instead of the old RIP-2 IPv4 address. Also, the routing protocols typically advertise their link local IP address as the next hop in a route, as will be shown in the upcoming Example 17-2.

The routing protocols still retain many of the same internal features. For example, RIPng, being based on RIP-2, is still a distance vector protocol, with hop count as the metric and 15 hops as the longest valid route (16 is infinity). OSPFv3, created specifically to support IPv6, is still a link-state protocol, with cost as the metric but with many of the internals, including link-state advertisement (LSA) types, changed. As a result, OSPFv2, as covered in Chapter 9, "OSPF," is not compatible with OSPFv3. However, the core operational concepts remain the same.

IPv6 Configuration

Cisco router IOS enables the routing (forwarding) of IPv4 packets by default, with IPv4 being enabled on an interface when the interface has an IPv4 address configured. For IPv4 routing protocols, the routing protocol must be configured, with the network command indirectly enabling the routing protocol on an interface.

IPv6 configuration follows some of these same guidelines, with the largest difference being how to enable a routing protocol on an interface. Cisco router IOS does not enable IPv6 routing by default, so a global command is required to enable IPv6 routing. The unicast IP addresses need to be configured on the interfaces, similar to IPv4. The routing protocol needs to be globally configured, similar to IPv4. Finally, the routing protocol has to be configured on each interface as needed, but with IPv6, the process does not use the network router subcommand.

This section shows an example configuration, again showing Router R1 from the Company1 enterprise network shown in earlier figures in this chapter. The example uses RIPng as the routing protocol. The following list outlines the four main steps to configure IPv6:

Step 1 Enable IPv6 routing with the ipv6 unicast-routing global command.

Step 2 Enable the chosen routing protocol. For example, for RIPng, use the ipv6 router rip name global configuration command.

Step 3 Configure an IPv6 unicast address on each interface using the ipv6 address address/prefix-length [eui-64] interface command.

Step 4 Enable the routing protocol on the interface, for example, with the ipv6 rip name enable interface subcommand (where the name matches the ipv6 router rip name global configuration command).

Example 17-2 shows the configuration, plus a few show commands. Note that the IP address configuration matches the earlier Example 17-1. Because Example 17-1 showed the address configuration, this example shows gray highlights on the new configuration commands only.

Example 17-2 Configuring IPv6 Routing and Routing Protocols on R1

R1#show running-config
! output is edited to remove lines not pertinent to this example
ipv6 unicast-routing
interface FastEthernet0/0
 ipv6 address 2340:1111:AAAA:1::/64 eui-64
 ipv6 rip atag enable
interface Serial0/0/1
 ipv6 address 2340:1111:AAAA:2::1/64 
 ipv6 rip atag enable
interface Serial0/1/1
 ipv6 address 2340:1111:AAAA:4::/64 eui-64
 ipv6 rip atag enable
ipv6 router rip atag
R1#show ipv6 route
IPv6 Routing Table - 10 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
    U - Per-user Static route
    I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
    O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
    ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
R  ::/0 [120/2]
   via FE80::213:19FF:FE7B:2F58, Serial0/1/1
C  2340:1111:AAAA:1::/64 [0/0]
   via ::, FastEthernet0/0
L  2340:1111:AAAA:1:213:19FF:FE7B:5004/128 [0/0]
   via ::, FastEthernet0/0
C  2340:1111:AAAA:2::/64 [0/0]
   via ::, Serial0/0/1
L  2340:1111:AAAA:2::1/128 [0/0]
   via ::, Serial0/0/1
R  2340:1111:AAAA:3::/64 [120/2]
   via FE80::213:19FF:FE7B:5026, Serial0/0/1
C  2340:1111:AAAA:4::/64 [0/0]
   via ::, Serial0/1/1
L  2340:1111:AAAA:4:213:19FF:FE7B:5004/128 [0/0]
   via ::, Serial0/1/1
L  FE80::/10 [0/0]
   via ::, Null0
L  FF00::/8 [0/0]
   via ::, Null0
R1#show ipv6 interface brief 
FastEthernet0/0      [up/up]
FastEthernet0/1      [up/up]
Serial0/0/0        [administratively down/down]
Serial0/0/1        [up/up]
Serial0/1/0        [administratively down/down]
Serial0/1/1        [up/up]

The configuration itself does not require a lot of work beyond the IPv6 address configuration shown previously in Example 17-1. The ipv6 router rip name command requires a name (formally called a tag) that is just a text name for the routing process. Example 17-2 shows the configuration, using a RIP tag named "atag". This tag does not have to match between the various routers. Otherwise, the configuration itself is straightforward.

The show ipv6 route command lists all the IPv6 routes, listing some important differences as highlighted in the command output. First, note the first few lines of highlighted output in that command, and the new routing code "L". For each interface with a unicast address, the router adds the usual connected route for the prefix connected to that interface. For example, the first highlighted line inside this command lists 2340:1111:AAAA:1::/64, which is the subnet connected to R1's Fa0/0 interface. The output also lists a host route—a /128 prefix length route—as a local route. Each of these local routes, as noted with the code "L," lists the specific address on each interface, respectively.

The next highlighted lines in that same show ipv6 route command list some interesting next-hop information in a RIP-learned route. The example highlights the route to subnet 3, listing outgoing interface S0/0/1, but the next-hop address is R2's link local IP address of FE80::213:19FF:FE7B:5026. IPv6 routing protocols typically advertise the link local addresses as next-hop addresses.

Finally, the last part of the example shows the output of the show ipv6 interface brief command, which lists the unicast IP addresses on each interface. The highlighted lines first show the link local address (each starts with FE8), and then the global unicast address, on R1's Fa0/0 interface. Each of the three interfaces used in this example has both the link local address, which is automatically generated, and the global unicast addresses configured, as shown in the first part of Example 17-2.

Configuring host names and DNS servers on routers for IPv4 can be a small convenience, but for IPv6, it might well be a necessity. Because of the length of IPv6 addresses, even a simple ping command requires a fair amount of typing and referring to other command output or documentation. So, just as with IPv4, you might want to configure static host names on routers, or refer to a DNS server, with the following two commands. Note that the commands and syntax are the same as the commands for IPv4, just with IPv6 addresses used as parameters.

  • ip host name ipv6-address [second-address [third-address [fourth-address]]]

  • ip name-server server-address1 [server-address2...server-address6]

The first command configures a host name only known to the local routers, while the second refers to a DNS server. Note that the router attempts to act as a DNS client by default, based on the default ip domain-lookup global configuration command. However, if the no ip domain-lookup command has been configured, change the command back to ip domain-lookup to begin using DNS services.

While the configuration and show commands in Example 17-2 can be useful for learning the basics, much more is required before an internetwork can be ready for an IPv6 deployment. (Deploying IPv6 Networks, by Ciprian Popoviciu et al., published by Cisco Press, is a great resource if you want to read more.) The next section takes a brief look at one of the larger deployment issues, namely, how to support users during a worldwide migration from IPv4 to IPv6, which might take decades.

IPv6 Transition Options

While IPv6 solves a lot of problems, an overnight migration from IPv4 to IPv6 is ridiculous. The number of devices on Earth that use IPv4 number is well into the billions, and in some cases, even if you wanted to migrate to IPv6, the devices or their software might not even have IPv6 support, or at least well-tested IPv6 support. The migration from IPv4 to IPv6 will at least take years, if not decades.

Thankfully, much time and effort have been spent thinking about the migration process and developing standards for how to approach the migration or transition issue. The following sections introduce the main options and explain the basics. In particular, these sections examine the idea of using dual stacks, tunneling, and translation between the two versions of IP. Note that no one solution is typically enough to solve all problems; in all likelihood, a combination of these tools will need to be used in most every network.

IPv4/IPv6 Dual Stacks

The term dual stacks means that the host or router uses both IPv4 and IPv6 at the same time. For hosts, this means that the host has both an IPv4 and IPv6 address associated with each NIC, that the host can send IPv4 packets to other IPv4 hosts, and that the host can send IPv6 packets to other IPv6 hosts. For routers, it means that in addition to the usual IPv4 IP addresses and routing protocols covered in many of the other chapters of this book, the routers would also have IPv6 addresses and routing protocols configured, as shown in this chapter. To support both IPv4 and IPv6 hosts, the router could then receive and forward both IPv4 packets and IPv6 packets.

The dual stack approach can be a reasonable plan of attack to migrate an enterprise to IPv6 for communications inside the enterprise. The routers could be easily migrated to use dual stacks, and most desktop operating systems (OS) support IPv6 today. In some cases, the upgrade my require new software or hardware, but this approach allows a slower migration, which is not necessarily a bad thing, because the support staff needs time to learn how IPv6 works.


Another tool to support the IPv4-to-IPv6 transition is tunneling. Many types of tunneling exist, but in this case, the tunnel function typically takes an IPv6 packet sent by a host and encapsulates it inside an IPv4 packet. The IPv4 packet can then be forwarded over an existing IPv4 internetwork, with another device removing the IPv4 header, revealing the original IPv6 packet. The concept is very much like a VPN tunnel, as explained in Chapter 15, "Virtual Private Networks."

Figure 17-11 shows a typical example with a type of tunnel generically called an IPv6-to-IPv4 tunnel, meaning IPv6 inside IPv4. The figure shows a sample enterprise internetwork in which hosts on some of the LANs have migrated to IPv6, but the core of the network still runs IPv4. This might be the case during an initial testing phase inside an enterprise, or it could be commonly done with an IPv4-based ISP that has customers wanting to migrate to IPv6.

Figure 17-11

Example IPv6-to-IPv4 Tunnel, Physical and Logical View

1 2 3 4 5 6 Page 5
Page 5 of 6