IPv6 转发似乎仅在一个方向上有效

IPv6 转发似乎仅在一个方向上有效

我现在知道答案了:我犯了一个严重的错误,甚至没有告诉你。当时还有一个正在运行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 的服务器位于同一子网中。

相关内容