- IPv6 Addressing -
IPv6 Basics
The most widespread implementation of IP currently is IPv4, which utilizes
a 32-bit address. Mathematically, a 32-bit address can provide roughly 4
billion unique IP addresses (232= 4,294,967,296). Practically, the number of
usable IPv4 addresses is much lower, as many addresses are reserved for
diagnostic, experimental, or multicast purposes.
The explosive growth of the Internet and corporate networks quickly led to
an IPv4 address shortage. Various solutions were developed to alleviate this
shortage, including CIDR, NAT, and Private Addressing. However, these
solutions could only serve as temporary fixes.
In response to the address shortage, IPv6 was developed. IPv6 increases the
address size to 128 bits, providing a nearly unlimited supply of addresses
(340,282,366,920,938,463,463,374,607,431,768,211,456 to be exact). This
provides roughly 50 octillion addresses per person alive on Earth today, or
roughly 3.7 x 1021 addresses per square inch of the Earth’s surface.
• Increased Address Space and Scalability – providing the absurd
number of possible addresses stated previously.
• Simplified Configuration – allows hosts to auto-configure their IPv6
addresses, based on network prefixes advertised by routers.
• Integrated Security – provides built-in authentication and encryption
into the IPv6 network header
• Compatibility with IPv4 – simplifies address migration, as IPv6 is
backward-compatible with IPv4
The IPv6 Address
The IPv6 address is 128 bits, as opposed to the 32-bit IPv4 address. Also
unlike IPv4, the IPv6 address is represented in hexadecimal notation,
separate by colons.
An example of an IPv6 address would be:
1254:1532:26B1:CC14:0123:1111:2222:3333
Each “grouping” (from here on called fields) of hexadecimal digits is 16
bits, with a total of eight fields. The hexadecimal values of an IPv6 address
are not case-sensitive.
We can drop any leading zeros in each field of an IPv6 address. For
example, consider the following address:
1423:0021:0C13:CC1E:3142:0001:2222:3333
We can condense that address to: 1423:21:C13:CC1E:3142:1:2222:3333
Only leading zeros can be condensed. If we have an entire field comprised of
zeros, we can further compact the following address:
F12F:0000:0000:CC1E:2412:1111:2222:3333
The condensed address would be: F12F::CC1E:2412:1111:2222:3333
Notice the double colons (::). We can only condense one set of contiguous
zero fields. Thus, if we had the following address:
F12F:0000:0000:CC1E:2412:0000:0000:3333
We could not condense that to: F12F::CC1E:2412::3333
The address would now be ambiguous, as we wouldn’t know
The IPv6 Address Hierarchy
IPv4 separated its address space into specific classes. The class of an IPv4
address was identified by the high-order bits of the first octet:
• Class A - (00000001 – 01111111, or 1 - 127)
• Class B - (10000000 – 10111111, or 128 - 191)
• Class C - (11000000 – 11011111, or 192 - 223)
• Class D - (11100000 – 11101111, or 224 - 239)
IPv6’s addressing structure is far more scalable. Less than 20% of the IPv6
address space has been designated for use, currently. The potential for
growth is enormous.
The address space that has been allocated is organized into several types,
determined by the high-order bits of the first field:
• Special Addresses – addresses begin 00xx:
• Link Local – addresses begin FE8x:
• Site Local – addresses begin FECx:
• Aggregate Global – addresses begin 2xxx: or 3xxx:
• Multicasts – addresses begin FFxx:
• Anycasts