全部产品
Search
文档中心

云服务器 ECS:配置辅助弹性网卡

更新时间:Nov 07, 2024

ECS实例绑定辅助弹性网卡后,部分镜像可能无法自动识别辅助弹性网卡的IP地址并添加路由,导致辅助弹性网卡无法正常使用。为解决此问题,建议您按照本文介绍的操作在ECS实例内部配置辅助弹性网卡以识别IP地址。同时,您还可以通过配置路由来满足特定需求和目标,从而更好地管理和控制网络流量。

前提条件

已将辅助弹性网卡绑定至ECS实例。具体操作,请参见绑定辅助弹性网卡

步骤一:确认是否需要配置辅助弹性网卡

您可以通过镜像类型或查看辅助弹性网卡的IP地址的识别状态来判断是否需要配置辅助弹性网卡。

无需配置辅助弹性网卡的镜像

部分镜像预装了自动配置工具,可以自动配置绑定的辅助弹性网卡。如果您使用这类镜像(例如下面列举的镜像版本),则无需自行配置辅助弹性网卡,可以直接跳过本文的操作步骤。

说明

以下列举的镜像版本可能不全,具体以实际环境为准。

  • Linux:

    • Alibaba Cloud Linux 3.2104 64位

    • Anolis OS 7.7/8.2/8.4/8.6/8.8 RHCK 64位、Anolis OS 7.7/8.2/8.4/8.6/8.8 ANCK 64位、Anolis OS 8.4/8.6 RHCK 64位 UEFI版、Anolis OS 8.4/8.6 ANCK 64位 UEFI版、Anolis OS 8.8 ANCK 64位 等保2.0三级版

    • CentOS 8.1/8.2/8.3/8.4/8.5 64位、CentOS 8.3/8.4/8.5 64位 UEFI版

    • Debian 11.8/11.9/12.2/12.4/12.5 64位、Debian 12.2 64位 UEFI版

    • Ubuntu 20.04/22.04/24.04 64位

    • AlmaLinux 8.5/8.6/8.7/8.8/8.9/9.0/9.1/9.2/9.3 64位、AlmaLinux 8.7/8.8/9.2 64位 UEFI版

    • Rocky Linux 8.5/8.6/8.7/8.8/8.9/9.0/9.1/9.2/9.3 64位、Rocky Linux 8.7/8.8/9.1 64位 UEFI版

    • CentOS Stream 8/9 64位、CentOS Stream 8/9 64位 UEFI版

    • Fedora 33/34/35/37/38/39 64位

  • Window Server 2008 R2及更高版本

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 执行以下命令,查看辅助弹性网卡IP地址的识别状态。

    ip address show
  3. 根据返回查询结果,判断是否需要配置辅助弹性网卡。

    • 情况1:主网卡(eth0)和辅助弹性网卡(eth1)的IP地址都已识别,您无需再配置辅助弹性网卡。

      查询结果示例如下:

      eth1-detected

    • 情况2:主网卡(eth0)的IP地址已识别,辅助弹性网卡(eth1)的IP地址未识别,您需要按本文操作配置辅助弹性网卡。

      查询结果示例如下:

      ip-detected

    说明

    上述示例中,00:16:3e:16:**:**为主网卡的MAC地址,00:16:3e:0f:**:**为辅助弹性网卡的MAC地址。

(可选)步骤二:获取辅助弹性网卡的信息

在配置辅助弹性网卡时,您可能需要填写主私网IP地址、MAC地址等信息,请提前获取信息方便后续填写。

下述操作为演示步骤,请您在配置时根据实际信息修改相关参数内容。

通过ECS控制台获取(推荐)

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择网络与安全 > 弹性网卡

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 弹性网卡页面,找到目标辅助弹性网卡,在对应信息列中查看主私网IP地址MAC地址

在ECS实例内部通过实例元数据获取

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 依次执行以下命令获取弹性网卡的信息。

    • 获取实例所有网卡的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地址的显示顺序。

eni-status

步骤三:配置辅助弹性网卡

不同的操作系统中适用的操作存在差异,请选择对应操作系统示例执行操作。

Alibaba Cloud Linux 2、CentOS 6/7或Red Hat

对Alibaba Cloud Linux 2、CentOS 6/7和RedHat系统,您可以通过multi-nic-util工具自动配置或者修改网卡配置文件手动配置。

