Config Lab: IPv6 EUI-64 Addressing 1

 In 200-301 V1 Ch24: Configure IPv6 Addressing, 200-301 V1 Part 7: IPv6, 200-301 V1 Parts, Config Lab, Config Lab CCNA Vol 1 Part 7, Hands-on

Do you know how to take an interface MAC address and determine what IPv6 address the interface would use when using EUI-64? Could you then do the reverse: take the IPv6 address, and predict what MAC address is used for the interface? This latest lab asks you to configure IPv6 addresses, but with a twist: use modified EUI-64, but starting with a desired IPv6 address. Your job: calculate the prefix and MAC address that you need so that the router chooses the IPv6 addresses requested in the lab.

All about Config Labs

The blog has a series of lab exercises called “Config Labs.” Each lab presents a topology with the relevant initial configuration for each device. The lab also lists new requirements, after which you should create the additional configuration to meet those requirements. You can do the lab on paper, in a text editor, or use software tools like Cisco Packet Tracer or Cisco Modeling Labs.

Once you have created your answer, you can click various tabs at the bottom of this post to see the lab answers, comments about the lab, and other helpful information.

The Lab Exercise


Routers can be configured with full IPv6 unicast addresses on their interfaces, but they can also be configured using the modified EUI-64 address assignment feature. With this feature, the router creates the EUI-64 value by taking the interface MAC address (48 bits, or 12 hex digits), inverts the 7th bit, and inserts hex FFFE into the middle. Then it combines the 64-bit prefix configured on the ipv6 address interface subcommand, with this EUI-64 calculated 64-bit value, to create the interface IPv6 address.

In this lab, configure all router interfaces using the modified EUI-64 feature to create the IPv6 addresses listed in the table. The specific rules for this lab are:

  • Use EUI-64 addressing on all router interfaces.
  • Use the mac-address command to configure each interface’s MAC address, so that the resulting IPv6 address will match table 1.
  • Assume all router interfaces shown in the lab are up and working.


Device Interface IPv6 Address


R1 GigabitEthernet0/2 2001:BAE:274F:BAED:AE13:72FF:FE94:6256
R2 GigabitEthernet0/1 2000::C281:ABFF:FEED:C724
R2 GigabitEthernet0/2 2001:BA82:B0AE:CAE:7A24:FBFF:FECE:A103
R3 GigabitEthernet0/1 2000::214:ABFF:FEC2:8ABE
R3 GigabitEthernet0/2 2001:BA81:8326:2753:AE13:FEFF:FEDA:BECA
R4 GigabitEthernet0/1 2000::AEED:ABFF:FEEC:FDAC
R4 GigabitEthernet0/2 2001:BEDE:AB81:9173:9A76:12FF:FE34:7654

Table 1 – Final IPv6 Address Assignments



Figure 1: EUI-64 IPv6 Addressing Topology

Initial Configuration

Examples 1, 2, 3, and 4 show the beginning configuration state of R1, R2, R3, and R4.

hostname R1
ipv6 unicast-routing
interface GigabitEthernet0/1
 no shutdown
interface GigabitEthernet0/2
 no shutdown

Example 1: R1 Config


hostname R2
ipv6 unicast-routing
interface GigabitEthernet0/1
 no shutdown
interface GigabitEthernet0/2
 no shutdown

Example 2: R2 Config


hostname R3
ipv6 unicast-routing
interface GigabitEthernet0/1
 no shutdown
interface GigabitEthernet0/2
 no shutdown

Example 3: R3 Config


hostname R4
ipv6 unicast-routing
interface GigabitEthernet0/1
 no shutdown
interface GigabitEthernet0/2
 no shutdown

Example 4: R4 Config

Answer Options - Click Tabs to Reveal

You can learn a lot and strengthen real learning of the topics by creating the configuration – even without a router or switch CLI. In fact, these labs were originally built to be used solely as a paper exercise!

To answer, just think about the lab. Refer to your primary learning material for CCNA, your notes, and create the configuration on paper or in a text editor. Then check your answer versus the answer post, which is linked at the bottom of the lab, just above the comments section.

You can also implement the lab using the Cisco Packet Tracer network simulator. With this option, you use Cisco’s free Packet Tracer simulator. You open a file that begins with the initial configuration already loaded. Then you implement your configuration and test to determine if it met the requirements of the lab.

