Achievable logoAchievable logo
CCNA
Sign in
Sign up
Purchase
Textbook
Practice exams
Support
How it works
Exam catalog
Mountain with a flag at the peak
Textbook
Introduction
1. Introduction to networking
2. Administering Ethernet LANs
3. IP connectivity
4. Network services
5. IPv6
5.1 IPv6 address format and abbreviation
5.2 Modified EUI-64 and IPv6 addressing
6. Wireless networking
7. Network management and administering network devices
8. Network security fundamentals
9. Network automation and programmability
Wrapping up
Achievable logoAchievable logo
5.2 Modified EUI-64 and IPv6 addressing
Achievable CCNA
5. IPv6
Our CCNA course is currently in development and is a work-in-progress.

Modified EUI-64 and IPv6 addressing

7 min read
Font
Discuss
Share
Feedback

Modified EUI-64

One useful feature of IPv6 is that a host can generate its own IPv6 address. One common method is Modified Extended Unique Identifier 64 (EUI-64).

To build an IPv6 address this way, the host needs:

  • A 64-bit network prefix (often learned from an IPv6 router), and
  • A 64-bit interface ID (the host portion)

A host can also generate a link-local address using EUI-64. Since every IPv6 host already knows the link-local prefix, the main task is generating the 64-bit interface ID. With EUI-64, the host uses its MAC address as the starting point to derive that interface ID.

There’s one issue if you try to use the MAC address as-is.

Let’s say we want to generate a link-local IPv6 address for a NIC with this MAC address:

00:21:2A:B5:6E:10

It can help to rewrite the MAC address in an IPv6-like quartet format:

0021:2AB5:6E10

If the host tried to use that directly as the interface ID, the address would look like this:

FE80:0000:0000:0000:0021:2AB5:6E10:???

Notice the problem above? What is the issue here?

(spoiler)

We are missing a quartet to complete the IPv6 address. There are 7 quartets instead of the 8 quartets required for a full IPv6 address.

The reason for this problem is that MAC addresses are 48 bits in length. If the prefix (network ID) is 64 bits and we add 48 bits from the MAC address for the interface ID (host) portion, 64+48=112. That gives a 112-bit address, so we’re missing 16 bits, which is exactly the size of one quartet.

EUI-64 solves this by inserting an additional 16 bits in the middle of the MAC address. Those 16 bits are 4 hex digits:

FFFE

Placing these 4 hex digits in the middle of the MAC-derived value completes the full 64-bit interface ID.

Before inserting those 16 bits, one more change is made. To support IPv6 features, the 7th bit within the MAC address is inverted. That means:

  • If the 7th bit is 0, it becomes 1.
  • If the 7th bit is 1, it becomes 0.

For example:

Image 242 Image Title - Inverting the 7th bit of the MAC address

The first two hex digits of the MAC address (00) represent 8 bits (4 bits per hex digit). Convert those 8 bits to binary, locate the 7th bit, and invert it. Converting back to hex changes the first two hex digits from 00 to 02.

So the modified value becomes:

0221:2AB5:6E10

Now insert FF:FE in the middle to create the full 64-bit interface ID:

Image 243 Image Title - Inserting FFFE in the middle of the MAC address to generate the 64-bit Interface ID

0221:2AFF:FEB5:6E10

It is important to realize that we are not modifying the actual MAC address. The MAC address itself will remain the same. We are simply using the values from the MAC address to derive the interface ID portion of this EUI-64 link-local address.

The final link-local IPv6 address is:

FE80:0000:0000:0000:0221:2AFF:FEB5:6E10/64

Abbreviated with the double-colon technique:

FE80::221:2AFF:FEB5:6E10/64

Let’s re-cap the steps to generate a Link Local IPv6 address using EUI-64 assuming a MAC address of: 00:21:2A:B5:6E:10

  1. Invert the 7th bit of the MAC address by converting the first two Hex digits into Binary and we end up with - 0221:2AB5:6E10
  2. Split the inverted MAC address in half - 0221:2A | B5:6E10
  3. Insert the value “FF:FE” in between the inverted MAC address - 0221:2AFF:FEB5:6E10
  4. The final Link Local IPv6 address should now look like this - FE80:0000:0000:0000:0221:2AFF:FEB5:6E10/64
  5. In its condensed form, it would look like this: FE80::221:2AFF:FEB5:6E10/64

