我遇到了一个奇怪的 ipv6 行为,我不知道如何解决它,因为我不熟悉 ipv6。也许这种行为是正常的。我希望你能帮助我。(我在 debian 6.0.9 下运行,使用自定义内核 3.2.58)
机器 A 为“2a00:7d30:edf6:100::1”,想要 ping 机器 B,即“2a00:7d30:edf6:100::10”。两者位于同一网段。
机器 A 询问机器 B 的地址,我不明白为什么机器 B 给出其全局范围地址而不是本地范围地址?
10:59:02.082785 IP6 2a00:7d30:edf6:100::1 > ff02::1:ff00:10: ICMP6,邻居请求,谁有 2a00:7d30:edf6:100::10,长度 32
10:59:02.082821 IP6 2a00:7d30:edf6:100::10 > 2a00:7d30:edf6:100::1: ICMP6,邻居通告,tgt 为 2a00:7d30:edf6:100::10,长度 32
之后,机器 A ping 机器 B 的全局范围地址并且工作正常:
10:59:02.082927 IP6 2a00:7d30:edf6:100::1 > 2a00:7d30:edf6:100::10: ICMP6,回显请求,序列号 1,长度 64
10:59:02.082960 IP6 2a00:7d30:edf6:100::10 > 2a00:7d30:edf6:100::1: ICMP6,回显答复,序号 1,长度 64
谢谢你的帮助,祝你好运,朱利安
答案1
NDP 对于 IPv6 的作用就如同 ARP 对于 IPv4 的作用一样:它为您提供给定第 3 层地址(IP 地址)的第 2 层地址(以太网 MAC 地址)。如果您要将数据包发送到与您自己位于同一子网的全局 IPv6 地址,则 NDP 将询问哪个 MAC 地址将接收该全局地址的流量。然后,该 IP 地址的“所有者”将做出响应,并让发现请求的发送者知道其第 2 层 MAC 地址是什么。
如果您已将数据包发送到链路本地 IPv6 地址,则 NDP 响应将传达链路本地 IPv6 地址的 MAC 地址。