本文總結使用過程中的常見問題,協助定位、排查並解決相關問題。
使用與配置
執行個體配置
為什麼某些可用性區域無法購買NAT Gateway?
由於資源建設原因,NAT Gateway在某些可用性區域尚未部署。可以調用ListEnhanhcedNatGatewayAvailableZones查詢支援建立NAT Gateway的可用性區域。
雖然某些可用性區域無法建立,但可以在任意已部署NAT Gateway的可用性區域建立NAT Gateway,從而為整個VPC內任意可用性區域的執行個體或資源提供公網訪問服務。
NAT Gateway執行個體是否支援切換所屬交換器和私網IP地址?
不支援。如需變更部署的交換器,只能建立新的NAT Gateway並修改路由條目。
NAT Gateway是否支援處理分區資料包?
支援處理TCP、UDP以及ICMP分區資料包。
SNAT 配置
當多條SNAT條目的源網段重疊時,如何匹配SNAT條目的優先順序?
系統會根據最長掩碼匹配規則確定優先為哪一條SNAT條目提供互連網代理服務。
ECS粒度的SNAT條目:源網段的子網路遮罩為
/32,長度最長,優先順序最高,優先匹配。其他粒度的SNAT條目:根據源網段的子網路遮罩長度進行匹配,長度越長,優先順序越高,越先匹配。
NAT Gateway的SNAT串連空閑逾時時間是多少?
TCP協議:900秒。
UDP協議:60秒。
ECS執行個體可以通過公網NAT執行個體中的SNAT訪問同一個NAT執行個體上的DNAT服務嗎?
NAT Gateway切換至NAT模式後,當公網NAT Gateway執行個體上同時建立了SNAT和DNAT,該公網NAT Gateway執行個體支援通過SNAT能力去訪問同公網NAT Gateway執行個體內的DNAT服務。
如何確認NAT Gateway是否為NAT模式?
調用DescribeNatGateways查詢
EipBindMode欄位返回NAT,則為NAT模式。如何切換至NAT模式?
調用ModifyNatGatewayAttribute
EipBindMode欄位傳入NAT。
DNAT 配置
如果ECS執行個體綁定了EIP,是否支援為該ECS執行個體建立DNAT條目?
支援,但是外部使用者無法通過此條目訪問該ECS執行個體。如需通過DNAT條目訪問該ECS執行個體,需要先解除綁定ECS執行個體的EIP。
EIP 配置
建立NAT條目時,為什麼在公網IP地址清單中找不到已建立的EIP?
建立的EIP和NAT Gateway不在同一地區。請選擇與NAT Gateway同一地區下的EIP,或在NAT Gateway地區重新建立EIP。
NAT Gateway可以將一個EIP或NAT IP同時用於DNAT和SNAT條目嗎?
可以。但是當DNAT條目粒度為任意連接埠時,該EIP或NAT IP將無法再用於建立其他DNAT或SNAT條目。
公網NAT Gateway綁定EIP的兩種模式有什麼區別?
通過控制台建立的公網NAT Gateway預設為NAT模式,多EIP網卡可見度模式僅可通過調用CreateNatGateway並指定EipBindMode建立。
如需結合 IPv4 網關使用,必須使用NAT模式。
如需更高的EIP管理靈活性,可以選擇多EIP網卡可見度模式。
繫結模式 | NAT模式 | 多EIP網卡可見度模式 |
切換繫結模式 | 不支援切換至多EIP網卡可見度模式。 |
說明
|
在擴充公網NAT Gateway的EIP時,是否會消耗NAT Gateway所在交換器內的可用IP地址 |
|
|
是否支援IPv4網關 | 支援開啟。 | 不支援開啟。 |
ECS執行個體是否可以通過公網NAT執行個體中的SNAT訪問同一NAT執行個體上的DNAT服務 | 可以訪問。 | 無法訪問。 |
建立方式 |
| 調用CreateNatGateway指定 |
網路連通性排查
無法通過SNAT訪問公網
檢查指向NAT的預設路由配置:
在公網 NAT Gateway執行個體詳情頁查看指向NAT的專用網路路由資訊,確認是否有指向該公網NAT Gateway的路由條目。如缺失,需在相關路由表配置目標網段為
0.0.0.0/0的路由指向該公網NAT Gateway。驗證SNAT規則配置:
在公網 NAT Gateway執行個體詳情頁的SNAT管理頁簽,確認SNAT條目的狀態為可用。
確認訪問公網的源地址在源網段內。
排查非NAT問題:
跨境訪問:訪問線路不穩定。
網域名稱訪問:檢查網域名稱備案解析是否正常。
存取控制:檢查訪問對端是否配置了存取控制策略或將執行個體綁定的EIP加入了白名單。
檢查是否配置IPv4網關:與 IPv4 網關結合使用時,確保NAT Gateway為NAT模式,並正確配置路由。
建立ECS無法通過SNAT訪問公網
當VPC內建立交換器的ECS執行個體無法通過SNAT訪問公網,而其他交換器下的ECS執行個體可以正常訪問時:
確認 SNAT 條目中是否包含建立的交換器的網段:
NAT Gateway不會為建立的交換器配置SNAT條目,需在執行個體詳情頁的SNAT管理頁簽檢查已有SNAT條目的源網段是否包含建立交換器的網段。如果未包含,需手動設定SNAT條目。
如果建立交換器綁定了自訂路由表,確認是否配置目標網段為
0.0.0.0/0,下一跳為NAT Gateway的路由條目,可手動添加對應的路由條目。
多個NAT Gateway共存時某個ECS無法訪問公網
該 VPC 僅使用系統路由表,且只有一條目標網段為0.0.0.0/0的路由條目指向其中一個NAT Gateway,當該NAT Gateway的SNAT條目的源網段不包含某交換器的網段時,該交換器下的ECS執行個體無法訪問公網。
如果無需使用多個NAT Gateway,建議刪除無需使用的NAT Gateway,並為保留的NAT Gateway增加SNAT條目,覆蓋交換器的網段。
如果需要使用多個NAT Gateway,可參考同VPC內多公網NAT Gateway部署方案配置。
使用SNAT訪問FTP服務端訪問失敗
可能原因如下:
FTP模式為主動模式:配置SNAT條目的NAT Gateway僅支援主動出向訪問,FTP主動模式下資料連線的建立將因SNAT無法支援主動入向而導致失敗。需使用FTP被動模式串連FTP伺服器。
SNAT條目選擇了多個EIP:FTP控制串連和資料連線在SNAT後可能使用了不同的EIP,導致FTP無法正常互動。需開啟SNAT規則的EIP親和性能力,確保來自同一用戶端的串連始終使用相同的EIP。也可以為FTP用戶端設定獨立的SNAT規則,並綁定單一EIP。
配置DNAT條目後無法被公網訪問
檢查指向NAT的預設路由配置:
DNAT條目中配置的執行個體被訪問後回複響應報文時,也需要有去往NAT Gateway的路由。需確認使用的系統路由表或自訂路由表中是否配置目標網段為
0.0.0.0/0的路由指向該NAT Gateway,可手動添加對應的路由條目。驗證DNAT規則配置:
在公網 NAT Gateway執行個體詳情頁的DNAT管理頁簽,確認DNAT條目的狀態為可用。
確認DNAT規則配置的連接埠、協議、目標地址等參數正確。
檢查安全性群組、防火牆配置和服務連接埠開啟狀態:
在同VPC內的其他ECS執行個體執行
telnet <ECS執行個體私網IP地址> <私網連接埠>命令,確認DNAT條目中配置的ECS執行個體的私網連接埠是否可被訪問。如果回顯
unable connect to remote host: Connection timed out,則私網連接埠不可被私網訪問,則也不可被公網訪問。如果回顯
Connected to <ECS執行個體私網IP地址>,則私網連接埠可被訪問。
私網連接埠可被訪問時,需確認ECS執行個體的安全性群組規則是否允許公網訪問對應連接埠,以及防火牆是否開放對應連接埠。
排查網域名稱解析問題:如果通過網域名稱訪問不通,但通過EIP可以直接存取,檢查網域名稱解析設定和備案狀態。
檢查是否配置IPv4網關:與 IPv4 網關結合使用時,確保NAT Gateway為NAT模式,並正確配置路由。
驗證網卡一致性:當ECS有多個網卡時,需檢查資料的入網卡和出網卡是否一致,可參考統一公網出口IP進行配置。
與 IPv4 網關結合使用
IPv4網關與NAT Gateway的區別
IPv4網關和公網NAT Gateway功能並無交叉。參考公網訪問,詳細瞭解相關網路組件之間的關係。
網路組件 | IPv4網關 | 公網NAT Gateway |
功能定位 | VPC邊界上的公網IPv4流量控制組件 | VPC內部的網路位址轉譯裝置 |
使用情境 | 集中控制公網訪問流量 | 統一公網流量出口 |
是否提供公網訪問能力 | 不提供,僅控制公網流量 | 通過綁定EIP提供公網訪問能力 (公網訪問能力是由EIP提供的,NAT Gateway本身不提供公網訪問能力) |
建立 IPv4 網關後,交換器可區分為:
公有交換器:綁定的路由表中存在目標網段為
0.0.0.0/0,下一跳為IPv4網關的路由,其中的資源綁定公網IP即可訪問公網。私人交換器:綁定的路由表中不存在指向IPv4網關的路由,其中的資源綁定公網IP後無法直接存取公網。
結合公網NAT Gateway使用時,需要將公網NAT Gateway部署在公有交換器,部署在私人交換器的ECS執行個體配置路由指向公網NAT Gateway,將訪問公網的流量路由至公網NAT Gateway,再使用公網NAT Gateway綁定的公網IP訪問公網。需注意:
確保公網NAT Gateway的
EipBindMode為NAT模式,相容IPv4網關。控制台建立的公網NAT Gateway預設為
NAT模式,調用CreateNatGateway建立時,EipBindMode需傳入NAT。建立完成後,可以調用ModifyNatGatewayAttribute調整EipBindMode。如果已建立
EipBindMode為MULTI_BINDED模式的公網NAT Gateway,由於不相容IPv4網關,將無法建立IPv4網關。如果已建立IPv4網關,調用CreateNatGateway建立
EipBindMode為MULTI_BINDED模式的公網NAT Gateway,將無法綁定EIP。
為避免啟用IPv4網關後私人交換器中的資源無法訪問公網,確保在啟用IPv4網關前完成路由配置。
切換公網NAT Gateway為NAT模式的影響
切換後,公網 NAT Gateway可以和 IPv4 網關結合使用。當執行個體同時建立SNAT和DNAT時,支援通過SNAT能力去訪問同公網NAT Gateway執行個體內的DNAT服務。
計費影響:切換過程免費,不會產生額外費用。
業務影響:切換過程中網路連接會出現秒級閃斷,閃斷次數與綁定的EIP數量有關。
配置影響:
不改變公網出口IP地址和原有的配置。
綁定一個EIP將佔用NAT Gateway所在交換器的一個私網IP,需確保NAT Gateway所在交換器的私網IP充足。
切換後不支援關閉相容IPv4網關模式。
效能與監控
用戶端訪問公網服務時連線逾時、下載速度慢
流量資料監控
查看NAT Gateway綁定的Elastic IP Address監控,檢查是否存在超頻寬節流設定丟包。如有,建議升級EIP的頻寬。
ECS執行個體較多不便排查ECS執行個體的異常流量情況時,使用NAT網關流量監控來排查異常流量來源。
Linux核心最佳化
問題原因:如果存在多台Linux作業系統的ECS執行個體通過NAT Gateway並發訪問Linux作業系統服務端,由於Linux作業系統核心實現的原因,可能存在TCP串連請求被Linux作業系統核心丟棄而導致連線逾時或失敗的情況。
問題解決:建議關閉服務端
Linux net.ipv4.tcp_tw_recycle選項,或關閉用戶端Linux net.ipv4.tcp_timestamps選項。
NAT Gateway連接埠分配失敗丟失數的含義
含義:通過NAT Gateway訪問目的地址時,由於並發串連數過高,導致分配的TCP或UDP連接埠失敗,從而造成串連被丟棄的數量。
問題原因:單個EIP或NAT IP可提供SNAT分配的連接埠數量有限。當訪問同一個目的地址的會話數量過多而配置的SNAT規則使用的EIP或NAT IP數量過少時,會造成連接埠分配失敗。
問題解決:當連接埠分配失敗丟失數持續增長時,增加SNAT規則中配置的EIP或NAT IP數量。
計費與配額
NAT Gateway的費用突然增加
NAT Gateway為隨用隨付產品,費用增加通常意味著通過 NAT Gateway處理的流量增多。可通過以下方式排查:
NAT Gateway資源套件退訂
NAT Gateway資源套件支援五天未使用退訂和非全額退訂,具體請參見國際站退訂規則說明。
刪除NAT Gateway後依舊出賬
刪除NAT Gateway執行個體後依舊收到賬單,是由計費系統的延遲出賬機制導致。收到的賬單是針對執行個體刪除前所產生的資源使用費用,可以在賬單詳情中查看具體的消費時間段,以確認費用的歸屬周期。
每個帳號可建立的NAT Gateway數量
不針對阿里雲帳號限制建立NAT Gateway的數量。