VMware ESXi and vSphere Cluster Management

CCNA IPv6 Addressing and Cisco Router Configuration

Learn IPv6 address types, notation, EUI-64, Cisco IOS configuration, verification, routing, and troubleshooting for CCNA-level networking.

IPv6 Fundamentals

IPv6 is the Internet Protocol version that uses 128-bit addresses. Its large address space supports many more networks and devices than IPv4. IPv6 is commonly deployed alongside IPv4 in dual-stack networks, so network administrators often configure and troubleshoot both protocols.

An IPv6 address contains 128 bits, written as eight groups of four hexadecimal digits called hextets. Each hextet represents 16 bits and is separated by a colon.

2001:0db8:0010:0001:0000:0000:0000:0001

A typical subnet uses a /64 prefix length. The first 64 bits identify the network, while the final 64 bits form the interface identifier, which identifies an interface on that network.

IPv6 Address Structure

Address componentTypical bit lengthPurposeExample representation

Network or global routing prefix — commonly 48 bits — Identifies the allocated organization or routing block — 2001:db8:10

Subnet identifier — commonly 16 bits — Identifies a subnet within the organization — :1:

Interface identifier — commonly 64 bits — Identifies an interface on the subnet — 0000:0000:0000:0001

IPv6 Notation and Abbreviation

IPv6 notation can be shortened without changing the address value:

  • Remove leading zeros from any hextet. For example, 0db8 becomes db8, and 0001 becomes 1.
  • Replace one consecutive sequence of all-zero hextets with ::.
  • Use :: only once in an address because multiple uses would make the number of omitted hextets ambiguous.

For example, 2001:0db8:0000:0000:0000:0000:0000:0001 becomes 2001:db8::1. An address with no compressible sequence, such as 2001:db8:10:1:2:3:4:5, only benefits from removing leading zeros.

IPv6 Address Delivery Types

Unicast is one-to-one delivery. A packet sent to a unicast address is delivered to one identified interface.

Multicast is one-to-many delivery. A packet sent to a multicast address is delivered to interfaces that have joined the corresponding multicast group. IPv6 uses multicast for functions that commonly use broadcast in IPv4, including discovering neighboring devices and locating routers.

IPv6 does not use broadcast addressing. There is no IPv6 equivalent of an IPv4 broadcast address such as 255.255.255.255. Replacing broadcast with targeted multicast reduces unnecessary delivery to every device on a link.

IPv6 Address Type Comparison

Address typeTypical prefix or rangeScopePrimary useRoutable beyond local linkIPv4 analogy

Global unicast — 2000::/3 — Organization or Internet — Publicly routable communication — Yes, when routing exists — Public IPv4 address

Unique local address — fc00::/7, commonly fd00::/8 — Internal site or organization — Private communications — Not expected on the public Internet — RFC 1918 private IPv4 address

Link-local — fe80::/10 — One local link — Neighbor communication and next-hop operations — No — IPv4 link-local 169.254.0.0/16, although IPv6 link-local use is more fundamental

Multicast — ff00::/8 — Defined by the multicast scope — Group delivery — Depends on multicast routing and scope — IPv4 multicast

Global Unicast Addresses

A global unicast address is a publicly routable IPv6 unicast address. It is used on Internet-connected interfaces when an organization has an IPv6 allocation from an Internet service provider or a regional Internet registry.

Global unicast addresses are recognized by the range 2000::/3. A common planning model divides a /64 subnet into a global routing prefix, a subnet identifier, and a 64-bit interface identifier.

2001:db8:1234:0010:0000:0000:0000:0001/64
|-------------|----|-------------------------|
  routing       subnet       interface identifier
  prefix        ID

2001:db8::/32 is reserved for documentation and laboratory examples. It is useful in configuration practice but is not a real Internet-routable allocation.

Unique Local Addresses

A unique local address, or ULA, is intended for private communication inside an organization or site. ULAs are recognized by fc00::/7; in normal locally generated deployments, addresses usually begin with fd.

ULAs are similar in purpose to private IPv4 ranges such as 10.0.0.0/8. They can be routed between internal networks, but they are not expected to be routed across the public Internet. Use them for internal services, management networks, and applications that do not require public reachability. Use a global unicast allocation when a host must communicate directly across the Internet.

Link-Local Addresses

A link-local address is valid only on the local Layer 2 link. Link-local addresses use the fe80::/10 prefix and cannot cross a router interface boundary.

When IPv6 is enabled on an interface, Cisco IOS normally gives that interface a link-local address automatically. Link-local addresses are used for neighbor communication and are important to IPv6 routing protocols because two directly connected routers can form relationships using link-local addresses.

A link-local address is not globally unique. Therefore, when a command uses a link-local next hop, the router may need both the next-hop address and the outgoing interface to identify the correct link.

Router(config)# ipv6 route 2001:db8:10:2::/64 GigabitEthernet0/1 fe80::2

EUI-64 Interface Identifier Generation

EUI-64 is a method for generating a 64-bit interface identifier from a 48-bit MAC address. It is used with a /64 IPv6 prefix.

  1. Write the six MAC bytes in order.
  2. Split the MAC address after the first three bytes.
  3. Insert the hexadecimal value FFFE between the two halves.
  4. Invert the universal/local bit, which is the second-least-significant bit of the first byte. In practical hexadecimal terms, this changes the first byte by adding or subtracting 02.
  5. Append the resulting 64-bit identifier to the /64 network prefix.

