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 雙棧通訊。
適用範圍
-
同 VPC 通訊:使用附加網段實現網卡可見的 ECS 執行個體,通過該 EIP 與同 VPC 內的其他執行個體無法實現公網通訊,而是在 VPC 內私網通訊。
-
交換器網段:使用 VPC 附加網段建立的交換器網段必須包含 EIP 位址,且 EIP 不能與交換器的系統保留地址相同(針對IPv4,每個交換器的第1個和最後3個IP地址為系統保留地址)。
-
彈性網卡:
-
ECS 執行個體和綁定的彈性網卡,必須屬於同一VPC、同一可用性區域,可以屬於不同交換器。
-
每個 ECS 執行個體可以綁定的網卡數量由執行個體規格決定。
-
-
附加網段:每個 VPC 最多支援添加 5 個附加 IPv4 網段,5 個附加 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確認已正確識別。[root@iZxxx]# ip -6 addr show dev eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 altname enp0s6 altname ens6 inet6 2408:4005:305:xxx:xxx:xxx:d28b/64 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever -
開通 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 執行個體無法訪問公網 |
預設路由指向主網卡 |
調整路由優先順序,確保優先使用輔助彈性網卡訪問公網;或使用 |
|
存在非對稱路由 |
配置策略路由確保源進源出。 |
|
|
安全性群組未允許存取 |
檢查安全性群組是否放通了相關訪問來源的流量。 |