共用方式為


多租用戶的 Azure NAT 閘道考量

Azure NAT 閘道可讓您控制來自裝載于 Azure 虛擬網路內之資源的輸出網路連線能力。 在本文中,我們會檢閱 NAT 閘道如何降低來源網路位址轉譯 (SNAT) 埠耗盡,這可能會影響多租使用者應用程式。 我們也會檢閱 NAT 閘道如何將靜態 IP 位址指派給您多租使用者解決方案的輸出流量。

注意

防火牆,例如Azure 防火牆,可讓您控制及記錄輸出流量。 Azure 防火牆也提供與 NAT 閘道類似的 SNAT 埠規模和輸出 IP 位址控制。 NAT 閘道成本較低,但它也有較少的功能,而且不是安全性產品。

支援多租使用者的 NAT 閘道功能

大規模 SNAT 埠

當您的應用程式在相同埠上對相同的公用 IP 位址進行多個並行輸出連線時,會配置 SNAT 埠。 SNAT 埠是 負載平衡器內的有限資源。 如果您的應用程式開啟與相同主機的大量個別連線,它就可以取用所有可用的 SNAT 埠。 這種情況稱為 SNAT 埠耗盡

在大部分應用程式中,SNAT 埠耗盡表示您的應用程式未正確處理 HTTP 連線或 TCP 埠。 不過,某些多租使用者應用程式會特別有超過 SNAT 埠限制的風險,即使它們適當重複使用連線也一樣。 例如,當您的應用程式連線到相同資料庫閘道後方的許多租使用者特定資料庫時,就會發生這種情況。

提示

如果您在多租使用者應用程式中觀察到 SNAT 埠耗盡,您應該確認 應用程式是否遵循良好作法。 請確定您重複使用 HTTP 連線,且每次連線到外部服務時,都不要重新建立新的連線。 您可能能夠部署 NAT 閘道來解決問題,但如果您的程式碼未遵循最佳做法,您未來可能會再次遇到問題。

當您使用在多個客戶之間共用 SNAT 埠配置的 Azure 服務時,問題會很嚴重,例如Azure App 服務和Azure Functions

如果您判斷遇到 SNAT 耗盡,並確定您的應用程式程式碼正確處理輸出連線,請考慮部署 NAT 閘道。 部署以Azure App 服務和Azure Functions為基礎的多租使用者解決方案的客戶通常會使用此方法。

連結至 NAT 閘道的每個公用 IP 位址都會提供 64,512 個 SNAT 埠,以連線到網際網路。 NAT 閘道可以調整為使用最多 16 個公用 IP 位址,以提供超過 1 百萬個 SNAT 埠。 如果您需要調整超過此限制,您可以考慮 跨多個子網或 VNet 部署多個 NAT 閘道實例。 子網中的每個虛擬機器都可以在需要時使用任何可用的 SNAT 埠。

輸出 IP 位址控制項

當您有下列所有需求時,輸出 IP 位址控制在多租使用者應用程式中很有用:

  • 您使用的 Azure 服務不會自動為輸出流量提供專用靜態 IP 位址。 這些服務包括Azure App 服務、Azure Functions、在取用層) 中執行時API 管理 (,以及Azure 容器執行個體。
  • 您必須透過網際網路連線到租使用者的網路。
  • 您的租使用者必須根據每個要求的 IP 位址來篩選傳入流量。

當 NAT 閘道實例套用至子網時,來自該子網的任何輸出流量都會使用與 NAT 閘道相關聯的公用 IP 位址。

注意

當您將多個公用 IP 位址與單一 NAT 閘道產生關聯時,您的輸出流量可能會來自這些 IP 位址中的任何一個。 您可能需要在目的地設定防火牆規則。 您應該允許每個 IP 位址,或使用 公用 IP 位址前置 詞資源,在相同範圍內使用一組公用 IP 位址。

隔離模型

如果您需要為每個租使用者提供不同的輸出公用 IP 位址,您必須部署個別的 NAT 閘道資源。 每個子網都可以與單一 NAT 閘道實例相關聯。 若要部署更多 NAT 閘道,您必須部署多個子網或虛擬網路。 接著,您可能需要部署多個計算資源集。

如需如何設計多租使用者網路拓撲的詳細資訊,請參閱 多租使用者解決方案中的網路架構方法

參與者

本文由 Microsoft 維護。 它原本是由下列參與者所撰寫。

主體作者:

  • John Downs |Azure 的主要客戶工程師 FastTrack

其他參與者:

若要查看非公用LinkedIn設定檔,請登入 LinkedIn。

下一步