(Use this link for more information about Cisco Packet Tracer.)

Use this workflow to do the labs in Cisco Packet Tracer:

  1. Download the .pkt file linked below.
  2. Open the .pkt file, creating a working lab with the same topology and interfaces as the lab exercise.
  3. Add your planned configuration to the lab.
  4. Test the configuration using some of the suggestions below.

Download this lab’s Packet Tracer File

You can also implement the lab using Cisco Modeling Labs – Personal (CML-P). CML-P (or simply CML) replaced Cisco Virtual Internet Routing Lab (VIRL) software in 2020, in effect serving as VIRL Version 2.

If you prefer to use CML, use a similar workflow as you would use if using Cisco Packet Tracer, as follows:

  1. Download the CML file (filetype .yaml) linked below.
  2. Import the lab’s CML file into CML and then start the lab.
  3. Compare the lab topology and interface IDs to this lab, as they may differ (more detail below).
  4. Add your planned configuration to the lab.
  5. Test the configuration using some of the suggestions below.

Download this lab’s CML file!


Network Device Info:

The CML topology matches the lab topology.

Lab Answers Below: Spoiler Alert

Lab Answers: Configuration (Click Tab to Reveal)



Figure 1: EUI-64 IPv6 Addressing Topology

interface GigabitEthernet0/1
 mac-address 0200.1234.5678
 ipv6 address 2000::/64 eui-64
interface GigabitEthernet0/2
 mac-address ac13.7294.6256
 ipv6 address 2001:BAE:274F:BAED::/64 eui-64

Example 5: R1 Config


interface GigabitEthernet0/1
 mac-address c081.abed.c724
 ipv6 address 2000::/64 eui-64
interface GigabitEthernet0/2
 mac-address 7824.fbce.a103
 ipv6 address 2001:BA82:B0AE:CAE::/64 eui-64

Example 6: R2 Config


interface GigabitEthernet0/1
 mac-address 0014.abc2.8abe
 ipv6 address 2000::/64 eui-64
interface GigabitEthernet0/2
 mac-address ac13.feda.beca
 ipv6 address 2001:BA81:8326:2753::/64 eui-64

Example 7: R3 Config


interface GigabitEthernet0/1
 mac-address aced.abec.fdac
 ipv6 address 2000::/64 eui-64
interface GigabitEthernet0/2
 mac-address 9876.1234.7654
 ipv6 address 2001:BEDE:AB81:9173::/64 eui-64

Example 8: R4 Config

Commentary, Issues, and Verification Tips (Click Tabs to Reveal)


The EUI-64 process uses as input the MAC address of the interface. Cisco devices use a MAC address from a couple of sources: either the MAC address assigned to the interface by the manufacturer, or the address configured with the mac-address command. This lab uses a configured MAC address so that the address value is more obvious. Note that non-Ethernet interfaces like serial interfaces do not have MAC addresses, so when building an IPv6 address for a serial interface, IOS borrows the MAC address from lowest numbered Ethernet interface on the device.

The EUI-64 process takes the MAC address (12 hex digits), inserts FFFE in the middle, and inverts the 7th bit. For example, if the MAC address 1234.5678.1234 was used, this first split would result in 1234.56 and 78.1234. Then, the 16-byte string ‘FF FE’ is placed between them; this results in 1234.56FF.FE78.1234. Finally, the 7th bit counting from the left, started at 1, is inverted (if it was 1 it would be come 0 and vise versa); this results in 1034.56FF.FE78.1234.

Table 2 re-lists the IPv6 addresses you should see by the end of the lab, along with the prefix value. You should have configured the prefix in the ipv6 address prefix/prefix-length eui-64 command, not the entire IPv6 address from the table. With the eui-64 parameter, the router completes the last part of the IPv6 address.

Rx Int. IPv6 Address Prefixes
R1 G0/1 2000::12FF:FE34:5678 2000::/64
R1 G0/2 2001:BAE:274F:BAED:AE13:72FF:FE94:6256 2001:BAE:274F:BAED::/64
R2 G0/1 2000::C281:ABFF:FEED:C724 2000::/64
R2 G0/2 2001:BA82:B0AE:CAE:7A24:FBFF:FECE:A103 2001:BA82:B0AE:CAE::/64
R3 G0/1 2000::214:ABFF:FEC2:8ABE 2000::/64
R3 G0/2 2001:BA81:8326:2753:AE13:FEFF:FEDA:BECA 2001:BA81:8326:2753::/64
R4 G0/1 2000::AEED:ABFF:FEEC:FDAC 2000::/64
R4 G0/2 2001:BEDE:AB81:9173:9A76:12FF:FE34:7654 2001:BEDE:AB81:9173::/64

