如何限制LXD来宾使用单个公共IP地址?

我在Ubuntu 14.04服务器主机上有一个Ubuntu 14.04 LXD容器(使用lxd-git-master PPA)。 我想阻止它到达任何其他容器或通过任何IP范围与公共Internet通信,除了特定的/ 32块(即一个IP)。 此IP静态路由到数据中心的服务器,我需要能够指定IP,子网和默认网关。

我读到LXD本身不进行网络连接,那么具体的程序/实用程序是否最容易以直接的方式安装和配置以明确配置?

PS我需要它能够绑定到该IP地址上的所有可能的TCP和UDP端口,如果主机在启动绑定在0.0.0.0上的进程时不会尝试绑定到IP,那将是理想的。

您可能希望将该公共IP路由到您的容器,因此请确保主机本身在其网络配置中没有它,然后执行以下操作:

ip route add IP/32 via CONTAINER-IP dev lxcbr0 

然后,您可以将公共IP添加到容器的网络配置中,方法是将其添加到eth0部分下的网络配置中:

 post-up ip addr add IP/32 dev eth0 

此时,您应该能够使用公共IP ping容器。

您需要确保主机不会来自该IP的NAT流量,并且要限制从容器访问其他资源,您必须使用主机上的iptables执行此操作。 请注意,Linux桥接器的一个不错的属性是iptables会在桥内流量上调用,因此您绝对可以防止容器访问任何邻居。