Working through my cisco certification you learn about EUI-64. Essentially it takes your make address and converts it into an IPv6 address. Let’s look at an example:
- MAC: 0000.1111.1111.1111
- IPv6 EUI-64 Link Local Address – FE80::0200:111FF:FE1:1111
Let’s look at a couple of things first. You might notice a “0” turned into a “2” and “FFFE” was thrown in the middle.
The “7th” bit always get’s inverted when making a EUI-64 address. Let’s look at the bits and see how “2” was made. Below is the binary representation of the first 16 bits of Local Identifier.
In hex each character has a potential value from 0->15. That means Each character can be represented in binary by 4 bits. Let’s break down “0000” into 4 separate sections. I will make the 7th bit red and underlined.
0000 0000 0000 0000
Let’s “flip” the bit. To flip the bit “0” becomes a “1” and a “1” becomes a “0”.
0000 0010 0000 0000
the character equals “0010” in binary which is equal to:
(8×0)+(4×0)+(2×1)+(1X0) = 2
Because of this the conversion then looks like “0200”
Next because we need a host ID that is 64bits they take the 48bit Mac address and add 16 more bits and “pad the middle” of the address with “FFFE”.
You might be wondering why I am mentioning all this! Microsoft saw early on that people and computers could be easily tracked by companies if their addresses were made up of their never changing “Burned-in” Mac addresses!
Because of this RFC 3041 was made. It was made to create a random generated Host-ID so that companies like Google couldn’t easily track you.
Click the picture to see it blown up. Notice how the MAC address isn’t inside the Link-Local IPv6 Address!
Here’s a link from Microsoft. The randomly generated info is near the bottom: http://msdn.microsoft.com/en-us/library/aa915616.aspx
Notes on EUI-64:
So what is up with the % and then number in Microsoft’s IPv6 addresses. In IP 4 what would happen if you had an IP address on separate NIC’s that were in the same network?
eg: NIC #1 – 10.1.1.1 /24 and NIC #2 set to 10.1.1.2 /24?
Wouldn’t work right?
Well the % serves as a zone identifier! http://superuser.com/questions/99746/why-is-there-a-percent-sign-in-the-ipv6-address