Time to switch gears from the past to the future.
These next few modules focus on IPv6.
I won't spend as much time explaining the core concepts behind ping,
traceroute, fragmentation, and ICMP security.
Instead, I will focus on something even more important for IPv6,
and that's neighbor discovery, or ND.
The purpose of ND is to effectively do what Address Resolution Protocol,
or ARP, does for IPv4.
It provides an IP to MAC address mapping mechanism over
multi‑access networks like Ethernet.
If you aren't very familiar with IPv4 ARP or IPv6 in general,
please visit the course page for links to other
Pluralsight courses on these topics.
Assuming you have basic knowledge in those areas,
stick around, and I'll explain how ND works using simple flow diagrams.
I'll never skimp on packet analyses, and we have plenty to learn about here.
Let's get started.
First, we'll focus on the mechanics of ND.
I need to start with a high‑level overview of the
packet types and their exchanges.
I'm intentionally leaving out some minor steps and bits of
information for illustrative purposes.
Let's just assume that this client has a static
link‑local IPv6 address of FE80::4 to start.
First,
the Globomantics client comes online and immediately
issues a neighbor solicitation, or NS, message to ask,
hey, I want to use a link‑local IPv6 address of FE80::4.
Is anyone else using it?
The host then waits a few seconds.
Most of the time no one replies,
so the host assumes that the address selected is unique.
If the address was already in use somewhere,
a reply message would basically say, yes,
I am using it from the duplicated device.
IPv6 calls this process duplicate address detection, or DAD for short.
We'll talk more about DAD soon.
In this case, no one replied, so the host can assume the address of FE80::4.
Let's assume that this host now wants to send traffic
to its local Globomantics router,
maybe just pinging the gateway to ensure it has been configured for IPv6.
The client tries to ping the router link‑local IPv6
address using a standard ICMP ping.
Because the client doesn't know the MAC address for the router,
it issues another NS, which, in this case,
acts like an IPv4 ARP request.
It effectively asks, what is the MAC address for FE80::1?
Tell FE80:4 if you know it.
The router processes the NS and replies with a message
known as a neighbor advertisement, or NA.
This is the IPv6 equivalent of an ARP reply,
which carries the MAC address of the router's IPv6 interface facing the client.
What happens when the client needs to send traffic
to a server multiple hops away?
It first needs to learn about any routers on the segment.
Currently, the router has not announced itself officially as an IPv6 router.
The client must ask,
are there any routers out there and sends this message to
the all routers IPv6 multicast group.
This message is called, not surprisingly, a router solicitation message, or RS.
Any routers that receive this message can reply with, yes, I'm a router,
and here is some extra information you may find useful.
This reply to the RS is a router advertisement, or RA, message.
The RS and RA don't map nicely into IPv4 ARP, but have a little in
common with ICMP Router Discovery Protocol, or IRDP.
This is a legacy IPv4 protocol used for discovering routers on a LAN segment.
The RA message contains useful information like MTU, available IPv6 prefixes,
default gateway information, and much more. Having received a routable prefix
from the RA message, the client can derive a routable IPv6 address using
stateless address autoconfiguration, or SLAAC. SLAAC will use the low order 64
bits from the link‑local address as a seed.
This address becomes the source IPv6 address for any data sent off
network. Now that we've covered the high‑level operation of IPv6 ND, let's explore it in our routers.