Please note that this same EUI-64 process can be used to generate a Unicast IPv6 address as well, as long as the Network Prefix is known. Routers can advertise Network Prefixes to IPv6 hosts in order for them to complete the IPv6 EUI-64 process.

IPv6 routing

IPv6 routing works very similarly to IPv4 routing (at least within the scope of the CCNA 200-301 v1.1 exam). The main difference is that IPv6 uses IPv6 addresses instead of IPv4 addresses.

IPv4 and IPv6 can also run at the same time on a router. This is called dual stack.

Enabling IPv6 on a Cisco Router

Before you configure IPv6 addresses and routes, you must enable IPv6 routing. In global configuration mode, enter:

configure terminal
ipv6 unicast-routing

After IPv6 routing is enabled, assign an IPv6 address to a router interface.

For example, suppose we want to use the global unicast prefix 2001:DB8:A:B::/64 and assign 2001:DB8:A:B::1/64 to the Gigabitethernet0/0 interface on R1.

On R1, enter interface configuration mode and use:

ipv6 address 2001:DB8:A:B::1/64
no shutdown

  • The ipv6 address [IPv6 Prefix, Interface ID and /Prefix length] command assigns the IPv6 address.
  • The no shutdown command enables the interface.

To verify the IPv6 address on the interface, use:

show ipv6 interface brief

Image 244 Image Title - show ipv6 interface brief output on R1

Configuring Modified EUI-64 on a router interface

Instead of manually choosing the interface ID, you can have the router auto-generate it using EUI-64.

Using the same global unicast prefix 2001:DB8:A:B::/64, the router uses the MAC address on the Gigabitethernet0/0 interface to generate the full global unicast IPv6 address.

First, view the MAC address on Gigabitethernet0/0:

show interface gigabitethernet0/0

Image 245 Image Title - show interface gigabitethernet0/0 output on R1

Now, assuming the previous IPv6 address has been removed, configure EUI-64 on Gigabitethernet0/0:

interface gigabitethernet0/0
ipv6 address 2001:DB8:A:B::/64 eui-64

The ipv6 address [IPv6 Prefix and /Prefix length] eui-64 command enables EUI-64 so the router can generate the interface ID from the interface’s MAC address.

Image 246 Image Title - configuring EUI-64 on the gigabitethernet0/0 interface on R1 and verifying

Modified EUI-64

  • Allows IPv6 hosts to auto-generate interface IDs using MAC address
  • MAC address (48 bits) expanded to 64 bits by:
    • Inserting FFFE in the middle
    • Inverting the 7th bit of the MAC address
  • Resulting interface ID used with network prefix for full IPv6 address

Steps to generate EUI-64 interface ID

  • Invert 7th bit of MAC address (first byte)
  • Split MAC address, insert FFFE in the middle
  • Combine with prefix for full IPv6 address (e.g., FE80::/64 for link-local)

IPv6 routing

  • Similar to IPv4 routing, but uses IPv6 addresses
  • Dual stack: routers can run IPv4 and IPv6 simultaneously
  • Enable IPv6 routing with: ipv6 unicast-routing

Configuring IPv6 addresses on routers

  • Assign IPv6 address: ipv6 address [address/prefix-length]
  • Enable interface: no shutdown
  • Verify: show ipv6 interface brief

Configuring modified EUI-64 on router interfaces

  • Use: ipv6 address [prefix/prefix-length] eui-64
  • Router auto-generates interface ID from MAC address

IPv6 static routing

  • Configure static route: ipv6 route [destination/prefix-length] [next-hop-address]
  • Floating static route: add administrative distance at end of command
  • Verify routes: show ipv6 route
  • Successful ping: exclamation marks (!!!!!), initial timeout is normal (.!!!!)

IPv6 static routes with link-local next hops

  • Specify exit interface when using link-local next hop
  • Syntax: ipv6 route [destination/prefix-length] [exit-interface] [link-local-address]
    • Exit interface must come before link-local address

