根据ECS实例使用的镜像不同,部分镜像需要您自行配置弹性网卡(ENI)。本文介绍了如何配置弹性网卡,使弹性网卡能被ECS实例识别。

前提条件

您已经将弹性网卡绑定到ECS实例上。详细步骤请参见绑定弹性网卡

背景信息

如果ECS实例使用以下几种镜像,则可以跳过本文操作,无需配置弹性网卡:
  • CentOS 7.3 64位
  • CentOS 6.8 64位
  • Window Server 2008 R2及更高版本

其他镜像请自行配置弹性网卡,使弹性网卡能被ECS实例识别。

操作流程

  1. 完成准备工作,查看并记录弹性网卡的信息。
  2. 根据ECS实例的操作系统,选择配置弹性网卡的方式:
  3. 配置网卡路由

准备工作

您需要查询弹性网卡的主私网IP地址、掩码地址、默认路由和MAC地址,并在后续配置过程中注意网卡名和MAC地址的对应关系。

  1. 远程连接ECS实例。连接方式请参见连接方式概述
  2. 获取每张网卡的主私网IP地址、掩码地址、默认路由和MAC地址。
    • 方式一:在ECS控制台上查询。
      1. 登录ECS管理控制台
      2. 在左侧导航栏,选择网络与安全 > 弹性网卡
      3. 网卡列表页面,查看网卡的主私网IP地址MAC地址。
    • 方式二:使用curl命令通过实例元数据获取。更多详情请参见实例元数据概述
      [root@LocalHost ~]# curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/
      00:16:3e:12:e7:**/
      00:16:3e:12:16:**/
      [root@LocalHost ~]# curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:12:e7:**/netmask
      255.255.255.0
      [root@LocalHost ~]# curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:12:e7:**/primary-ip-address
      10.0.0.20
      [root@LocalHost ~]# curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/00:16:3e:12:e7:**/gateway
      10.0.0.253
    • 方式三:调用API DescribeNetworkInterfaces查询。
    本文查询到的弹性网卡信息示例如下:
    eth1 10.0.0.20/24 10.0.0.253 00:16:3e:12:e7:**
    eth2 10.0.0.21/24 10.0.0.253 00:16:3e:12:16:**

为Aliyun Linux 2系统配置弹性网卡

  1. 打开网卡配置文件。
    以网卡eth1为例:
    vi /etc/systemd/network/60-eth1.network
  2. 按下键盘i键进入编辑模式,在网卡配置文件中加入配置信息。
    本示例提供以下两种场景需要添加的配置信息,您可以根据需求选择配置。
    • 场景一:通过DHCP对弹性网卡分配动态IP。

      示例如下:

      [Match]
      Name=eth1 # 表示新配置的网卡接口。
      
      [Network]
      DHCP=yes
      
      [DHCP]
      UseDNS=yes
    • 场景二:对弹性网卡指定静态IP。

      示例如下:

      [Match]
      Name=eth1 # 表示新配置的网卡接口。
      
      [Network]
      Address=192.168.**.**/24 # 表示分配的静态IP和子网掩码。
    编辑完成后按esc键,输入:wq并按回车键,保存并退出。
  3. 查看网卡配置文件并确认修改。
    cat /etc/systemd/network/60-eth1.network
  4. 运行以下命令重启网络服务。
    systemctl restart systemd-networkd

为CentOS/RedHat系统配置弹性网卡

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

  1. 下载multi-nic-util工具。
    wget https://image-offline.oss-cn-hangzhou.aliyuncs.com/multi-nic-util/multi-nic-util-0.6.tgz
  2. 解压并安装multi-nic-util工具。
    tar -zxvf multi-nic-util-0.6.tgz
    cd multi-nic-util-0.6
    bash install.sh
  3. 重启弹性网卡服务。
    systemctl restart eni.service

方式二:CentOS/RedHat手动配置。

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

为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. 运行service networking restartsystemctl restart networking重启网络服务。

Ubuntu 18.04支持以下配置。

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

为SUSE/OpenSUSE系统配置弹性网卡

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

配置网卡路由

  1. 启动弹性网卡。
    1. 运行ifup [网卡名]命令启动dhclient进程,并发起DHCP请求。
      ifup eth1
      ifup eth2
    2. 检查网卡IP分配情况,查看到的IP分配必须和您在准备工作阶段查询到的网卡信息一致。
      [root@ecshost~ ]# ip a
      1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
      2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
      link/ether 00:16:3e:0e:16:** brd ff:ff:ff:ff:ff:ff
      inet 10.0.0.19/24 brd 10.0.0.255 scope global dynamic eth0
      valid_lft 31506157sec preferred_lft 31506157sec
      3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
      link/ether 00:16:3e:12:e7:** brd ff:ff:ff:ff:ff:ff
      inet 10.0.0.20/24 brd 10.0.0.255 scope global dynamic eth1
      valid_lft 31525994sec preferred_lft 31525994sec
      4: eth2:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
      link/ether 00:16:3e:12:16:** brd ff:ff:ff:ff:ff:ff
      inet 10.0.0.21/24 brd 10.0.0.255 scope global dynamic eth2
      valid_lft 31526009sec preferred_lft 31526009sec
  2. 按您的需要规划路由表里每块网卡的默认路由metric值。
    1. 规划metric值。
      ip -4 route add default via 10.0.0.253 dev eth1 metric 1001
      ip -4 route add default via 10.0.0.253 dev eth2 metric 1002
      以上命令将eth1和eth2的metric值按如下关系配置:
      eth1: gw: 10.0.0.253 metric: 1001
      eth2: gw: 10.0.0.253 metric: 1002
    2. 检查配置是否成功,注意查看GatewayMetric列是否和您配置的信息一致。
      [root@ecshost~ ]# route -n
      Kernel IP routing table
      Destination Gateway Genmask Flags Metric Ref Use Iface
      0.0.0.0 10.0.0.253 0.0.0.0 UG 0 0 0 eth0
      0.0.0.0 10.0.0.253 0.0.0.0 UG 1001 0 0 eth1
      0.0.0.0 10.0.0.253 0.0.0.0 UG 1002 0 0 eth2
      10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
      10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
      10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
      169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
      169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
      169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 eth2
  3. 创建路由表。
    1. 创建路由表。
      ip -4 route add default via 10.0.0.253 dev eth1 table 1001
      ip -4 route add default via 10.0.0.253 dev eth2 table 1002
      说明 建议路由表名称和网卡的默认路由metric取值保持一致,如本例中的10011002
    2. 检查路由表是否创建成功。
      [root@ecshost~ ]# ip route list table 1001
      default via 10.0.0.253 dev eth1
      [root@ecshost~ ]# ip route list table 1002
      default via 10.0.0.253 dev eth2
  4. 配置策略路由。
    1. 创建策略路由。
      ip -4 rule add from 10.0.0.20 lookup 1001
      ip -4 rule add from 10.0.0.21 lookup 1002
    2. 查看路由规则。
      [root@ecshost~ ]# ip rule list
      0: from all lookup local
      32764: from 10.0.0.21 lookup 1002
      32765: from 10.0.0.20 lookup 1001
      32766: from all lookup main
      32767: from all lookup default

后续步骤

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