我现在知道答案了:我犯了一个严重的错误,甚至没有告诉你。当时还有一个正在运行radvd
的路由器广告,我没有对 64 网络进行 RA,而是对 56 网络进行了 RA。因此,路由器和/或网关总是要求发送who has...
请求消息,这意味着它认为自己与被 ping 的服务器位于同一子网中。
我正在尝试一些 IPv6 路由和地址,遇到了一个奇怪的问题,无法解决。我只能从一个方向 ping 通,而不能从另一个方向 ping 通。
假设我有 3 台电脑和一个路由器:
Client[eth0] <---> [lan1]Router[wan] <---> [box0]Gateway[eth0] <---> [eth0]Server
客户端、网关和服务器是 LXC 容器,并且与 IPv4 配合良好!
2001:db8:0:1::/56
网关正在运行 DHCPv6 服务器,该服务器通过接口委派前缀( ) box0
,以便路由器获取 IP 地址(2001:db8:0:1:8856:7cf8:8e46:d8cb
)并且客户端进行自我配置。
box0
网关上的接口具有来自同一子网的静态 IP 2001:db8:0:1::1234:1
:。
eth0
网关上的接口具有来自另一个子网的静态 IP:。请查看前缀中的2001:db8:0:2::4321:1
更改。2
eth0
服务器的接口具有与 eth0@gateway 位于同一子网的静态 IP:2001:db8:0:2::4321:2
我首先启用了 IPv6 转发
sysctl net.ipv6.conf.all.forwarding=1
现在我在网关上设置了一条通往 /56 子网的路由
ip -6 route add 2001:db8:0:1::/56 via 2001:db8:0:1:8856:7cf8:8e46:d8cb
以及服务器的默认路由
ip -6 route add default via 2001:db8:0:2::4321:1
我的问题是:我可以从服务器端 ping 通所有内容(客户端除外,因为路由器阻止了它),但是我无法从路由器端 ping 通 eth0@gateway 后面的任何东西。
您是否遇到过这种对我来说很奇怪的行为?您是否需要更多信息,例如路由表等?
答案1
答案很简单,可以追溯到错误配置。
还有一个正在运行radvd
的路由器广告,我没有对 64 网络进行 RA,而是对 56 网络进行 RA。因此,路由器和/或网关总是询问谁有...请求消息,这意味着它认为自己与被 ping 的服务器位于同一子网中。