EUI-64 Calculation Steps

StepMAC-derived valueOperationResult

1 — 00:1A:2B:3C:4D:5E — Start with the 48-bit MAC — 00:1A:2B:3C:4D:5E

2 — 00:1A:2B | 3C:4D:5E — Split after three bytes — Same two halves

3 — 00:1A:2B:3C:4D:5E — Insert FFFE00:1A:2B:FF:FE:3C:4D:5E

4 — 00 — Invert the universal/local bit — 02

5 — 02:1A:2B:FF:FE:3C:4D:5E — Group into hextets — 021A:2BFF:FE3C:4D5E

6 — 2001:db8:10:1::/64 — Append the identifier — 2001:db8:10:1:021a:2bff:fe3c:4d5e/64

EUI-64 reduces manual address entry and can make the interface identifier predictable from the MAC address. Its limitations include exposing a relationship between the address and hardware identity, dependence on the interface MAC, and less convenient address management when hardware changes. Modern networks may instead use manually assigned or randomly generated interface identifiers.

Cisco IOS IPv6 Router Configuration

Cisco IOS is the operating system and command-line environment used on many Cisco routers. IPv6 configuration uses interface commands, but IPv6 packet forwarding must also be enabled globally.

Enable IPv6 Unicast Routing

The following command enables the router to forward IPv6 packets between interfaces:

Router(config)# ipv6 unicast-routing

Without this command, an interface may have an IPv6 address, but the router will not forward IPv6 traffic between networks as expected.

Configure a Static IPv6 Address

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8:10:1::1/64
Router(config-if)# no shutdown

The prefix length is part of the address configuration. no shutdown administratively enables the interface. The interface should have both the configured global address and an automatically generated link-local address.

Configure an Address with EUI-64

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8:10:1::/64 eui-64
Router(config-if)# no shutdown

Cisco IOS uses the interface MAC address to generate the final 64-bit identifier. The command supplies the prefix, while IOS supplies the interface portion.

Example: Two IPv6 LANs

Consider a router with one interface connected to each of two LANs. The first LAN uses 2001:db8:10:1::/64, and the second uses 2001:db8:10:2::/64.

Router(config)# ipv6 unicast-routing
Router(config)# interface GigabitEthernet0/0
Router(config-if)# description LAN-1
Router(config-if)# ipv6 address 2001:db8:10:1::1/64
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface GigabitEthernet0/1
Router(config-if)# description LAN-2
Router(config-if)# ipv6 address 2001:db8:10:2::1/64
Router(config-if)# no shutdown

A host on LAN 1 might use 2001:db8:10:1::10/64 with default gateway 2001:db8:10:1::1. A host on LAN 2 might use 2001:db8:10:2::10/64 with default gateway 2001:db8:10:2::1. The router can route between these directly connected /64 networks after IPv6 forwarding is enabled.

IPv6 Verification and Testing

Cisco IOS IPv6 Verification Commands

CommandWhat it verifiesExpected evidence

show ipv6 interface brief — IPv6 addresses and interface state — Global and link-local addresses; interfaces should be up and up

show ipv6 interface GigabitEthernet0/0 — Detailed interface IPv6 information — Prefixes, address states, link-local address, and operational details

show ipv6 route — IPv6 routing table — Connected routes for configured /64 networks and other learned or static routes

show running-config | include ipv6 unicast-routing — Global forwarding configuration — The ipv6 unicast-routing command appears

ping ipv6 2001:db8:10:2::10 — IPv6 reachability — Successful replies from the destination

When reading interface output, a global unicast address normally begins with 2000::/3, a ULA begins with fc or fd, and a link-local address begins with fe80. The route table should show directly connected networks with appropriate interface associations.

Testing in Layers

  1. Confirm that each router interface is administratively enabled and operational.
  2. Verify the router's link-local and global addresses.
  3. Ping the directly connected router interface from a host or neighboring router.
  4. Verify that the host has the correct /64 prefix and default gateway.
  5. Ping the destination across the router.
  6. Inspect show ipv6 route if the destination network is not present.

Troubleshooting IPv6 Configuration

Different IPv6 Networks Cannot Communicate

Check that ipv6 unicast-routing is configured globally. Then use show ipv6 interface brief to confirm that both interfaces have correct prefixes and are up. Use show ipv6 route to confirm that the router knows both networks. Finally, verify that hosts have correct default gateways and ping each directly connected router interface before testing end-to-end traffic.

EUI-64 Address Is Unexpected

Compare the actual MAC address with the calculated identifier. Confirm that FFFE was inserted after the first three MAC bytes and that the universal/local bit in the first byte was inverted. The command show ipv6 interface displays the address IOS actually generated.

Link-Local Static Route Fails

A link-local next hop is meaningful only on its local link. Specify the outgoing interface with the next-hop address, confirm that the next hop belongs to that interface, and check that the neighboring interface is operational.

Internal Address Is Not Internet Reachable

Identify the address type from its prefix. A ULA is intended for internal use and should not be expected to work as a public Internet source or destination. Confirm that the organization has a global unicast allocation and an upstream IPv6 route when external connectivity is required.

Prerequisites and Related Skills

This lesson assumes familiarity with the OSI reference model, IPv4 addressing, subnetting, hexadecimal notation, MAC addresses, packet forwarding, and Cisco IOS command modes. For broader networking context, review computer network fundamentals.