全部產品
Search
文件中心

NAT Gateway:為已指派固定公網IP的ECS執行個體統一公網出口IP

更新時間:Jul 18, 2024

通過為已指派固定公網IP的ECS執行個體統一公網出口IP,有利於您更高效地管理互連網業務。本文為您介紹如何為已指派固定公網IP的ECS執行個體統一公網出口IP。

前提條件

分配了固定公網IP的ECS執行個體所在的VPC已經配置了SNAT功能。更多資訊,請參見建立SNAT實現訪問公網服務

背景資訊

NAT Gateway提供SNAT功能,為VPC內無公網IP的ECS執行個體提供訪問互連網的代理服務。如果VPC內某些ECS執行個體已經分配了固定公網IP,這些ECS執行個體會優先通過固定公網IP訪問互連網,而VPC內的其他ECS執行個體通過NAT Gateway的SNAT功能代理訪問互連網,造成VPC內ECS執行個體的公網出口IP不一致,不利於統一管理業務。

您可以通過為ECS執行個體綁定彈性網卡來解決ECS執行個體公網出口IP不統一的問題。

如下圖,您可以為ECS執行個體單獨分配一塊彈性網卡,並將固定公網IP轉為EIP,然後將EIP綁定到彈性網卡,這樣來自互連網的訪問流量會經過彈性網卡到達ECS執行個體,當ECS執行個體需要訪問互連網時會通過NAT Gateway進行轉寄。

步驟一:固定公網IP轉EIP

不同計費模式的ECS執行個體,對固定公網IP轉EIP的支援不同:

  • 隨用隨付類型的ECS執行個體,支援直接將固定公網IP轉為EIP。

  • 訂用帳戶類型的ECS執行個體,不支援直接將固定公網IP轉為EIP。您需要先將訂用帳戶ECS執行個體轉為隨用隨付ECS執行個體,再將隨用隨付ECS執行個體的固定公網IP轉為EIP。訂用帳戶ECS執行個體轉為隨用隨付ECS執行個體的詳細操作說明,請參見訂用帳戶轉隨用隨付

完成以下操作,將隨用隨付ECS執行個體的固定公網IP轉為EIP。

  1. 登入Elastic Compute Service管理主控台

  2. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

  3. 在頂部狀態列處,選擇ECS執行個體的地區。

  4. 執行個體列表頁面,找到目標ECS執行個體,選擇操作列下的ellipsis-v.png > 網路和安全性群組 > 公網IP轉換為Elastic IP Address

  5. 在彈出的對話方塊中,單擊確定

步驟二:建立彈性網卡

  1. 登入Elastic Compute Service管理主控台

  2. 在左側導覽列,選擇網路與安全 > 彈性網卡

  3. 在頂部狀態列處,選擇彈性網卡的地區。

    說明

    彈性網卡的地區必須與ECS執行個體的地區相同。

  4. 彈性網卡頁面,單擊建立彈性網卡

  5. 建立彈性網卡頁面,根據以下資訊配置彈性網卡,然後單擊建立網卡

    以下為您列舉強相關參數,更多資訊,請參見建立輔助彈性網卡

    配置

    說明

    彈性網卡名稱

    輸入彈性網卡的名稱。

    專用網路

    選擇ECS執行個體所在的專用網路。

    交換器

    選擇ECS執行個體所在可用性區域的交換器。

    安全性群組

    選擇當前專用網路的一個安全性群組。

    主私網IP(可選)

    輸入彈性網卡的主私網IPv4地址。此IPv4地址必須屬於交換器的CIDR網段中的空閑地址。如果您沒有指定,建立彈性網卡時將自動為您分配一個閒置私網IPv4地址。本文不指定主私網IP。

    輔助私網IPv4(可選)

    單擊相應選項進行設定。本文選擇不設定。

步驟三:將彈性網卡綁定到ECS執行個體

  1. 登入Elastic Compute Service管理主控台

  2. 在左側導覽列中,選擇網路與安全 > 彈性網卡

  3. 在頂部狀態列處,選擇彈性網卡的地區。

  4. 彈性網卡頁面,找到目標彈性網卡,單擊操作列下的綁定執行個體

  5. 在彈出的對話方塊中,選擇要綁定的ECS執行個體,然後單擊確定

步驟四:將EIP與ECS執行個體解除綁定

  1. 登入Elastic IP Address管理主控台

  2. 在頂部狀態列處,選擇EIP的地區。

  3. Elastic IP Address頁面,找到目標EIP,單擊操作列下的解除綁定資源

  4. 在彈出的對話方塊中,單擊確定

