Azure NAT 閘道疑難排解
本文提供如何正確設定 NAT 閘道的指南,以及針對常見設定和部署相關問題進行疑難排解的指引。
NAT 閘道設定基本概念
檢查下列設定,以確保 NAT 閘道可用來將流量導向輸出:
至少有一個公用 IP 位址或一個公用 IP 首碼附加到 NAT 閘道。 至少必須有一個公用 IP 位址與 NAT 閘道建立關聯,才能提供輸出連線。
至少有一個子網路連結到 NAT 閘道。 您可以將多個子網路連結到 NAT 閘道以便進行輸出,但這些子網路必須存在於相同的虛擬網路中。 NAT 閘道不能超過單一虛擬網路。
網路安全性群組 (NSG) 規則 或使用者定義的路由 (UDR) 不會封鎖 NAT 閘道將流量導向網際網路。
如何驗證連線能力
NAT 閘道支援 IPv4 使用者資料包通訊協定 (UDP) 和傳輸控制通訊協定 (TCP) 通訊協定。
注意
NAT 閘道不支援 ICMP 通訊協定。 不支援使用 ICMP 通訊協議進行偵測,且預期會失敗。
若要驗證 NAT 閘道的端對端連線能力,請遵循下列步驟:
驗證您的 NAT 閘道公用 IP 位址已在使用中。
進行 TCP 連線測試和 UDP 特定的應用程式層測試。
查看 NSG 流量記錄,以分析來自 NAT 閘道的輸出流量。
請參閱下表,以瞭解用來驗證 NAT 閘道連線的工具。
作業系統 | 一般 TCP 連線測試 | TCP 應用程式層測試 | UDP |
---|---|---|---|
Linux | nc (一般連線測試) |
curl (TCP 應用程式層測試) |
應用程式特有 |
Windows | PsPing | PowerShell Invoke-WebRequest | 應用程式特有 |
如何分析輸出連線能力
若要分析 NAT 閘道的輸出流量,請使用虛擬網路 (VNet) 流量記錄。 VNet 流量記錄會為您的虛擬機器提供連線資訊。 連線資訊包含來源 IP 和通訊埠,以及目的地 IP 和通訊埠、連線狀態。 也會記錄流量方向和流量大小 (傳送的封包和位元組的數量)。 VNet 流量記錄中指定的來源 IP 和連接埠適用於虛擬機器,而不是 NAT 閘道。
若要深入了解 VNet 流量記錄,請參閱虛擬網路流量記錄概觀。
如需如何啟用 VNet 流量記錄的指南,請參閱管理虛擬網路流量記錄。
建議您存取 Log Analytics 工作區上的記錄資料,您也可以在其中查詢和篩選輸出流量的資料。 若要深入了解如何使用 Log Analytics,請參閱 Log Analytics 教學課程。
如需 VNet 流量記錄結構描述的詳細資料,請參閱流量分析結構描述和資料彙總。
失敗狀態的 NAT 閘道
如果您的 NAT 閘道資源處於失敗狀態,則可能會遇到輸出連線失敗。 若要讓您的 NAT 閘道脫離失敗狀態,請遵循下列指示:
識別處於失敗狀態的資源。 移至 Azure 資源總管並識別處於此狀態的資源。
將右上角開關更新為 [讀取/寫入]。
針對失敗狀態的資源,選取 [編輯]。
依序選取 [PUT] 和 [GET],確定佈建狀態已更新為 [成功]。
資源已非失敗狀態,您便可繼續執行其他動作。
新增或移除 NAT 閘道
無法刪除 NAT 閘道
NAT 閘道必須先從虛擬網路內的所有子網中斷連結,才能移除或刪除資源。 如需逐步指引,請參閱從現有的子網路移除 NAT 閘道並刪除資源。
新增或移除子網路
NAT 閘道無法連至已連結至另一個 NAT 閘道的子網路
若要向外連線至網際網路,虛擬網路內的子網路不能連結多個 NAT 閘道。 個別的 NAT 閘道資源可以與位於同一個虛擬網路中的多個子網路建立關聯。 NAT 閘道不能超過單一虛擬網路。
基本資源不能存在於與 NAT 閘道相同的子網路中
NAT 閘道與基本資源 (例如基本 Load Balancer 或基本公用 IP) 不相容。 基本資源必須放在與 NAT 閘道沒有關聯的子網路上。 基本 Load Balancer 和基本公用 IP 可以升級為標準版,以便與 NAT 閘道搭配使用。
若要將基本負載平衡器升級至標準負載平衡器,請參閱從基本公用負載平衡器升級至標準公用負載平衡器。
若要將基本公用 IP 升級至標準公用 IP,請參閱從基本用 IP 升級至標準用 IP。
若要將具有連接虛擬機器的基本公用 IP 升級為標準,請參閱 [使用連接的虛擬機器升級基本公用 IP](/azure/virtual-network/ip-services/public-ip-upgrade-virtual machine)。
無法將 NAT 閘道連結至閘道子網路
NAT 閘道無法在閘道子網路中部署。 VPN 閘道會使用閘道子網路,在 Azure 虛擬網路和內部部署位置傳送加密流量。 請參閱 VPN 閘道概觀,以深入了解 VPN 閘道使用閘道子網路的方式。
NAT 閘道無法連至包含失敗狀態虛擬機器網路介面的子網路
當您將 NAT 閘道關聯至包含處於失敗狀態的虛擬機器網路介面 (網路介面) 的子網路時,您會收到錯誤訊息,指出無法執行此動作。 您必須先讓虛擬機器網路介面解除失敗狀態,才能將 NAT 閘道連結至子網路。
若要讓您的虛擬機器網路介面脫離失敗狀態,您可以使用下列兩種方法之一。
使用 PowerShell 讓虛擬機器網路介面脫離失敗狀態
使用 Get-AzNetworkInterface PowerShell 命令判斷網路介面的佈建狀態,並將 「provisioningState」的值設定為「Succeeded」。
在網路介面上執行GET/SET PowerShell 命令。 PowerShell 命令會更新佈建狀態。
再次檢查網路介面的佈建狀態 (依照步驟 1 的命令),以檢查此作業的結果。
使用 Azure 資源總管讓虛擬機器網路介面脫離失敗狀態
移至 Azure 資源總管 (建議使用 Microsoft Edge 瀏覽器)
展開 [訂閱] (需要幾秒鐘的時間才會出現)。
展開包含處於失敗狀態之虛擬機器網路介面的訂閱。
展開 resourceGroups。
展開包含處於失敗狀態之虛擬機器網路介面的正確資源群組。
展開提供者。
展開 Microsoft.Network。
展開 networkInterfaces。
選取處於失敗佈建狀態的網路介面。
選取頂端的 [讀取/寫入] 按鈕。
選取綠色的 [GET] 按鈕。
選取藍色的 [EDIT] 按鈕。
選取綠色的 [PUT] 按鈕。
選取頂端的 [唯讀] 按鈕。
虛擬機網路介面現在應該處於成功的佈建狀態。 您可以關閉瀏覽器。
新增或移除公用 IP 位址
NAT 閘道上不能超過 16 個公用 IP 位址
NAT 閘道不能與超過 16 個公用 IP 位址建立關聯。 您可以搭配 NAT 閘道,使用公用 IP 位址和前置詞的任何組合 (最多 16 個 IP 位址)。 若要新增或移除公用 IP,請參閱新增或移除公用 IP 位址。
下列 IP 前置詞大小可以搭配 NAT 閘道使用:
/28 (16 個位址)
/29 (8 個位址)
/30 (4 個位址)
/31 (2 個位址)
IPv6 共存
NAT 閘道支援 IPv4 UDP 和 TCP 通訊協定。 NAT 閘道無法與 IPv6 共用 IP 位址或 IPv6 公用 IP 前置詞建立關聯。 NAT 閘道可以部署在雙堆疊子網路,但只會使用 IPv4 公用 IP 位址來導向輸出流量。 當您需要 IPv6 資源存在於與 IPv4 資源相同的子網路時,請將 NAT 閘道部署在雙堆疊子網路上。 如需如何從雙重堆疊子網路提供 IPv4 和 IPv6 輸出連線的詳細資訊,請參閱使用 NAT 閘道和公用負載平衡器雙重堆疊輸出連線。
無法搭配 NAT 閘道使用基本公用 IP
NAT 閘道是標準資源,無法與基本資源搭配使用,包括基本公用 IP 位址。 您可以使用下列指引升級基本公用 IP 位址,以便與 NAT 閘道搭配使用:升級公用 IP 位址。
無法搭配 NAT 閘道使用具有網際網路由喜好設定的公用 IP
搭配公用 IP 位址設定 NAT 閘道時,流量會透過 Microsoft 網路路由。 NAT 閘道無法與路由喜好設定選擇為 [網際網路] 的公用 IP 產生關聯。 NAT 閘道只能與路由喜好設定選擇為 [Microsoft 全域網路] 的公用 IP 產生關聯。 請參閱支援的服務,了解支援公用 IP 使用網際網路由喜好設定的所有 Azure 服務清單。
公用 IP 位址和 NAT 閘道的區域不能不相符
NAT 閘道是區域性資源,可以指定給特定區域或「無區域」。當 NAT 閘道放在「無區域」時,Azure 會將 NAT 閘道放入區域,但您看不到 NAT 閘道所在的區域。
NAT 閘道可以搭配指定給特定區域、沒有區域和所有區域 (區域備援) 的公用 IP 位址,實際情況取決於其可用性區域設定。
NAT 閘道可用性區域指定 | 可以使用的公用 IP 位址/前置詞指定 |
---|---|
沒有區域 | 區域備援、沒有區域或區域性 (公用 IP 區域指定可以是區域內的任何區域,以便搭配沒有區域的 NAT 閘道) |
已指定給特定區域 | 可以使用區域備援或區域性公用 IP |
注意
如果您需要知道 NAT 閘道所在的區域,請務必將其指定為特定可用性區域。
更多疑難排解指引
如果本文未涵蓋您遇到的問題,請參閱其他 NAT 閘道疑難排解文章:
下一步
如發生本文未列出或解決的 NAT 閘道問題,請透過此頁面底部的 GitHub 提交意見反應。 我們會儘快處理您的意見反應,以改善我們的客戶體驗。
深入了解 NAT 閘道計量,請參閱: