配置网络接口的最佳实践
-
您可以在实例运行时 (热附加)、实例停止时 (暖附加) 或实例启动时 (冷附加) 将网络接口连接到实例。
-
您可以在实例运行时或停止时分离次要网络接口。不过,您无法分离主网络接口。
-
如果实例位于相同可用区和 VPC 但位于不同子网,您可以将网络接口从一个实例移动到另一个实例。
-
在使用 CLI、API 或开发工具包启动实例时,您可以指定主网络接口和额外的网络接口。
-
启动具有多个网络接口的 Amazon Linux 或 Windows Server 实例会自动在该实例的操作系统上配置接口、私有 IPv4 地址和路由表。
-
如果要通过暖附加或热附加方式连接一个额外的网络接口,您可能需要手动添加第二个接口、配置私有 IPv4 地址并相应修改路由表。运行 Amazon Linux 或 Windows Server 的实例会自动识别暖附加或热附加,并自行进行配置。
-
您无法通过将另一个网络接口附加到实例(例如一种网卡绑定配置)以增加或加倍双主机实例的网络带宽。
-
如果将来自同一子网的两个或多个网络接口连接到一个实例,可能会遇到非对称路由等联网问题。请尽可能在主网络接口上改用辅助私有 IPv4 地址。
使用 ec2-net-utils 为 Amazon Linux 2 配置网络接口
注意
对于 AL2023,amazon-ec2-net-utils
软件包在 /run/systemd/network
目录中生成接口特定的配置。有关更多信息,请参阅 AWS Amazon Linux 2023 用户指南中的联网服务。
Amazon Linux 2 AMI 可能包含由 AWS 安装的其他脚本,它们称为 ec2-net-utils。这些脚本可以选择性地自动配置您的网络接口。这些脚本仅适用于 Amazon Linux 2。
使用以下命令可在 Amazon Linux 2 上安装该程序包 (如果尚未安装) 或对其进行更新 (如果已安装且存在可用的其他更新):
$
yum install ec2-net-utils
以下组件属于 ec2-net-utils 的一部分;
- udev 规则 (
/etc/udev/rules.d
) -
在网络接口附加、分离或重新附加正在运行的实例时识别它们,并确保 hotplug 脚本运行 (
53-ec2-network-interfaces.rules
)。将 MAC 地址映射到设备名称 (生成75-persistent-net-generator.rules
的70-persistent-net.rules
)。 - hotplug 脚本
-
生成一个适用于 DHCP 的接口配置文件 (
/etc/sysconfig/network-scripts/ifcfg-eth
N)。并生成一个路由配置文件 (/etc/sysconfig/network-scripts/route-eth
N)。 - DHCP 脚本
-
每当网络接口收到一个新的 DHCP 租约时,此脚本会查询弹性 IP 地址的实例元数据。对于每个弹性 IP 地址,它会为路由策略数据库添加一个规则,确保来自该地址的出站流量使用正确的网络接口。它还会将每个私有 IP 地址作为辅助地址添加至网络接口。
- ec2ifup ethN (
/usr/sbin/
) -
扩展标准 ifup 的功能。在此脚本重写配置文件
ifcfg-eth
N 和route-eth
N 之后,它将运行 ifup。 - ec2ifdown ethN (
/usr/sbin/
) -
扩展标准 ifdown 的功能。当此脚本从路由策略数据库中删除网络接口的任何规则后,它将运行 ifdown。
- ec2ifscan (
/usr/sbin/
) -
检查尚未配置的网络接口并对它们进行配置。
此脚本在初始版本的 ec2-net-utils 中不可用。
要列出任何由 ec2-net-utils 生成的配置文件,请使用以下命令:
$
ls -l /etc/sysconfig/network-scripts/*-eth?
要禁用自动化,您可以将 EC2SYNC=no
添加至相应的 ifcfg-eth
N 文件。例如,您可以使用以下命令为 eth1 接口禁用自动化:
$
sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
要彻底禁用自动化,可以使用以下命令删除该包:
$
yum remove ec2-net-utils