當單個 ECS 執行個體需要多個 EIP 承載不同的服務時,需要使用普通模式為 ECS 執行個體的彈性網卡綁定多 EIP。
主網卡和輔助彈性網卡均支援綁定多 EIP,可根據實際組網進行選擇。本文以輔助彈性網卡為例。
工作原理
綁定多 EIP:為 ECS 執行個體綁定分配了多個私網 IP 的輔助彈性網卡,將多個 EIP 以普通模式與私網 IP 一一綁定。
配置策略路由,確保出入流量路徑一致:
入向流量:當外部請求訪問某個EIP時,系統會自動將流量轉寄到該 EIP 綁定的私網 IP。
出向流量:為 ECS 執行個體配置策略路由,確保 ECS 執行個體能從正確的 EIP 返迴響應流量。策略路由根據資料包的源 IP(即私網 IP)來決定其下一跳和出口裝置(輔助彈性網卡),確保多網卡環境下路由對稱,避免路由衝突。
適用範圍
ECS 的不同執行個體規格類型系列支援綁定的彈性網卡數量、可分配輔助私人 IP 數量不同。
例如,
ecs.c6.large執行個體規格的 ECS 執行個體,最多支援綁定 2 張彈性網卡(包括主網卡和輔助彈性網卡),每張網卡最多支援 6 個私網 IP。其中,主網卡和輔助彈性網卡均支援通過主私網 IP 綁定 1 個 EIP,通過輔助私網 IP 綁定 5 個 EIP。普通模式下,EIP 以 NAT 模式與彈性網卡綁定,不支援 NAT ALG(NAT應用程式層網關)涉及的相關協議。
支援綁定主彈性網卡和輔助彈性網卡。
支援綁定的 EIP 數量取決於彈性網卡的私網 IP 數量,二者一一映射。
如果 ECS 執行個體所在 VPC 由 IPv4 網關集中控制公網訪問,需確保已配置路由指向 IPv4 網關允許 ECS 執行個體訪問公網。
操作步驟
步驟一:綁定多 EIP
為 ECS 執行個體綁定分配了多個私網 IP 的輔助彈性網卡:
已有輔助彈性網卡時,可直接與 ECS 執行個體綁定。
前往ECS 控制台 - 彈性網卡頁面,在頁面上方選擇 ECS 執行個體所屬地區。
單擊建立彈性網卡。
其餘參數保持預設。建立完成後,可單擊目標彈性網卡操作列的管理彈性網卡 IP,增加/刪除/修改私網 IP。
選擇 ECS 執行個體所屬的專用網路、交換器和安全性群組。
主私網 IP:可指定交換器中未使用的 IP。不指定時,系統將從交換器的空閑地址中為彈性網卡隨機分配。建立完成後,不支援修改。
輔助私網 IPv4:選擇自動分配,填入計劃分配的輔助私網 IP 數量。
單擊目標彈性網卡操作列的綁定執行個體,選擇目標 ECS 執行個體。
配置作業系統識別輔助私網 IP:
本文以 Alibaba Cloud Linux 3.2 作業系統為例。更多方式,可參考配置作業系統識別輔助私網IP地址。
登入 ECS 執行個體,執行
ip a查看並確認網卡資訊。網卡標識:eth0(主網卡)、eth1(輔助彈性網卡)。
網卡狀態:
state UP代表網卡狀態正常,即網卡已經在執行個體內部生效。如果網卡狀態為state DOWN,需要配置Linux作業系統識別網卡。

