IPv6的邻居发现协议NDP
Neighbor Discovery Protocol
Neighbor Discovery Protocol 是 IPv6 中新增的协议类型,主要用于替代 IPv4 中的 ARP 协议,同时也可以替代 DHCP 服务。NDP 内容包含在 ICMPv6 中。
起到 DHCP 功效的 RS 和 RA
在 IPv6 中,我们仍可以使用 IPv4 中常用的 Dynamic Host Configuration Protocol(DHCP) 服务,这项服务在 IPv6 中叫做 DHCPv6。不过标准的制定者想必也是考虑到 Plug and Play 这种需求,因此在原生 IPv6 中,就提供了一种类似 DHCP 功能的协议,叫做 Neighbor Discovery Protocol。
DHCP 工作流程
在 DHCP 中,没有 IP 的设备插到以太网上后,设备会尝试广播一个 DHCP Discover 包,然后 DHCP 服务器会回复一个 DHCP Offer 包,然后设备再回复一个 DHCP Request 包,最后 DHCP 服务器再回复一个 DHCP Ack 包,这样就完成了 IP 地址的分配。
NDP 工作流程
在原生 IPv6 中,这个过程类似,没有 IP 的设备插到以太网上后,设备会尝试广播一个 Router Solicitation(RS) 包,当路由器收到这个组播包后(IPv6 没有广播,使用组播代替了广播)路由器会回复一个 Router Advertisement(RA) 包,RA 包的内容包括了路由器的 IP 地址,子网前缀,以及其他一些信息。此时设备会自动生成一个后缀,然后和子网前缀组合成一个 IPv6 地址,这样就完成了 IP 地址的分配。

NDP 和 DHCP 的对应表
| DHCP | NDP |
|---|---|
| DHCP Discover | Router Solicitation |
| DHCP Offer | Router Advertisement |
| DHCP Request | N/A(客户端会自动生成一个 IPv6 地址) |
| DHCP Ack | N/A |
起到 ARP 功效的 NS 和 NA
ARP 协议用于解析 IP 地址和 mac 地址的对应关系,NDP 中也有类似的协议,叫做 Neighbor Solicitation(NS)和 Neighbor Advertisement(NA)。
当用户机器 A 想要和另一个机器 B 通信时,若没有机器 B 的 MAC 地址,A 会发送一个 NS 包,询问 B 的 MAC 地址,B 收到 NS 包后,会回复一个 NA 包,告诉 A 自己的 MAC 地址。这个过程和 ARP 协议中的 ARP Request 和 ARP Reply 过程类似。
ARP 和 NDP 对应表
| ARP | NDP |
|---|---|
| ARP Request | Neighbor Solicitation |
| ARP Reply | Neighbor Advertisement |
综上,我们在连接到以太网后,通过 NDP 协议成功获取到了路由器的 IP 地址,也生成了自己的 IP 地址,我们也有能力获得其他设备的 IP 地址和 mac 地址,这样就可以进行通信了。
评论
发表评论