All the devices on the Internet is provided with a unique address or IP Address for identifying and communicating with each other. In the last few years, there has been a rapid growth in electronics devices such as computers, mobile phones that are connected to the Internet. IPV6 is the most recent version of IP (Internet Protocol) which is used for addressing devices over a network.
IPV4 uses 32 bit addressing and can have a total of 4.29 x 109 = 4.3 billion addresses, and with Desktops, laptops, smart phones, tablets, gaming systems, and just about everything else connecting to the Internet, we’ve we have reached an end of IPV4 Address. IPV6 uses 128 – bit addressing and is capable of 340 undecillion addresses.
IPV6 can also provide auto configuration capabilites that are simpler and more easily manageable. In the security point of view, IPSEC is built in on IPV6 protocol, which can be used with a suitable key infrastructure.
IPv6 is 128 bit long which is very long compared to IPV4 which is 32 bit long.
For our convenience, this long string is converted to hexadecimal for better usability.
This is done by splitting the long binary digit to 8 groups of 16 bits each. For a visual quality, we will be adding a colon (:) in between each groups.
2001 : 0DB8 : 0021 : 0111 : 0 : 0 : 0 : 1
So basically, this long string is converted to 8 groups of 4 hexadecimal digits separated by colon.
IPV6 Network and Host Address
There are mainly 2 components in an IPV6 Address
We have a Network Portion (Similar to a common street name) which is used to identify you network (on the left side) and a Unique Host Identifier (Like a House Number) which is used to identify your Computer (on the right side)
2001 : 0DB8 : 0021 : 0111 : 0 : 0 : 0 : 1 /64
Everybody on your network will be having the same Network Part and each host will be having a unique host ID.
Note: Initial Zeros can be skipped. The above address can also be written as
2001 : DB8 : 21 : 111 : 0 : 0 : 0 : 1 /64
2001 : DB8 : 21 : 111 : : 1 /64 (Skipping the Zeros; but can only be done on one sets of consecutive zero bits group)
Network Mask on the IP address tells us how many of the 128 bits (from Left) are used to identify network. Most of the time, we will be splitting the Network ID and Host ID 50 -50 (64 bit for Network and 64 bits for Host); left half will be the network and right half will be the host.
2001 : 0DB8 : 0021 : 0111 : 0 : 0 : 0 : 1 / 64
Link Local IPV6 Address
In IPV4 an interface is provided with a single IP address. But IPV6 is designed in such a way that an interface is given with two IP addresses. The one which can be routed and reached across the internet and another one known as the Link Local Address which holds good only in the local segment
Usually Link Local Address starts with ‘FE80‘, and all the devices on that network will be having a Link Local Address starting with ‘FE80‘.
Deriving Link Local Address
The first part (Network Part – 64 Bits) of Link Local Address will be ‘ FE80 : 0 : 0 : 0 ‘. So where does the second part (HOST ID – 64 Bits) come from? The short answer is, the MAC address.
Now what is MAC Address? Well, MAC address is the hardware address that is burned into the hardware interface. All of the interfaces- wired or wireless will be having a UNIQUE 48 bit hardware address.
Consider a MAC Address –
(HEX) – 7A : 37 : 1C : 7A : E2 : 6A
Binary – 0111 1010 0011 0111 0001 1100 0111 1010 1110 0010 0110 1010
Here we divide this MAC Address into equal halves and add a FFFE in the middle
The MAC now becomes
(HEX) – 7A : 37 : 1C : FF : FE : 7A : E2 : 6A
Binary – 0111 1010 0011 0111 0001 1100 1111 1111 1111 1110 0111 1010 1110 0010 0110 1010
Now we invert the 7th bit. The Binary Value now becomes
0111 1000 0011 0111 0001 1100 1111 1111 1111 1110 0111 1010 1110 0010 0110 1010
78 : 37 : 1C : FF : FE : 7A : E2 : 6A
78 37 : 1CFF : FE7A : E26A
So the full IPV6 Address will be
FE80 : 0 : 0 : 0 : 78 37 : 1CFF : FE7A : E26A