在 EC2 上创建网桥会导致连接丢失

在 EC2 上创建网桥会导致连接丢失

我想在我的 EC2 实例中创建一个网桥并将 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

一旦我重新启动网络或者只是运行ifup br0,我就会失去与 EC2 实例的连接(即我无法再通过 SSH 进入它)。

可能是什么原因?

答案1

当你将接口添加到网桥时,实际接口不应再具有关联的 IP 地址 - 它们应移至网桥。你的配置应如下所示:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0

这应该会导致 EC2 提供的 IP 地址附加到 br0。

然而,在 EC2 中运行网桥并不是很有用(不确定 VPC 是否如此,但如果您不在 VPC 上,那肯定是有用的),因为您没有对网络的完全第 2 层访问权限,并且无法将多个任意 IP 暴露到网络上。如果源 IP 与实例的 IP 不匹配,EC2 网络将拒绝来自 LXC 容器的数据包。

您可能想要做的是为 LXC 容器创建一个网桥,但其中没有 eth0。然后在 eth0 和网桥之间配置 IP 转发,并在传出连接上使用 SNAT,以便 EC2 仅看到实例的 IP。

相关内容