我一直在尝试 LXC 虚拟化,以便在专用服务器上运行虚拟机,但在正确设置网络时遇到问题。
我正在使用 veth 桥接网络,如下所示:http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/(我用来设置 LXC 容器的指南)
当我启动容器时,它运行良好,可以访问 Internet 并接受对其自己 IP 的传入连接。但是,一旦我启动它,我的主机箱(专用服务器)上的网络就会完全关闭,并且直到服务器重新启动后才会恢复。
我能想到的唯一可能导致此问题的原因是桥接设置配置不正确,但是我完全不确定正确的设置应该是什么。关于如何重新配置这个有什么建议吗?谢谢。
主机节点和容器本身都运行 Debian Squeeze,软件包已升级到最新版本。
主机节点(专用服务器)网络配置(/etc/network/interfaces):
allow-hotplug eth0
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
bridge_stp off
bridge_maxwait 0
address 46.105.102.29
netmask 255.255.255.0
network 46.105.102.0
broadcast 46.105.102.255
gateway 46.105.102.254
LXC容器网络配置(/etc/network/interfaces):
auto eth0
iface eth0 inet static
address 94.23.153.205
netmask 255.255.255.0
broadcast 94.23.153.205
post-up route add 46.105.102.254 dev eth0
post-up route add default gw 46.105.102.254
post-down route del 46.105.102.254 dev eth0
容器网络配置(来自LXC配置文件):
lxc.utsname = paradox
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 02:00:00:ba:47:a0
lxc.network.ipv4 = 94.23.153.205
答案1
警告:我对 LXC 不太熟悉。无论如何,我有一些可能有用的观察结果,因为我在 Debian 网络、网桥和虚拟机(特别是 qemu-kvm)方面拥有丰富的经验。
首先,指南明确指出您需要注释掉eth0
主机interfaces
文件中的配置,但您已经allow-hotplug eth0
在其中了。将该行注释掉。
其次,在创建涉及此类物理接口的桥接设置时,我喜欢向文件添加行interfaces
以显式保持物理接口未初始化。在这种情况下,eth0
要添加到桥中,所以我会这样:
iface eth0 inet manual
最后,这是一个小的在同一个网桥上有不同的子网很奇怪。虽然它应该工作中,LXC 仍在大力开发中,因此即使是稍微非常规的网络设置也可能会暴露错误。尝试将您的虚拟机与主机 ( 46.105.102.0/24
) 放在同一子网中,这样您就不需要显式地破坏虚拟机中的路由。