步驟五:將EIP綁定到彈性網卡

  1. 登入Elastic IP Address管理主控台

  2. 在頂部狀態列處,選擇EIP的地區。

  3. 在Elastic IP Address頁面,找到目標EIP,單擊操作列下的綁定資源

  4. 綁定Elastic IP Address至資源對話方塊,根據以下資訊綁定EIP至彈性網卡,然後單擊確定

    配置

    說明

    執行個體類型

    選擇輔助彈性網卡。

    所在資源群組(可選)

    選擇該EIP所屬的資源群組。本文選擇預設資源群組。

    繫結模式(可選)

    選擇EIP繫結模式。 本文選擇普通模式

    選擇要綁定的執行個體

    選擇要綁定的輔助彈性網卡。

步驟六:配置網卡路由

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇網路與安全 > 彈性網卡

  3. 查看ECS執行個體的彈性網卡資訊。

  4. 遠程登入ECS執行個體,更多資訊,請參見串連方式概述

  5. 執行ip a命令查看彈性網卡資訊。網卡資訊

    經過查看,得到ECS執行個體彈性網卡的資訊如下:

    eth0:主網卡,私網地址:192.168.3.10

    eth1:輔助彈性網卡,私網地址:192.168.3.11 公網地址:118.190.XX.XX

  6. 按您的需要規劃路由表裡每塊網卡的預設路由metric值。

    執行命令route -n查看Gatewaymetric值。

    查詢結果如下所示:metric

    說明

    本文以一塊輔助彈性網卡為例,查看到輔助彈性網卡的metric值大於主網卡的metric值,路由優先順序低於主網卡,不需要執行重新規劃網卡的metric值,保持預設配置即可。如有多塊輔助彈性網卡,請根據實際情況配置,具體操作,請參見配置網卡路由

  7. 建立路由表並配置策略路由。

    • 如果需要為ECS執行個體的彈性網卡配置單次策略路由,請執行以下操作。

      說明

      ECS執行個體重啟後,配置的彈性網卡路由會失效。

      1. 執行以下命令建立路由表。

        ip -4 route add default via 192.168.3.13 dev eth1 table 101
        說明

        建議路由表名稱和網卡的預設路由metric取值保持一致,如本例中的101。

      2. 執行以下命令檢查路由表是否建立成功。

        ip route list table 101

        查詢結果如下所示:路由

      3. 執行以下命令建立策略路由。

        ip -4 rule add from 192.168.3.11 lookup 101

      4. 執行以下命令查看路由規則。

        ip rule list

        查詢結果如下所示:策略路由

    • 如果需要為ECS執行個體的彈性網卡配置多次路由,請執行以下操作。

      說明

      ECS執行個體重啟後,配置的彈性網卡路由不會失效。

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

        vi /etc/rc.local
      2. 在設定檔末尾,按i進入編輯模式。

      3. 在設定檔末尾,添加以下資訊。

        ip -4 route add default via 192.168.3.13 dev eth1 table 101
        ip -4 rule add from 192.168.3.11 lookup 101
        說明

        本文以一塊輔助彈性網卡為例,查看到輔助彈性網卡的metric值大於主網卡的metric值,路由優先順序低於主網卡,不需要重新規劃網卡的metric值,保持預設配置即可。如有多塊輔助彈性網卡,請將規劃metric值的命令也添加到設定檔中。關於規劃metric值的具體命令,請參見配置網卡路由

      4. 按下Esc鍵,輸入:wq並斷行符號以儲存並關閉檔案。

      5. 執行以下命令修改/etc/rc.d/rc.local設定檔的可執行許可權。

        chmod +x /etc/rc.d/rc.local
        說明

        由於/etc/rc.local設定檔是/etc/rc.d/rc.local設定檔的軟連結,因此修改設定檔的許可權時需要修改/etc/rc.d/rc.local設定檔的許可權。執行ls -l /etc/rc.local命令可以查看到/etc/rc.local設定檔是/etc/rc.d/rc.local設定檔的軟連結。

步驟七:測試網路連通性

完成以下操作,測試互連網是否可以通過彈性網卡綁定的EIP訪問ECS執行個體。本操作以本地Linux裝置遠端連線ECS執行個體為例。

說明

遠端連線ECS執行個體,請確認ECS執行個體的安全性群組已允許存取SSH(22)連接埠。更多資訊,請參見添加安全性群組規則

  1. 登入本地Linux裝置。

  2. 執行ssh root@公網IP命令,然後輸入ECS執行個體的登入密碼,查看是否可以遠端連線到執行個體。

    若介面上出現Welcome to Alibaba Cloud Elastic Compute Service!時,表示您已經成功串連到執行個體。驗證

完成以下操作,測試ECS執行個體是否可以通過NAT Gateway的SNAT功能主動訪問互連網。本操作以在ECS執行個體上查看公網出口IP為例。

  1. 登入ECS執行個體。

  2. 執行curl https://myip.ipip.net查看公網出口IP。

    若公網出口IP與NAT GatewaySNAT條目中的IP一致,即ECS執行個體優先通過NAT Gateway的SNAT功能主動訪問互連網。驗證2