EUI-64 Generator
Turn a MAC address into its modified EUI-64 interface identifier and the resulting SLAAC and link-local IPv6 addresses.
Result
Derivation
- Original MAC
- 00:1b:44:11:3a:b7
- OUI (vendor prefix)
- 00:1B:44
- Device identifier
- 11:3A:B7
- Step 1 - split and insert
- 001b:44ff:fe11:3ab7
- Step 2 - flip bit 7 of byte 1
- 021b (was 001b)
- Full address (expanded)
- 2001:0db8:acad:0001:021b:44ff:fe11:3ab7
About EUI-64 Generator
Modified EUI-64 derives a 64-bit IPv6 interface identifier from a 48-bit MAC address. It is how link-local addresses are formed on most routers and how classic SLAAC built global addresses before privacy extensions became the default.
The two-step transform
First, fffe is inserted between the OUI (first three bytes) and the device identifier (last three). Then bit 7 of the first byte - the universal/local bit - is inverted. A globally unique burned-in MAC has that bit as 0, so after the flip it reads 1 in the interface ID. That inversion is the part everyone forgets.
Where you still see it
Link-local addresses (fe80::/64) on Cisco, Juniper and MikroTik interfaces are typically EUI-64 derived, which makes them predictable from the MAC - handy for troubleshooting neighbour discovery, and useful to remember when you are reviewing what your addressing plan reveals.
Common use cases
- Predicting a router interface link-local address from its MAC before it is reachable.
- Matching an IPv6 neighbour table entry back to a physical device.
- Explaining SLAAC address derivation during a design review or exam prep.
Edge cases and gotchas
- The U/L bit flip is inverted, not set: a locally administered MAC (bit already 1) becomes 0 in the interface ID.
- EUI-64 requires a /64 prefix; on longer prefixes there is no room for a 64-bit interface identifier.