在 EC2 上使用多宿主接口时,如何在 Debian 中设置默认出站接口

在 EC2 上使用多宿主接口时,如何在 Debian 中设置默认出站接口

在具有 Amazon EC2 AMI 的 Debian 10 中(截至 2021 年 3 月 31 日),该/etc/network/interfaces文件如下所示:

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# Cloud images dynamically generate config fragments for newly
# attached interfaces. See /etc/udev/rules.d/75-cloud-ifupdown.rules
# and /etc/network/cloud-ifupdown-helper. Dynamically generated
# configuration fragments are stored in /run:
source-directory /run/network/interfaces.d

其内容/run/network/interfaces.d/eth0为:

auto eth0
allow-hotplug eth0

iface eth0 inet dhcp

iface eth0 inet6 manual
  try_dhcp 1

这将打开eth0接口并通过 Amazon 的 DHCP 服务器配置其 IPv4 地址。假设 Amazon 的 DHCP 服务器始终为我的服务器分配 IP 地址192.168.1.55

到目前为止,一切都很好。

为了使我的主机实现多宿主,我创建了/etc/network/interfaces.d/eth0_1如下文件:

auto eth0:1
iface eth0:1 inet static
  address 192.168.1.2/24

这会导致系统创建一个与DHCP 服务器提供的子网相同的eth0:1IP 地址的接口。192.168.1.2

问题是由于/etc/network/interfaces文件源条目/etc/network/interfaces.d /run/network/interfaces.d在接口中eth0:1创建条目 eth0这导致其 IP 地址(192.168.1.2)被指定为默认出站路由 IP。

因此,当我们显示路由表时,我们会得到类似这样的信息:

ip route show

default via 192.16.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

问题在于,亚马逊的网关会192.168.1.1丢弃来自我的主机的所有不是来自的流量192.168.1.55

显然,重新排序包含指令以首先/etc/network/interfaces获取文件源是很容易的eth0,但我想知道是否有可能在文件中eth0_1或通过其他机制(dhclient.conf?)强制默认 ip 路由链接源为“eth0 具有的任何 IP 地址”(即192.168.1.55)。

我已经阅读了手册页,但我对实验有点谨慎,以免破坏网络配置并使我的 EC2 主机无法访问。

相关内容