在 IPv4 中使用 ARP 协议获取 IP 地址对应的 MAC 地址。在 IPv6 中,则使用 ICMPv6 报文中的类型为 135 的邻居请求报文和 136 的邻居通告报文来获取 MAC 地址。
IP 为 2001:1::2 的主机获取 IP 为 2001:1::1 的主机的 MAC 地址过程如下:
1.2001:1::2 主机发出邻居请求报文,格式如下:
-
目的 IP 地址是 ff02::1:ff00:1。这是一个特殊的组播地址,称为 Solicited-node 地址,Solicited-node 地址由前缀 FF02::1:FF00:0 / 104 和 ipv6 单播地址【2001::1:1】的最后 24 位组成。一个 IPv6 单播地址对应一个 Solicited-node 地址,有效范围为本地链路范围。这个组播地址的格式如下:
-
目的 MAC 地址是 33:33:ff:00:00:01,这个地址是根据组播地址映射而来的:
-
邻居请求报文中的 Target address 是目的 IP 地址 2001:1::1,并且选项中包含着 自己的 MAC 地址。
2.2001:1::1 的主机收到邻居请求报文后,发现是请求自己 IP 的 MAC 地址,于是回应邻居通告报文,格式如下:
- 目的 MAC 地址是 2001:1::2 的 MAC 地址
- 目的 IP 是 2001:1::2
- Target address 是 2001:1::1,并且选项中包含着自己的 MAC 地址。
主机 2001:1::2 收到这个邻居通告报文后就知道 2001:1::1 的 MAC 地址了。