Table 2 – Final IPv6 Address Assignments


Table 3 then shows some help in seeing the MAC address needed to make the router calculate the desired IPv6 address. The table lists the unabbreviated last 16 hex digits of the IPv6 address from table 1. In that form, those last 16 hex digits make it obvious where the FFFE sits. All you have to do to figure out what MAC address to use is to remove the FFFE, and then invert that 7th bit. The right-most column lists that MAC address for each case, which you should see in the various mac-address address commands in the configuration examples.

Rx Int. Unabbreviated 2nd Half Resulting MAC Address
R1 G0/1 0000:12FF:FE34:5678 0200:1234:5678
R1 G0/2 AE13:72FF:FE94:6256 AC13:7294:6256
R2 G0/1 C281:ABFF:FEED:C724 C081:ABED:C724
R2 G0/2 7A24:FBFF:FECE:A103 7824:FBCE:A103
R3 G0/1 0214:ABFF:FEC2:8ABE 0014:ABC2:8ABE
R4 G0/2 9A76:12FF:FE34:7654 9876:1234:7654

Table 3 – Prefixes and MAC Addresses


For this lab, there were 8 different IPv6 addresses given, for each of these the prefix must be extracted. For the eight different ipv6 address ipv6-prefix/64 eui-64 interface subommands, they use the prefixes as listed in Table 3.

Additionally, once you calculate the MAC address that will result in the desired IPv6 address, you need to configure the mac-address address interface subcommand. For example, on R1’s G0/1 interface, the goal is to use EUI-64 to set the address to 2000::12FF:FE34:5678. The last 16 hex digits, unabbreviated, is 0000:12FF:FE34:5678. Remove the FFFE and you have 0000:1234:5678. Insert the 7th bit and you have 0200:1234:5678. As a result, R2’s G0/1 interface lists the mac-address 0200.1234.5678 command.

Known Issues in this Lab

This section of each Config Lab Answers post hopes to help with those issues by listing any known issues with Packet Tracer related to this lab. In this case, the issues are:

# Summary Detail
1 Packet Tracer performs EUI-64 incorrectly when the 7th bit of the MAC is a 1. When performing the 7th-bit bit-flip, PT sets the 7th bit to 1, rather than flipping or inverting the bit. So, if the 7th bit of the MAC address is a 1, PT leaves the bit as a 1. A real Cisco router would flip the bit to 0.


Why Would Cisco Packet Tracer Have Issues?

(Note: The below text is the same in every Config Lab.)

Cisco Packet Tracer (CPT) simulates Cisco routers and switches. However, CPT does not run the same software that runs in real Cisco routers and switches. Instead, developers wrote CPT to predict the output a real router or switch would display given the same topology and configuration – but without performing all the same tasks, an actual device has to do. On a positive note, CPT requires far less CPU and RAM than a lab full of devices so that you can run CPT on your computer as an app. In addition, simulators like CPT help you learn about the Cisco router/switch user interface – the Command Line Interface (CLI) – without having to own real devices.

CPT can have issues compared to real devices because CPT does not run the same software as Cisco devices. CPT does not support all commands or parameters of a command. CPT may supply output from a command that differs in some ways from what an actual device would give. Those differences can be a problem for anyone learning networking technology because you may not have experience with that technology on real gear – so you may not notice the differences. So this section lists differences and issues that we have seen when using CPT to do this lab.

Beyond comparing your answers to this lab’s Answers post, you can test in Cisco Packet Tracer (CPT) or Cisco Modeling Labs (CML). In fact, you can and should explore the lab once configured. For this lab, once you have completed the configuration, try these verification steps. 

  1. From the CLI of each router, verify the address calculated by the device when it uses EUI-64; this can be done with the show ipv6 interface or show ipv6 interface brief commands.

More Labs with Related Content!

Config Lab: OSPF Metrics
Config Lab: IPv6 Global Unicast Addressing 1
Notify of

