本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

統一公網出口IP

更新時間:2025-02-27 09:27

隨著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的集中管理和安全特性,有效降低了內網資源暴露的風險,同時提升了營運團隊的管理效率。

image

配置步驟

步驟一:固定公網IP轉EIP

登入雲端服務器管理主控台,找到目標ECS執行個體。將ECS-A執行個體的固定公網IP轉換為EIP。

說明

訂用帳戶類型的固定公網IP不支援直接轉換為EIP。您需先將訂用帳戶固定公網IP轉換為隨用隨付固定公網IP,再將隨用隨付固定公網IP轉換為EIP。關於訂用帳戶固定公網IP轉換為隨用隨付固定公網IP的詳細操作說明,請參見按固定頻寬轉按使用流量

步驟二:配置彈性網卡

  1. 在左側導覽列中,選擇網路與安全 > 彈性網卡,單擊建立彈性網卡

    重要

    在建立彈性網卡時,請確保專用網路和交換器與ECS-A執行個體位於同一VPC和可用性區域。

  2. 在彈性網卡頁面,找到目標執行個體,單擊操作列下的綁定執行個體,將已建立的彈性網卡綁定至ECS-A執行個體。

  3. Workbench控制台頁面,登入ECS-A執行個體,本文以Alibaba Cloud Linux 3.2104 LTS 64位作業系統為例,展示網卡和路由資訊,並配置策略路由。

    1. 分別執行ifconfigroute -n命令查看彈性網卡和路由表資訊。

    2. 配置策略路由

      臨時策略路由配置

      說明

      ECS執行個體重啟後,配置的策略路由會失效。

      1. 執行如下命令,配置策略路由。

        參數說明:

        ip -4 route add default via “eth1子網網關” dev eth1 table “路由表名稱”
        ip -4 rule add from “eth1網卡地址” lookup “路由表名稱”

        命令樣本:

        ip -4 route add default via 172.16.10.253 dev eth1 table 101
        ip -4 rule add from 172.16.10.145 lookup 101
      2. 執行ip rule命令以查看策略路由的配置情況。

      永久策略路由配置

      說明

      ECS執行個體重啟後,配置的策略路由不會失效。

      1. 執行以下命令,開啟/etc/rc.local檔案。

        vim /etc/rc.local
      2. i鍵進入編輯模式,添加如下內容,然後按Esc鍵退出編輯模式,輸入:wq儲存退出。

        參數說明:

        ip -4 route add default via “eth1子網網關” dev eth1 table “路由表名稱”
        ip -4 rule add from “eth1網卡地址” lookup “路由表名稱”

        程式碼範例

        ip -4 route add default via 172.16.10.253 dev eth1 table 101
        ip -4 rule add from 172.16.10.145 lookup 101
      3. 執行以下命令,為/etc/rc.local檔案添加執行許可權。

        sudo chmod +x /etc/rc.local
    重要

    如果您的ECS執行個體無法識別綁定的彈性網卡,您需要在ECS執行個體內部(可選)步驟二:擷取輔助彈性網卡的資訊以識別IP地址。

步驟三:配置Elastic IP Address

Elastic IP Address管理主控台頁面,找到目標EIP(8.XX.XX.87),單擊操作列下的解除綁定資源。然後再單擊操作列下的綁定資源

將EIP綁定至彈性網卡(私網地址為:172.16.10.145)。

步驟四:配置NAT Gateway

  1. 建立公網NAT Gateway,並綁定EIP。

    1. 在左側導覽列中,選擇NAT Gateway > 公網NAT Gateway,單擊建立公網NAT Gateway

    2. Elastic IP Address管理主控台頁面,找到CLB綁定的EIP(39.XX.XX.35),單擊操作列下的解除綁定資源

    3. 返回公網NAT Gateway頁面,找到目標執行個體,單擊Elastic IP Address列下的立即綁定。將解除綁定的EIP(39.XX.XX.35)綁定至公網NAT Gateway。

  2. 建立公網NAT Gateway負載平衡CLB執行個體之間的映射關係。

    1. 登入傳統型負載平衡CLB控制台,在執行個體管理頁面,找到目標執行個體,查看執行個體專用網路地址。

    2. 返回公網NAT Gateway頁面,找到目標執行個體,單擊操作列下的設定DNAT

    3. DNAT管理頁簽,單擊建立DNAT條目私網連接埠為CLB執行個體的監聽器連接埠號碼。

      說明

      連接埠設定若選擇為任意連接埠後:

      • DNAT條目中配置了IP映射方式的EIP不能再被其他DNAT條目或SNAT條目使用。

      • 如果NAT Gateway既配置了DNAT IP映射方式,又配置了SNAT條目,則ECS執行個體會優先通過DNAT IP映射方式的EIP訪問公網。

  3. 建立公網NAT GatewayVPC執行個體之間的映射關係,您也可以根據自身需求,調整SNAT條目粒度。

    單擊SNAT管理頁簽,建立SNAT條目

    重要

    若您的交換器綁定至自訂路由表,則需要您在自訂路由表中手動設定目標網段為0.0.0.0/0,下一跳為公網NAT Gateway的路由條目。

結果驗證

CLB服務運行驗證

  1. 在瀏覽器中輸入http://39.XX.XX.35確認CLB執行個體的流量分髮狀態正常。

  2. 將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。

  • 本頁導讀 (1, M)
  • 情境樣本
  • 配置步驟
  • 步驟一:固定公網IP轉EIP
  • 步驟二:配置彈性網卡
  • 步驟三:配置Elastic IP Address
  • 步驟四:配置NAT Gateway
  • 結果驗證
  • CLB服務運行驗證
  • ECS執行個體統一公網出口IP驗證
  • ECS-A執行個體服務訪問運行驗證
  • 常見問題
  • 在配置ECS執行個體的公網訪問時,如何判斷固定公網IP、EIP、SNAT條目和DNAT條目(任意連接埠)的優先順序?
文檔反饋