重要
  • 使用multi-nic-util工具会覆盖ECS实例原有的网络配置,请您知悉此风险。

  • 阿里云强烈建议您避免在Docker或其他容器化环境中使用multi-nic-util工具。

  • 通过multi-nic-util工具为CentOS系统自动配置辅助弹性网卡时,仅部分镜像版本支持使用multi-nic-util工具。

    • CentOS 6镜像:请确保镜像版本为CentOS 6.8及以上。

    • CentOS 7镜像:请确保镜像版本为CentOS 7.3及以上。

    • 对于不支持使用multi-nic-util工具的CentOS镜像版本,请通过修改网卡配置文件手动配置辅助弹性网卡。

方式一:通过multi-nic-util工具自动配置(推荐)

  1. 执行以下命令,下载并安装multi-nic-util工具。

  2. 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
  3. 执行以下命令,重启弹性网卡服务。

    sudo systemctl restart eni.service

方式二:通过修改网卡配置文件手动配置

  1. 执行以下命令,打开辅助弹性网卡的配置文件。

  2. vi /etc/sysconfig/network-scripts/ifcfg-eth1
  3. i键进入编辑模式,在网卡配置文件中添加如下辅助弹性网卡的信息,然后按Esc键退出编辑模式,输入:wq保存退出。

    添加网卡信息的示例如下:

    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设置为默认路由。
  4. 执行以下命令,重启网络服务。

    • CentOS 7以前版本、RedHat 7以前版本(例如CentOS 6、RedHat 6):

    • sudo service network restart
    • CentOS 7及以上版本、RedHat 7及以上版本、Alibaba Cloud Linux 2:

    • sudo systemctl restart network
说明

当您完成配置后,如果需要通过该实例创建自定义镜像,请先执行/etc/eni_utils/eni-cleanup命令清理/etc/udev/rules.d/70-persistent-net.rules/etc/sysconfig/network-scripts/下的网络配置。

Ubuntu或Debian

对Ubuntu和Debian系统,您需要根据实际镜像版本修改对应的配置文件。

  • Ubuntu 14.04、16.04及Debian

    1. 执行以下命令,打开网卡配置文件。

      vi /etc/network/interfaces
    2. i键进入编辑模式,在网卡配置文件中添加如下辅助弹性网卡的信息,然后按Esc键退出编辑模式,输入:wq保存退出。

      添加网卡信息的示例如下:

      auto eth0
      iface eth0 inet dhcp
      
      auto eth1  # 表示新配置的网卡接口。
      iface eth1 inet dhcp
      说明

      主网卡(eth0)和辅助弹性网卡(eth1)的配置在同一个配置文件中维护,请注意不要遗漏主网卡的信息。

    3. 执行以下命令,重启网络服务。

      • Ubuntu 14.04:

        sudo service networking restart
      • Ubuntu 16.04、Debian:

        sudo systemctl restart networking

      若出现以下警告,不影响配置辅助弹性网卡生效。您可以运行ip address show查看辅助弹性网卡IP地址的识别状态。warning

  • Ubuntu 18.04、20.04、22.04、24.04

    说明

    Ubuntu 20.04/22.04/24.04默认支持自动配置绑定的辅助弹性网卡,如果自动配置未成功,请参照如下步骤进行手动配置。

    1. 执行以下命令,打开辅助弹性网卡的配置文件。

    2. vi /etc/netplan/eth1-netcfg.yaml
    3. i键进入编辑模式,在网卡配置文件中添加如下辅助弹性网卡的信息,然后按Esc键退出编辑模式,输入:wq保存退出。

      说明

      编辑配置文件时请注意以下事项:

      • 配置文件为YAML文件格式,您在配置时需要遵循YAML语法规则。

      • YAML不支持制表符(Tab)缩进,请使用空格缩进。

      • 建议您直接复制默认配置文件/etc/netplan/99-netcfg.yaml中的内容进行修改,避免产生格式问题。

      添加网卡信息的示例如下:

      network:
        version: 2
        renderer: networkd
        ethernets:
          eth1:
            dhcp4: yes
            dhcp6: no
    4. 执行以下命令,使配置生效。

    5. netplan apply

SUSE或OpenSUSE

对SUSE和OpenSUSE系统,您需要通过修改网卡配置文件手动配置辅助弹性网卡。

  1. 执行以下命令,打开网卡配置文件。

    vi /etc/sysconfig/network/ifcfg-eth1
  2. i键进入编辑模式,在网卡配置文件中添加如下辅助弹性网卡的信息,然后按Esc键退出编辑模式,输入:wq保存退出。

    通过DHCP分配动态IP的示例如下:

    BOOTPROTO='dhcp4'
    STARTMODE='auto'
    USERCONTROL='no'
  3. 执行以下命令,重启网络服务。

    • SUSE Linux Enterprise Server 12以前版本、OpenSUSE 13.2以前版本:

      sudo service network restart
    • SUSE Linux Enterprise Server 12及以上版本、OpenSUSE 13.2及以上版本:

      sudo systemctl restart network

