全部產品
Search
文件中心

Elastic Compute Service:配置輔助彈性網卡

更新時間:Feb 28, 2024

ECS執行個體綁定輔助彈性網卡後,部分鏡像可能無法自動識別輔助彈性網卡的IP地址並添加路由,導致輔助彈性網卡無法正常使用。為解決此問題,建議您按照本文介紹的操作在ECS執行個體內部配置輔助彈性網卡以識別IP地址。同時,您還可以通過配置路由來滿足特定需求和目標,從而更好地管理和控制網路流量。

前提條件

已將輔助彈性網卡綁定至ECS執行個體。具體操作,請參見綁定輔助彈性網卡

步驟一:確認是否需要配置輔助彈性網卡

您可以通過查看輔助彈性網卡的IP地址的識別狀態或鏡像類型來判斷是否需要配置輔助彈性網卡。

無需配置輔助彈性網卡的鏡像

部分鏡像預裝了自動設定工具,可以自動設定綁定的輔助彈性網卡。如果您使用這類鏡像(例如下面列舉的鏡像版本),則無需自行配置輔助彈性網卡,可以直接跳過本文的操作步驟。

說明

下面列舉的鏡像版本可能不全,具體以實際環境為準。

  • 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 11.3/11.4 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作業系統以網路服務類型分為如下兩種,您可參考下述操作,排查確定其網路服務的類型。

  • Alibaba Cloud Linux 2(network-scripts)

    您可以執行ls /etc/sysconfig/network-scripts命令,查看當前系統中是否存在/etc/sysconfig/network-scripts目錄。如果輸出了一些以ifcfg-ifdown-ifup-開頭的檔案,則表示當前系統使用的是network-scripts服務類型。

  • Alibaba Cloud Linux 2(systemd-networkd)

    您可以執行systemctl status systemd-networkd命令,查看當前系統是否安裝了systemd-networkd。如果輸出了一些systemd-networkd.service 的狀態資訊,包括運行狀態、主動狀態、日誌記錄等等,則表示當前系統使用的是systemd-networkd服務類型。

更多資訊,請參見Alibaba Cloud Linux 2執行個體修改網路服務的方法及影響說明

CentOS 6/7、RedHat或Alibaba Cloud Linux 2(network-scripts)

對網路服務類型為network-scripts的Alibaba Cloud Linux 2、CentOS 6/7和RedHat系統,您可以通過multi-nic-util工具自動設定或者修改網卡設定檔手動設定。

重要
  • 使用multi-nic-util工具會覆蓋ECS執行個體原有的網路設定,請您知悉此風險。

  • 通過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/下的網路設定。

Alibaba Cloud Linux 2(systemd-networkd)

對網路服務類型為systemd-networkd的Alibaba Cloud Linux 2系統,您需要通過修改網卡設定檔手動設定。

  1. 執行以下命令,開啟輔助彈性網卡的設定檔。

    vi /etc/systemd/network/60-eth1.network
  2. i鍵進入編輯模式,在網卡設定檔中添加如下輔助彈性網卡的資訊,然後按Esc鍵退出編輯模式,輸入:wq儲存退出。

    您可以為輔助彈性網卡分配動態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

  3. 執行以下命令,重啟網路服務。

    sudo systemctl restart systemd-networkd

Ubuntu或Debian

對Ubuntu和Debian系統,您需要根據實際鏡像版本修改對應的設定檔。

  • 以Ubuntu 14.04、Ubuntu 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為例

    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