CCNA online course

IPv6 Overview for CCNA

Learn IPv6 addressing, notation, address types, SLAAC, DHCPv6, Neighbor Discovery, routing, Cisco IOS configuration, coexistence, and troubleshooting for CCNA.

IPv6 is the Internet Protocol version designed to replace IPv4 over time. It provides 128-bit addresses, efficient autoconfiguration, multicast-based discovery, and a structure that supports continued network growth. This lesson covers the IPv6 concepts and Cisco IOS operations expected at CCNA level.

Why IPv6 Exists

IPv4 uses 32-bit addresses, providing about 4.3 billion possible address values. The growth of mobile devices, cloud services, broadband connections, sensors, and other connected systems made that space insufficient. Techniques such as private addressing and NAT extend IPv4, but they do not create more globally unique IPv4 addresses.

IPv6 uses a 128-bit address. The theoretical address space contains 2128 values, an extremely large increase over IPv4. This allows organizations to assign structured prefixes and globally unique addresses to interfaces without depending on widespread address translation.

IPv6 also improves operations beyond address capacity:

  • A simplified base header makes common router processing more predictable.
  • End-to-end addressing is easier because globally routable addresses can be assigned without requiring NAT for every connection.
  • Stateless Address Autoconfiguration, or SLAAC, lets hosts form addresses from router advertisements.
  • Multicast replaces broadcast for many discovery functions, reducing unnecessary traffic.
  • Extension headers provide a structured way to add capabilities.

IPv4 and IPv6 coexist during migration. A network may use dual stack, tunneling, or translation. In dual-stack operation, devices maintain separate IPv4 and IPv6 addresses, forwarding decisions, routes, and troubleshooting requirements.

IPv6 Address Format and Notation

An IPv6 address contains 128 bits divided into eight 16-bit sections. Each section is called a hextet and is written using up to four hexadecimal digits. Hexadecimal uses digits 0 through 9 and letters A through F.

The full form contains eight hextets separated by colons:

2001:0DB8:0000:0000:0020:0000:0000:0001

A prefix length follows a slash, just as in IPv4 CIDR notation. For example, 2001:db8:10:1::10/64 has a 64-bit network prefix and a 64-bit interface identifier.

Notation Rules

RuleWhat it changesValid exampleCommon error or limitation
Leading-zero suppressionRemoves zeros at the beginning of an individual hextet0DB8 becomes DB8Do not remove meaningful zeros inside a hextet
Zero compressionReplaces one or more consecutive all-zero hextets with ::2001:db8:0:0:1:0:0:2 becomes 2001:db8::1:0:0:2:: can appear only once
Slash notationStates the number of prefix bits2001:db8:100:1::/64The prefix length is not another hextet

To compress an address, first remove leading zeros from each hextet. Then replace the longest consecutive sequence of all-zero hextets with ::. If two sequences have the same length, compress the first one. An address cannot use double-colon compression twice because the number of omitted hextets would be ambiguous.

To expand a compressed address, count the visible hextets, subtract that number from eight, and replace :: with that many 0000 hextets. For example:

2001:0DB8:0000:0000:0020:0000:0000:0001
2001:DB8:0:0:20:0:0:1
2001:DB8::20:0:0:1

The final address is valid because the double colon represents two omitted hextets. An address such as 2001::db8::1 is invalid because it uses compression twice.

An address identifies an interface. A prefix identifies a network range, such as 2001:db8:100:1::/64. The interface identifier is the portion used to distinguish an interface within that prefix.

IPv6 Address Structure

A typical global unicast address is divided into a global routing prefix, a subnet ID, and an interface ID. The exact bit allocation depends on the organization and provider, but a common LAN convention is a /64 prefix.

2001:db8:100:1:0000:0000:0000:0010/64
|--------- global routing prefix and subnet ID ---------| interface ID |

Within a typical plan, the organization receives a routed prefix, uses some bits as a subnet ID to create LAN prefixes, and assigns the remaining 64 bits to interfaces. Subnetting commonly occurs within the subnet ID portion so every LAN can retain a /64 while the organization creates many distinct networks.