(条件必选)步骤四:配置路由

您可以通过执行route -n命令来检查当前的路由信息。如果辅助弹性网卡没有路由,或者现有的路由不满足您的需求,您可以按照本章节的指引通过配置路由表和规则来自行配置路由。通过配置路由表和规则,您可以实现不同的路由策略,将特定的网络流量通过指定的网关进行转发,以便更加精确地控制和管理网络流量的转发路径。

根据您的实际需要规划默认路由,本文使用以下表中的示例信息作为演示步骤。

信息

示例取值

网卡名称

eth1

主私网IP地址

192.168.**.*2

网关地址

192.168.**.253

metric

1001

在Alibaba Cloud Linux 2、CentOS 7系统中配置路由

  1. 执行以下命令,查看路由信息。

    route -n

    查询结果示例如下:

    • 仅查询到了主网卡(eth0)的路由信息,辅助弹性网卡(eth1)还未配置路由,您需要继续执行后续操作,为辅助弹性网卡配置路由。main-eni-route

    • 查询到了主网卡(eth0)和辅助弹性网卡(eth1)的路由信息,无需再执行后续操作为辅助弹性网卡配置路由。如果不符合您的实际需要,也可以自行修改。both-eni-route

  2. 执行以下命令,配置默认路由。

    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
    说明

    上述命令为eth1添加默认路由,并创建了一张路由表和一条关联至该路由表的路由策略。其中,table 1001为路由表(和默认路由metric取值保持一致),192.168.**.253为网关地址,192.168.*.*2为eth1的主私网IP地址。请将相关参数替换为实际内容。

  3. 执行以下命令,查看创建的路由表和策略路由。

    ip route list table 1001 && \
    ip rule list

    系统返回查询结果如下图,表示创建的路由表和策略路由成功。view-route-policy

  4. 配置开机时自动更新路由。

    为eth1配置路由后,需配置开机时自动更新路由,否则重启实例后该路由配置会失效。

    1. 执行以下命令,打开/etc/rc.local文件。

      vim /etc/rc.local
    2. i键进入编辑模式,添加如下内容,然后按Esc键退出编辑模式,输入:wq保存退出。

      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
    3. 执行以下命令,为/etc/rc.local文件添加执行权限。

      sudo chmod +x /etc/rc.local

在CentOS 8系统中配置路由

  1. 执行以下命令,查看路由信息。

    route -n

    系统返回信息示例如下图,表示查询到了主网卡(eth0)和辅助弹性网卡(eth1)的路由信息。centos8-route

  2. 创建配置路由用的脚本。

    1. 执行以下命令,新建并打开/home/route.sh文件。

      vi /home/route.sh
    2. i键进入编辑模式,添加如下内容,然后按Esc键退出编辑模式,输入:wq保存退出。

      说明

      下述脚本内容为eth1创建了一张路由表和一条关联至该路由表的路由策略。其中,table 1001为路由表,192.168.**.253为网关地址,192.168.*.*2为eth1的主私网IP地址。

      #!/bin/bash
      
      i=0
      while true; do
              /usr/sbin/ip -4 route add default via 192.168.**.253 dev eth1 table 1001
              if [ $? -eq 0 ]; then
                      break
          fi
              sleep 3
              let i++
              if [ $i -gt 10 ]; then
                      exit -1
              fi
      done
      
      i=0
      while true; do
              /usr/sbin/ip -4 rule add from 192.168.**.*2 lookup 1001
              if [ $? -eq 0 ]; then
                      break
          fi
              sleep 3
              let i++
              if [ $i -gt 10 ]; then
                      exit -1
              fi
      done
  3. 执行以下命令,配置默认路由。

    sh /home/route.sh
  4. 执行以下命令,查看创建的路由表和策略路由。

    ip route list table 1001 && \
    ip rule list

    系统返回示例结果如下图所示。view-route-policy

  5. 配置开机时自动更新路由。

    为eth1配置路由后,请按以下步骤配置开机时自动更新路由,否则重启实例后该路由配置会失效。

    1. 执行以下命令,打开/etc/rc.local文件。

      vim /etc/rc.local
    2. i键进入编辑模式,添加如下内容,然后按Esc键退出编辑模式,输入:wq保存退出。

      sh /home/route.sh
    3. 执行以下命令,为/etc/rc.local文件添加执行权限。

      sudo chmod +x /etc/rc.local