只有LXC的许多公共IP地址之一

我有托pipe服务提供商使用Xen托pipe的VPS服务器。 我分配了几个IP地址(*。*。56.234,*。*。56.235,*。*。56.236,…),但是有一个物理networking设备eth0。

主机正在使用池中的第一个(*。*。56.234)。 我希望我的容器使用*。*。56.235并且完全自治。 也就是说,.235地址应该只对容器和.234可用,以便我可以在两个主机和容器上启动两个不同的服务,这两个服务在同一个端口上进行侦听。

我想我搞砸了configuration条目,因为我可以使networking在容器上运行,但:

  • 当试图访问互联网(curl,wget)时有很短的冻结 – 就像它正在寻找适当的路线,但在curlIP检查网站后,它显示正确的.235 IP
  • 当我在容器中设置监听器的端口,而不是在主机使用它有时工作,有时不(有时我可以或不能连接到它)
  • 如果我使用与主机上的其中一个服务相同的端口托pipe容器内的服务,我将始终连接到主机的一个,即使我连接到.235地址

这里是我的configuration(注意X,Y表示公共范围,这些都不是LAN范围)

主机的/ etc / network / interfaces

# The primary network interface allow-hotplug eth0 iface eth0 inet static address XY56.234 netmask 255.255.255.248 network XY56.232 broadcast XY56.239 gateway XY56.233 dns-nameservers 8.8.8.8 auto br0 iface br0 inet static bridge_ports eth0 bridge_fd 0 ################### address XY56.235 network XY56.232 broadcast XY56.239 gateway XY56.233 dns-nameservers 8.8.8.8 

容器的/ etc / network / interfaces

 auto lxcnet0 iface lxcnet0 inet static address XY56.235 network XY56.232 broadcast XY56.239 gateway XY56.233 dns-nameservers 8.8.8.8 

容器的configuration条目

 ## Network lxc.network.type = veth lxc.network.flags = up lxc.network.name = lxcnet0 lxc.network.hwaddr = 00:FF:AA:11:22:33 lxc.network.link = br0 lxc.network.ipv4 = XY56.235/32 

你做了部分错误。 主机的IP应该在网桥接口上(因为某些原因,当在一条腿上configurationIP时,Linuxnetworking堆栈不能正常工作),容器IP应该在容器的接口上,但是从容器一侧,而不是从主机一个(这可能是你为什么有尖峰)。 此外,你可以在configuration中省略容器IP,只需从容器操作系统进行IPconfiguration就足够了(只有一个地方容器地址是方便的)。