For example, all devices on one LAN can use 2001:db8:100:1::/64:

  • Router: 2001:db8:100:1::1/64
  • Host A: 2001:db8:100:1::10/64
  • Host B: 2001:db8:100:1::20/64

The routed prefix must match for devices to consider one another on-link, while the interface identifiers must be unique.

IPv6 Address Types and Scopes

Address typeTypical prefix or addressScopePrimary purposeRoutable on the public Internet
Global unicast2000::/3GlobalUnicast communication across routed networksYes
Link-local unicastfe80::/10Local linkNeighbor Discovery, next hops, and local communicationNo
Unique localfc00::/7, commonly fd00::/8Private organizationInternal addressing without public Internet routingNo
Loopback::1Local deviceTesting the local IPv6 stackNo
Unspecified::NoneIndicates that a source address is not yet knownNo
Multicastff00::/8Defined by the multicast scope fieldOne-to-many deliveryDepends on scope and routing
AnycastUses a unicast-format addressDetermined by routingSame address assigned to multiple interfaces; routing selects a suitable instancePossible

Global unicast addresses are intended for routed communication and may be advertised on the public Internet. The documentation prefix 2001:db8::/32 is used in examples and documentation rather than production Internet addressing.

Link-local addresses are automatically present on IPv6-enabled interfaces and remain on the local Layer 2 link. They are essential for Neighbor Discovery and can be used as routing next hops. A link-local address must not be routed beyond its link.

Unique local addresses are private-use addresses for internal networks. They are useful when global addressing is unnecessary, but they are not a replacement for globally reachable addresses.

IPv6 has no broadcast address. Multicast groups provide more targeted alternatives. ff02::1 is the link-local all-nodes group, and ff02::2 is the link-local all-routers group. A solicited-node multicast address is formed for each unicast or anycast address and is used by Neighbor Discovery to ask about a specific neighbor without broadcasting to every host.

Interface ID Assignment Methods

  • Manual static addressing: An administrator assigns the complete address and prefix length. This is predictable and common on routers and infrastructure.
  • EUI-64: A 48-bit MAC address is split into two 24-bit halves, FFFE is inserted between them, and the universal/local bit is inverted. The result is a 64-bit interface ID. For example, a MAC beginning 021A.2B3C.4D5E is transformed by inserting FFFE and changing the relevant bit.
  • Privacy-oriented random IDs: Hosts generate changing, randomized interface IDs to make long-term tracking more difficult.
  • SLAAC: The host combines a prefix learned from a Router Advertisement with a locally generated interface ID.
  • DHCPv6: A DHCPv6 server can assign addresses statefully or provide supplemental information such as DNS settings.

A host normally creates a link-local address as part of IPv6 initialization. It performs Duplicate Address Detection before using the address. A link-local address can be manually configured when predictable device-to-device operation or a stable routing next hop is required.

Neighbor Discovery Protocol

Neighbor Discovery Protocol, or NDP, is an ICMPv6-based set of functions that replaces several ARP-related IPv4 functions. It uses multicast and unicast rather than broadcast.

ICMPv6 messageSenderPurposeTypical multicast or unicast behavior
Router SolicitationHostRequests router informationUsually sent to the all-routers multicast group
Router AdvertisementRouterAdvertises prefixes, flags, lifetimes, and router informationSent periodically to hosts or in response to solicitation
Neighbor SolicitationHost or routerResolves a neighbor's link-layer address, checks reachability, or performs DADUsually sent to the target's solicited-node multicast address
Neighbor AdvertisementHost or routerResponds with link-layer information or reachability statusCan be multicast or unicast
RedirectRouterInforms a host of a better first hopNormally unicast to the affected host

Duplicate Address Detection uses Neighbor Solicitation before an address is assigned for normal use. A device that detects another device using the same address must not use the duplicate address. NDP also maintains neighbor reachability information and resolves IPv6 addresses to local link-layer destinations.

