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及更高版本
遠程連接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