IPv6 EUI-64 explained

Hi Jose,

Let’s look at an example:

R1#show interfaces GigabitEthernet 1 | include bia
  Hardware is CSR vNIC, address is fa16.3e60.0217 (bia fa16.3e60.0217)

The 7th bit is in the first two hexadecimal characters:

fa = 1111 1010

As you can see, the 7th bit is set to 1 here. Now let’s check the IPv6 address:

R1#show ipv6 interface GigabitEthernet 1 | include link-local
  IPv6 is enabled, link-local address is FE80::F816:3EFF:FE60:217

Let’s write down the complete uncompressed address:

FE80:0000:0000:0000:F816:3EFF:FE60:0217

Let’s look only at the EUI-64 part:

F816:3EFF:FE60:0217

We only care about the first two hexadecimal characters:

F8 = 1111 1000

As you can see, the 7th bit has been inverted from 1 to 0.

Let’s see what happens when we change the 7th bit in the MAC address, right now it starts with fa:

fa = 1111 1010

Let’s make it:

f8 = 1111 1000

R1(config)#interface gigabitEthernet 1
R1(config-if)#mac-address f816.3e60.0217

Our IPv6 address has become:

R1#show ipv6 interface GigabitEthernet 1 | include link-local
  IPv6 is enabled, link-local address is FE80::FA16:3EFF:FE60:217

The complete uncompressed address is:

FE80:0000:0000:0000:0000:FA16:3EFF:FE60:0217

Here’s the EUI-64 part:

FA16:3EFF:FE60:0217

First two hexadecimal characters:

FA = 1111 1000

As you can see, it got inverted. No matter if the 7th bit of the MAC address is a 0 or 1, it always gets inverted.

Hope this helps!

Rene