IPv6 sees the IP address size for each network interface increased from 32 bits to 128 bits, giving a total address space of 2^32 and 2^128, respectively. To give you an idea of the difference between these two spaces, 2^32 = 4,294,967,296 (about 1 billion less than the world’s population, while 2^128 = 3.402 × e^38! This expansion will not only support the massive expansion of the Internet through the connection of billions of embedded devices, it will also ensure that many stopgap measures such as DHCP and NAT can be disbanded if they serve no other purpose in a specific environment. Although some competing proposals argued for only a 64-bit IPv6 address space, this would not have enabled some of the useful features of IPv6, including the ability to do away with subnet masks. This allows autoconfiguration of network interfaces without the user having to know what class of subnet (A, B, or C) their local area network belongs to.

Using 128-bit addressing makes autoconfiguration much easier in IPv6 compared to IPv4: the lower 64 bits are composed of the hardware (MAC) address for the network interface, while the upper 64 bits comprise a router message. Since every subnet now has an equivalent sized subnet prefix, it is no longer used to distinguish different subnet classes.

IPv6 has three different interface types that addresses can be identifiers for:

  • Unicast An identifier for a single, specific interface.

  • Multicast A broadcast-like identifier for all interfaces belonging to a set.

  • Anycast Identifier for only one interface that belongs to a set, usually the member that is closest to the source.

While unicast and multicast addressing are readily identifiable from IPv4, the inclusion of anycast addressing provides the foundation for significant advances in the areas of high availability, redundancy, and network storage, since any member of a set of interfaces designated by their addresses can be selected based on some distance metric or availability at runtime. For example, a storage area network (SAN) may support distributed backup services for a multinational organization. When a client has a backup scheduled, it is directed to the nearest server node based on geographical distance. If that node is unavailable, the next available server node in the set of server nodes is selected, and so on. While this sort of decision logic can be programmed in at the application layer, its inclusion in the Internet layer makes it ubiquitous across all applications and services operating on a network.

Like IPv4, IPv6 has a number of special addresses that have specific purposes and that administrators should be aware of:

  • Loopback address 0:0:0:0:0:0:0:1

  • IPv4 address 96 bits zero-padded to the 32-bit original address

  • Local site address 1111 1110 11

  • Local link address 1111 1110 10

  • Multicast address 1111 1111

  • Unspecific address 0:0:0:0:0:0:0:0

IPv6 addresses are being allocated by using a simple formula:

Field Name







Number of bits

3 (e.g., 010)






In this scheme, the registry is one of the following organizations, which caters to a specific region:

  • 10000 Multiregional (IANA)

  • 01000 RIPE NCC (Europe)

  • 11000 INTERNIC (North America)

  • 10100 APNIC (Asia/Pacific)

The provider is some network service provider within a specific region, and the subscriber is the end-user organization. Within the organization subnets can still exist, within which individual network interfaces will belong.


At present, provider-based prefixes are being used to utilize a subset of all available address sets for the current range of networks connected to the Internet.

IPv6 addresses are much longer than IPv4 addresses, so they are difficult for humans to learn and use. Because the address space is so large, there are also large portions of the address that are presently zero padded. Thus, a notation has been introduced to simplify the representation of repeated sections of zeros. In order to eliminate any ambiguity in the resolution of zero-padded sections, only one set of zeros may be represented by the dual-colon token :: in each address. For example, the address 1080:0:0:0:0:711:100D:306B could also be represented as 1080::711:100D:306B, or the address 1080:0:0:0:0:0:100D:306B could be represented by 1080::100D:306B. However, it would not be possible to represent the address 1080:0:208:0:711:0:0:306B as 1080::208::711::306B because the position of each nonzero bit is ambiguous.

For further information, read the IP Version 6 Addressing Architecture RFC at

Exercise 36-1 IPv6 Addresses  How else could the address 1080:1:0:0:0:611:100E:305B be represented?

Part I: Solaris 9 Operating Environment, Exam I