使用
nmcli con配置輔助私網 IP。執行
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg建立檔案,寫入network: {config: disabled}配置項,禁用cloud-init自動初始化網路設定,避免重啟後配置失效。執行
nmcli con show查看eth1的網路連接名。
執行以下命令,配置輔助彈性網卡的輔助私網 IPv4 地址、預設閘道。
可執行
route -n查看預設閘道。sudo nmcli con modify "<eth1 網路連接名>" ipv4.addresses <輔助私網 IPv4 地址 1>,<輔助私網 IPv4 地址 2> sudo nmcli con modify "<eth1 網路連接名>" ipv4.gateway <預設閘道>
執行
sudo nmcli con up "<eth1 網路連接名>",啟用修改後的網路連接。返回資訊出現類似Connection successfully activated時,代表配置成功。再次執行ip a,可查看到輔助私網 IP。
建立多個 EIP 並綁定輔助彈性網卡:
前往EIP 購買頁。
此處僅列出相關配置項,具體選型原則可參考EIP選型指引。
付費模式:隨用隨付適用於業務量不固定的情境,訂用帳戶適用於長期穩定的業務。本文選擇隨用隨付。
地區:與 ECS 執行個體所在地區保持一致。
線路類型:僅部分地區支援選擇。
安全防護:僅隨用隨付模式下的BGP(多線)EIP支援選擇。
位址集區:已有IP位址集區的情況下,可以選擇從已有IP位址集區中分配EIP。
購買數量:選擇計劃綁定的 EIP 數量。
將 EIP 與輔助彈性網卡的多個私網 IP 一一綁定:
前往Elastic IP Address頁面,在頂部功能表列選擇 EIP 所屬地區。
單擊目標 EIP 操作列的綁定資源,選擇彈性網卡,並選擇對應的輔助私網 IP。
步驟二:配置策略路由
為 ECS 執行個體配置策略路由,確保流量進出路徑一致。
登入 ECS 執行個體,為輔助彈性網卡
eth1添加預設路由:建立路由表table 1001、私網 IP 的對應路由策略。ip -4 route add default via <預設閘道> dev eth1 metric 1001 && \ ip -4 route add default via <預設閘道> dev eth1 table 1001 && \ ip -4 rule add from <輔助彈性網卡的私網 IPv4 地址 1> lookup 1001 && \ ip -4 rule add from <輔助彈性網卡的私網 IPv4 地址 2> lookup 1001 && \ ip -4 rule add from <輔助彈性網卡的私網 IPv4 地址 3> lookup 1001執行
ip route list table 1001 && ip rule list,可查看建立的路由表和策略路由。
配置開機時自動更新路由,避免重啟執行個體後配置失效。
執行
vim /etc/rc.local,將建立路由表和策略路由的相關命令寫入檔案。執行
sudo chmod +x /etc/rc.local,添加執行許可權。
步驟三:結果驗證
驗證出站 IP
登入 ECS 執行個體,執行curl --interface <輔助彈性網卡的私網 IP> https://ifconfig.me,確認從不同私網 IP 發起訪問的公網出口 IP 是對應綁定的EIP。

驗證出入流量路徑
登入其他可訪問公網的測試 ECS,執行
ping <輔助彈性網卡綁定的 EIP>。同時登入本 ECS 執行個體,執行
tcpdump -i eth1 icmp,在eth1捕獲 ICMP協議的資料包。
可查看到,資料包從eth1進入,依然從eth1回複,流量進出路徑一致。

應用於生產環境
風險防範:本方案使用單點 ECS 執行個體,建議使用負載平衡確保業務高可用。但需注意,執行個體重啟或網路設定變更可能導致業務中斷。
監控與警示:為輔助彈性網卡的網路流量、CPU和記憶體使用量率等關鍵計量設定監控警示,以便及時發現異常。
安全強化:為輔助彈性網卡配置最小許可權的安全性群組規則,僅允許存取業務必需的連接埠和源IP地址。
計費說明
EIP 配置費(公網 IP 保有費):
隨用隨付EIP:當與輔助彈性網卡綁定時,即使沒有公網流量,也會收取EIP配置費(公網IP保有費)。
訂用帳戶EIP:不收取 EIP 配置費。
公網網路費:
隨用隨付EIP:按所選的計費方式(按固定頻寬或按使用流量)收取費用。
訂用帳戶EIP:按照頻寬峰值計費。
其他資源計費:ECS執行個體等資源按其自身計費規則收費,輔助彈性網卡本身免費。