Chapter 8: IPv6 Introduction

Cisco Press

Check out Denise Donohue's blog.

More Cisco Press book chapters from new and classic Cisco Press books.

Rate your favorite Cisco Press books.

IPv6 is an extension of IP with several advanced features:

  • Larger address space

  • Simpler header

  • Autoconfiguration

  • Extension headers

  • Flow labels

  • Mobility

  • "Baked in" security

Of these, many capabilities have been backported to IPv4. The primary adoption of IPv6 will be driven by the need for more addresses. Given the growth in Internet use and the emergence of large groups of Internet users in developing countries, this is a significant requirement.

IPv6 Routing Prefix

IPv4 addresses are 32 bits long, whereas IPv6 addresses are 128 bits. IPv6 addresses are composed of the following elements (see Figure 8-1):

  • The first three bits (/3) of unicast always 001.

  • The next 13 bits (/16) are Top-Level Aggregator (TLA) the upstream ISP.

  • The next 24 bits (/40) are the next-level aggregator or regional ISP.

  • Enterprises are assigned /48 and have 16 bits of subnetting.

Figure 8-1

Figure 8-1

RFC 2374 IPv6 Address Structure

IPv6 Interface ID

The host portion of the address is last 64 bits. It can be assigned manually, using DHCP v6, or using stateless autoconfiguration.

An end-system uses stateless autoconfiguration by waiting for a router to advertise the local prefix. If the end system has a 64-bit MAC, it concatenates the prefix and its MAC to form an IPv6 address. If the end system has a 48-bit MAC, it flips the global/local bit and inserts 0xFFEE into the middle of the MAC. The resulting 64-bit number is called the EUI64. The prefix and EUI64 are concatenated to form the address. Figure 8-2 shows how a host uses its MAC address to create its IPv6 address.

Figure 8-2

Figure 8-2


Simplified Presentation of IPv6 Address

There are two ways to shorten the representation of an IPv6 address. Take the example address 4001:0000:0001:0002:0000:0000:0000:ABCD.

  • Leading zeros may be omitted. This makes the example 4001:0:1:2:0:0:0:ABCD.

  • Sequential zeros may be shown as double colons once per address. This makes the example 4001:0:1:2::ABCD.

IPv6 Header

The IPv6 header is similar to the IPv4 header. The largest changes have to do with the larger addresses, aligning fields to 64-bit boundaries and moving fragmentation to an extension header.

Figure 8-3

Figure 8-3

IPv6 Header

The fields are:

  • Version—6.

  • Priority—Similar to DSCP in version 4, this eight-bit field is used to describe relative priority.

  • Flow—20-bit flow label allows tagging in a manner similar to MPLS.

  • Length—The length of the data in the packet.

  • Next Header—Indicates how the bits after the IP header should be interpreted. Could indicate TCP or UDP, or it could show an extension header.

  • Hop Limit—Similar to TTL.

  • Source and Destination—IPv6 addresses.

Zero or more extension headers could follow, including:

  • Hop-by-hop options—Options for intermediate devices.

  • Destination options—Options for the end node.

  • Source routing—Specifies "way stations" that the route must include.

  • Fragmentation—Used to divide packets.

  • Authentication—Used to attest to source. Replaces the AH header from IPSec.

  • Encryption—Replaces the IPSec ESP header.

Advanced Features

"Advanced" features are elements that are not available in IPv4 or have significantly changed. For instance, it's important to know that the idea of broadcasts has been abandoned and that devices will typically respond to a set of IPv6 addresses.

Specifying Destinations

IPv6 does not support broadcasts, but replaces broadcasts with multicasts. IPv6 also uses Anycast, which involves using the same address on two devices. Anycast can be used to implement redundancy and has been backported to IPv4.

Specifying Sources

Each IPv6 system must recognize the following addresses:

  • Unicast address

  • Link local address (FE80/10 | EUI64)

  • Loopback (::1)

  • All-nodes multicast (FF00::1)

  • Site-local multicast (FF02::2)

  • Solicited-nodes multicast (FF02::1:FF00/104)

Additionally, some systems will also use the following addresses:

  • IPv4 mapped address (0::FFFF | 32-bit, IPv4 address).

  • Second unicast address shared with another system (anycast).

  • Additional multicast groups.

  • Routers must support subnet-router anycast (all zeros EUI64).

  • Routers must support local all-routers multicast (FF01::2), link-local (FF02::2), and site-local (FF05:2).

  • Routers must support routing protocol multicast groups.


IPv6 supports easy network renumbering. A router sends out a "router advertisement" with a new prefix and a token that instructs end systems to perform stateless autoconfiguration. Hosts then recognize the command and update their addresses.

Anyone who has had to renumber a large range of IPv4 addresses can testify to what a boon this feature will be!


IPv6 also includes better support for roaming systems. Using IPv6 Mobility, roamers keep in touch with a "home agent," which is their home router. Traffic sent to the "home address" is forwarded by the agent to the current address. The roamer then sends back a binding update to its corresponding agent so that future traffic is sent directly to the roaming address.

IPv6 Routing

IPv6 is not enabled by default on Cisco routers. To enable IPv6 routing, the command is Router(config)#ipv6 unicast-routing.

After IPv6 is enabled, addresses are assigned to interfaces much like version 4:

Router(config-if)#ipv6 address prefix/prefix-length

To make this less abstract, a more complete example that shows an IPv6 implementation is shown in Example 8-1.

Example 8-1 Enabling IPv6 Routing and Assigning Addresses

RouterA#configure terminal
RouterA(config)#ipv6 unicast-routing
RouterA(config)#interface fastethernet0/0
RouterA(config-if)#description Local LAN
RouterA(config-if)#ipv6 address 4001:0:1:1::2/64
RouterA(config-if)#interface serial 1/0
RouterA(config-if)#description point-to-point line to Internet
RouterA(config-if)#ipv6 address 4001:0:1:5::1/64

Static Routing

Static routing with IPv6 works exactly like it does with version 4. Aside from understanding the address format, there are no differences. Static routes are not currently on the BSCI test. The syntax for the IPv6 static route command is shown below, and Example 8-2 is supplied so that the command may be viewed in context as it might be applied.

Router(config)# ipv6 route ipv6-prefix/prefix-length {ipv6-address | interface-type interface-number [ipv6-address]} [administrative-distance] [administrative-multicast-distance | unicast | multicast] [tag tag]

Example 8-2 Configuring Static IPv6 Routes

RouterA(config)#ipv6 route 4001:0:1:2::/64 4001:0:1:1::1
RouterA(config)#ipv6 route ::/0 serial1/0

RIPng for IPv6

RIPng is the IPv6 of RIP and is defined in RFC 2080. Like RIPv2 for IPv4, RIPng is a distance vector routing protocol that uses a hop count for its metric and has a maximum hop count of 15. RIPng also uses periodic multicast updates—every 30 seconds—to advertise routes. The multicast address is FF02::9.

RIPng is not on the BSCI exam at present, but it is presented here for completeness and to round out your appreciation for IPv6 routing and to prepare the reader for trial implementations of IPv6.

Copyright © 2007 Pearson Education. All rights reserved.


Copyright © 2007 IDG Communications, Inc.

The 10 most powerful companies in enterprise networking 2022