在我喜欢将LXC容器托pipe为一种虚拟服务器的AWS EC2实例上。 我创build了一个只包含eth0的桥(br0),并给了我的VPCs子网的私有IP地址。 我重新configurationLXC不使用lxcbr0作为桥梁,但我的br0设备。
当我添加一个新的容器并为其分配一个IP地址的VPC子网时,我可以从lxc主机到达容器。 我也可以从容器内到达lxc主机。 但是,尽pipe在同一个子网中,其他地址仍然无法到达。
桥接configuration :
auto br0 iface br0 inet static bridge_ports eth0 bridge_fd 2 bridge_stp off address 10.8.0.11 netmask 255.255.255.0 network 10.8.0.0 broadcast 10.8.0.255 gateway 10.8.0.1 dns-nameservers 8.8.8.8 8.8.4.4
VPC NIC设置为“禁用源/目标检查”
ip_forwarding设置为1
没有iptables规则存在
eth0设置为混杂模式(ip link set eth0 promisc on)
lxc容器正在与我的桥正确关联
在仅有硬件的环境中,以及在VirtualBox环境中,此设置工作。 但是,在AWS上不行。
桥接将不起作用,VPC不是不是一个二层networking,所有ips需要通过ec2 API分配。 最好的办法是使用一个完全独立的(非冲突的)子网,并让主机将stream量路由到lxc容器。然后,通过ec2实例网卡将静态路由更新到此子网。 这就是openVPN的工作原理。
根据Nath的回答,我把LXC容器放到了自己的networking中,并将networking之间的stream量进行了路由。 现在它工作!