IPv6 Neighbor Discovery Protocol (NDP)

1. Introduction

Engineers designed IPv6 to avoid the limitations of IPv4. In IPv4, different methods were needed to perform basic network functions.

  • We need ARP to resolve MAC addresses.

  • They used ICMP Router Discovery to find routers.

neighbor discovery protocol is used in ipv6

Figure 1 – IPv4 ARP and ICMP vs IPv6 NDP

This created complexity and depended on broadcast, which is inefficient.

IPv6 simplifies things with one protocol: the Neighbor Discovery Protocol (NDP). RFC 4861 details this protocol.

NDP uses ICMPv6 messages with multicast instead of broadcast. Thanks to this, IPv6 devices can:

  • Discover routers.

  • Learn prefixes and configuration parameters.

  • Resolve the MAC address of neighbors.

At the CCNA level, you need to focus on the four essential NDP message types:

  • Router Solicitation (RS)

  • Router Advertisement (RA)

  • Neighbor Solicitation (NS)

  • Neighbor Advertisement (NA)

Now that we understand why IPv6 needs NDP, let’s start with the first step: how a host discovers a router on the network.

This is done using the Router Solicitation (RS).

2. Router Solicitation (RS)

Like in IPv4, where hosts could use ICMP Router Discovery, RS is the IPv6 way to ask routers for information.

When a host connects to an IPv6 network, it doesn’t know the prefix or the default gateway yet. To learn this quickly, it sends a Router Solicitation (RS).

In our example, PC1 asks, “Who is the router here?”
The message is sent to the special multicast address FF02::2 (all routers) so that only routers will receive it.

IPv6 NDP Router Solicitation example with PC and router

Figure 2 – IPv6 NDP Router Solicitation from PC to router

At Layer 2, this IPv6 multicast maps to the Ethernet address 33:33:00:00:00:02.
The source IPv6 and MAC belong to PC1, so the router knows who is asking the question.

In short, PC1 sends an RS (ICMPv6 type 133) to FF02::2. Only routers listen to this address and will reply with a Router Advertisement (RA).

3. Router Advertisement (RA)

When a router receives an RS, it must reply. This reply is called a Router Advertisement (RA).

In IPv4, this was done with ICMP Router Discovery, but IPv6 makes it simpler and more complete with RA.

In our example, R1 replies: I’m the router, here is the prefix and my MAC address.
An RA can also be sent periodically, even without an RS, so that hosts on the network always know who the router is.

IPv6 NDP Router Advertisement example sent by router to hosts

Figure 3 – IPv6 NDP Router Advertisement from Router to Hosts

The RA is sent to the all-nodes multicast address FF02::1, which means every IPv6 device on the link will hear it.

At Layer 2, this maps to the Ethernet address 33:33:00:00:00:01. The source IPv6 and MAC address belong to R1, clearly identifying the router as the sender.

The RA message gives hosts essential information such as:

  • The network prefix (for example, 2001:DB8:10::/64)

  • The MTU (for example, 1500)

  • The router’s MAC address (inside the link-layer option)

By default, Cisco routers send an RA every 200 seconds, ensuring that hosts always have up-to-date information.

In short, R1 sends an RA (ICMPv6 type 134) to FF02::1. This lets every IPv6 device on the link know the prefix, the gateway, and how to reach the router.

4. Neighbor Solicitation (NS)

Once the host knows the prefix and the router, it may also need to talk to another host on the same network. To do that, it first needs the neighbor’s MAC address.

This is the IPv6 equivalent of an ARP Request in IPv4, but instead of broadcast, IPv6 uses a more efficient multicast.

PC1 requests the MAC address of PC3 using IPv6 Neighbor Solicitation\n

Figure 4 – PC1 needs the MAC address of PC3 before sending a Neighbor Solicitation

In our example, PC1 asks: “Who owns this IPv6 address?”
To reach PC3, it sends a Neighbor Solicitation (NS) message.

The solicited-node multicast is created by adding the last 24 bits of the target IPv6 address to FF02::1:FFXX:XXXX.

For example, if PC3 has the link-local address FE80::3C3:FEC3:C3C3, the solicited-node multicast becomes FF02::1:FFC3:C3C3.

IPv6 NDP Neighbor Solicitation example used to discover a neighbor MAC address

Figure 5 – IPv6 NDP Neighbor Solicitation to discover a neighbor MAC

At Layer 2, this IPv6 multicast maps to the Ethernet address 33:33:FF:C3:C3:C3.
Only the device that owns this IPv6 address (PC3) will actually process the message. All other hosts receive the frame but ignore it.

In short, PC1 sends an NS (ICMPv6 type 135) to the solicited-node multicast of PC3. This allows PC1 to discover the MAC address of its neighbor.

5. Neighbor Advertisement (NA)

When a device receives a Neighbor Solicitation, it replies with a Neighbor Advertisement (NA) to confirm its presence.

This is the IPv6 equivalent of an ARP reply in IPv4.

IPv6 Neighbor Advertisement reply from PC3 to PC1\n

Figure 6 – PC3 replies with a Neighbor Advertisement to PC1.

In our example, PC3 receives the NS sent by PC1. It checks the target IPv6 address, and since it matches its own, PC3 replies: “It’s me, here is my MAC address.”

The NA contains two key pieces of information:

  • PC3’s IPv6 address (as the target)

  • PC3’s MAC address (in the link-layer option)

IPv6 NDP Neighbor Advertisement example showing neighbor reply with MAC address

Figure 7 – IPv6 NDP Neighbor Advertisement with Neighbor MAC Reply

The NA is sent as a unicast directly back to PC1, so only the requester receives it.

In short, PC3 sends an NA (ICMPv6 type 136) as a unicast to PC1, providing its MAC address.
This works just like an ARP Reply in IPv4, except that in IPv6 it’s a unicast response, not a broadcast.

6. Conclusion and Key Points

The Neighbor Discovery Protocol (NDP) replaces several IPv4 functions (ARP and ICMP Router Discovery) and unifies them into a single IPv6 mechanism, defined in RFC 4861.
It operates with ICMPv6 messages and uses multicast instead of broadcast.

At the CCNA level, the key is to remember the four essential NDP messages and their purpose:

Message

ICMPv6 Type

Who Sends It

Destination

Purpose

RS

133

Host

FF02::2 (all routers)

Ask routers for info

RA

134

Router

FF02::1 (all nodes)

Announce prefix, gateway

NS

135

Host

FF02::1:FFXX:XXXX (solicited-node)

Ask for MAC

NA

136

Host/Device

Unicast to requester

Reply with MAC

Table 1 – Summary of NDP Messages