IPv6转发似乎只能在一个方向上工作

我现在知道答案:我犯了一个错误,甚至没有告诉你。 还有一个路由器广告运行radvd ,而不是RA'ing一个64networkingRA'ing一个56网。 因此,路由器和/或网关总是询问who has...请求消息,这意味着它认为它与ping服务器位于同一个子网中。

我正在玩弄一些IPv6路由和地址,面临一个奇怪的问题,无法弄清楚。 我只能从一个方向,而不是相反的方向。

假设我有3台PC和一台路由器:

 Client[eth0] <---> [lan1]Router[wan] <---> [box0]Gateway[eth0] <---> [eth0]Server 

客户端,网关和服务器是LXC容器,并且与IPv4一起工作得很好!

网关正在运行DHCPv6服务器,通过接口box0委托前缀( 2001:db8:0:1::/56 ),以便路由器获得IP地址( 2001:db8:0:1:8856:7cf8:8e46:d8cb ),客户端configuration自己。

网关上的接口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子网的网关上build立了一条路由

 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 @网关后面的任何东西。

你有没有遇到这个,对我来说,奇怪的行为? 你需要更多的信息,如路由表等?

答案很简单,可以追溯到missconfiguration。

还有一个路由器广告正在运行的radvd ,而不是RA'ing一个64networkingRA'ing一个56网。 因此,路由器和/或网关总是询问谁有……请求消息,这意味着它认为它与ping服务器位于同一个子网中。