我在Hetzner的Debian 7上安装了一个外部服务器,并尝试使用IPv6路由设置KVM(与IPv4相同的设置工作没有问题)。
我有一个Ubuntu服务器虚拟机有两个接口在两个不同的子网。 第一个接口通过网桥连接到主机:
Host-eth0 <-- external bridge --> vnet0-VM-vnet1 <-- internal bridge
我configuration网桥,通过第一个VM接口添加到第二个子网的静态路由:
ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external
这会添加虚拟机启动之前的路由条目。 当我从主机到vnet1接口(2 :: 2)使用ping6时,出现以下错误消息:
ping: sendmsg: Network is down
当我不在接口configuration中添加路由,并在虚拟机启动后手动调用它,一切正常。
所以我的问题是为什么路由添加IPv6地址只有在虚拟机启动后才起作用?
其他configuration详情:
主机接口
auto lo iface lo inet6 loopback auto eth0 iface eth0 inet6 static address 2a01:4f8:X:Y:0::2 netmask 128 gateway fe80::1 # Bridge between Host and VM auto virbr_external iface virbr_external inet6 static bridge_ports none bridge_stp off bridge_fd 0 address 2a01:4f8:X:Y:1::2 netmask 80 up ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external # Bridge between VM and other VMs auto virbr_internal iface virbr_internal inet6 manual bridge_ports none bridge_stp off bridge_fd 0
VM接口
auto lo iface lo inet6 loopback auto eth0 iface eth0 inet6 static address 2a01:4f8:X:Y:1::3 netmask 80 gateway 2a01:4f8:X:Y:1::2 auto eth1 iface eth1 inet6 static address 2a01:4f8:X:Y:2::2 netmask 80
请告诉我,如果你需要更多的日志(它工作之前和之后),我会收集它。
在这里有同样的问题。 解决方法是在设置路由后刷新IPV6路由caching:
ip -6 route flush cache
将您的接口部分更改为:
... auto virbr_external iface virbr_external inet6 static bridge_ports none bridge_stp off bridge_fd 0 address 2a01:4f8:X:Y:1::2 netmask 80 up ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external up ip -6 route flush cache # Flush cache after setting route ...
修复启动时的问题。