If you type ipconfig on a IPv6-capable Windows system, you’ll probably see a few different IPv6 addresses, such as an IPv6 address, a temporary IPv6 address, and a link-local IPv6 address. What are these? Why so many? I’m here to answer that question and continue from where I left off in my last post about IPv6 addresses.
The IPv6 address notation uses 128-bit hexedecimal addresses with 8 groups or “quarters” or “hextets” separated by colons (:). Each quarter has 4 hexadecimal characters representing 16 bits. If we have 8 of these 16-bit quarters, that totals to 128-bits in length. An example would be 2001:db8:3c4d:0015:000C:29FF:FE53:45CA.
IPv6 Link-Local Address
The “IPv6 Link-Local address” can be thought of as the equivalent to IPv4’s Automatic Private IP Address (APIPA), which is between 169.254.0.1 to 169.254.255.254. The APIPA address is created by a client who cannot receive an IPv4 address from a DHCP server. That way, the client can still manage to connect to the network to communicate on the subnet, but won’t be able to communicate outside the subnet without a DHCP server providing it with DNS and gateway settings.
The IPv6 link-local address kind of has the same purpose, except it’s always created whether DHCP is present or not. In order to generate the link-local address, the first half of the address (the first 64-bits) will always be FE80:0000:0000:0000. With the 0s compressed, that would be Fe80::/10. The last 64-bits of the link-local address are usually just randomly generated. Older systems use the device’s EUI-64. It’s very unlikely two systems on the same subnet will have the same IPv6 link-local address.
The link-local address is NOT a globally routable address.
IPv6 Global Unicast Address
To surf the Web via IPv6, your system needs its own “IPv6 global Unicast Address.” To generate this unique address, your system sends out a router solicitation on the multicast address FF02::2. If you write it out, that would be FF02:0000:0000:0000:0000:0000:0000:0002. There are other IPv6 multicast addresses, but we don’t have to worry about that right now. All routers configured to respond to this multicast will hand out a 48-bit prefix of the network in which your system resides. The prefix is defined by your ISP.
The site prefix of an IPv6 address occupies 48 of the leftmost bits of the IPv6 address. For example, the site prefix of your upstream router’s IPv6 address 2001:db8:3c4d:0015:0000:0000:1a2f:1a2b/48 is contained in the leftmost 48 bits, which is the first 2 quarters of the address. That would be 2001:db8:3c4d. With zeros compressed, the 48-bit site prefix would be 2001:db8:3c4d::/48. The router also sends a 16-bit subnet prefix to the computer, which defines the internal topology of the network to a router. The last example IPv6 address we used has the following subnet prefix 0015. Thus, all together, the router is sending 2001:db8:3c4d:15::/64 to your computer. This will be the first 64-bit half of your IPv6 global unicast address.
What about the last 64-bit half? Your computer takes its 48-bit MAC address (also called a EUI-48) and splits it in half. Let’s say, for example, that your MAC address is 00-0C-29-53-45-CA. Your computer adds a “FFFE” right smack dab in the middle of the MAC address. When it does that, we get 000C:29FF:FE53:45CA. This is called the EUI-64 address and it adds this onto the prefix. Voila, we now have the last half of our unique IPv6 global unicast address. When we add it all together, your computer’s new global IPv6 address is now 2001:db8:3c4d:0015:000C:29FF:FE53:45CA.
Meyers, M. (2015). All in One CompTIA Network+ Certification Exam N10-006. McGraw-Hill Education: New York, NY.