ECS執行個體綁定輔助彈性網卡後,部分鏡像可能無法自動識別輔助彈性網卡的IP地址並添加路由,導致輔助彈性網卡無法正常使用。為解決此問題,建議您按照本文介紹的操作在ECS執行個體內部配置輔助彈性網卡以識別IP地址。同時,您還可以通過配置路由來滿足特定需求和目標,從而更好地管理和控制網路流量。
前提條件
已將輔助彈性網卡綁定至ECS執行個體。具體操作,請參見綁定輔助彈性網卡。
步驟一:確認是否需要配置輔助彈性網卡
您可以通過鏡像類型或查看輔助彈性網卡的IP地址的識別狀態來判斷是否需要配置輔助彈性網卡。
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
執行以下命令,查看輔助彈性網卡IP地址的識別狀態。
ip address show
根據返回查詢結果,判斷是否需要配置輔助彈性網卡。
情況1:主網卡(eth0)和輔助彈性網卡(eth1)的IP地址都已識別,您無需再配置輔助彈性網卡。
查詢結果樣本如下:
情況2:主網卡(eth0)的IP地址已識別,輔助彈性網卡(eth1)的IP地址未識別,您需要按本文操作配置輔助彈性網卡。
查詢結果樣本如下:
上述樣本中,00:16:3e:16:**:**
為主網卡的MAC地址,00:16:3e:0f:**:**
為輔助彈性網卡的MAC地址。
(可選)步驟二:擷取輔助彈性網卡的資訊
在配置輔助彈性網卡時,您可能需要填寫主私網IP地址、MAC地址等資訊,請提前擷取資訊方便後續填寫。
下述操作為示範步驟,請您在配置時根據實際資訊修改相關參數內容。
通過ECS控制台擷取(推薦)
登入ECS管理主控台。
在左側導覽列,選擇
。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
在彈性網卡頁面,找到目標輔助彈性網卡,在對應資訊列中查看主私網IP地址和MAC地址。
在ECS執行個體內部通過執行個體中繼資料擷取
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
依次執行以下命令擷取彈性網卡的資訊。
擷取執行個體所有網卡的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地址的顯示順序。
步驟三:配置輔助彈性網卡
不同的作業系統中適用的操作存在差異,請選擇對應作業系統樣本執行操作。
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工具自動設定(推薦)
執行以下命令,下載並安裝multi-nic-util工具。
執行以下命令,重啟彈性網卡服務。
sudo systemctl restart eni.service
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
方式二:通過修改網卡設定檔手動設定
執行以下命令,開啟輔助彈性網卡的設定檔。
按
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設定為預設路由。
執行以下命令,重啟網路服務。
CentOS 7以前版本、RedHat 7以前版本(例如CentOS 6、RedHat 6):
sudo service network restart
CentOS 7及以上版本、RedHat 7及以上版本、Alibaba Cloud Linux 2:
vi /etc/sysconfig/network-scripts/ifcfg-eth1
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
執行以下命令,開啟網卡設定檔。
vi /etc/network/interfaces
按
i
鍵進入編輯模式,在網卡設定檔中添加如下輔助彈性網卡的資訊,然後按Esc
鍵退出編輯模式,輸入:wq
儲存退出。添加網卡資訊的樣本如下:
auto eth0 iface eth0 inet dhcp auto eth1 # 表示新配置的網卡介面。 iface eth1 inet dhcp
說明主網卡(eth0)和輔助彈性網卡(eth1)的配置在同一個設定檔中維護,請注意不要遺漏主網卡的資訊。
執行以下命令,重啟網路服務。
Ubuntu 14.04:
sudo service networking restart
Ubuntu 16.04、Debian:
sudo systemctl restart networking
若出現以下警告,不影響配置輔助彈性網卡生效。您可以運行
ip address show
查看輔助彈性網卡IP地址的識別狀態。
Ubuntu 18.04、20.04、22.04、24.04
說明Ubuntu 20.04/22.04/24.04預設支援自動設定綁定的輔助彈性網卡,如果自動設定未成功,請參照如下步驟進行手動設定。
執行以下命令,開啟輔助彈性網卡的設定檔。
按
i
鍵進入編輯模式,在網卡設定檔中添加如下輔助彈性網卡的資訊,然後按Esc
鍵退出編輯模式,輸入:wq
儲存退出。說明編輯設定檔時請注意以下事項:
設定檔為
YAML
檔案格式,您在配置時需要遵循YAML
文法規則。YAML
不支援定位字元(Tab)縮排,請使用空格縮排。建議您直接複製預設設定檔
/etc/netplan/99-netcfg.yaml
中的內容進行修改,避免產生格式問題。
添加網卡資訊的樣本如下:
network: version: 2 renderer: networkd ethernets: eth1: dhcp4: yes dhcp6: no
執行以下命令,使配置生效。
vi /etc/netplan/eth1-netcfg.yaml
netplan apply
SUSE或OpenSUSE
對SUSE和OpenSUSE系統,您需要通過修改網卡設定檔手動設定輔助彈性網卡。
執行以下命令,開啟網卡設定檔。
vi /etc/sysconfig/network/ifcfg-eth1
按
i
鍵進入編輯模式,在網卡設定檔中添加如下輔助彈性網卡的資訊,然後按Esc
鍵退出編輯模式,輸入:wq
儲存退出。通過DHCP分配動態IP的樣本如下:
BOOTPROTO='dhcp4' STARTMODE='auto' USERCONTROL='no'
執行以下命令,重啟網路服務。
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系統中配置路由
執行以下命令,查看路由資訊。
route -n
查詢結果樣本如下:
僅查詢到了主網卡(eth0)的路由資訊,輔助彈性網卡(eth1)還未配置路由,您需要繼續執行後續操作,為輔助彈性網卡配置路由。
查詢到了主網卡(eth0)和輔助彈性網卡(eth1)的路由資訊,無需再執行後續操作為輔助彈性網卡配置路由。如果不符合您的實際需要,也可以自行修改。
執行以下命令,配置預設路由。
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地址。請將相關參數替換為實際內容。執行以下命令,查看建立的路由表和策略路由。
ip route list table 1001 && \ ip rule list
系統返回查詢結果如下圖,表示建立的路由表和策略路由成功。
配置開機時自動更新路由。
為eth1配置路由後,需配置開機時自動更新路由,否則重啟執行個體後該路由配置會失效。
執行以下命令,開啟
/etc/rc.local
檔案。vim /etc/rc.local
按
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
執行以下命令,為
/etc/rc.local
檔案添加執行許可權。sudo chmod +x /etc/rc.local
在CentOS 8系統中配置路由
執行以下命令,查看路由資訊。
route -n
系統返回資訊樣本如下圖,表示查詢到了主網卡(eth0)和輔助彈性網卡(eth1)的路由資訊。
建立配置路由用的指令碼。
執行以下命令,建立並開啟
/home/route.sh
檔案。vi /home/route.sh
按
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
執行以下命令,配置預設路由。
sh /home/route.sh
執行以下命令,查看建立的路由表和策略路由。
ip route list table 1001 && \ ip rule list
系統返回樣本結果如下圖所示。
配置開機時自動更新路由。
為eth1配置路由後,請按以下步驟配置開機時自動更新路由,否則重啟執行個體後該路由配置會失效。
執行以下命令,開啟
/etc/rc.local
檔案。vim /etc/rc.local
按
i
鍵進入編輯模式,添加如下內容,然後按Esc
鍵退出編輯模式,輸入:wq
儲存退出。sh /home/route.sh
執行以下命令,為
/etc/rc.local
檔案添加執行許可權。sudo chmod +x /etc/rc.local