IPv6 Neighbor Table Empty — NDP Not Working
Presenting Symptom
The IPv6 neighbor table is empty, and hosts cannot communicate over IPv6 despite IPv6 being configured on interfaces.
Network Context
A small branch office with one Cisco router (IOS 15.x) connected to a single switch and several PCs. IPv6 addressing is configured on the router's LAN interface and PCs, but no IPv6 neighbor entries appear. The router is not learning neighbor MAC addresses via NDP.
Diagnostic Steps
Check IPv6 neighbor table
show ipv6 neighborsIPv6 Address Age Link-layer Addr State Interface (empty output or no entries)
If the table is empty, no IPv6 neighbors have been discovered. This indicates NDP is not working. If entries were present, the issue would be elsewhere.
Verify IPv6 interface status and configuration
show ipv6 interface GigabitEthernet0/0GigabitEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::1 No global unicast address is configured ...
Check if IPv6 is enabled and if a global unicast address is present. If only link-local is present, hosts may not have a routable address. Also verify the interface is up/up.
Check IPv6 unicast-routing global configuration
show running-config | include ipv6 unicast-routingipv6 unicast-routing
If this command returns nothing, IPv6 routing is disabled. Without it, the router will not forward IPv6 packets or respond to NDP solicitations for global addresses.
Verify NDP neighbor discovery messages using debug
debug ipv6 ndICMPv6-ND: Received NS for target address ... ICMPv6-ND: Sending NA to ...
If no debug output appears when pinging from a host, the router is not receiving or sending NDP messages. This confirms a configuration or connectivity issue. Disable debug with 'undebug all'.
Root Cause
The global configuration command 'ipv6 unicast-routing' is missing. Without this command, the router does not enable IPv6 routing, so it does not process NDP messages for global unicast addresses, resulting in an empty neighbor table.
Resolution
Verification
After enabling IPv6 routing, verify the neighbor table populates: Router# show ipv6 neighbors IPv6 Address Age Link-layer Addr State Interface 2001:db8:1::100 0 aaaa.bbbb.cccc REACH Gi0/0 Also confirm IPv6 connectivity with a ping: Router# ping ipv6 2001:db8:1::100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:db8:1::100, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5)
Prevention
1. Always include 'ipv6 unicast-routing' in the base configuration when deploying IPv6. 2. Use configuration templates or automation to ensure consistent IPv6 settings. 3. Verify IPv6 neighbor table as part of initial network validation.
CCNA Exam Relevance
On the CCNA 200-301 exam, this scenario appears in troubleshooting questions where the IPv6 neighbor table is empty. The exam tests the candidate's knowledge that 'ipv6 unicast-routing' must be enabled globally for IPv6 routing and NDP to function. Expect multiple-choice or simulation questions asking to identify the missing command.
Exam Tips
Remember that 'ipv6 unicast-routing' is a global command required for IPv6 routing; without it, the router acts as an IPv6 host.
The 'show ipv6 neighbors' command is the first step to verify NDP; an empty table often points to missing routing or interface issues.
Be aware that link-local addresses are automatically generated and do not require 'ipv6 unicast-routing', but global unicast communication does.
Commands Used in This Scenario
Test Your CCNA Knowledge
Practice with scenario-based questions to prepare for the CCNA 200-301 exam.
Practice CCNA Questions