當單個 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作業系統識別網卡。
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s5 altname ens5 inet 192.168.0.3/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0 valid_lft 1892159940sec preferred_lft 1892159940sec inet6 xxx/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.252/24 brd 192.168.0.255 scope global dynamic noprefixroute eth1 valid_lft 1892159958sec preferred_lft 1892159958sec inet6 xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever -
-
使用
nmcli con配置輔助私網 IP。-
執行
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg建立檔案,寫入network: {config: disabled}配置項,禁用cloud-init自動初始化網路設定,避免重啟後配置失效。 -
執行
nmcli con show查看eth1的網路連接名。[root@ixxx Z ~]# nmcli con show NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 Wired connection 1 c8c8d113-cd19-3945-a292-1a89d8bab4e8 ethernet 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 modify "Wired connection 1" ipv4.addresses 192.168.0.1/24,192.168.0.2/24 sudo nmcli con modify "Wired connection 1" ipv4.gateway 192.168.0.253
-
-
執行
sudo nmcli con up "<eth1 網路連接名>",啟用修改後的網路連接。返回資訊出現類似Connection successfully activated時,代表配置成功。再次執行ip a,可查看到輔助私網 IP。eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.252/24 brd 192.168.0.255 scope global secondary dynamic noprefixroute eth1 valid_lft 1892159981sec preferred_lft 1892159981sec inet6 fe80::xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever
-
-
建立多個 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,可查看建立的路由表和策略路由。[root@iZ ~]# ip route list table 1001 && ip rule list default via 192.168.0.253 dev eth1 0: from all lookup local 32763: from 192.168.0.2 lookup 1001 32764: from 192.168.0.1 lookup 1001 32765: from 192.168.0.252 lookup 1001 32766: from all lookup main 32767: from all lookup default -
配置開機時自動更新路由,避免重啟執行個體後配置失效。
-
執行
vim /etc/rc.local,將建立路由表和策略路由的相關命令寫入檔案。 -
執行
sudo chmod +x /etc/rc.local,添加執行許可權。
-
步驟三:結果驗證
驗證出站 IP
登入 ECS 執行個體,執行curl --interface <輔助彈性網卡的私網 IP> https://ifconfig.me,確認從不同私網 IP 發起訪問的公網出口 IP 是對應綁定的EIP。
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.2 https://ifconfig.me)
47.xxx.xxx.13
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.1 https://ifconfig.me)
121.xxx.xxx.23
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.252 https://ifconfig.me)
121.xxx.xxx.175
驗證出入流量路徑
-
登入其他可訪問公網的測試 ECS,執行
ping <輔助彈性網卡綁定的 EIP>。 -
同時登入本 ECS 執行個體,執行
tcpdump -i eth1 icmp,在eth1捕獲 ICMP協議的資料包。
可查看到,資料包從eth1進入,依然從eth1回複,流量進出路徑一致。
[root@iZbp1xxx_uv2Z ~]# tcpdump -i eth1 icmp
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
10:14:34.410905 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 1, length 64
10:14:34.410944 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 1, length 64
10:14:35.412272 IP 47.xxx.xxx.250 > iZbpxxx_juv2Z: ICMP echo request, id 19, seq 2, length 64
10:14:35.412307 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 2, length 64
10:14:36.413675 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 3, length 64
10:14:36.413707 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 3, length 64
應用於生產環境
-
風險防範:本方案使用單點 ECS 執行個體,建議使用負載平衡確保業務高可用。但需注意,執行個體重啟或網路設定變更可能導致業務中斷。
-
監控與警示:為輔助彈性網卡的網路流量、CPU和記憶體使用量率等關鍵計量設定監控警示,以便及時發現異常。
-
安全強化:為輔助彈性網卡配置最小許可權的安全性群組規則,僅允許存取業務必需的連接埠和源IP地址。
計費說明
-
-
EIP 配置費(公網 IP 保有費):
-
隨用隨付EIP:當與輔助彈性網卡綁定時,即使沒有公網流量,也會收取EIP配置費(公網IP保有費)。
-
訂用帳戶EIP:不收取 EIP 配置費。
-
-
公網網路費:
-
隨用隨付EIP:按所選的計費方式(按固定頻寬或按使用流量)收取費用。
-
訂用帳戶EIP:按照頻寬峰值計費。
-
-
-
其他資源計費:ECS執行個體等資源按其自身計費規則收費,輔助彈性網卡本身免費。