在绑定辅助弹性网卡后,部分ECS实例的镜像无法识别辅助弹性网卡,需要您自行配置。本文介绍了如何在ECS实例中配置辅助弹性网卡的IP地址和路由,使辅助弹性网卡可以正常使用。

背景信息

如果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 address show命令查看ECS实例是否识别辅助弹性网卡。如果查询结果如下所示,表示辅助弹性网卡未被识别,请按照本文操作配置辅助弹性网卡的IP地址和路由。 查询网卡
  • ① eth0:主网卡,实例正常识别
  • ② eth1:辅助弹性网卡,实例未识别

操作流程

  1. 查看并记录辅助弹性网卡的信息。具体操作,请参见准备工作
  2. 根据ECS实例的操作系统,选择配置辅助弹性网卡的方式并进行配置。
  3. 检查网卡的路由信息。如果未配置,请配置网卡路由。具体操作,请参见配置网卡路由

准备工作

在ECS实例内部配置辅助弹性网卡,您需要知道辅助弹性网卡的主私网IP地址、MAC地址等信息,方便后续手动配置。本文示例涉及信息如下表所示,您需要根据实际环境修改。
辅助弹性网卡信息 示例说明
网卡名称 eth1
MAC地址 00:16:3e:19:**:**
主私网IP地址 192.168.**.*9
子网掩码 255.255.252.0
网关地址 192.168.**.253

获取辅助弹性网卡主信息的方式如下:

  • 方式一:使用curl命令通过实例元数据获取。更多信息,请参见ECS实例元数据概述
    1. 远程登录ECS实例。更多信息,请参见连接方式概述
    2. 运行以下命令获取实例的网卡MAC地址。
      curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/
      结果如下所示。查询mac
      • 00:16:3e:08:**:**:示例中表示主网卡。
      • 00:16:3e:19:**:**:示例中表示辅助弹性网卡。
    3. 运行以下命令获取辅助弹性网卡的私网IP。
      curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/primary-ip-address
    4. 运行以下命令获取辅助弹性网卡的掩码地址。
      curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/netmask
    5. 运行以下命令获取辅助弹性网卡的网关。
      curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:19:**:**/gateway
      示例整体查询结果如下所示。 查询结果
  • 方式二:在ECS控制台上查询。
    1. 登录ECS管理控制台
    2. 在左侧导航栏,选择网络与安全 > 弹性网卡
    3. 网卡列表页面,查看网卡的主私网IP地址MAC地址
  • 方式三:调用API DescribeNetworkInterfaces查询。
    通过阿里云CLI查询如下。
    aliyun ecs DescribeNetworkInterfaces \
    --output cols=MacAddress,PrivateIpAddress rows=NetworkInterfaceSets.NetworkInterfaceSet[] \
    --RegionId 'cn-hangzhou' \
    --InstanceId 'i-bp1bsa8bz184kqrz****'
    查询结果如下所示。 api查询结果

为Alibaba Cloud Linux 2、CentOS或RedHat系统配置辅助弹性网卡

以下步骤以网卡 eth1为示例,如果您要配置的是其他网卡,请根据实际情况修改网卡标识符。
说明 如果您的ECS实例操作系统为Alibaba Cloud Linux 2,需要注意该方式适用于network-scripts网络服务。

方式一:使用multi-nic-util工具。

部分CentOS系统ECS实例可以下载并安装multi-nic-util工具,自动配置辅助弹性网卡。该工具仅支持高于CentOS 6.8和CentOS 7.3版本的镜像。

  1. 远程登录ECS实例。更多信息,请参见连接方式概述
  2. 运行以下命令下载multi-nic-util工具。
    wget https://image-offline.oss-cn-hangzhou.aliyuncs.com/multi-nic-util/multi-nic-util-0.6.tgz
  3. 解压并安装multi-nic-util工具。
    1. 运行以下命令解压multi-nic-util工具。
      tar -zxvf multi-nic-util-0.6.tgz
    2. 运行以下命令进入multi-nic-util工具文件夹。
      cd multi-nic-util-0.6
    3. 运行以下命令安装multi-nic-util工具。
      bash install.sh
  4. 运行以下命令重启辅助弹性网卡服务。
    systemctl restart eni.service

方式二:手动配置。

  1. 远程登录ECS实例。更多信息,请参见连接方式概述
  2. 运行以下命令打开网卡配置文件。
    vi /etc/sysconfig/network-scripts/ifcfg-eth1
  3. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    示例如下:
    DEVICE=eth1  # 表示新配置的网卡接口。
    BOOTPROTO=dhcp
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=yes
    PEERDNS=no
    IPV6INIT=no
    PERSISTENT_DHCLIENT=yes
    HWADDR=00:16:3e:17:**:**  # 必须使用您查到的网卡对应的MAC地址。
    DEFROUTE=no  # 表示网卡接口不是默认路由。为避免在启动(ifup)辅助弹性网卡时改变ECS实例活动的默认路由,不要将eth1设置为默认路由。
    编辑完成后按 esc键,输入 :wq并按回车键,保存并退出。
  4. 运行以下命令查看网卡配置文件并确认修改。
    cat /etc/sysconfig/network-scripts/ifcfg-eth1
  5. 运行以下命令重启网络服务。
    • CentOS 7以前版本(例如CentOS 6):
      service network restart
    • CentOS 7及以上版本:
      systemctl restart network
说明 当您在云服务器内完成网卡配置后,如果需要创建自定义镜像,请先执行命令 /etc/eni_utils/eni-cleanup清理 /etc/udev/rules.d/70-persistent-net.rules/etc/sysconfig/network-scripts/下的网络配置。

为Alibaba Cloud Linux 2系统配置辅助弹性网卡

