ipv6:为什么ndpparsing为全局作用域地址?

我面临一个奇怪的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,回显请求,seq 1,长度64

10:59:02.082960 IP6 2a00:7d30:edf6:100 :: 10> 2a00:7d30:edf6:100 :: 1:ICMP6,回复应答,seq 1,长度64

感谢您对朱利安的问候

NDP是用于IPv6的,ARP是用于IPv4的:它为给定的第3层地址(IP地址)提供了第2层地址(以太网MAC地址)。 如果你想发送一个数据包到与你自己在同一子网上的全局IPv6地址,那么NDP将询问哪个MAC地址将接收到该全局地址的数据stream。 然后,该IP地址的“所有者”将作出响应,并让发现请求的发件人知道其第2层MAC地址是什么。

如果你已经发送了一个数据包到链路本地IPv6地址,那么NDP响应将传送链路本地IPv6地址的MAC地址。