IPv6 Address Configuration

IPv6 routing must be enabled on a Cisco router before the router forwards IPv6 traffic and advertises IPv6 prefixes:

configure terminal
ipv6 unicast-routing

A router interface can advertise a /64 prefix for SLAAC:

interface gigabitEthernet 0/0
ipv6 address 2001:db8:100:1::1/64
no shutdown

Hosts use Router Advertisements to learn the network prefix and the default router. In a normal SLAAC workflow, the default gateway is learned from the Router Advertisement; it is not delivered as an IPv6 gateway address by DHCPv6.

Router Advertisement flags influence host behavior:

  • A flag: The host may use SLAAC to form its address.
  • O flag: The host uses DHCPv6 for other information, such as DNS, while obtaining its address through SLAAC. This is often called stateless DHCPv6.
  • M flag: The host obtains its address from DHCPv6. This is stateful DHCPv6.
MethodAddress sourceOther configuration sourceRouter Advertisement roleTypical use case
StaticAdministratorAdministrator or separate servicesOptionalRouters and infrastructure
SLAACHost plus advertised prefixRA and possibly DHCPv6Provides prefix and default routerSimple host autoconfiguration
Stateless DHCPv6SLAACDHCPv6 supplies additional settingsA and O flags indicate behaviorAutomatic addressing with centralized options
Stateful DHCPv6DHCPv6 serverDHCPv6 serverM flag indicates managed addressingCentralized address assignment

IPv6 Packet and Transport Behavior

The IPv6 base header is simpler than the IPv4 header. Optional capabilities are carried in extension headers, which are placed between the base header and the upper-layer payload.

  • Version: Identifies IPv6.
  • Traffic Class: Supports traffic marking and quality-of-service treatment.
  • Flow Label: Identifies packets belonging to a flow.
  • Payload Length: Indicates the length after the base header.
  • Next Header: Identifies the following extension header or transport protocol.
  • Hop Limit: Decreases at each router and replaces the IPv4 TTL function.
  • Source and destination addresses: Identify the communicating interfaces.

The IPv6 base header has no header checksum, reducing router work. Routers do not fragment IPv6 packets. Source hosts use Path MTU Discovery to learn the largest packet size that can traverse a path. ICMPv6 is therefore essential for normal operation, including error reporting, NDP, and Path MTU Discovery. Filtering all ICMPv6 can break an otherwise correctly addressed network.

IPv6 Routing Fundamentals

IPv6 routers can have connected, static, and dynamic routes. Route selection uses longest-prefix match: the route with the most matching prefix bits wins. The IPv6 default route is ::/0.

IPv6 routing commonly uses link-local next-hop addresses because they are stable on a local link. When a static route uses a link-local next hop, the router must also know the exit interface:

ipv6 route 2001:db8:100:2::/64 gigabitEthernet 0/1 fe80::2

A global next hop can be used without specifying the interface when the router can resolve it through the routing table:

ipv6 route 2001:db8:100:2::/64 2001:db8:12::2
ipv6 route ::/0 2001:db8:12::2

Always provide reciprocal routes. A router may successfully forward toward a destination while the destination's reply cannot return.

IPv4 and IPv6 Comparison

FeatureIPv4 behaviorIPv6 behaviorOperational impact
Address size32 bits128 bitsMuch larger address space
Address resolutionARP and broadcastNDP using ICMPv6 and multicastEssential ICMPv6 must be permitted
BroadcastSupportedAbsentMulticast groups are used instead
FragmentationRouters may fragmentSource hosts fragment; routers do notPath MTU Discovery matters
Header checksumPresent in the IPv4 headerAbsent from the IPv6 base headerLess router processing
Default route0.0.0.0/0::/0Separate routing tables and verification

IPv4 and IPv6 Coexistence

Dual stack gives hosts and routers both IPv4 and IPv6 configurations. Each protocol has independent addresses, routes, forwarding decisions, and failure modes. Dual stack is common because organizations can introduce IPv6 without immediately removing IPv4.

