IPv6路由问题

bra*_*ain 6 routing ipv6

我从我的服务器提供商那里收到了一个本地 IPv6 /64 子网,但我无法让它按照我想要的方式播放。

我正在运行虚拟机,我希望它们拥有自己的公共 ip。

让我们假设我得到了以下信息:

IP:1:1:1:1::/64,网关:1:1:1:0::1

现在我希望主机拥有 ip 1:1:1:1::1,其余部分从 eth0 路由到内部 br0,所有虚拟机都在此桥接。

可以从根计算机 ping6 ipv6.google.com,所以到目前为止它似乎可以工作。

我启用了路由,看起来数据包从内部机器(从 br0)通过 eth0 正确转发 - 但仅此而已......没有回复。

请注意,eth0 不是 br0 的一部分。

有任何想法吗?

ear*_*arl 4

除非您的提供商确实将您的子网路到您的主机,否则您必须设置您的主机,以便它为您的访客的 IP 代理 ICMPv6 邻域发现 (ND)。

假设您已被分配2001:0DB8:A::/64,您的主机已2001:0DB8:A::1打开eth0,并且您的来宾VM使用2001:0DB8:A::2(在虚拟桥上br0)。要告诉您的主机代理 ND 查询,请发出以下命令:

ip -6 neigh add proxy 2001:0DB8:A::2 dev eth0
Run Code Online (Sandbox Code Playgroud)

另请确保您已为 IPv6 启用转发和 ND 代理:

sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1
Run Code Online (Sandbox Code Playgroud)

在来宾上,您可以使用主机的链路本地地址br0作为默认网关。或者,您在主机的接口上添加一个额外的 IP br0,并将其用作来宾中的默认网关。