Home CCNA ICMPv6 Neighbor Discovery: RS, RA, NS, and NA Messages Explained
CCNA

ICMPv6 Neighbor Discovery: RS, RA, NS, and NA Messages Explained

Laptop Exchanging Rs, Ra, Ns, And Na Messages With A Router To Configure An Ipv6 Address

ICMPv6 does considerably more than its IPv4 counterpart. Beyond basic error reporting, it absorbs an entire protocol’s worth of functionality through the Neighbor Discovery Protocol (NDP), four distinct message types working together to replace ARP, handle address resolution, and drive SLAAC. This guide covers each of the four NDP message types, how they interact, and how to configure and troubleshoot them on Cisco equipment, working through a complete worked example along the way.

ICMPv4 vs. ICMPv6 at a Glance

FeatureICMPv4ICMPv6
EncapsulationIPv4 packetsIPv6 packets
Address resolutionARP (separate protocol)NDP (NS/NA messages)
AutoconfigurationNot supportedSLAAC via RA messages
Multicast supportLimited (e.g., IGMP)Extensive (e.g., FF02::2 for routers)

ICMPv6’s NDP consists of four message types: Router Solicitation (RS), Router Advertisement (RA), Neighbor Solicitation (NS), and Neighbor Advertisement (NA). RS/RA handle router discovery and autoconfiguration; NS/NA handle address resolution and duplicate address detection.

Grid Summarizing All Four Ndp Message Types With Their Type Numbers And Destinations
Four Messages, Two Jobs — Network Setup And Address Resolution

Router Solicitation (RS)

A host sends an RS message to prompt any routers on the segment to send a Router Advertisement immediately, rather than waiting for the next periodic RA broadcast. This matters directly for SLAAC, since a host needs prefix information from an RA before it can complete its own address configuration.

  • ICMPv6 Type: 133
  • Destination: FF02::2 (all-routers multicast)
  • When sent: At startup, or whenever a host needs updated configuration information immediately

Router Advertisement (RA)

Routers send RA messages, either periodically or in direct response to an RS, to provide hosts with the network prefix, default gateway, DNS server, MTU, and neighbor discovery timers needed for SLAAC.

  • ICMPv6 Type: 134
  • Destination: FF02::1 (all-nodes multicast)
  • Managed Address Configuration (M) flag: Set when hosts should use DHCPv6 for address assignment rather than SLAAC alone
  • Other Configuration (O) flag: Set when hosts should use DHCPv6 for other settings, like DNS, even while still using SLAAC for the address itself

Configuring RS/RA on a Cisco Router

Before any of this works, IPv6 routing needs to be enabled globally, a step worth stating explicitly since it’s easy to assume interface-level configuration alone is sufficient:

Router(config)# ipv6 unicast-routing

With that in place, configure the interface:

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8::1/64
Router(config-if)# ipv6 nd ra interval 200
Router(config-if)# no ipv6 nd suppress-ra
Router(config-if)# ipv6 nd prefix 2001:db8::/64
Router(config-if)# ipv6 nd ra dns server 2001:db8::53

This sets the RA interval to 200 seconds, ensures RA messages aren’t suppressed, advertises the specified prefix, and includes a DNS server in the advertisement.

Verification:

Router# show ipv6 routers

This confirms exactly what RA information a Cisco device has received from routers on its segment, useful both for confirming your own router’s configuration and for spotting an unexpected or unauthorized RA source.

Diagram Of The Router Solicitation And Router Advertisement Exchange
A Host Asks; A Router Answers With Everything Needed For Slaac

Neighbor Solicitation (NS) and Neighbor Advertisement (NA)

NS and NA together replace ARP entirely under IPv6, serving two distinct purposes: address resolution and Duplicate Address Detection.

Address Resolution

When a device knows a destination’s IPv6 address but not its MAC address, it sends an NS message to that address’s solicited-node multicast address, functionally equivalent to an ARP request under IPv4. The device owning that IPv6 address responds with an NA message containing its MAC address.

  • NS — ICMPv6 Type: 135, containing the target address to resolve
  • NA — ICMPv6 Type: 136, containing the responding device’s MAC address
Diagram Of Ns And Na Messages Resolving An Ipv6 Address To A Mac Address
Pv6’S Answer To Arp: One Targeted Question, One Direct Answer

