具有重复路由条目的 IPv6 路由

具有重复路由条目的 IPv6 路由

在我的 Linux 系统中,它有三个接口,每个接口都分配了一个 ipv6 地址。路由表如下:

fe80::/64 dev enx000ec6ac911b proto 内核度量 256 pref 中等
fe80::/64 dev enx000ec6aca81e proto 内核度量 256 pref 中等
fe80::/64 dev wlp59s0 proto 内核指标 600 pref 中等

现在我有另一台设备连接到 enx000ec6ac9111b。我可以 ping 它:

ping -6 fe80::224:28ff:fe00:b6e4
PING fe80::224:28ff:fe00:b6e4(fe80::224:28ff:fe00:b6e4) 56 个数据字节
来自 fe80::224:28ff:fe00:b6e4%enx000ec6ac911b 的 64 字节:icmp_seq=1 ttl=64 时间=0.585 毫秒
来自 fe80::224:28ff:fe00:b6e4%enx000ec6ac911b 的 64 字节:icmp_seq=2 ttl=64 时间=0.522 毫秒

我可以看到,ping 命令的目标地址无法与路由表明确区分(路由表中有三个 fe80::/64)。我的问题是,Linux 如何正确地将数据包发送到正确的接口并得到回复?我感觉 ipv6 情况下的路由工作方式似乎与 IPv4 不同。

请有人给出一点解释。谢谢!

- 木质

答案1

第 2 层,而不是第 3 层

ip neighbor将显示你的NDP 发现 IPv6 邻居以及您的 ARP 发现的 IPv4 邻居。以及有问题的接口。这是在链路层,不是路由。

需要将区域索引发送到本地链路在正确的接口上。​​由于地址空间的大小,唯一地址很常见,因此它很方便,不需要您输入它。

相关内容