EIP 預設以 NAT 方式映射到 ECS 執行個體的私網 IP,作業系統內僅可見私網地址。在部分業務情境中,應用程式要求公網 IP 直接配置在網卡上,即 EIP 網卡可見。
網路通訊協定要求:FTP 主動模式等協議需要在報文負載中攜帶本機公網 IP,攜帶私網 IP 會導致通訊失敗。
源地址校正:部分服務端要求發起請求的網卡 IP 與公網出口 IP 一致。
IPsec VPN:部分 VPN 軟體需要直接綁定公網 IP 以建立隧道。
使用 VPC 附加網段,建立彈性網卡並為其配置與 EIP 一致的主私網 IP,作業系統內即可見公網 IP。且支援為同一網卡配置 IPv6 地址,實現單網卡 IPv4/IPv6 雙棧。
工作原理
VPC 的附加網段功能支援添加任意 CIDR (包括公網 IP 段)作為使用者網段,從而可實現:
將 EIP 所在的公網網段(如
118.XX.XX.0/24)添加為 VPC 附加網段。在附加網段下建立交換器和彈性網卡,配置彈性網卡的主私網 IP 與 EIP 位址一致。
將 EIP 以普通模式綁定到該彈性網卡,在作業系統內即可見公網地址。
在此基礎上,為同一網卡分配 IPv6 地址並開通公網頻寬,即可實現單網卡 IPv4 + IPv6 雙棧通訊。
適用範圍
配置 IPv4 網卡可見
控制台
建立 EIP:登入EIP 控制台,單擊建立Elastic IP Address。具體配置可參考EIP選型指引。
付費模式:建議選擇隨用隨付。
地區:與 ECS 執行個體所在地區保持一致。
其餘配置可保持預設。
EIP 位址決定了後續配置的附加網段和交換器網段。
為 VPC 添加 IPv4 附加網段,並建立交換器和彈性網卡:
添加附加網段:
登入VPC 控制台,單擊 ECS 執行個體所屬專用網路 ID 進入詳情頁。
選擇網段管理頁簽,單擊添加附加IPv4網段。選擇高級配置網段,並輸入包含 EIP 位址的位址區段。
例如, EIP 位址為
118.XX.XX.230,可設定為118.XX.XX.0/24。
前往建立交換器頁面,在附加網段下建立交換器:
專用網路:選擇 ECS 執行個體所屬的 VPC。
IPv4網段:選擇已添加的附加網段。
交換器的可用區:選擇 ECS 執行個體所在的可用性區域。
交換器的IPv4網段:輸入包含 EIP 位址的位址區段。例如, EIP 位址為
118.XX.XX.230,可設定為118.XX.XX.128/25。
建立彈性網卡:
單擊建立彈性網卡:
專用網路、交換器、安全性群組:選擇 ECS 執行個體所屬的 VPC 和安全性群組,以及附加網段下建立的交換器。
主私網 IP:輸入 EIP 的 IP 位址(如
118.XX.XX.230)。
綁定資源
將 EIP 與彈性網卡綁定:前往EIP 控制台,單擊目標 EIP 操作列的綁定資源。
執行個體類型:選擇彈性網卡。
繫結模式:選擇普通模式。
選擇要綁定的執行個體:選擇步驟3建立的彈性網卡。
將彈性網卡與 ECS 執行個體綁定:
前往ECS控制台 - 彈性網卡頁面,單擊目標執行個體操作列的綁定執行個體,選擇目標 ECS。部分執行個體規格不支援熱插拔,需要先停止 ECS 執行個體後再綁定彈性網卡。
確認彈性網卡生效:登入 ECS 執行個體,執行
ip addr show確認輔助彈性網卡 IP 與 EIP 一致。若彈性網卡未啟動,需配置Linux作業系統識別網卡。
配置策略路由:ECS 的預設路由指向主網卡 eth0。為保證通過輔助彈性網卡 eth1 進入的請求能原路返回(即源進源出),需要配置策略路由。
臨時配置(重啟後失效):
ip route add default via <子網網關> dev eth1 table 1001 ip rule add from <主私網 IP> lookup 1001永久配置:配置開機時自動更新路由,使配置永久生效。
結果驗證:登入 ECS 執行個體,執行
curl -4 --interface eth1 ifconfig.me,驗證出口 IP 為主私網 IP。
API
調用AllocateEipAddress建立EIP。
調用AssociateVpcCidrBlock添加附加網段。
調用CreateVSwitch建立交換器。
調用CreateNetworkInterface建立彈性網卡。
調用AssociateEipAddress綁定EIP與彈性網卡。
調用AttachNetworkInterface為已有 ECS 執行個體綁定彈性網卡。
配置 IPv6 雙棧
在配置 IPv4 網卡可見的基礎上,為輔助彈性網卡分配 IPv6 地址,即可實現單網卡 IPv4/IPv6 雙棧。
控制台
為 VPC 開啟 IPv6:
目標 VPC 未開啟 IPv6 時,單擊目標 VPC IPv6網段列的開通IPv6,選擇系統分配的 IPv6 位址區段,並勾選自動開啟專用網路內所有交換器IPv6功能;系統將自動建立IPv6網關並分配IPv6網段。
目標 VPC 及交換器已開啟 IPv6 時,可跳過此步驟。
為彈性網卡分配 IPv6 地址:
前往ECS控制台 - 彈性網卡頁面,單擊目標彈性網卡操作列的管理彈性網卡 IP,添加 IPv6 地址。
配置作業系統識別 IPv6 地址:登入 ECS 執行個體,執行
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6;完成後,執行ip -6 addr show dev eth1確認已正確識別。
開通 IPv6 公網頻寬:IPv6 地址預設僅支援 VPC 內部通訊,需要單獨開通公網頻寬才能訪問公網。
登入IPv6 網關控制台。
單擊目標 VPC 的 IPv6 網關,單擊目標 IPv6 地址操作列的開通公網頻寬,配置公網頻寬。
結果驗證:登入 ECS 執行個體,執行
curl -6 ifconfig.me,驗證 IPv6 公網出口。
API
針對已建立的專用網路和交換器,調整ModifyVpcAttribute與ModifyVSwitchAttribute的
EnableIPv6參數開啟/關閉IPv6。控制台邏輯不同的是,調用API為專用網路和交換器開啟IPv6後,將不會自動建立IPv6網關,需調用CreateIpv6Gateway自行建立。
調用AssignIpv6Addresses為彈性網卡分配IPv6地址。
調用AllocateIpv6InternetBandwidth為IPv6地址購買公網頻寬。
常見問題
問題 | 可能原因 | 解決方案 |
彈性網卡的主私網 IP 配置不合法 | 主私網 IP 未包含於交換器網段 | 重新建立交換器,確保交換器網段包含 EIP 位址。 |
彈性網卡綁定 ECS 時無法選擇到目標 ECS | 可用性區域不一致 | 確認彈性網卡和 ECS 執行個體位於同一可用性區域。 |
彈性網卡綁定 ECS 時報錯 | 執行個體規格不支援熱插拔 | 先停止執行個體,完成綁定後再啟動執行個體。 |
彈性網卡未啟用 | 作業系統未識別新網卡 | |
ECS 執行個體無法訪問公網 | 預設路由指向主網卡 | 調整路由優先順序,確保優先使用輔助彈性網卡訪問公網;或使用 |
存在非對稱路由 | 配置策略路由確保源進源出。 | |
安全性群組未允許存取 | 檢查安全性群組是否放通了相關訪問來源的流量。 |