VPC NAT Gateway可以將 VPC 內的私網 IPv4 地址轉換為 NAT IP,解決地址衝突網路的互訪或滿足使用指定地址訪問的訴求。
私網地址衝突解決:網段重疊的 VPC 無法互連,可添加附加網段並建立 VPC NAT Gateway,通過地址轉換解決地址衝突。
使用指定地址互訪:金融證券等受監管行業,雲上業務使用 VPC NAT Gateway,可確保通過固定的、指定的私網IP地址訪問本地IDC。
工作原理
以雲上雲下使用固定的、指定的私網 IP 位址互訪為例。
雲上業務訪問本地 IDC:VPC 內的多個 ECS 執行個體訪問本地 IDC,均使用指定的 NAT IP 訪問。
路由轉寄:按照 VPC 路由表中指向 NAT Gateway的路由規則,ECS 執行個體發出的訪問資料包被轉寄至VPC NAT Gateway。
SNAT(源地址轉換):VPC NAT Gateway接收到資料包後,根據 SNAT 條目配置,將資料包的源 IP 位址從 ECS 執行個體 IP(例如:192.168.1.10)轉換為指定的 NAT IP(192.168.10.2)。同時,在內部會話表中記錄下轉換的映射關係。
發往對端私網:經過地址轉換後的資料包被發送至本地IDC。對於本地 IDC,該請求的發起方是 NAT IP,而非 ECS 執行個體。
響應與反向轉換:本地 IDC 返回的響應包,目標地址為 NAT IP。VPC NAT Gateway將按照會話映射表還原為原始的私網IP,從而轉寄回 ECS 執行個體。
本地 IDC 訪問雲上業務:本地 IDC 主動向固定的 NAT IP (192.168.10.2) 發起請求。VPC NAT Gateway會根據 DNAT 規則,將該請求的目標 IP 從 NAT IP 轉換為 VPC 內實際提供服務的 ECS 執行個體私網 IP (例如:192.168.1.10),從而將外部存取流量準確地引入到目標伺服器。
需注意:VPC NAT Gateway本身不決定流量的走向,僅負責地址轉換。流量是否會被發送到 NAT Gateway,以及地址轉換後流向何處,由 VPC 的路由表控制。
與其他 VPC、本地 IDC 的連通,需通過雲企業網(CEN)、物理專線等產品實現。
配置 VPC 出向路由( VPC 到外部網路):確保 VPC 路由表中已添加目的地址為對端網路(如本地 IDC)、下一跳為 VPC NAT Gateway的路由條目,確保 VPC 內執行個體發起的訪問請求,可轉寄至 NAT Gateway進行 SNAT 轉換。
聲明 NAT IP:當使用自訂 NAT IP位址區段時,確保 VPC 路由表中已添加目的地址為該 NAT IP 位址段、下一跳為 VPC NAT Gateway的路由條目,聲明該位址區段的歸屬,確保 DNAT 入向流量與 SNAT 回程流量在 VPC 內可正確轉寄。
配置外部網路路由(外部網路到 VPC):確保對端網路已配置路由,目的地址為 NAT IP 位址段,確保來自外部網路的響應包或主動訪問請求,可轉寄至 NAT Gateway。
建立 VPC NAT Gateway
控制台
前往NAT Gateway - VPC NAT Gateway購買頁。
付費類型:隨用隨付。
地區:選擇建立 VPC NAT Gateway的地區。
網路及可用性區域:選擇VPC NAT Gateway所屬的VPC和交換器。為便於路由管理,建議為 VPC NAT Gateway規劃並使用獨立的交換器。
私網IP:作為預設 NAT IP,可從交換器網段(預設NAT IP位址區段)中指定 NAT IP。如未配置,則系統指定。
私網IP Prefix:可大量建立 NAT IP。需先為 VPC NAT Gateway所屬的交換器建立預留網段,VPC NAT 會將預留網段拆分為
/28掩碼的 IP Prefix。指定 IP Prefix 後,系統將為 NAT Gateway添加該網段下全部 16 個地址作為 NAT IP。
API
調用CreateNatGateway建立VPC NAT Gateway。
配置 NAT IP 和位址區段
NAT IP 用於配置 SNAT 條目與 DNAT 條目,在地址轉換時替代 ECS 執行個體的真實 IP,作為統一的源地址或目的地址。NAT IP 需從 NAT IP 位址段中分配。
預設 NAT IP 位址段:系統使用 VPC NAT Gateway所屬交換器網段作為預設 NAT IP 位址段。
建立時配置的私網 IP 作為預設 NAT IP,可自行指定。如不配置,則系統指定。後續可添加 NAT IP。
支援從交換器預留網段中配置私網 IP Prefix,用於大量建立 NAT IP。
建立 NAT IP 位址段:分配非所屬交換器網段下的 NAT IP。
建議使用RFC私網地址10.0.0.0/16、172.16.0.0/16、192.168.0.0/16這三個私網網段及其子網作為位址區段,支援的子網路遮罩位元範圍為16至32位。
如需使用公網網段,需使用使用者網段保證該網段在專用網路位址區段範圍內,再將其作為NAT IP位址區段。
不能與VPC NAT Gateway所屬VPC的私網網段重疊。如果需要將私網地址轉換為VPC私網網段內的其他地址,請在對應的VPC私網網段內建立交換器,並在該交換器中建立新的VPC NAT Gateway提供私網地址轉換服務。
控制台
配置 NAT IP 位址段
預設 NAT IP 位址段:系統預設使用 VPC NAT Gateway所屬交換器網段,無法刪除。
建立 NAT IP 位址段:前往VPC NAT Gateway頁面,單擊目標VPC NAT Gateway執行個體ID進入詳情頁,選擇NAT IP頁簽,單擊建立位址區段。
配置 NAT IP
從預設 NAT IP 位址段中添加:
建立 VPC NAT Gateway時,配置的私網 IP 作為預設 NAT IP,可自行指定。如不配置,則系統自動指定。預設 NAT IP 無法刪除。
逐個添加 NAT IP:前往VPC NAT Gateway頁面,單擊目標VPC NAT Gateway執行個體ID進入詳情頁,選擇NAT IP頁簽,單擊添加NAT IP。
選擇位址區段:選擇VPC NAT Gateway下預設 NAT IP 位址段。
分配方式:隨機分配IP或從所選位址區段中指定IP地址來手動分配IP。
使用 IP Prefix 大量新增 NAT IP:前往VPC NAT Gateway頁面,單擊目標VPC NAT Gateway執行個體ID進入詳情頁,在NAT IP頁簽下選擇NAT IP Prefix,單擊添加IP Prefix。
大量新增:選擇隨機分配,指定分配的 IP Prefix 個數,將從 VPC NAT Gateway所在交換器的預留網段中隨機添加指定數量、未分配的
/28掩碼的 IP Prefix。逐個添加:選擇手動分配,指定 VPC NAT Gateway所在交換器的預留網段中未分配的
/28掩碼的 IP Prefix。
從建立 NAT IP 位址段中添加:單擊目標VPC NAT Gateway執行個體ID進入詳情頁,選擇NAT IP頁簽,單擊添加NAT IP。
選擇位址區段:選擇VPC NAT Gateway下建立的NAT IP位址區段。
分配方式:隨機分配IP或從所選位址區段中指定IP地址來手動分配IP。
API
調用CreateNatIpCidr建立NAT IP位址區段。
調用CreateNatIp添加NAT IP地址。
調用DeleteNatIp刪除NAT IP地址。
調用DeleteNatIpCidr刪除NAT IP位址區段。
配置 SNAT 條目
控制台
前往VPC NAT Gateway頁面,單擊目標VPC NAT Gateway執行個體操作列的SNAT管理,單擊建立SNAT條目。
SNAT條目粒度:SNAT 規則的生效範圍,根據管理精細度需求選擇。
專用網路粒度:所屬VPC下的所有ECS均可以通過配置的SNAT規則訪問外部網路。
交換器粒度:僅指定的交換器下的ECS可訪問外部網路。
ECS粒度:僅指定的ECS或彈性網卡可訪問外部網路。
自訂網段粒度:指定的CIDR網段內的資源可訪問外部網路。
選擇NAT IP地址:在下拉式清單中選擇一個或多個用來訪問外部私網的NAT IP地址。可以在下拉式清單選擇建立NAT IP,建立後選擇。
NAT IP親和性:選擇多個NAT IP,未開啟親和性時,同一個私網IP訪問單一目的IP,可能使用不同的NAT IP。開啟後,會使用相同的NAT IP。但訪問單一目標的並發串連數過多時,會造成連接埠分配失敗,需持續監控連接埠分配失敗丟失數。
建立完成後,可單擊目標條目操作列的編輯,修改NAT IP地址與NAT IP親和性。
API
調用CreateSnatEntry建立SNAT條目。
調用ModifySnatEntry修改指定的SNAT條目。
調用DeleteSnatEntry刪除SNAT條目。
配置 DNAT 條目
控制台
前往VPC NAT Gateway頁面,單擊目標VPC NAT Gateway執行個體操作列的DNAT管理,單擊建立DNAT條目。
選擇NAT IP地址:選擇供外部私網訪問的NAT IP 。支援將一個NAT IP 同時用於 DNAT 條目(連接埠映射方式)和 SNAT 條目。
選擇私網IP地址:選擇使用 DNAT 規則進行通訊的真實私網IP。支援通過 ECS 或彈性網卡進行選擇或通過手動輸入。
連接埠設定:配置 DNAT 映射。
任意連接埠:屬於 IP 映射,任何訪問該 NAT IP 的請求都將轉寄到目標 ECS 執行個體。
目標 ECS 執行個體也可以使用該 NAT IP 主動訪問外部網路。該 NAT IP 不能再被其他 DNAT 條目或 SNAT 條目使用。
如果 NAT Gateway既配置了 DNAT IP 映射,又配置了 SNAT 條目,則 ECS 執行個體會優先通過 DNAT IP 映射方式的 NAT IP 位址訪問外部網路。
具體連接埠:屬於連接埠映射,以指定協議和連接埠將訪問該 NAT IP 的請求轉寄到目標 ECS 執行個體的指定連接埠上。 配置前端連接埠(NAT IP 被外部網路訪問的連接埠)、後端連接埠(映射的目標 ECS 執行個體連接埠)、協議類型(轉送連接埠的協議類型)。
連接埠範圍需要在1~65535之間,不支援在連接埠段內轉寄。
當選擇的 NAT IP 已建立SNAT條目,且需要設定大於
1024的連接埠時,因 SNAT 預設分配連接埠範圍在1025~65535之間,需開啟連接埠突破。重要但開啟連接埠突破會導致部分存量SNAT的串連閃斷,重連即可恢複,請謹慎操作。
建立完成後,可單擊目標條目操作列的編輯,修改NAT IP地址、私網IP地址和連接埠。
API
調用CreateForwardEntry建立DNAT條目。
調用DeleteForwardEntry刪除DNAT條目。
資源清理
VPC NAT Gateway從建立完成到釋放結束均收取執行個體費,處理流量時還將收取容量單位 CU 費。為避免非必要開銷,當不再需要時,可按照以下步驟清理資源:
控制台
刪除配置條目:在執行個體詳情頁的SNAT管理和DNAT管理頁簽,刪除配置的條目。
刪除 NAT IP 位址:
手動添加的 NAT IP:在執行個體詳情頁的NAT IP頁簽,單擊目標NAT IP地址操作列的刪除,或選擇多個NAT IP地址,在頁面下方單擊刪除。
使用 IP Prefix 添加的 NAT IP:在執行個體詳情頁的NAT IP頁簽,選擇NAT IP Prefix,單擊目標NAT IP Prefix操作列的刪除,解除所有關聯關係後,將刪除 IP Prefix 以及大量建立的全部 NAT IP。
刪除建立 NAT IP 位址段:在執行個體詳情頁的NAT IP頁簽,單擊目標 NAT IP 位址段右側
表徵圖。刪除VPC NAT Gateway:單擊目標執行個體操作的刪除。
未刪除 NAT IP、配置條目時,可選擇強制移除(刪除 NAT Gateway及其包含資源),由系統刪除執行個體及相關資源。
在執行個體詳情頁開啟刪除保護,可避免誤刪。刪除執行個體前,需關閉刪除保護。
API
分別調用DeleteSnatEntry和DeleteForwardEntry刪除SNAT條目和DNAT條目。
調用DeleteNatIp刪除NAT IP地址。
調用DeleteNatIpCidr刪除NAT IP位址區段。
調用DeleteNatGateway刪除VPC NAT Gateway。
應用於生產環境
最佳實務
網路規劃:為便於路由管理,為 VPC NAT Gateway規劃並使用獨立的交換器。
精細化控制:使用交換器粒度或 ECS 粒度的 SNAT 條目,遵循最小許可權原則,僅為需要訪問外部網路的資源開啟許可權。
高可用容災:VPC NAT Gateway提供主備可用性區域容災,備可用性區域由阿里雲選擇。但主備切換過程中,可能存在最長 10 分鐘的切換中斷。對於無法接受此中斷的業務,應在不同可用性區域部署多個 NAT Gateway,並在業務層面實現流量調度和故障切換。
風險防範
安全性群組配置:VPC NAT Gateway實現地址轉換,後端 ECS 執行個體的安全防護仍依賴安全性群組和網路 ACL。請務必為 ECS 執行個體配置嚴格的入方向安全性群組規則,僅允許存取必要的連接埠。
監控與警示:為 VPC NAT Gateway的關鍵計量(如並發串連數、出入方向頻寬等)配置警示規則,以便在資源接近瓶頸時及時收到通知並擴容。
串連數限制:業務需要大量串連到同一服務時,需關注最大並發串連數(
N × 55,000, N 是 SNAT 條目配置的 NAT IP 數量)。建議提前規劃足夠的 NAT IP 數量,並監控連接埠分配失敗丟失數。
更多資訊
計費說明
VPC NAT Gateway收取執行個體費和容量單位CU費。
配額
配額名稱 | 描述 | 預設限制 | 提升配額 |
natgw_quota_nat_num_per_vpc | 單VPC內可以建立NAT Gateway的數量 | 5個 | |
natgw_quota_nat_ip_num_per_vpc_nat | 每個VPC NAT Gateway可建立的NAT IP數量 | 15個 | |
natgw_quota_snat_entry_num | 每個NAT Gateway中可保有的SNAT條目數量 | 40個 | |
natgw_quota_dnat_entry_num | 每個NAT Gateway中可保有的DNAT條目數量 | 100個 |