配置网络接口的最佳实践 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置网络接口的最佳实践

  • 您可以在实例运行时 (热附加)、实例停止时 (暖附加) 或实例启动时 (冷附加) 将网络接口连接到实例。

  • 您可以在实例运行时或停止时分离次要网络接口。不过,您无法分离主网络接口。

  • 如果实例位于相同可用区和 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 目录中生成接口特定的配置。有关更多信息,请参阅 Amazon Linux 2023 用户指南中的联网服务

Amazon Linux 2 AMI 可能包含由 Amazon 安装的其他脚本,它们称为 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.rules70-persistent-net.rules)。

hotplug 脚本

生成一个适用于 DHCP 的接口配置文件 (/etc/sysconfig/network-scripts/ifcfg-ethN)。并生成一个路由配置文件 (/etc/sysconfig/network-scripts/route-ethN)。

DHCP 脚本

每当网络接口收到一个新的 DHCP 租约时,此脚本会查询弹性 IP 地址的实例元数据。对于每个弹性 IP 地址,它会为路由策略数据库添加一个规则,确保来自该地址的出站流量使用正确的网络接口。它还会将每个私有 IP 地址作为辅助地址添加至网络接口。

ec2ifup ethN (/usr/sbin/)

扩展标准 ifup 的功能。在此脚本重写配置文件 ifcfg-ethNroute-ethN 之后,它将运行 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-ethN 文件。例如,您可以使用以下命令为 eth1 接口禁用自动化:

$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1

要彻底禁用自动化,可以使用以下命令删除该包:

$ yum remove ec2-net-utils