在绑定辅助弹性网卡后,部分镜像无法自动识别辅助弹性网卡的IP地址并添加路由,导致无法正常使用辅助弹性网卡。本文介绍如何在ECS实例内部配置辅助弹性网卡,以识别辅助弹性网卡的IP地址并添加路由。
前提条件
- 已将辅助弹性网卡绑定至ECS实例。
- 已远程登录ECS实例。具体操作,请参见 连接方式概述 。
背景信息
预装了自动配置工具的镜像可以自动配置绑定的辅助弹性网卡,在使用这类镜像时您无需再自行配置辅助弹性网卡,可以跳过本文操作。支持自动配置的镜像如下:
- Alibaba Cloud Linux 3.2104 64位
- CentOS 8.0/8.1/8.2 64位
- CentOS 7.3/7.4/7.5 64位
- CentOS 6.8/6.9 64位
- Debian 10.5/10.6 64位
- Window Server 2008 R2及更高版本
操作流程
- 查看辅助弹性网卡IP地址的识别状态。
具体操作,请参见查看弹性网卡IP地址的识别状态。如果已识别IP地址,您无需再执行后续步骤。如果尚未识别IP地址,则需要执行后续步骤配置辅助弹性网卡。
- 获取辅助弹性网卡的信息。
在配置辅助弹性网卡时,您可能需要填写主私网IP地址、MAC地址等信息,请提前获取信息方便后续填写。具体操作,请参见获取弹性网卡的信息。
本文以下表中的示例信息为例演示步骤,请您在配置时根据实际信息修改。信息类型 示例信息 网卡名称 eth1 MAC地址 00:16:3e:0f:**:** 主私网IP地址 192.168.**.*2 子网掩码 255.255.255.0 网关地址 192.168.**.253 - 配置识别辅助弹性网卡的IP地址。不同的操作系统中适用的操作存在差异,如下表所示。
操作系统 相关章节 - Alibaba Cloud Linux 2(网络服务类型为network-scripts)
- CentOS
- RedHat
为Alibaba Cloud Linux 2、CentOS 6/7、或RedHat系统配置辅助弹性网卡(network-scripts) Alibaba Cloud Linux 2(网络服务类型为systemd-networkd) 说明 更多信息,请参见Alibaba Cloud Linux 2实例修改网络服务的方法及影响说明为Alibaba Cloud Linux 2系统配置辅助弹性网卡(systemd-networkd) - Ubuntu
- Debian
为Ubuntu或Debian系统配置辅助弹性网卡 - SUSE
- OpenSUSE
为SUSE或OpenSUSE系统配置辅助弹性网卡 - 检查是否已为辅助弹性网卡配置路由。您可以运行命令
route -n
检查路由信息。如果辅助弹性网卡没有路由,或者已有路由不符合实际需要,请自行配置路由。部分系统中的配置路由操作示例,请参见:
查看弹性网卡IP地址的识别状态
运行以下命令查看弹性网卡IP地址的识别状态。
ip address show
查询结果示例如下:
- 下图示例为主网卡(eth0)的IP地址已识别,辅助弹性网卡(eth1)的IP地址未识别,您需要按本文操作配置辅助弹性网卡。
- 下图示例为主网卡(eth0)和辅助弹性网卡(eth1)的IP地址都已识别,您无需再配置辅助弹性网卡。
说明 其中
00:16:3e:16:**:**
为主网卡的MAC地址,00:16:3e:0f:**:**
为辅助弹性网卡的MAC地址。获取弹性网卡的信息
阿里云支持通过实例元数据、ECS控制台、调用API获取弹性网卡的信息。具体操作如下:
- 在ECS实例内部通过实例元数据获取
- 获取实例所有网卡的MAC地址。
curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/
说明 在获取指定弹性网卡的主私网IP地址、子网掩码、网关地址时,需要使用MAC地址。 - 获取指定弹性网卡的主私网IP地址。
curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/primary-ip-address
- 获取指定弹性网卡的子网掩码。
curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/netmask
- 获取指定弹性网卡的网关地址。
curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/gateway
示例结果如下图所示。其中00:16:3e:16:**:**
为主网卡的MAC地址,00:16:3e:0f:**:**
为辅助弹性网卡的MAC地址。说明 您可以结合ip address show
的结果,确定主网卡和辅助弹性网卡MAC地址的显示顺序。 - 获取实例所有网卡的MAC地址。
- 通过ECS控制台获取
- 登录ECS管理控制台。
- 在左侧导航栏,选择 。
- 在弹性网卡页面,查看弹性网卡的主私网IP地址和MAC地址。
示例结果如下图所示。 - 通过阿里云CLI等工具调用API DescribeNetworkInterfaces获取
aliyun ecs DescribeNetworkInterfaces \ --output cols=MacAddress,PrivateIpAddress rows=NetworkInterfaceSets.NetworkInterfaceSet[] \ --RegionId 'cn-hangzhou' \ --InstanceId 'i-bp1a5gj0bzhwz7q****'
示例结果如下图所示。其中00:16:3e:16:**:**
为主网卡的MAC地址,00:16:3e:0f:**:**
为辅助弹性网卡的MAC地址。说明 您可以结合ip address show
的结果,确定主网卡和辅助弹性网卡MAC地址的显示顺序。
为Alibaba Cloud Linux 2、CentOS 6/7、或RedHat系统配置辅助弹性网卡(network-scripts)
对网络服务类型为network-scripts的Alibaba Cloud Linux 2、CentOS 6/7和RedHat系统,您可以通过multi-nic-util工具自动配置或者修改网卡配置文件手动配置。
- 通过multi-nic-util工具自动配置辅助弹性网卡的步骤如下:说明 如果您通过multi-nic-util工具为CentOS系统自动配置弹性网卡,请注意仅部分镜像版本支持使用multi-nic-util工具。如果使用CentOS 6镜像,请确保镜像版本为CentOS 6.8及以上;如果使用CentOS 7镜像,请确保镜像版本为CentOS 7.3及以上。如果镜像版本不支持使用multi-nic-util工具,请通过修改网卡配置文件手动配置辅助弹性网卡。
- 下载并安装multi-nic-util工具。
wget https://image-offline.oss-cn-hangzhou.aliyuncs.com/multi-nic-util/multi-nic-util-0.6.tgz && \ tar -zxvf multi-nic-util-0.6.tgz && \ cd multi-nic-util-0.6 && \ bash install.sh
- 重启弹性网卡服务。
systemctl restart eni.service
- 下载并安装multi-nic-util工具。
- 通过修改网卡配置文件手动配置辅助弹性网卡的步骤如下:
- 打开辅助弹性网卡的配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
- 在网卡配置文件中添加辅助弹性网卡的信息,然后保存并关闭配置文件。添加网卡信息的示例如下:
DEVICE=eth1 # 表示新配置的网卡接口。 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet USERCTL=yes PEERDNS=no IPV6INIT=no PERSISTENT_DHCLIENT=yes HWADDR=00:16:3e:0f:**:** # 必须使用您查到的网卡对应的MAC地址。 DEFROUTE=no # 表示网卡接口不是默认路由。为避免在启动(ifup)辅助弹性网卡时改变ECS实例活动的默认路由,不要将eth1设置为默认路由。
- 重启网络服务。
- CentOS 7以前版本(例如CentOS 6):
service network restart
- CentOS 7及以上版本、Alibaba Cloud Linux 2:
systemctl restart network
- CentOS 7以前版本(例如CentOS 6):
- 打开辅助弹性网卡的配置文件。
说明
- 当您完成配置后,可以根据需要为辅助弹性网卡配置路由。具体操作,请参见在Alibaba Cloud Linux 2、CentOS 7系统中配置路由。
- 当您完成配置后,如果需要创建自定义镜像,请先执行命令/etc/eni_utils/eni-cleanup清理/etc/udev/rules.d/70-persistent-net.rules和/etc/sysconfig/network-scripts/下的网络配置。
为Alibaba Cloud Linux 2系统配置辅助弹性网卡(systemd-networkd)
对网络服务类型为systemd-networkd的Alibaba Cloud Linux 2系统,您需要通过修改网卡配置文件手动配置。
- 打开辅助弹性网卡的配置文件。
vi /etc/systemd/network/60-eth1.network
- 在网卡配置文件中添加辅助弹性网卡的信息,然后保存并关闭配置文件。您可以为辅助弹性网卡分配动态IP或指定静态IP,请根据需要选择一种方式。添加网卡信息的示例如下:
- 通过DHCP分配动态IP
[Match] Name=eth1 # 表示新配置的网卡接口。 [Network] DHCP=yes [DHCP] UseDNS=yes
- 指定静态IP
[Match] Name=eth1 # 表示新配置的网卡接口。 [Network] Address=192.168.**.*2/24 # 表示分配的静态IP和子网掩码。
说明 示例中192.168.**.*2
为主私网IP地址,掩码位/24
对应子网掩码255.255.255.0
。
- 通过DHCP分配动态IP
- 重启网络服务。
systemctl restart systemd-networkd
为Ubuntu或Debian系统配置辅助弹性网卡
对Ubuntu和Debian系统,您需要根据镜像版本修改对应的配置文件。
- 对Ubuntu 14.04、Ubuntu 16.04及Debian,操作步骤如下:
- 打开网卡配置文件。
vi /etc/network/interfaces
- 在网卡配置文件中添加辅助弹性网卡的信息,然后保存并关闭配置文件。添加网卡信息的示例如下:
auto eth0 iface eth0 inet dhcp auto eth1 # 表示新配置的网卡接口。 iface eth1 inet dhcp
说明 主网卡(eth0)和辅助弹性网卡(eth1)的配置在同一个配置文件中维护,请注意不要遗漏主网卡的信息。 - 重启网络服务。
- Ubuntu 16.04以前版本(例如Ubuntu 14.04):
service networking restart
- Ubuntu 16.04、Debian:
systemctl restart networking
如果出现以下警告,不影响配置辅助弹性网卡生效。您可以运行ip address show
查看辅助弹性网卡IP地址的识别状态。 - Ubuntu 16.04以前版本(例如Ubuntu 14.04):
- 打开网卡配置文件。
- 对Ubuntu 18.04,操作步骤如下:
- 打开辅助弹性网卡的配置文件。
vi /etc/netplan/eth1-netcfg.yaml
- 在网卡配置文件中添加辅助弹性网卡的信息,然后保存并关闭配置文件。说明 编辑配置文件时请注意以下事项:
- 配置文件为
YAML
文件格式,您在配置时需要遵循YAML
语法规则。 YAML
不支持制表符(Tab)缩进,请使用空格缩进。- 建议您直接复制默认配置文件/etc/netplan/99-netcfg.yaml中的内容进行修改,避免产生格式问题。
添加网卡信息的示例如下:network: version: 2 renderer: networkd ethernets: eth1: dhcp4: yes dhcp6: no
- 配置文件为
- 应用添加的配置。
netplan apply
- 打开辅助弹性网卡的配置文件。
为SUSE或OpenSUSE系统配置辅助弹性网卡
对SUSE和OpenSUSE系统,您需要通过修改网卡配置文件手动配置。
- 打开网卡配置文件。
vi /etc/sysconfig/network/ifcfg-eth1
- 在网卡配置文件中添加辅助弹性网卡的信息,然后保存并关闭配置文件。通过DHCP分配动态IP的示例如下:
BOOTPROTO='dhcp4' STARTMODE='auto' USERCONTROL='no'
- 重启网络服务。
- SUSE Linux Enterprise Server 12以前版本:
service network restart
- SUSE Linux Enterprise Server 12及以上版本:
systemctl restart network
- SUSE Linux Enterprise Server 12以前版本:
在Alibaba Cloud Linux 2、CentOS 7系统中配置路由
如果您手动配置了辅助弹性网卡但还未配置路由,或者通过multi-nic-util工具自动配置了路由但不符合您的实际需要,您可以参考本章节自行配置路由。
- 查看路由信息。
route -n
查询结果示例如下:- 下图示例为仅查询到了主网卡(eth0)的路由信息,辅助弹性网卡(eth1)还未配置路由。
- 下图示例为查询到了主网卡(eth0)和辅助弹性网卡(eth1)的路由信息。如果不符合您的实际需要,也可以自行修改。
- 下图示例为仅查询到了主网卡(eth0)的路由信息,辅助弹性网卡(eth1)还未配置路由。
- 根据您的实际需要规划默认路由。本文以下表中的示例信息为例演示步骤。
信息 示例取值 网卡名称 eth1 主私网IP地址 192.168.**.*2 网关地址 192.168.**.253 metric 1001 - 配置默认路由。下方命令为eth1添加默认路由,并创建了一张路由表和一条关联至该路由表的路由策略。其中,table 1001为路由表(和默认路由metric取值保持一致),192.168.**.253为网关地址,192.168.*.*2为eth1的主私网IP地址。
ip -4 route add default via 192.168.**.253 dev eth1 metric 1001 && \ ip -4 route add default via 192.168.**.253 dev eth1 table 1001 && \ ip -4 rule add from 192.168.**.*2 lookup 1001
- 查看创建的路由表和策略路由。
ip route list table 1001 && \ ip rule list
创建成功的示例结果如下图所示。 - 配置开机时自动更新路由。按上文为eth1配置路由后,请按以下步骤配置开机时自动更新路由,否则重启实例后该路由配置会失效。
在CentOS 8系统中配置路由
如果系统自动配置了路由但不符合您的实际需要,您可以参考本章节自行配置路由。
- 查看路由信息。
route -n
下图示例为查询到了主网卡(eth0)和辅助弹性网卡(eth1)的路由信息。如果不符合您的实际需要,也可以自行修改。 - 根据您的实际需要规划默认路由。本文以下表中的示例信息为例演示步骤。
信息 示例取值 网卡名称 eth1 主私网IP地址 192.168.**.*2 网关地址 192.168.**.253 table 1001 - 创建配置路由用的脚本。
- 配置默认路由。
sh /home/route.sh
- 查看创建的路由表和策略路由。
ip route list table 1001 && \ ip rule list
示例结果如下图所示。 - 配置开机时自动更新路由。按上文为eth1配置路由后,请按以下步骤配置开机时自动更新路由,否则重启实例后该路由配置会失效。