隨著ECS執行個體增加,逐一配置公網IP會降低管理和營運效率,且增加了ECS執行個體遭受惡意掃描和攻擊的風險。您可以通過配置公網NAT Gateway的SNAT條目,使指定的多個ECS執行個體可以通過同一Elastic IP Address訪問互連網,從而簡化管理流程並降低內網資源暴露的風險。
情境樣本
某企業雲端存在大量ECS執行個體。逐一為每個ECS執行個體配置公網IP將降低管理和營運效率,這種做法不僅複雜,還增加了ECS執行個體面臨惡意掃描和攻擊的風險。因此,企業決定採用公網NAT Gateway,並通過配置SNAT條目,使得VPC-A內所有ECS執行個體能夠通過指定的公網IP訪問互連網。然而,由於部分早期建立的ECS執行個體已具備公網訪問能力,企業計劃採取以下措施:
統一出口:在確保原有資源正常啟動並執行前提下,通過EIP(39.XX.XX.35)為VPC-A內的所有ECS執行個體統一提供公網訪問能力。
平穩過渡:將ECS-A執行個體的固定公網IP轉換為EIP後,需將其從主網卡上解除綁定,並綁定至彈性網卡,從而確保終端使用者訪問ECS-A執行個體的方式保持不變。
通過上述調整,該企業利用公網NAT Gateway的集中管理和安全特性,有效降低了內網資源暴露的風險,同時提升了營運團隊的管理效率。
配置步驟
步驟一:固定公網IP轉EIP
登入雲端服務器管理主控台,找到目標ECS執行個體。將ECS-A執行個體的固定公網IP轉換為EIP。
訂用帳戶類型的固定公網IP不支援直接轉換為EIP。您需先將訂用帳戶固定公網IP轉換為隨用隨付固定公網IP,再將隨用隨付固定公網IP轉換為EIP。關於訂用帳戶固定公網IP轉換為隨用隨付固定公網IP的詳細操作說明,請參見按固定頻寬轉按使用流量。
步驟二:配置彈性網卡
在左側導覽列中,選擇
,單擊建立彈性網卡。在建立彈性網卡時,請確保專用網路和交換器與ECS-A執行個體位於同一VPC和可用性區域。
在彈性網卡頁面,找到目標執行個體,單擊操作列下的綁定執行個體,將已建立的彈性網卡綁定至ECS-A執行個體。
在Workbench控制台頁面,登入ECS-A執行個體,本文以Alibaba Cloud Linux 3.2104 LTS 64位作業系統為例,展示網卡和路由資訊,並配置策略路由。
分別執行
ifconfig
、route -n
命令查看彈性網卡和路由表資訊。配置策略路由
如果您的ECS執行個體無法識別綁定的彈性網卡,您需要在ECS執行個體內部(可選)步驟二:擷取輔助彈性網卡的資訊以識別IP地址。
步驟三:配置Elastic IP Address
在Elastic IP Address管理主控台頁面,找到目標EIP(8.XX.XX.87),單擊操作列下的解除綁定資源。然後再單擊操作列下的綁定資源。
將EIP綁定至彈性網卡(私網地址為:172.16.10.145)。
步驟四:配置NAT Gateway
建立公網NAT Gateway,並綁定EIP。
在左側導覽列中,選擇
,單擊建立公網NAT Gateway。在Elastic IP Address管理主控台頁面,找到CLB綁定的EIP(39.XX.XX.35),單擊操作列下的解除綁定資源。
返回公網NAT Gateway頁面,找到目標執行個體,單擊Elastic IP Address列下的立即綁定。將解除綁定的EIP(39.XX.XX.35)綁定至公網NAT Gateway。
建立公網NAT Gateway與負載平衡CLB執行個體之間的映射關係。
登入傳統型負載平衡CLB控制台,在執行個體管理頁面,找到目標執行個體,查看執行個體專用網路地址。
返回公網NAT Gateway頁面,找到目標執行個體,單擊操作列下的設定DNAT。
在DNAT管理頁簽,單擊建立DNAT條目。私網連接埠為CLB執行個體的監聽器連接埠號碼。
連接埠設定若選擇為任意連接埠後:
DNAT條目中配置了IP映射方式的EIP不能再被其他DNAT條目或SNAT條目使用。
如果NAT Gateway既配置了DNAT IP映射方式,又配置了SNAT條目,則ECS執行個體會優先通過DNAT IP映射方式的EIP訪問公網。
建立公網NAT Gateway與VPC執行個體之間的映射關係,您也可以根據自身需求,調整SNAT條目粒度。
單擊SNAT管理頁簽,建立SNAT條目。
若您的交換器綁定至自訂路由表,則需要您在自訂路由表中手動設定目標網段為0.0.0.0/0,下一跳為公網NAT Gateway的路由條目。
結果驗證
CLB服務運行驗證
在瀏覽器中輸入
http://39.XX.XX.35
確認CLB執行個體的流量分髮狀態正常。將ECS-B執行個體權重設定為0後,重新訪問時能夠正常分發至ECS-C執行個體。
ECS執行個體統一公網出口IP驗證
通過Workbench控制台依次登入ECS-A、ECS-B和ECS-C執行個體,並執行命令curl myip.ipip.net
,以確認ECS執行個體的公網出口IP是否一致。
ECS-A執行個體
由於執行個體內部網卡路由優先順序的影響,出方向流量將預設從eth0網卡通過與SNAT條目綁定的EIP進行轉寄。
eth0:私網地址:172.16.10.135,Metric:0(數字越小路由優先順序越高),SNAT條目綁定的EIP:39.XX.XX.35。
eth1:私網地址:172.16.10.145,Metric:101,EIP:8.XX.XX.87。
ECS-B執行個體
ECS-C執行個體
ECS-A執行個體服務訪問運行驗證
登入ECS-B執行個體,並執行命令ssh root@8.XX.XX.87
。通過遠程登入的方式驗證ECS-A執行個體原有的訪問方式是否受到影響。
常見問題
在配置ECS執行個體的公網訪問時,如何判斷固定公網IP、EIP、SNAT條目和DNAT條目(任意連接埠)的優先順序?
固定公網IP/EIP > DNAT IP映射(任意連接埠) > SNAT條目綁定的EIP。