我正在尝试在主机上设置多个LXC容器,每个容器都有自己的公共静态IP。
我的主机正在运行最新的Ubuntu。它具有一个名为eth0的网络接口。静态IP可从Internet ping通,并命名为eth0:210,eth0:211 ...冒号后面的数字是地址的最低有效字节。除了这些接口,我还在主机的公共IP上设置了br0。还有lo,veth2LPP9A和lxcbr0接口。lxcbr0具有专用IP的地址。
主机/ etc / network / interfaces看起来像:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
到目前为止,我已经使用了各种在线资源,包括桥接LXC容器来托管eth0,以便他们可以使用公共IP来帮助我进行设置。
容器的配置文件具有:
lxc.network.type = veth
lxc.network.link = br0
我已经从该文件中删除了静态lxc.network.ipv4配置,因为它引起了问题。当我使用此配置运行lxc-ls --fancy时,我会在输出中看到两次相同的公用IP。另外,它将与容器的/ etc / network / interfaces的子网配置混淆。
说到容器的interfaces文件,它看起来有点像:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
我必须注释掉网关并将路由添加命令添加到此文件。否则,容器将需要几分钟来启动。
主机上的/ proc / sys / net / bridge / bridge-nf- *文件都设置为0。/ proc / sys / net / ipv4 / ip_forward值为1。
问题是,即使容器的“ route -n”看起来像应该的一样,我也无法从容器中ping出。SSH到应该是容器的IP的位置,将我连接到主机。
编辑:从主机删除容器的静态IP确实有帮助,但是现在我遇到了一个新错误。尝试从主机ping容器会导致Redirect HostFrom(新的下一跳)。数据包只是反复从网关发送到主机。从主机运行traceroute显示第一站位于网关。然后所有其他路线都是* * *。无论容器是否在线,我都会遇到相同的问题。