IPv6 static host routes

  • Host route uses /128 prefix length
  • Syntax: ipv6 route [host-address/128] [next-hop-address]

IPv6 default routes

  • Default route prefix: ::/0
  • Syntax: ipv6 route ::/0 [next-hop-address]

Sign up for free to take 10 quiz questions on this topic

Previous
Next  | 6.1.1 Wireless networking fundamentals
All rights reserved ©2016 - 2026 Achievable, Inc.

Modified EUI-64 and IPv6 addressing

Modified EUI-64

One useful feature of IPv6 is that a host can generate its own IPv6 address. One common method is Modified Extended Unique Identifier 64 (EUI-64).

To build an IPv6 address this way, the host needs:

  • A 64-bit network prefix (often learned from an IPv6 router), and
  • A 64-bit interface ID (the host portion)

A host can also generate a link-local address using EUI-64. Since every IPv6 host already knows the link-local prefix, the main task is generating the 64-bit interface ID. With EUI-64, the host uses its MAC address as the starting point to derive that interface ID.

There’s one issue if you try to use the MAC address as-is.

Let’s say we want to generate a link-local IPv6 address for a NIC with this MAC address:

00:21:2A:B5:6E:10

It can help to rewrite the MAC address in an IPv6-like quartet format:

0021:2AB5:6E10

If the host tried to use that directly as the interface ID, the address would look like this:

FE80:0000:0000:0000:0021:2AB5:6E10:???

Notice the problem above? What is the issue here?

(spoiler)

We are missing a quartet to complete the IPv6 address. There are 7 quartets instead of the 8 quartets required for a full IPv6 address.

The reason for this problem is that MAC addresses are 48 bits in length. If the prefix (network ID) is 64 bits and we add 48 bits from the MAC address for the interface ID (host) portion, 64+48=112. That gives a 112-bit address, so we’re missing 16 bits, which is exactly the size of one quartet.

EUI-64 solves this by inserting an additional 16 bits in the middle of the MAC address. Those 16 bits are 4 hex digits:

FFFE

Placing these 4 hex digits in the middle of the MAC-derived value completes the full 64-bit interface ID.

Before inserting those 16 bits, one more change is made. To support IPv6 features, the 7th bit within the MAC address is inverted. That means:

  • If the 7th bit is 0, it becomes 1.
  • If the 7th bit is 1, it becomes 0.

For example:

Image 242 Image Title - Inverting the 7th bit of the MAC address

The first two hex digits of the MAC address (00) represent 8 bits (4 bits per hex digit). Convert those 8 bits to binary, locate the 7th bit, and invert it. Converting back to hex changes the first two hex digits from 00 to 02.

So the modified value becomes:

0221:2AB5:6E10

Now insert FF:FE in the middle to create the full 64-bit interface ID:

Image 243 Image Title - Inserting FFFE in the middle of the MAC address to generate the 64-bit Interface ID

0221:2AFF:FEB5:6E10

It is important to realize that we are not modifying the actual MAC address. The MAC address itself will remain the same. We are simply using the values from the MAC address to derive the interface ID portion of this EUI-64 link-local address.

The final link-local IPv6 address is:

FE80:0000:0000:0000:0221:2AFF:FEB5:6E10/64

Abbreviated with the double-colon technique:

FE80::221:2AFF:FEB5:6E10/64

Let’s re-cap the steps to generate a Link Local IPv6 address using EUI-64 assuming a MAC address of: 00:21:2A:B5:6E:10

  1. Invert the 7th bit of the MAC address by converting the first two Hex digits into Binary and we end up with - 0221:2AB5:6E10
  2. Split the inverted MAC address in half - 0221:2A | B5:6E10
  3. Insert the value “FF:FE” in between the inverted MAC address - 0221:2AFF:FEB5:6E10
  4. The final Link Local IPv6 address should now look like this - FE80:0000:0000:0000:0221:2AFF:FEB5:6E10/64
  5. In its condensed form, it would look like this: FE80::221:2AFF:FEB5:6E10/64

Please note that this same EUI-64 process can be used to generate a Unicast IPv6 address as well, as long as the Network Prefix is known. Routers can advertise Network Prefixes to IPv6 hosts in order for them to complete the IPv6 EUI-64 process.

