在具有 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:1
IP 地址的接口。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 主机无法访问。