Duplicate Address Detection (DAD)

Before a device puts a newly assigned IPv6 address into actual use, it needs to confirm no other device on the segment already has it. DAD accomplishes this using the same NS message type, just for a different purpose:

  1. The device sends an NS message with its own tentative address as the target, essentially asking “does anyone already have this address?”
  2. If another device already holds that address, it responds with an NA message.
  3. If no NA arrives within the expected timeout, the address is confirmed unique and safe to use.

This mirrors what gratuitous ARP accomplishes for duplicate detection under IPv4, adapted to IPv6’s NS/NA mechanism instead.

Flowchart Of The Duplicate Address Detection Decision Process
A Device Checks With Itself In Mind Before Ever Using A New Address

Verifying Neighbor Entries

Router# show ipv6 neighbors

This displays the IPv6 address, corresponding MAC address, and interface for every neighbor the router has discovered, IPv6’s equivalent of checking an ARP table under IPv4.

Troubleshooting ICMPv6/NDP Issues

CommandPurpose
show ipv6 routersVerify received RA messages
show ipv6 neighborsCheck the neighbor (NDP) cache
debug ipv6 ndReal-time debugging of NDP message exchange

A typical debug ipv6 nd session shows entries like:

ICMPv6-ND: Received RA from 2001:db8::1 on GigabitEthernet0/0

confirming exactly when and from where RA messages are actually arriving, useful when a host isn’t autoconfiguring as expected and you need to confirm whether the RA itself is even reaching it, rather than assuming the problem is somewhere else entirely.

Security Considerations

RA Spoofing

NDP has no built-in authentication, which means a malicious or simply misconfigured device on a segment can send forged RA messages, potentially disrupting SLAAC for every other host on that segment or redirecting their default gateway to an attacker-controlled device. RA Guard is the standard Cisco defense, filtering RA messages at the switch port level so only authorized ports can actually send them:

Switch(config)# ipv6 nd raguard policy RAGUARD
Switch(config-nd-raguard)# device-role router
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# ipv6 nd raguard attach-policy RAGUARD

The attach-policy keyword is essential here; simply entering ipv6 nd raguard without referencing the named policy won’t actually apply your specific RA Guard configuration to the interface.

Diagram Of Ra Guard Blocking A Forged Router Advertisement On An Untrusted Port
Ra Guard Trusts Specific Ports, Not Specific Messages

DAD-Related Attacks

An attacker can exploit the DAD process itself, responding to every DAD attempt with an NA claiming the address is already taken, effectively preventing legitimate devices from ever completing address assignment. Secure Neighbor Discovery (SEND), where supported, adds cryptographic protection to NDP messages specifically to defend against this and similar NDP-based attacks.

A Worked Example: A Device Joining the Network

Tracing through a full sequence makes the relationship between these four message types concrete. A laptop connects to a network segment for the first time. It sends an RS message to FF02::2, prompting any routers present to respond immediately rather than waiting for the next scheduled broadcast. A router replies with an RA to FF02::1, including the network prefix, default gateway information, and relevant timers.

Using that prefix, the laptop generates a tentative IPv6 address, via EUI-64 or randomly, and immediately runs DAD: it sends an NS message targeting its own tentative address. If no NA response arrives within the timeout, the address is confirmed unique, and the laptop begins using it, all without any manual intervention from either the user or a network administrator. Later, when the laptop needs to reach another device on the same segment whose MAC address it doesn’t yet know, it sends a separate NS message, this time targeting that device’s known IPv6 address, and receives an NA in response containing the MAC address needed to actually build a frame.

Four message types, two entirely different purposes, RS/RA for network-level configuration, NS/NA for address-level resolution and verification, working together to get a new device fully operational on an IPv6 network without any manual configuration required. Understanding this full sequence end to end makes each individual message type’s purpose far easier to remember than treating them as four isolated facts.

Why NS Uses Solicited-Node Multicast Instead of Broadcast

It’s worth understanding why NS messages target a solicited-node multicast address rather than simply broadcasting the way ARP does under IPv4. A solicited-node multicast address is derived directly from the last 24 bits of the target IPv6 address, following a fixed formula, which means only devices whose own address shares those final 24 bits will actually be listening on that specific multicast group. In practice, this narrows the set of devices that even need to process a given NS message down to a very small number, often just one, rather than forcing every single device on the segment to inspect and discard an ARP-style broadcast the way IPv4 requires.

