我从我的服务器提供商那里收到了一个本地 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 的一部分。
有任何想法吗?
除非您的提供商确实将您的子网路由到您的主机,否则您必须设置您的主机,以便它为您的访客的 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,并将其用作来宾中的默认网关。
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |