IPv6 is a core CCNA topic because modern networks must support a much larger address space than IPv4 can provide. For the CCNA exam and practical network work, you should understand IPv6 notation, address types, Neighbor Discovery Protocol, SLAAC, routing and dual-stack operation.
This guide explains those concepts through a small Cisco lab. It complements broader routing, switching and IP configuration practice in our CCNA course.
What is IPv6 and why is it used?
IPv6 is a Layer 3 protocol that uses 128-bit addresses, written as eight hexadecimal groups. It provides a very large address space and supports features such as automatic address configuration, multicast-based neighbour discovery and simplified address aggregation.
An IPv6 address contains 128 bits, compared with 32 bits in an IPv4 address. Each hexadecimal digit represents four bits, and each group contains four hexadecimal digits.
Example:
2001:0db8:0001:0010:0000:0000:0000:0025Diagram in words:
[Global routing prefix] [Subnet ID] [Interface ID]
2001:db8:1 : 10 : 0000:0000:0000:0025
<------ network portion ------> <---- host portion ---->A typical LAN uses a /64 prefix. The first 64 bits identify the network, while the remaining 64 bits form the interface identifier.
IPv6 does not use broadcast. It uses multicast and anycast where IPv4 networks might otherwise depend on broadcasts.
How do you shorten an IPv6 address?
IPv6 addresses can be shortened by removing leading zeros and replacing one continuous sequence of all-zero groups with ::. The double colon can appear only once in an address because its position must remain unambiguous.
Consider this full address:
2001:0db8:0000:0000:0000:00ab:0000:0012First, remove leading zeros from each group:
2001:db8:0:0:0:ab:0:12Next, compress the longest continuous sequence of zero groups:
2001:db8::ab:0:12You cannot remove trailing zeros from a group. For example, 1200 cannot become 12 because that would change the value.
| Rule | Valid example | Invalid example |
|---|---|---|
| Remove leading zeros | 0db8 becomes db8 | 1200 becomes 12 |
| Compress consecutive zero groups | 2001:db8:0:0::1 | Using :: twice |
| Keep at least one digit per uncompressed group | 0000 becomes 0 | Leaving an empty group without :: |
| Hexadecimal is case-insensitive | ABCD equals abcd | Not applicable |
The prefix length works like CIDR notation in IPv4. For example, 2001:db8:10:20::/64 identifies the first 64 bits as the network prefix.
What are the main IPv6 address types for CCNA?
The main IPv6 address categories are unicast, multicast and anycast. CCNA students should also recognise global unicast, link-local, unique local, loopback and unspecified addresses.
IPv6 unicast addresses
A unicast address identifies one interface. Traffic sent to a unicast destination is delivered to that interface.
| Address type | Prefix or address | Purpose |
|---|---|---|
| Global unicast | 2000::/3 | Publicly routable IPv6 communication |
| Link-local | fe80::/10 | Communication on the local link |
| Unique local | fc00::/7 | Private internal addressing; locally assigned addresses normally use fd00::/8 |
| Loopback | ::1/128 | Tests the local IPv6 stack |
| Unspecified | ::/128 | Means no address is currently assigned |
| Documentation | 2001:db8::/32 | Examples and documentation only |
Every IPv6-enabled interface normally has a link-local address. Routers use link-local addresses for operations such as sending Router Advertisements and communicating with directly connected neighbours.
A link-local address is not routed beyond its local link. Because the same link-local range can appear on many interfaces, Cisco IOS may ask for an outgoing interface when you ping a link-local destination.
R1# ping fe80::2
Output Interface: GigabitEthernet0/0IPv6 multicast addresses
IPv6 multicast begins with ff00::/8. A multicast packet is delivered to all interfaces that joined the relevant multicast group.
Important groups include:
| Multicast address | Meaning |
|---|---|
ff02::1 | All IPv6 nodes on the local link |
ff02::2 | All IPv6 routers on the local link |
ff02::1:ff00:0/104 | Solicited-node multicast range |
The solicited-node multicast address supports neighbour discovery without sending a broadcast to every device. It is formed partly from the last 24 bits of a unicast or anycast address.
IPv6 anycast addresses
An anycast address is the same unicast address assigned to multiple interfaces, usually on different devices. Routing delivers traffic to the nearest instance according to the routing table.
IPv6 has no separate visual format for anycast. Its purpose depends on how the address is assigned and advertised.
How does Neighbor Discovery Protocol work?
Neighbor Discovery Protocol, or NDP, uses ICMPv6 messages to discover routers, resolve Layer 3 addresses to Layer 2 addresses and verify neighbours. It replaces several IPv4 functions, including ARP and parts of router discovery.
The main NDP messages are:
| Message | Abbreviation | Function |
|---|---|---|
| Router Solicitation | RS | Host asks routers to send configuration information |
| Router Advertisement | RA | Router advertises prefixes and configuration flags |
| Neighbor Solicitation | NS | Resolves a neighbour's link-layer address or checks reachability |
| Neighbor Advertisement | NA | Replies to an NS message |
| Redirect | — | Router identifies a better next hop on the local link |
Diagram in words:
PC1 R1
|--- Router Solicitation ------->|
|<-- Router Advertisement -------|
| |
|--- Neighbor Solicitation ------>|
|<-- Neighbor Advertisement -----|NDP also performs Duplicate Address Detection, or DAD. Before fully using an address, a host sends a Neighbor Solicitation to check whether another interface already uses it.
ICMPv6 is essential to IPv6 operation. Filtering all ICMPv6 traffic can break neighbour discovery, path MTU discovery and SLAAC. When applying IPv6 filtering, study permitted control traffic carefully; our guide to Cisco ACL configuration provides useful ACL foundations.
What is SLAAC in IPv6?
Stateless Address Autoconfiguration, or SLAAC, allows a host to create an IPv6 address from information in a router's RA message. The host does not need a DHCPv6 server to obtain its address when SLAAC is used by itself.
A basic SLAAC process is:
- The host creates a link-local address.
- It performs Duplicate Address Detection.
- The host sends an RS to the all-routers multicast address.
- The router replies with an RA containing a
/64prefix and other settings. - The host combines the prefix with an interface identifier.
- It performs DAD for the new address.
- The host installs the router as its default gateway.
Modern operating systems may use a stable or temporary randomised interface identifier for privacy. Modified EUI-64 is another method, but you should not assume every host derives its address directly from its MAC address.
What do the RA flags mean?
RA messages include Managed Address Configuration and Other Configuration flags. These tell clients whether to use SLAAC, DHCPv6 or a combination.
| M flag | O flag | Typical client behaviour |
|---|---|---|
| 0 | 0 | SLAAC for addressing; no DHCPv6 information requested |
| 0 | 1 | SLAAC for address plus stateless DHCPv6 for other information |
| 1 | Either value | Stateful DHCPv6 is available for address configuration |
Even with stateful DHCPv6, an IPv6 host normally learns its default gateway from Router Advertisements rather than from DHCPv6. For a broader comparison of automatic configuration services, read DHCP and DNS explained.
How do you configure basic IPv6 and SLAAC on Cisco IOS?
Enable IPv6 routing globally, assign a /64 global unicast address to the LAN interface and ensure that the interface is active. A Cisco router then sends RAs on that interface by default, allowing compatible hosts to use SLAAC.
Lab topology in words:
PC1 ---- SW1 ---- G0/0 R1 G0/1 ---- R2
LAN-A Router Upstream
LAN-A IPv4: 192.0.2.0/24
LAN-A IPv6: 2001:db8:10:1::/64
R1 G0/0: 192.0.2.1 and 2001:db8:10:1::1Configure R1:
R1# configure terminal
R1(config)# ipv6 unicast-routing
R1(config)# interface gigabitEthernet 0/0
R1(config-if)# description LAN-A Dual-Stack Gateway
R1(config-if)# ip address 192.0.2.1 255.255.255.0
R1(config-if)# ipv6 address 2001:db8:10:1::1/64
R1(config-if)# no shutdown
R1(config-if)# endThe ipv6 unicast-routing command enables IPv6 packet forwarding and router advertisement behaviour. Assigning a global IPv6 address also causes Cisco IOS to create a link-local address automatically.
You can configure a predictable link-local address manually:
R1(config)# interface gigabitEthernet 0/0
R1(config-if)# ipv6 address fe80::1 link-localThe host should receive an address beginning with 2001:db8:10:1: and install R1's link-local address as its default gateway.
Verify the router:
R1# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::1
2001:DB8:10:1::1
R1# show ipv6 interface gigabitEthernet 0/0
GigabitEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::1
Global unicast address(es):
2001:DB8:10:1::1, subnet is 2001:DB8:10:1::/64
Joined group address(es):
FF02::1
FF02::2Exact output varies by IOS version and device platform. Focus on interface state, addresses, joined multicast groups and whether router advertisements are being sent.
What is dual stack and how does it operate?
Dual stack means running IPv4 and IPv6 on the same interfaces and devices. Applications and operating systems can choose either protocol according to destination records, network reachability and address-selection rules.
In the lab above, R1's G0/0 interface has both an IPv4 address and an IPv6 address. The two protocols operate independently:
IPv4 host traffic ---> 192.0.2.1 ---> IPv4 routing table
IPv6 host traffic ---> FE80::1 ---> IPv6 routing tableCheck both routing tables separately:
R1# show ip route
R1# show ipv6 routeTest both protocol paths:
R1# ping 192.0.2.10
R1# ping 2001:db8:10:1::10DNS can provide an A record for IPv4 and an AAAA record for IPv6. A dual-stack client may attempt IPv6 when an AAAA record and usable IPv6 path exist, while retaining IPv4 connectivity.
Dual stack does not mean that IPv4 and IPv6 communicate directly. Translation or proxy mechanisms are required when an IPv6-only endpoint must reach an IPv4-only service. Also, IPv6 is not simply IPv4 with a longer address: it has separate routing, neighbour discovery and security policies.
How do you troubleshoot IPv6 connectivity?
Start with interface state and addressing, then check neighbour discovery, routes, router advertisements, DNS and filtering. Test the local host, default gateway and remote destination in that order.
1. Check interface status and addresses
R1# show ipv6 interface brief
R1# show interfaces gigabitEthernet 0/0If the interface is administratively down, enter interface configuration mode and use no shutdown. Confirm that both ends use the expected /64 prefix.
2. Confirm IPv6 routing is enabled
R1# show running-config | include ipv6 unicast-routingIf the command is missing, the router may have an IPv6 address but will not operate as an IPv6 router as expected.
3. Inspect neighbours
R1# show ipv6 neighborsThis table maps IPv6 neighbours to link-layer addresses. An incomplete entry can indicate VLAN, switching, NDP filtering or local-link connectivity problems.
4. Check the IPv6 routing table
R1# show ipv6 routeA directly connected /64 should appear when the interface is up. For remote networks, confirm that a static or dynamic route exists and that the return path is valid.
5. Test in a logical order
R1# ping ::1
R1# ping 2001:db8:10:1::1
R1# ping 2001:db8:10:1::10
R1# traceroute 2001:db8:20:1::20The loopback test checks the local stack. The remaining tests check the local interface, on-link host and routed path.
6. Check RA and host configuration
Use show ipv6 interface to verify that RAs are being sent and the advertised prefix is correct. If a host has only a link-local address, investigate the RA configuration, VLAN path and host autoconfiguration setting.
Do not troubleshoot an IPv6-only failure by changing IPv4 NAT. NAT and PAT normally solve IPv4 address translation requirements; IPv6 has its own routing and security design. See NAT and PAT explained for the IPv4 behaviour.
What should you remember for the CCNA exam?
Remember the major prefixes, the purpose of NDP messages, the SLAAC sequence and the fact that IPv4 and IPv6 have separate forwarding tables. You should also be able to configure and verify a basic dual-stack Cisco interface.
- IPv6 addresses are 128 bits long.
- A LAN commonly uses a
/64prefix. 2000::/3covers global unicast addresses.fe80::/10identifies link-local addresses.ff00::/8identifies multicast addresses.::1is loopback, while::is unspecified.- IPv6 does not use broadcast or ARP.
- NDP uses ICMPv6 RS, RA, NS and NA messages.
- SLAAC obtains prefix and gateway information from RAs.
- Dual stack runs IPv4 and IPv6 in parallel.
show ipv6 interface brief,show ipv6 neighborsandshow ipv6 routeare key verification commands.
Frequently asked questions
Does IPv6 use NAT?
IPv6 is generally designed around globally unique addressing and end-to-end routing, so routine address-conservation NAT is not required. Firewalls, ACLs and security policies are still necessary because globally unique addressing does not mean unrestricted access.
Can SLAAC provide a default gateway?
Yes. The host learns its IPv6 default gateway from Router Advertisements sent by a local router. DHCPv6 does not normally supply the IPv6 default gateway.
Does every IPv6 interface need a global address?
No. An interface can communicate with devices on the same link using only a link-local address. A global or unique local address is normally required for communication beyond that link.
Is a /64 mandatory for SLAAC?
Standard SLAAC address generation expects a /64 prefix for normal unicast LAN operation. CCNA labs should use /64 on host-facing SLAAC networks unless a scenario explicitly requires different behaviour.
What replaces ARP in IPv6?
NDP replaces ARP's address-resolution function. Neighbor Solicitation and Neighbor Advertisement messages discover the link-layer address associated with an on-link IPv6 address.
Can IPv4 and IPv6 use the same routing table?
No. Routers maintain separate IPv4 and IPv6 routing tables. On Cisco IOS, use show ip route for IPv4 and show ipv6 route for IPv6.
Start practising IPv6 for CCNA
IPv6 becomes easier when you configure addresses, capture NDP exchanges and troubleshoot broken routes in a lab. For guided labs, enquiry support and current batch details, visit the Network Rhinos CCNA course.
Reviewed by Network Rhinos networking trainers.
Related reading: Networking Training in Bangalore: Compare Institutes Fairly