This is a genuinely meaningful efficiency gain at scale. On a segment with hundreds of devices, an IPv4 ARP broadcast interrupts every one of them, however briefly, for every single address resolution. The equivalent IPv6 NS message, thanks to solicited-node multicast, interrupts only the one or few devices that could plausibly be the actual target, letting everything else on the segment continue undisturbed.

A Second Worked Example: Diagnosing a Failed Autoconfiguration

Say a newly connected laptop never receives an IPv6 address on a segment where SLAAC should be working. debug ipv6 nd on the router shows no RS message ever arriving from that laptop’s MAC address, which immediately narrows the problem: either the laptop itself isn’t sending an RS at all, worth checking its own IPv6 configuration state, or the RS is being sent but never reaching the router, pointing toward a switch-level filtering issue, possibly RA Guard or another security policy misconfigured to block legitimate traffic rather than just spoofed traffic.

If the RS does show up in the debug output but no corresponding RA gets logged as sent, the problem sits on the router side instead: check show ipv6 routers and confirm ipv6 unicast-routing is actually enabled globally, along with no ipv6 nd suppress-ra on the relevant interface. Working through the exchange in order, RS first, then RA, is the fastest way to isolate exactly which side of the conversation is actually failing.

This kind of targeted, evidence-based narrowing, confirming exactly which message in the RS/RA exchange is missing, rather than guessing broadly at “IPv6 isn’t working,” is exactly the value debug ipv6 nd provides over just staring at end-host symptoms alone. It’s the same disciplined approach worth applying to almost any protocol-level troubleshooting, not just NDP specifically.

Frequently Asked Questions

What’s the difference between Router Solicitation and Router Advertisement?

Router Solicitation is sent by hosts requesting immediate router configuration information, while Router Advertisement is sent by routers, either periodically or in response to an RS, actually providing that configuration information. RS prompts; RA delivers.

How does Neighbor Discovery replace ARP under IPv6?

NS and NA messages perform the same address resolution job ARP performs under IPv4, resolving a known IPv6 address into its MAC address, but using ICMPv6 multicast to the solicited-node address rather than IPv4’s broadcast-based ARP request. This is more efficient, since it avoids interrupting every device on the segment for a resolution request that only concerns one specific device.

What’s the purpose of Duplicate Address Detection?

DAD confirms a device’s tentative IPv6 address isn’t already in use by another device on the same segment before that address gets put into actual use, using the same NS message type as address resolution but targeting the device’s own address instead of a remote one. This prevents address conflicts that could otherwise cause unpredictable connectivity problems for both devices involved.

Why is ipv6 unicast-routing necessary before configuring RA settings?

This global command enables IPv6 routing functionality on the device in the first place; without it, interface-level IPv6 configuration won’t actually result in the router processing and forwarding IPv6 traffic or sending RA messages the way you’d expect. It’s a genuinely easy step to overlook since it’s configured once globally rather than per-interface like most of the other settings covered here.

What is RA Guard and why does it matter?

RA Guard is a Cisco switch feature that filters Router Advertisement messages at the port level, allowing them only from ports explicitly designated as legitimate router-facing ports. This defends against RA spoofing, where a malicious or misconfigured device sends forged RA messages that could disrupt SLAAC or redirect victims’ default gateway to an attacker-controlled device.

How can I verify what RA information my router has actually received?

show ipv6 routers displays the Router Advertisement information a Cisco device has received, including source router, prefix, and lifetime details. This is genuinely useful both for confirming your own router configuration is being received correctly and for identifying an unexpected or unauthorized RA source during a security investigation.

About This Content

Author Expertise: 10 years of experience in Enterprise network architecture, routing and switching, IPv4/IPv6 management, network automation, and security fundamentals.. Certified in: CCNP, CCNA
Avatar Of Asad Ijaz
Asad Ijaz

Editor & Founder

Lead Networking Architect and Editor at NetworkUstad. CCNP and CCNA certified, with 10+ years of experience in enterprise network design, implementation, and troubleshooting. Writes practical tutorials on routing, IPv4 management, network automation, and security fundamentals.

Related Articles