我正在尝试在Amazon顶部设置LXC容器。我对Amazon和VPC尤其陌生。实际上是第一次创建VPC进行lxc实验。
我的目标:我的目标是在Amazon实例上具有lxc容器,并将它们放在网桥类型的网络中。这意味着,我应该能够像在物理LAN中一样将可达的公共ip或私有ip分配给其他亚马逊实例/ lxc容器。为此,我一直尝试通过网桥网络使用virsh(libvirt)。有了这个我就无法实现我想要的。
我做了什么:我创建了一个具有单个子网(公共)的VPC。在其中启动了一个debian实例。安装了LXC,可以成功实现nat模式和route模式。但这给了我192.168.122.0(lxc的默认值)IP地址。但是我能够使用一些iptable规则将Internet放入容器中。在尝试使用libvirt之后,通过使用bridge-utils手动创建bridge,在为容器分配IP方面没有走运。我的假设是,容器应该从亚马逊的DHCP服务中获得DHCP租约。最终,我将另一个Elastic IP与debian实例相关联,并记住了其对应的私有ip。之后,创建了一个简单的桥并将eth0添加到主机上的桥。然后使用libvirt创建一个简单的主机桥网络。并在lxc配置中硬编码了我记忆的指定IP。然后,我启动了lxc容器。容器可以在其上获取指定的ip。我可以从主机上SSH它。但是我没有在那个容器里上网。
/ etc / network / interfaces(host) auto loiface lo inet回送auto eth0 iface eth0 inet手册
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
virsh net-dumpxml主机桥
<network>
<name>host-bridge</name>
<uuid>7c41e4ce-311c-c78f-5ea3-a03a224e4a3c</uuid>
<forward mode='bridge'/>
<bridge name='br0' />
</network>
lxc配置文件
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
#lxc.network.name = eth0
lxc.network.ipv4 = 10.0.0.207/24(natted memorized ip)
容器的接口文件 auto loiface lo inet回送
auto eth0
iface eth0 inet static
address 10.0.0.207
netmask 255.255.255.0
gateway 10.0.0.1
我的问题:
- 在这种情况下,我应该选择哪种VPC?
- 哪种网络模式使我的工作更轻松?
- 至少,凭我所取得的成就,如何才能将Internet连接到容器?
- 如果没有弹性IP,我能否在同一子网中拥有其他实例和容器可以访问的私有IP?