Newest Most Voted
Inline Feedbacks
View all comments

i don’t understand how you game up with the mac address for each interface. example for router 1.

interface GigabitEthernet0/1
mac-address 0200.1234.5678

how did come up wth mac-address
mac-address 0200.1234.5678

Thank you,


Hi Denis,
Check out the “Lab Commentary” tab, which has some detailed notes about how to come up with the MAC addresses. If it’s not clear at that point, feel free to follow up.

Mehdi Mohamed Hadi

I’m a beginner in networking so I might have missed something, but when I configure the “0200.1234.5678 mac-address” command on on R1’s G0/1 interface, and then configure the “ipv6 address 2000::/64 eui-64” command, the resulting ipv6 address becomes 2000::200:12FF:FE34:5678 instead of 2000::12FF:FE34:5678. The only thing I see not happening is the flip of the seventh bit, which I fail to understand why. I see that you have the right answers in the answer key already, I’m just curious to why this happens.

Thank you for your time!


Whoops. Somewhere in the edit process I lost the IPv6 issues from the PT issues tab. I won’t have time to do a full review until next week, but I did add one to this post just now.
The short version: There’s a bug in Cisco Packet Tracer in its EUI-64 logic. When the MAC address has a binary 1 in the 7th bit, PT does not invert the bit for EUI-64. Real devices do. So that particular part of lab, when done in PT, shows the wrong number.
Sorry for forgetting to leave that note in the Packet Tracer Issues tab!


as of this typing version still has this issue…

seems like an easy fix…



Yes I bumped into the same thing. CPT is not inverting the 7th bit so as a result the configured IPv6 ADDRESS is matching the current mac address for each interface. Thanks for the CPT note. Time to get CML as the standard in these labs. 🙂

Jay Mahannah

Just for grins, to make these hosts pingable, I’d need to either add routes or OSPF, correct (plus assign each an IPV6 address)?

Lucas Wolf

Hi, What is the point of creating two different IPv6 addresses on each interface? For example, R4’s g0/2 lists: FE80::9A76:12FF:FE34:7654 and 2001:BEDE:AB81:9173:9A76:12FF:FE34:7654. Is one address (FE80…) link-local and the other (2001…) is globally routable beyond the subnet? Thanks!

Matthew Bascom

If I want to ping between PCs, how should I configure the core switch, SW5?


Hi Matthew,
The core switch config is fine as is for that purpose. But to answer your question, that switch needs a working VLAN (in this case, VLAN 1), with the four ports connected to the four routers working and assigned to VLAN 1. That’s all true based on the default config settings.
However, if you were trying to get pings to work between PCs:
1) You need IPv6 routes in the routers. EG, you could enable OSPF on all the routers, on interfaces G0/1 and G0/2:
ipv6 router ospf 1
router-id (change for each router)
int g0/1
ipv6 ospf 1 area 0
int g0/2
ipv6 ospf 1 area 0

2) Enable IPv6 on the PCs. Easiest way to get it working is to choose the dynamic options in the PC settings in CPT. Then to test, you’ll need to use the ipconfig command to see the address assigned to a PC, and then say ping that address from another PC. Or you could use static settings, and choose an easier-to-type IPv6 address for each PC.

Hope this helps…

Matthew Bascom

Thank you for helping me bring the knowledge together, Mr. Odom. I tried enabling OSPF and configuring the router IDs and the ping worked!


I accidentally came up with a formula for converting the 7th bit without remembering the conversion table, hope it finds someone as lazy as me:
1)convert the hex digit to decimal, lets call it X
2)calculate floor(X / 2), if the result is an even number then the converted value is X + 2 , otherwise if the result is an odd number the converted value is X – 2.

Example 1:
hex digit = A =to decimal> X = 10
floor(X / 2) = 5 => it is an odd number
so the converted value is X – 2 = 8

Example 2:
hex digit = 5 =to decimal> X = 5
floor(X / 2) = 2 => it is an even number
so the converted value is X + 2 = 7

Example 3:
hex digit = 7 =to decimal> X = 7
floor(X / 2) = 3 => it is an odd number
so the converted value is X – 2 = 5

Example 4:
hex digit = B =to decimal> X = 11
floor(X / 2) = 5 => it is an odd number
so the converted value is X – 2 = 9

Would love your thoughts, please comment.x