Tunneling carries IPv6 packets through an IPv4 network by encapsulating them inside IPv4. Translation converts between protocol families. NAT64 is a high-level example that allows IPv6-only clients to access IPv4 services through a translation system. These mechanisms solve different migration problems and introduce separate design and troubleshooting considerations.

Cisco IOS Foundational Operations

Configure a Dual-Stack Interface

configure terminal
ipv6 unicast-routing
interface gigabitEthernet 0/0
ip address 192.0.2.1 255.255.255.0
ipv6 address 2001:db8:100:1::1/64
no shutdown

Every IPv6-enabled interface should have a link-local address. IOS can generate one automatically, or a predictable address can be assigned:

interface gigabitEthernet 0/0
ipv6 address fe80::1 link-local

Verify IPv6 State

CommandWhat to verifyExpected evidence
show ipv6 interface briefInterface status and addressesInterface is up/up and has IPv6 addresses
show ipv6 interface gigabitEthernet 0/0Detailed IPv6 operation and RA informationIPv6 enabled, prefix, link-local address, and multicast groups
show ipv6 routeConnected, static, dynamic, and default routesExpected prefixes and next hops appear
show ipv6 neighborsNDP cacheNeighbor IPv6 addresses, link-layer addresses, and interfaces
show running-config | section ipv6Configured IPv6 commandsForwarding, addresses, and routes are present
ping ipv6 2001:db8:100:2::10ReachabilitySuccessful ICMPv6 replies
traceroute ipv6 2001:db8:100:2::10Forwarding pathIntermediate IPv6 hops or the point of failure

IPv6 Verification and Troubleshooting Workflow

  1. Check the physical and protocol state with interface commands. Confirm the interface is up/up.
  2. Verify link-local and global unicast addresses separately. A link-local address alone does not prove that global routing is configured.
  3. Confirm that devices on the same LAN use the same expected /64 prefix and that interface identifiers are unique.
  4. For SLAAC, verify that the router has a valid global /64, IPv6 forwarding is enabled, and Router Advertisements are available.
  5. Check show ipv6 neighbors to confirm address resolution and neighbor reachability.
  6. Inspect the routing table for connected prefixes, remote routes, and ::/0 when a default route is required.
  7. Test in stages: local link, directly connected remote interface, remote network, and finally the end host.
  8. Use IPv6 traceroute to identify the forwarding hop where traffic stops.

Common Failure Patterns

  • Only link-local addresses appear: Check the router's global /64, ipv6 unicast-routing, interface state, and Router Advertisements.
  • Same-LAN hosts cannot communicate: Compare prefixes and prefix lengths, check DAD results, inspect neighbor entries, and verify VLAN connectivity.
  • Connected networks work but remote networks fail: Check for missing routes, incorrect next hops, a missing exit interface with a link-local next hop, and a missing return route.
  • Reachability or name resolution is inconsistent: Check ACLs and firewalls for required ICMPv6, investigate MTU mismatches affecting Path MTU Discovery, and verify DNS or DHCPv6 settings separately from basic forwarding.

Exam-Relevant Notes

  • IPv6 addresses have eight hextets and are 128 bits long.
  • Use :: only once in an address; expand it by restoring enough zero hextets to reach eight.
  • fe80::/10 is link-local, ::1 is loopback, :: is unspecified, and ff00::/8 is multicast.
  • IPv6 has no broadcast address.
  • SLAAC learns the default router from Router Advertisements.
  • Neighbor Discovery uses ICMPv6 multicast messages instead of IPv4 ARP broadcasts.
  • IPv6 routers do not fragment packets; source hosts use Path MTU Discovery.
  • A link-local static-route next hop requires an exit interface.
  • IPv6 forwarding must be enabled on a Cisco router before it can route IPv6 traffic and advertise prefixes.

For related fundamentals, review the OSI Reference Model and Computer Network Explained. IPv6 routing practice also connects to Configure OSPF, while VLAN-based labs may require Configure Trunk Ports or Configure Router on a Stick.