To plan an efficient IPv6 addressing strategy, you must understand how IPv6 addressing works. IPv6 addressing is a major departure from IPv4 addressing. The most obvious difference is that IPv4 uses 4-byte source and destination addresses, typically expressed in the familiar dotted-decimal notation, whereas IPv6 uses 16-byte addresses, typically expressed in colon-hexadecimal notation. Colon-hexadecimal notation uses eight 4-digit hexadecimal numbers, with colons separating the 16-bit blocks (the 4-digit numbers).
To manage addresses more easily, IPv6 suppresses leading zeros and compresses a single contiguous all-zero 16-bit block, representing the contiguous block with two colons (::) (known as double-colon compression). Table 1.6 shows the effects of suppressing leading zeros and double-colon compression on the notation for an IPv6 address.
Table 1.6 Leading Zero Suppression and All-Zero Contiguous Block Compression
IPv6 Address Notation |
IPv6 Address |
IPv6 address |
FEC0:0000:0000:0000:02AA:00FF:FE3F:2A1C |
IPv6 address with le 23223u206x ading zeros suppressed |
FEC0:0:0:0:2AA:FF:FE3F:2A1C |
IPv6 address with le 23223u206x ading zeros suppressed and an all-zero contiguous block compressed |
FEC0::2AA:FF:FE3F:2A1C |
The 16 bytes, or 128 bits, provided in the IPv6 address space potentially supports 2 addresses. However, the purpose of this large address space is not only to provide an inexhaustible supply of addresses, but also to enable a hierarchical routing infrastructure that can be summarized. IPv6 addressing is designed to minimize the size of routing tables and to reduce routing complexity.
IPv6 supports address configuration both in the presence of a DHCP server, known as stateful address configuration, and in the absence of a DHCP server, known as stateless address configuration. Stateless address configuration introduces the use of link-local addresses, whereby hosts on the same link automatically configure themselves with IPv6 addresses for that link and can use those addresses to communicate with the other hosts on the same link. If one or more local routers exist, hosts can use router discovery to automatically determine the routers' addresses and can then communicate with IPv6 hosts beyond the local link.
As in IPv4, the high-order bits in an IPv6 address identify the type of address. In IPv6, the high-order bits are known as the Format Prefix (FP). IPv6 does not use subnet masks to specify the network ID. Instead, it uses only prefix notation.
IPv6 has three types of addresses, which can be categorized by type and scope:
Unicast addresses. A packet is delivered to one interface.
Multicast addresses. A packet is delivered to multiple interfaces.
Anycast addresses. A packet is delivered to the nearest of multiple interfaces (in terms of routing distance).
IPv6 does not use broadcast messages.
Unicast and anycast addresses in IPv6 have the following scopes (for multicast addresses, the scope is built into the address structure):
Link-local. The scope is the local link (nodes on the same subnet).
Site-local. The scope is the organization (private site addressing).
Global. The scope is global (IPv6 Internet addresses).
In addition, IPv6 has special addresses such as the loopback address. The scope of a special address depends on the type of special address.
Much of the IPv6 address space is unassigned.
IPv6 has several major unicast address types.
IPv6 unicast global addresses are similar to IPv4 public addresses. Also known as aggregatable global unicast addresses, global addresses are globally routable. The structure of an IPv6 unicast global address creates the three-level topology shown in the following illustration.
Table 1.7 explains each field in a unicast global address.
Table 1. Fields in a Unicast Global Address
Field |
Description |
Identifies the address as an IPv6 unicast global address. |
|
Top Level Aggregation Identifier (TLA ID) |
Identifies the highest level in the routing hierarchy. TLA IDs are administered by IANA, which allocates them to local Internet registries, which then allocate a given TLA ID to a global ISP. |
Res |
Reserved for future use (to expand either the TLA ID or the NLA ID). |
Next Level Aggregation Identifier (NLA ID) |
Identifies a specific customer site. |
Site Level Aggregation Identifier
( |
Enables as many as 65,536 (2 ) subnets within an individual organization's site. The |
Interface ID |
Identifies the interface of a node on a specific subnet. |
IPv6 unicast site-local addresses are similar to IPv4 private addresses. The scope of a site-local address is the internetwork of an organization's site. (You can use both global addresses and site-local addresses in your network.) The prefix for site-local addresses is FEC0::/48.
The following illustration shows the structure of a site-local address.
The initial 48 fixed bits are followed by a 16-bit Subnet ID field, which provides as many as 65,536 subnets in a flat subnet structure. Alternatively, you can subdivide the high-order bits of the Subnet ID field to create a hierarchical routing infrastructure. The last field is a 64-bit Interface ID field that identifies the interface of a node on a specific subnet.
|
Note Global addresses and site-local addresses share the same structure after the first 48 bits - the 16-bit SLA ID of a global address and the 16-bit Subnet ID of a site-local address both identify the subnets of an organization's site. Because of this, you can assign a specific subnet number to identify a subnet that is used for both global and site-local unicast addresses. |
IPv6 unicast link-local addresses are similar to IPv4 APIPA addresses used by computers running Microsoft Windows. Hosts on the same link (the same subnet) use these automatically configured addresses to communicate with each other. Neighbor Discovery provides address resolution. The prefix for link-local addresses is FE80::/64. The following illustration shows the structure of a link-local address.
The IPv6 unicast unspecified address is equivalent to the IPv4 unspecified address of 0.0.0.0. The IPv6 unspecified address is 0:0:0:0:0:0:0:0:, or a double colon (::).
The IPv6 unicast loopback address is equivalent to the IPv4 loopback address, 127.0.0.1. The IPv6 loopback address is 0:0:0:0:0:0:0:1, or ::1.
IPv6 uses 6to4 addresses to communicate between two IPv6/IPv4 nodes over the IPv4 Internet. A 6to4 address combines the prefix 2002::/16 with the 32 bits of the public IPv4 address of the node to create a 48-bit prefix - 2002:WWXX:YYZZ::/48, where WWXX:YYZZ is the colon-hexadecimal representation of w.x.y.z, a public IPv4 address. Therefore, the IPv4 address 157.60.91.123 translates into a 6to4 address prefix of 2002:9D3C:5B7B::/48.
The following illustration shows the structure of a 6to4 address.
However, this is often written using the hexadecimal prefix: 2002:WWXX:YYZZ:SLA ID:Interface ID.
The following example shows how the WWXX:YYZZ portion of the address is translated from colon-hexadecimal notation to dotted-decimal notation. In this example, 9D3C:5B7B translates to 157.60.91.123, as illustrated in the following example.
Notation Type |
Use a
calculator to convert each constituent number |
Colon-hexadecimal |
9D 3C 5B 7B |
Dotted-decimal |
For more information about 6to4 tunneling, see "Routing IPv6 Traffic over an IPv4 Infrastructure" later in this chapter.
IPv6 uses ISATAP addresses to communicate between two IPv6/IPv4 nodes over an IPv4 intranet. An ISATAP address combines a 64-bit unicast link-local, site-local, or global prefix (a global prefix might be a 6to4 prefix) with a 64-bit suffix constructed of the ISATAP identifier 0:5EFE, followed by the IPv4 address assigned to an interface of the host. The prefix is known as the subnet prefix. Although a 6to4 address can incorporate only a public IPv4 address, an ISATAP address can incorporate either a public or a private IPv4 address.
The following illustration shows the structure of an ISATAP address.
Table 1.8 shows an example of each type of ISATAP address.
Table 1. Examples of ISATAP addresses
Type of ISATAP Address |
ISATAP Address |
With link-local prefix |
FE80::5EFE:131.107.129.8* |
With site-local prefix |
FEC0::1111:0:5EFE:131.107.129.8* |
With global prefix |
3FFE:1A05:510:1111:0:5EFE:131.107.129.8* |
With global 6to4 prefix |
2002:9D36:1:2:0:5EFE:131.107.129.8* |
*Alternatively, the IPv4 address (in this example, 131.107.129.8) can be written in hexadecimal (in this example, 836B:8108).
By default, the IPv6 protocol for Windows XP and members of Windows Server 2003 automatically configures the ISATAP address of FE80::5EFE:w.x.y.z for each IPv4 address that is assigned to the node. This link-local ISATAP address allows two hosts to communicate over an IPv4 network by using each other's ISATAP address.
For more information about ISATAP tunneling, see "Routing IPv6 Traffic over an IPv4 Infrastructure" later in this chapter.
IPv6 multicast addresses are similar to IPv4 multicast addresses. Packets addressed to a multicast address are delivered to all interfaces that the address identifies.
The following illustration shows the structure of an IPv6 multicast address.
Table 1.9 explains each field in an IP multicast address. The prefix for multicast addresses is FF00::/8.
Table 1. Fields in a Multicast Address
Field |
Description |
Identifies the address as an IP multicast address. |
|
Flags |
Currently, the only defined flag is the Transient (T) flag. Set to zero, the T flag identifies the address as a permanently assigned multicast address. Set to , it identifies a transient address. |
Scope |
Indicates the scope of the multicast traffic, such as interface-local, link-local, site-local, organization-local, or global scope. |
Group ID |
identifies the multicast group. |
The IPv6 multicast solicited node address is used for efficient address resolution. The IPv4 ARP Request frame is sent to the MAC-level broadcast, which disturbs all nodes on the network segment. The multicast solicited node address combines the prefix FF02::1:FF00:0/104 with the last 24 bits of the IPv6 address being resolved. IPv6 uses the solicited node multicast address for the Neighbor Solicitation message (the IPv6 equivalent to the ARP Request frame) that resolves an IPv6 address to its link-layer address, disturbing few nodes during the address resolution process.
Anycast IPv6 addresses are similar to but more efficient than the anycast addresses in IPv4, which are used primarily by large ISPs. Anycast addresses use the unicast address space but function differently from other unicast addresses. IPv6 uses anycast addresses to identify multiple interfaces. IPv6 delivers packets addressed to an anycast address to the nearest interface that the address identifies. In contrast to a multicast address, where delivery is from one to many, an anycast address delivery is from one to one-of-many. Currently, anycast addresses are assigned only to routers and are used only as destination addresses.
An IPv6 host, including those with only one interface, typically has multiple IPv6 addresses. By default, link-local addresses are automatically configured for each interface on each IPv6 host or router. To communicate with non-neighboring nodes, a host must also be configured with unicast site-local or global addresses. A host obtains these additional addresses either from router advertisements or by manual assignment. Use commands in the netsh interface ipv6 context to manually configure IPv6 addresses.
In IPv6, hosts and routers are typically assigned the following addresses:
Unicast addresses:
A link-local address for each interface
A site-local address for each interface
One or more global addresses for each interface
The loopback address for the loopback interface
Multicast addresses (to listen for multicast traffic):
The interface-local scope all-nodes address (FF01::1)
The link-local scope all-nodes address (FF02::1)
The solicited node address for each unicast address on each interface
The multicast address for each joined group on each interface
In addition, IPv6 routers also have the following addresses:
Multicast addresses:
The interface-local scope all-routers address (FF01::2)
The link-local scope all-routers address (FF02::2)
The site-local scope all-routers address (FF05::2)
Anycast addresses:
A subnet-router anycast address for each subnet
Optional - Additional anycast addresses
Table 1.10 summarizes the major differences between IPv6 and IPv4 addresses.
Table 1. Differences Between IPv4 Addressing and IPv6 Addressing
IPv4 Address |
IPv6 Address |
Internet address classes |
N/A |
Multicast addresses (224.0.0.0/4) |
IPv6 multicast addresses (FF00::/8) |
Broadcast addresses |
N/A |
Unspecified address is 0.0.0.0 |
Unspecified address is :: |
Loopback address is 127.0.0.1 |
Loopback address is ::1 |
Public IP addresses |
Aggregatable global unicast addresses |
Private IP addresses |
Site-local addresses (FEC0::/48) |
Autoconfigured addresses |
Link-local addresses (FE80::/64) |
Dotted decimal notation |
|
Subnet mask or prefix length notation |
Prefix length notation only |
A resource records |
AAAA resource records |
|