針對 NAT 閘道和 Azure 服務的輸出連線進行疑難排解
本文提供針對使用 NAT 閘道搭配其他 Azure 服務的連線問題進行疑難排解的指引,包括:
Azure App Service
Azure App Service 的區域虛擬網路整合已關閉
NAT 閘道可與 Azure 應用程式服務搭配使用,以允許應用程式從虛擬網路進行輸出呼叫。 若要在 Azure 應用程式服務和 NAT 閘道之間使用此整合,必須啟用區域虛擬網路整合。 請參閱區域虛擬網路整合的運作方式以深入了解。
若要搭配 Azure App 服務使用 NAT 閘道,請遵循下列步驟:
確定您的應用程式已設定虛擬網路整合,請參閱啟用虛擬網路整合。
確定已為您的虛擬網路整合啟用 [路由全部],請參閱設定虛擬網路整合路由。
建立 NAT 閘道資源。
建立新的公用 IP 位址,或將網路中現有的公用 IP 位址連結到 NAT 閘道。
將 NAT 閘道指派給用來與您應用程式的虛擬網路整合的相同子網路。
若要查看如何使用虛擬網路整合設定 NAT 閘道的逐步指示,請參閱設定 NAT 閘道整合。
關於 NAT 閘道和 Azure App Service 整合的重要注意事項:
虛擬網路整合不提供從虛擬網路對應用程式的輸入私人存取。
虛擬網路整合流量不會出現在 Azure 網路監看員或網路安全性群組 (NSG) 流量記錄中,因為其運作方式的性質。
應用程式服務未使用 NAT 閘道公用 IP 位址連線輸出
即使未啟用虛擬網路整合,App Service 仍可向外連線到網際網路。 依預設,裝載於 App Service 的應用程式可以直接透過網際網路存取,且只能連線至網際網路裝載的端點。 若要深入瞭解,請參閱 App Service 網路功能。
如果您發現用來連線輸出的 IP 位址不是您的 NAT 閘道公用 IP 位址,請檢查是否啟用虛擬網路整合。 確定 NAT 閘道已設定為用來與應用程式整合的子網路。
若要驗證 Web 應用程式是否使用 NAT 閘道公用 IP,請 ping Web Apps 上的虛擬機器,並透過網路擷取檢查流量。
Azure Kubernetes Service
如何使用 Azure Kubernetes Service (AKS) 叢集部署 NAT 閘道
您可以使用 AKS 叢集部署 NAT 閘道,以允許明確的輸出連線。 使用 AKS 叢集部署 NAT 閘道有兩種不同的方式:
受控 NAT 閘道:Azure 會在 AKS 叢集建立時部署 NAT 閘道。 AKS 會管理 NAT 閘道。
使用者指派的 NAT 閘道:您將 NAT 閘道部署至 AKS 叢集的現有虛擬網路。
若要深入了解,請參閱受控 NAT 閘道。
透過因特網從 AKS 叢集連線到 AKS API 伺服器
若要管理 AKS 叢集,您可以與其 API 伺服器互動。 當您建立解析為 API 伺服器完整功能變數名稱 (FQDN) 的非私人叢集時,API 伺服器預設會指派公用 IP 位址。 將 NAT 閘道連結至 AKS 叢集的子網之後,NAT 閘道將用來連線到 AKS API 伺服器的公用 IP。 如需其他資訊和設計指引,請參閱下列檔:
無法更新我在 AKS 叢集中的 NAT 閘道 IP 或閒置逾時計時器
NAT 閘道的公用 IP 位址和閒置逾時計時器「僅能」使用受控 NAT 閘道的 az aks update
命令加以更新。
如已將使用者指派的 NAT 閘道部署至 AKS 子網路,即無法使用 az aks update
命令更新公用 IP 位址或閒置逾時計時器。 使用者會管理使用者指派的 NAT 閘道。 您必須在自己的 NAT 閘道資源中手動更新這些設定。
請使用下列步驟更新您使用者指派的 NAT 閘道公用 IP 位址:
在資源群組中,選取您在入口網站中的 NAT 閘道資源。
在左側導覽列的 [設定] 下,選取 [輸出 IP]。
若要管理您的公用 IP 位址,請選取藍色的 [變更]。
請從右側滑入的 [管理公用 IP 位址和前置詞] 設定中,更新下拉式功能表中指派的公用 IP,或選取 [建立新的公用 IP 位址]。
更新 IP 設定之後,請選取畫面底部的 [確定] 按鈕。
待設定頁面消失後,選取 [儲存] 按鈕以儲存變更。
重複步驟 3 - 6 對公用 IP 前置詞執行相同的動作。
使用下列步驟更新您使用者指派的 NAT 閘道閒置逾時計時器設定:
在您的資源群組中,選取入口網站中的 NAT 閘道資源。
在左側導覽列的 [設定] 下,選取 [設定]。
在 TCP 閒置逾時 (分鐘) 文字列中,調整閒置逾時計時器 (計時器可設定為 4–120 分鐘)。
完成後,選取 [儲存] 按鈕。
注意
將 TCP 閒置逾時計時器增加到 4 分鐘以上,會增加 SNAT 連接埠耗盡的風險。
Azure 防火牆
使用 Azure 防火牆連線輸出時,來源網路位址轉譯 (SNAT) 耗盡
Azure 防火牆可以提供到虛擬網路的輸出網際網路連線能力。 Azure 防火牆只為每個公用 IP 位址提供 2,496 個 SNAT 連接埠。 雖然 Azure 防火牆最多可以與 250 個公用 IP 位址相關聯,以處理輸出流量,但您可能需要較少的公用 IP 位址來連線輸出。 使用較少公用 IP 位址的輸出需求,是因為目的地端點的結構需求和允許清單限制。
其中一種方法可為輸出流量提供更大的可擴縮性,同時降低 SNAT 連接埠耗盡的風險,就是在與 Azure 防火牆相同的子網路中使用 NAT 閘道。 如需如何在 Azure 防火牆子網路中設定 NAT 閘道的詳細資訊,請參閱 整合 NAT 閘道與 Azure 防火牆。 如需 NAT 閘道如何與 Azure 防火牆搭配運作的詳細資訊,請參閱使用 Azure NAT 閘道調整 SNAT 連接埠。
注意
vWAN 結構不支援 NAT 閘道。 NAT 閘道無法設定為 vWAN 中樞中的 Azure 防火牆子網路。
Azure Databricks
如何使用 NAT 閘道從 databricks 叢集連線輸出
當您建立 Databricks 工作區時,可使用 NAT 閘道從您的 databricks 叢集連線輸出。 您可使用下列兩種方式之一,將 NAT 閘道部署至 databricks 叢集:
當您在 Azure Databricks 建立的預設虛擬網路上啟用安全叢集連線能力 (無公用 IP) 時,Azure Databricks 會自動部署 NAT 閘道,以從工作區的子網路連線到網際網路。 Azure Databricks 會在受控資源群組內建立此 NAT 閘道資源,而且您無法修改此資源群組或其中部署的任何其他資源。
在您自己的虛擬網路中部署 Azure Databricks 工作區之後 (透過虛擬網路插入),您可以將 NAT 閘道部署到工作區的兩個子網路,以確保透過 NAT 閘道的輸出連線能力。 您可以使用 Azure 範本或在入口網站中實作此解決方案。
下一步
如發生本文未解決的 NAT 閘道問題,請透過此頁面底部的 GitHub 提交意見反應。 我們會儘快處理您的意見反應,以改善我們的客戶體驗。
深入了解 NAT 閘道計量,請參閱: