Config Lab: IPv6 Global Unicast Addressing 1
IPv6 addresses just take a little getting used to. This next lab gives you same reps with configuring Global Unicast addresses, while giving you a few mind-bending exercises to make you think about Link Local addresses and EUI-64. I would not worry about speed on this one, but working through it so you’re clear is a useful exercise for you CCENT and CCNA candidates. Enjoy!
The Lab Exercise
Requirements
Configure IPv6 addresses on the routers R1 and R2 per these rules:
- Configure global unicast addresses on four router interfaces as shown in Table 1.
- Cause the link local addresses listed in Table 2 to be used, but without configuring these addresses directly. Instead, use the mac-address command to configure each interface’s MAC address so that the router chooses the link local addresses shown.
- Assume all router interfaces shown in the lab are up and working.
Device | Interface | IPv6 Address |
R1 | GigabitEthernet0/1 | 3000:23DA:FEDA:BCA1:9374:CBAE:EBDA:9182 |
R1 | GigabitEthernet0/2 | 2500:B:AE:83D:B91:A024:BCA2:8374 |
R2 | GigabitEthernet0/1 | 3000:23DA:FEDA:BCA1:BA71:FDEA:9817:BC71 |
R2 | GigabitEthernet0/2 | 2500:BA71:8263:BA71:BD87:1786:0:9283 |
Table 1 – Final IPv6 Address Assignments (/64 prefixes)
Device | Interface | IPv6 Address |
R1 | GigabitEthernet0/1 | FE80::2E25:DBFF:FEEF:A3DF |
R1 | GigabitEthernet0/2 | FE80::A83D:FEFF:FEEA:1353 |
R2 | GigabitEthernet0/1 | FE80::9CAB:28FF:FEDF:AB24 |
R2 | GigabitEthernet0/2 | FE80::BE81:BAFF:FE82:8362 |
Table 2 – Link Local Addresses to Use, Based on Configuring MAC Addresses
Figure 1: Global IPv6 Addressing Topology
Initial Configuration
Example 1 and 2 show the beginning configuration state of R1 and R2.
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
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:
- Download the .pkt file linked below.
- Open the .pkt file, creating a working lab with the same topology and interfaces as the lab exercise.
- Add your planned configuration to the lab.
- Test the configuration using some of the suggestions below.
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:
- Download the CML file (filetype .yaml) linked below.
- Import the lab’s CML file into CML and then start the lab.
- Compare the lab topology and interface IDs to this lab, as they may differ (more detail below).
- Add your planned configuration to the lab.
- 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)
Answers
Figure 1: Global IPv6 Addressing Topology
interface GigabitEthernet0/1
mac-address 2c25.dbef.a3df
ipv6 address 3000:23DA:FEDA:BCA1:9374:CBAE:EBDA:9182/64
!
interface GigabitEthernet0/2
mac-address aa3d.feea.1353
ipv6 address 2500:B:AE:83D:B91:A024:BCA2:8374/64
Example 1: R1 Config
interface GigabitEthernet0/1
mac-address 9eab.28df.ab24
ipv6 address 3000:23DA:FEDA:BCA1:BA71:FDEA:9817:BC71/64
!
interface GigabitEthernet0/2
mac-address bc81.ba82.8362
ipv6 address 2500:BA71:8263:BA71:BD87:1786:0:9283/64
Example 2: R2 Config
Commentary, Issues, and Verification Tips (Click Tabs to Reveal)
Commentary
First, configuring the IPv6 global unicast addresses, without using EUI-64, requires little thought. Just configure the ipv6 address address/prefix-length interface subcommand, with the entire address configured. Note that the two examples show the same IPv6 addresses originally listed in Table 1 of the original lab exercise post.
When you configure those global unicast addresses, the router also calculates and creates an associated link local address, using modified EUI-64 rules. 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 which 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 1 of this lab re-lists some information from Table 2 in the original lab post. It shows the router, interface, and the last 16 hex digits (unabbreviated) of the desired link local address. 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.
Table 1 – Link Local Addresses to Use, Based on Configuring MAC Addresses
Rx | Int. | Unabbreviated 2nd Half of Link Local | Resulting MAC Address |
R1 | G0/1 | 2E25:DBFF:FEEF:A3DF | 2C25:DBEF:A3DF |
R1 | G0/2 | A83D:FEFF:FEEA:1353 | AA3D:FEEA:1353 |
R2 | G0/1 | 9CAB:28FF:FEDF:AB24 | 9EAB:28DF:AB24 |
R2 | G0/2 | BE81:BAFF:FE82:8362 | BC81:BA82:8362 |
For this lab there were 4 different global unicast IPv6 addresses given. You should see those addresses configured in the two answer examples. Additionally, by configuring the MAC addresses per Table 3, the router should calculate the link local addresses as requested in the original lab.
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.Â
- Connect to the CLI of each router and verifying the address configured and calculated by the device match Table 1; this can be done with the show ipv6 interface or show ipv6 interface brief commands. Pay close attention to the link-local addresses in this lab.
Working through this exercise I have found a discrepancy in the information in this exercise and what the Cisco Packet Tracer emulator displays.
0 (0000) is inverted to 2 (0010); 2 is not inverted to 0.
4 (0100) is inverted to 6 (0110); 6 is not inverted to 4.
8 (1000) is inverted to A (1010); A is not inverted to 8.
C (1100) is inverted to E (1110); E is not inverted to C.
It seems the Packet Tracer emulator is forcing the U/L bit to 1 in contradiction the literature that states that bit 7 is filliped from 0 to 1 and from 1 to 0. Can you provide some explanation of this issue?
Is this an artifact of the Cisco Packet Tracer emulator or is it actually how this works? What is the CCNA exam answer?
R1(config)#int gi0/1
R1(config-if)#mac-address 2025.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2225:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2225.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2225:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2425.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2625:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2625.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2625:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2825.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2A25:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2A25.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2A25:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2C25.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2E25:DBFF:FEEF:A3DF
R1(config)#int gi0/1
R1(config-if)#mac-address 2E25.DBEF.A3DF
R1(config-if)#end
R1# sho ipv6 int
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2E25:DBFF:FEEF:A3DF
No Virtual link-local address(es):
Michael,
PT behaves incorrectly, and what’s in this post is correct. The correct logic is to invert (flip) the 7th bit. PT sets the 7th bit to 1 no matter the original value.
I’ll circle back during the work week next week and add a comment in the “Known Packet Tracer Issues” tab as well. Thanks for the note.
Wendell
you need to invert the 7th bit, youre invetering the wrong one
What is the prefix length for global unicast addresseses ?
Edit: I saw it under the table, it is /64 .
it should be /128 correct ?
Hi Alexis,
The Caption for Table 1 is meant to direct all to use a /64 mask. That’s what you’d normaally see with unicast addresses.