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.
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.
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.
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.
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
.
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.
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)
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