3.1.b (ii) EUI-64

3.1.b (ii) EUI-64

 

EUI-64 stands for Extended Unique Identifier, it is a way for an IPv6 host to automatically assign itself an IPv6 address via using it’s mac address.

EUI-64 allows us to configure the interface id part of an IPv6 address (last 64 bits)
EUI-64 requires that the network part of the address be 64 bits and no smaller.

EUI-64 is a 3 step process:
1.Take the interface’s MAC address
2.Puts FFFE in the middle
3.Then from the interface ID, flip the seventh bit from 0 to 1, or 1 to 0 (must be in binary first)

Here is the process…

here is the burned in mac:
file:///tmp/ct_tmp/1.pngfile:///tmp/ct_tmp/1.png

If we convert 0027 from hex to binary we get 0000 0000 0010 0111, the seventh bit is 0 so we make it 1.

here it is after we flipped it.
0000 0010 0010 0111 converted to hex it says 227

And here is the EUI-64 derived addressed for link local and global
file:///tmp/ct_tmp/2.pngfile:///tmp/ct_tmp/1.png

This seventh bit is called the universal/locally significant bit. It’s purpose is to let us know if the address came from DHCP, or it was generated via EUI-64.

This process happens automatically when we enable IPv6.

We also have IPv6 temporary addresses, which is a privacy extension. This prevents people from correlating a device based on their IP address. Meaning getting the MAC of a phone or PC will now allow us to find the address and hone in on that traffic. Basically helps them do recon.

This allows us to randomly generate the EUI-64 address, and then it’s changed over-time to prevent further recon.

Why was FFFE chosen to be put in the middle of the mac address? This is a reserved HEX address and thus will never be used by manufacturers.

Utilizing EUI-64 when configuring an interface:

What we can also do is give our interface a /64 prefix, and then tell it to use eui-64 for the rest of the configuration. Here’s how that’s done.

Router(config)#ipv6 unicast-routing
Router(config)#int g0/1
Router(config-if)#ipv6 address 2000:9999::/64 eui-64

Notice below the interface used the prefix we gave it and configured the rest of the 64 bits via it’s EUI64 process.

file:///tmp/ct_tmp/3.pngfile:///tmp/ct_tmp/1.png