Answers: IPv6 EUI-64 Addressing 1

By certskills July 23, 2016 09:10

This lab requires a fair bit of manipulating hexadecimal numbers to reverse engineer the values you need to configure in the lab; however, it serves as good exercise to make sure you understand how to configure IPv6 addresses using the modified EUI-64 feature. Check out your answers here; the lab requirements are at this post.




Figure 1: EUI-64 IPv6 Addressing Topology

Example 5: R1 Config

Example 6: R2 Config

Example 7: R3 Config

Example 8: R4 Config



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.

Table 2 – Final IPv6 Address Assignments

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 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.

Table 3 – Prefixes and MAC Addresses

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


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.

Answers: GRE Tunnel 3
IPv6 Static Route 2
By certskills July 23, 2016 09:10
Write a comment


  1. Bav March 23, 12:03

    Going through the book I had wondered if we would need to be able to reverse engineer an eui-64 interface ID and this activity was great practice.

    I managed to do it in my head too.

    Reply to this comment
  2. HaroldG February 22, 10:53

    Hi Wendell,

    Thanks again for this test. I think that maybe there is a bug in packet tracet.

    I changed the mac-address:

    R1(config)#do sh inter gi0/0
    GigabitEthernet0/0 is up, line protocol is up (connected)
    Hardware is CN Gigabit Ethernet, address is 0200.1234.5678 (bia 00d0.ff7d.2c01)

    and the result wasn’t what I expect:

    GigabitEthernet0/0 is up, line protocol is up
    IPv6 is enabled, link-local address is FE80::200:12FF:FE34:5678
    No Virtual link-local address(es):
    Global unicast address(es):
    2000::200:12FF:FE34:5678, subnet is 2000::/64 [EUI]

    I’ll try in a real gear.


    Reply to this comment
    • CCENTSkills February 28, 15:20

      Story. Once upon a time, in the earliest days of IOS support of IPv6, it was rumored that the EUI-64 logic was: change bit 7 of the interface ID to 1. That is, don’t invert it (0 to 1, or 1 to 0), but make it 1, no matter whether it begins as a 0 or 1. I have a vague recollection (very vague) that some IOS versions may have even done that, but at least there was documentation, maybe courses, and maybe even an edition of my book that claimed that.

      The logic should be “invert the bit”.

      I am wondering if PT is using “make bit 7 a 1” logic, rather than “invert bit 7” logic.

      Reply to this comment
View comments

Write a comment

Comment; Identify w/ Social Media or Email


Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for subscribing.

Something went wrong.