IPv6 routing

IPv6 routing works very similarly to IPv4 routing (at least within the scope of the CCNA 200-301 v1.1 exam). The main difference is that IPv6 uses IPv6 addresses instead of IPv4 addresses.

IPv4 and IPv6 can also run at the same time on a router. This is called dual stack.

Enabling IPv6 on a Cisco Router

Before you configure IPv6 addresses and routes, you must enable IPv6 routing. In global configuration mode, enter:

configure terminal
ipv6 unicast-routing

After IPv6 routing is enabled, assign an IPv6 address to a router interface.

For example, suppose we want to use the global unicast prefix 2001:DB8:A:B::/64 and assign 2001:DB8:A:B::1/64 to the Gigabitethernet0/0 interface on R1.

On R1, enter interface configuration mode and use:

ipv6 address 2001:DB8:A:B::1/64
no shutdown

  • The ipv6 address [IPv6 Prefix, Interface ID and /Prefix length] command assigns the IPv6 address.
  • The no shutdown command enables the interface.

To verify the IPv6 address on the interface, use:

show ipv6 interface brief

Image 244 Image Title - show ipv6 interface brief output on R1

Configuring Modified EUI-64 on a router interface

Instead of manually choosing the interface ID, you can have the router auto-generate it using EUI-64.

Using the same global unicast prefix 2001:DB8:A:B::/64, the router uses the MAC address on the Gigabitethernet0/0 interface to generate the full global unicast IPv6 address.

First, view the MAC address on Gigabitethernet0/0:

show interface gigabitethernet0/0

Image 245 Image Title - show interface gigabitethernet0/0 output on R1

Now, assuming the previous IPv6 address has been removed, configure EUI-64 on Gigabitethernet0/0:

interface gigabitethernet0/0
ipv6 address 2001:DB8:A:B::/64 eui-64

The ipv6 address [IPv6 Prefix and /Prefix length] eui-64 command enables EUI-64 so the router can generate the interface ID from the interface’s MAC address.

Image 246 Image Title - configuring EUI-64 on the gigabitethernet0/0 interface on R1 and verifying

Key points

Modified EUI-64

  • Allows IPv6 hosts to auto-generate interface IDs using MAC address
  • MAC address (48 bits) expanded to 64 bits by:
    • Inserting FFFE in the middle
    • Inverting the 7th bit of the MAC address
  • Resulting interface ID used with network prefix for full IPv6 address

Steps to generate EUI-64 interface ID

  • Invert 7th bit of MAC address (first byte)
  • Split MAC address, insert FFFE in the middle
  • Combine with prefix for full IPv6 address (e.g., FE80::/64 for link-local)

IPv6 routing

  • Similar to IPv4 routing, but uses IPv6 addresses
  • Dual stack: routers can run IPv4 and IPv6 simultaneously
  • Enable IPv6 routing with: {`ipv6 unicast-routing`}

Configuring IPv6 addresses on routers

  • Assign IPv6 address: {`ipv6 address [address/prefix-length]`}
  • Enable interface: {`no shutdown`}
  • Verify: {`show ipv6 interface brief`}

Configuring modified EUI-64 on router interfaces

  • Use: {`ipv6 address [prefix/prefix-length] eui-64`}
  • Router auto-generates interface ID from MAC address

IPv6 static routing

  • Configure static route: {`ipv6 route [destination/prefix-length] [next-hop-address]`}
  • Floating static route: add administrative distance at end of command
  • Verify routes: {`show ipv6 route`}
  • Successful ping: exclamation marks ({`!!!!!`}), initial timeout is normal ({`.!!!!`})

IPv6 static routes with link-local next hops

  • Specify exit interface when using link-local next hop
  • Syntax: {`ipv6 route [destination/prefix-length] [exit-interface] [link-local-address]`}
    • Exit interface must come before link-local address

IPv6 static host routes

  • Host route uses /128 prefix length
  • Syntax: {`ipv6 route [host-address/128] [next-hop-address]`}

IPv6 default routes

  • Default route prefix: {`::/0`}
  • Syntax: {`ipv6 route ::/0 [next-hop-address]`}

More from IPv6

  • IPv6 address format and abbreviation