使用 Proxmox 2.2 通过 OpenVZ 启用 IPv6

使用 Proxmox 2.2 通过 OpenVZ 启用 IPv6

我正在尝试使用 venet 在我的 Debian 节点(OpenVZ)上启用 IPv6;我的主机采用 Proxmox 2.2(内核 2.6.32-16-pve),但似乎路由失败。

我的主机可以正确地 ping 所有节点;所有节点都可以 ping 我的主机,但没有一个节点可以 ping 另一个节点或外部世界。当我从我的计算机运行到我的节点的跟踪路由时,它在到达我的主机之前就停止了(到我的节点的跟踪路由运行良好)。

这是我的网络配置:

  • 我的 ISP 提供的网络掩码:2001:41d0:2:52ae::/56
  • 主机网络掩码:2001:41d0:2:52ae::/64
  • 主机 IPv6:2001:41d0:2:52ae::1
  • 节点X网络掩码:2001:41d0:2:520 X::/64
  • 节点XIPv6:2001:41d0:2:520 X::1

在我的主机上,vmbr0配置是(来自/etc/network/interfaces):

iface vmbr0 inet6 static
    address 2001:41d0:2:52ae::1
    netmask 64
    gateway 2001:41d0:2:52ff:ff:ff:ff:ff
    post-up ip -6 route add 2001:41d0:2:52ff:ff:ff:ff:ff/128 dev vmbr0 #gateway
    post-up ip -6 route add default via 2001:41d0:2:52ff:ff:ff:ff:ff #gateway
    post-up ip -6 route add 2001:41d0:2:520X::/64 dev vmbr1 # node X
    post-up ip -6 neigh add proxy 2001:41d0:2:52ff:ff:ff:ff:ff dev vmbr1
    post-up ip -6 neigh add proxy 2001:41d0:2:520X::1 dev vmbr0 # node X

在每个节点上(来自/etc/network/interfaces,由proxmox自动生成):

iface venet0 inet6 manual
    up ifconfig venet0 add 2001:41d0:2:520X::1/128
    down ifconfig venet0 del 2001:41d0:2:520X::1/128
    up route -A inet6 add default dev venet0
    down route -A inet6 del default dev venet0

我是否遗漏了什么,或者根本无法通过 venet 实现?

编辑:ip -6 route show这是我的主机上的输出:

2001:41d0:2:520X::1 dev venet0  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295
2001:41d0:2:52ae::/64 dev vmbr0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
2001:41d0:2:5200::/56 dev vmbr0  proto kernel  metric 256  expires 0sec mtu 1500 advmss 1440 hoplimit 4294967295
fe80::1 dev venet0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev dummy0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vmbr1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vmbr0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev venet0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::5:73ff:fea0:0 dev vmbr0  proto kernel  metric 1024  expires 0sec mtu 1500 advmss 1440 hoplimit 64

在我的节点上:

2001:41d0:2:520X::1 dev venet0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev venet0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
default dev venet0  metric 1  mtu 1500 advmss 1440 hoplimit 0

编辑2:我从 venet 切换到 veth,它运行正常,没有任何问题。但是,我仍然想找到一种方法让它通过 venet 工作... 使用ip -6 route showveth 会显示网关路由,而使用 venet 则不会出现这种情况。也许这就是原因...

答案1

您显示的 /etc/network/interfaces 配置不可能起作用。

您正在将默认网关指向您在主机上配置的本地地址。您的默认网关(几乎肯定)需要指向提供商网络上的某个地址。

您没有在 eth0 接口上放置任何公共 IPv6 地址来与您的提供商通信(最有可能的是,这是您的 2001:41d0:2:52ae::1/64 地址应该去的地方,并且最有可能的是您的默认网关应该是 2001:41d0:2:52ff:ff:ff:ff:ff 通过设备 eth0。

一旦在 eth0 上完成了基本网络运行,您就可以将 /56 中的其他 /64 路由到其他虚拟机。

相关内容