我想在我的EC2实例中创build一个桥梁并将IP地址与其关联。
给定默认的/etc/network/interfaces文件:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
我只是补充一下:
auto br0 iface br0 inet static address 10.0.3.1 netmask 255.255.255.0 bridge_ports eth0 bridge_stp off bridge_maxwait 0 post-up brctl setfd br0 0
只要我重新启动networking或只是运行ifup br0 ,我就失去了连接到EC2的实例(即我无法SSH到它了)。
可能是什么原因?
当你添加一个接口到一个网桥时,真正的接口不应该有IP地址关联 – 他们应该被移动到网桥。 你的configuration应该是这样的:
auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0
这应该导致由EC2提供的IP地址被连接到br0。
但是,在EC2中运行桥梁并不是很有用(不知道VPC,但是如果你不在VPC上),因为你没有完全的第二层访问权限,不能暴露多个,任意IP到networking上。 如果源IP与实例的IP不匹配,则EC2networking将拒绝来自LXC容器的数据包。
你可能想要做的是为LXC容器创build一个桥梁,但不包含eth0。 然后在eth0和网桥之间configurationIP转发,在传出连接上使用SNAT,以便EC2只能看到实例的IP。