In this course, we will see the basics of IPv6 addressing. At the end of the reading, you will be able to understand the basics of IPv6 addressing and identify them.
What is an IPv6 address?
IPv6 (Internet Protocol version 6) is the next generation Internet protocol that is gradually replacing the current IPv4 protocol.
IPv6 has a number of improvements over IPv4.
Indeed, the exhaustion of IPv4 addresses is one of the main reasons for a new IP version, IPv6.
The main difference is that IPv6 uses 128-bit addresses compared to the 32-bit addresses used with IPv4.
This means that there are more IP addresses available using IPv6 than those available with IPv4.
To be a bit precise, in IPv4, there are a total of 232 or 4 294 967 296 IP addresses.
While With IPv6 address, there is a total of 2128 or 340,282,366,920,938,463,374,607,431,768,211,456 IP addresses.
To fully understand IPv6 addressing, you need to understand the Hexadecimal numbering system.
Hexadecimal numbering system
Hexadecimal is therefore a positional numbering system that uses the base of 16.
To represent values in a readable format, the system uses the numbers 0 to 9 and the letters A to F to represent values from ten to fifteen.
Each hexadecimal digit can represent values from 0 to 15.
Here is a table of the hexadecimal numbering system.
|In decimal||In binary||In hexadecimal|
IPv6 Address Format
As I said above, the IPv6 address size is 128 bits.
IPv6 addresses are represented in hexadecimal. The 128-bit address is divided into 16 bits and each 16-bit block is converted into a 4-digit hexadecimal number separated by colons (:).
The format of the IPv6 address is xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx where each x is a hexadecimal number representing 4 bits.
IPv6 addresses range from 0000:0000:0000:0000:0000:0000:0000:0000 to ffff:ffff:ffff:ffff:ffff:ffff:ffff.
An IPv6 address can therefore be simplified by the following two methods:
- Omit leading zeros in all 16 bits. For example, the IPv6 address 2002:0DB8:0000:0000:0022:F376:FF3B:AC12 can be written as 2002:DB8:0:0:22:F376:FF3B:AC12.
- Colon: use a colon (::) instead of a series of zeros. For example, the above address can be further simplified to 2002:DB8::22:F376:FF3B:AC12.
The value of 1ʳᵉ method and 2ᵉ method will be interpreted by the computer as the same and unique IPv6 address.
IPv6 addresses use 128 bits to represent an address that includes bits to use for subnets.
The second half of the address (64 bits, the least significant) is always used for hosts only. And the rest for the routing prefix and subnets (see the table below).
|Routing prefix||Sub-networks||Host ID|
|48 bits||16 bits||64 bits|
Thus, the routing and subnetwork prefix is /64 and the host part is 64 bits.
Indeed, it is possible to increase the bits of the subnet beyond 16 bits, by borrowing host bits.
However, it is recommended to always use 64 bits for host addresses, as the automatic configuration of IPv6 requires 64 bits.
The IPv6 subnet works in the same way as the variable length subnet mask in IPv4.
Use of IPv6
IPv6 availability depends solely on your service provider, whether at home or at work.
In a dual-stack environment, IPv4 and IPv6 coexist along the same connection and do not require any particular type of connection.
Indeed, it is possible to configure IPv4 and IPv6 at the same time on the same device and this is called dual stack.
Here is the example on my computer:
Many operating system platforms support IPv6 today.
UNIX/Linux based platforms have supported IPv6 for years.
Under Microsoft systems, IPv6 is compatible since the Vista edition.
Even common web browsing and email applications are compatible with IPv6 if it is enabled and available.
The transition from IPv4 to IPv6 is therefore underway and will take as long as it takes.