以下步骤以网卡 eth1为示例,如果您要配置的是其他网卡,请根据实际情况修改网卡标识符。
说明 该方式适用于systemd-networkd网络服务。
  1. 远程登录ECS实例。更多信息,请参见连接方式概述
  2. 运行以下命令打开网卡配置文件。
    vi /etc/systemd/network/60-eth1.network
  3. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    本示例提供以下两种场景需要添加的配置信息,您可以根据需求选择配置。
    • 场景一:通过DHCP对辅助弹性网卡分配动态IP。
      示例如下:
      [Match]
      Name=eth1 # 表示新配置的网卡接口。
      
      [Network]
      DHCP=yes
      
      [DHCP]
      UseDNS=yes
    • 场景二:对辅助弹性网卡指定静态IP。
      示例如下:
      [Match]
      Name=eth1 # 表示新配置的网卡接口。
      
      [Network]
      Address=192.168.**.**/22 # 表示分配的静态IP和子网掩码。
      说明 本示例中子网掩码 /22即表示 255.255.252.0。如何查询主私网IP和子网掩码,请参见 准备工作
    编辑完成后按 Esc键,输入 :wq并按回车键,保存并退出。
  4. 运行以下命令查看网卡配置文件并确认修改。
    cat /etc/systemd/network/60-eth1.network
  5. 运行以下命令重启网络服务。
    systemctl restart systemd-networkd

为Ubuntu或Debian系统配置辅助弹性网卡

Ubuntu 14.04、Ubuntu 16.04及Debian支持以下配置。

  1. 运行以下命令打开网卡配置文件。
    vi /etc/network/interfaces
  2. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    以网卡eth1为例:
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1  # 表示新配置的网卡接口。
    iface eth1 inet dhcp
    编辑完成后按 esc键,输入 :wq并按回车键,保存并退出。
  3. 运行以下命令查看网卡配置文件并确认修改。
    cat /etc/network/interfaces
  4. 运行以下命令重启网络服务。
    • Ubuntu 16.04以前版本(例如Ubuntu 14.04):
      service networking restart
    • Ubuntu 16.04:
      systemctl restart networking

Ubuntu 18.04支持以下配置。

  1. 运行以下命令创建并编辑网卡配置文件。
    以网卡eth1为例:
    vi /etc/netplan/eth1-netcfg.yaml
  2. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    说明 编辑配置文件时请注意以下事项:
    • 配置文件为YAML文件格式,您在配置时需要遵循YAML语法规则。
    • YAML不支持制表符(Tab)缩进,请使用空格缩进。
    • 建议您直接复制默认配置文件/etc/netplan/99-netcfg.yaml中的内容进行修改,避免产生格式问题。
    以网卡eth1为例:
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth1:
          dhcp4: yes
          dhcp6: no
    编辑完成后按 esc键,输入 :wq并按回车键,保存并退出。
  3. 运行以下命令查看网卡配置文件并确认修改。
    cat /etc/netplan/eth1-netcfg.yaml
  4. 运行以下命令使配置生效。
    netplan apply

为SUSE或OpenSUSE系统配置辅助弹性网卡

以下步骤以网卡eth1为示例,如果您要配置的是其他网卡,请根据实际情况修改网卡标识符。

  1. 运行以下命令打开网卡配置文件。
    vi /etc/sysconfig/network/ifcfg-eth1
  2. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    BOOTPROTO='dhcp4'
    STARTMODE='auto'
    USERCONTROL='no'
    编辑完成后按 esc键,输入 :wq并按回车键,保存并退出。
  3. 运行以下命令查看网卡配置文件并确认修改。
    cat /etc/sysconfig/network/ifcfg-eth1
  4. 运行以下命令重启网络服务。
    • SUSE Linux Enterprise Server 12以前版本:
      service network restart
    • SUSE Linux Enterprise Server 12及以上版本:
      systemctl restart network

配置网卡路由

配置辅助弹性网卡后,您可以通过 route -n命令查看实例上的路由信息。如果实例上未配置,可根据以下步骤配置网卡路由。此处以辅助弹性网卡eth1为例介绍如何配置路由。
说明 自动配置的网卡路由可能不符合您的实际使用情况,建议您根据实际网络环境修改路由配置信息。
  1. 启动辅助弹性网卡。
    1. 运行以下命令启动dhclient进程,并发起DHCP请求。
      停止eth1:
      ifdown eth1
      启动eth1:
      ifup eth1
    2. 运行以下命令检查网卡IP分配情况,查看到的IP分配必须和您在准备工作阶段查询到的网卡信息一致。
      ip address show
      查询结果如下所示。 ipaddr
  2. 按您的需要规划路由表中网卡的默认路由metric值。
    1. 规划metric值。
      信息 示例取值
      网卡名称 eth1
      网关 192.168.**.253
      metric 1001
      运行以下命令:
      ip -4 route add default via 192.168.**.253 dev eth1 metric 1001
    2. 检查配置是否成功,注意查看GatewayMetric列是否和您配置的信息一致。
      route -n
      查询结果如下所示: route
  3. 创建路由表。
    1. 运行以下命令创建路由表。
      ip -4 route add default via 192.168.**.253 dev eth1 table 1001
      说明 建议路由表名称和网卡的默认路由 metric取值保持一致,如本例中的 1001
    2. 运行以下命令检查路由表是否创建成功。
      ip route list table 1001
      查询结果如下所示: table
  4. 配置策略路由。
    1. 运行以下命令创建策略路由。
      ip -4 rule add from 192.168.**.*9 lookup 1001
      说明 示例中 192.168.**.*9为辅助弹性网卡私网IP,您需要根据实际情况修改。
    2. 运行以下命令查看路由规则。
      ip rule list
      查询结果如下所示: rulelist

后续步骤

辅助弹性网卡配置成功后,您可以执行以下操作: