共用方式為


針對 Service Fabric 受控叢集中的 SNAT 連接埠耗盡問題進行疑難排解

本文為 Service Fabric 受控叢集中來源網路位址轉譯 (SNAT) 連接埠耗盡的問題,提供詳細資訊和疑難排解方法。 若要深入了解 SNAT 連接埠,請參閱輸出連線的來源網路位址轉譯

如何針對來源網路位址轉譯 (SNAT) 連接埠耗盡的問題進行疑難排解

有幾個解決方案可讓您避開 Service Fabric 受控叢集的 SNAT 連接埠限制。 其中包含:

  1. 如果目的地是 Azure 外面的外部端點,則使用 Azure NAT 閘道會給您 64k 個輸出 SNAT 連接埠,可供透過其傳送流量的資源使用。 Azure NAT 閘道是具有高度復原性且可調整的 Azure 服務,可讓您從虛擬網路對網際網路進行輸出連線。 NAT 閘道還給您專用的輸出位址,不與任何人共用。 NAT 閘道使用 SNAT 連接埠的獨特方法,有助於解決常見的 SNAT 耗盡和連線問題。 如果您的服務重複對相同目的地起始 TCP 或 UDP 輸出連線,強烈建議您使用 NAT 閘道。 以下是您可以將 Service Fabric 受控叢集設定為使用 NAT 閘道的方式。

  2. 如果目的地是支援服務端點的 Azure 服務,您可以使用服務端點,以避免 SNAT 連接埠耗盡問題 (在所有節點類型上都受到支援)。 若要設定服務端點,您必須將下列內容新增至叢集資源的 ARM 範本,並部署:

    ARM 範本:

     "serviceEndpoints": [ 
       {
         "service": "Microsoft.Storage",
         "locations":[ "southcentralus", "westus"] 
       },
       {
         "service": "Microsoft.ServiceBus"
       }
     ]
    
  3. 透過自備負載平衡器,您可以定義自己的輸出規則,或附加多個傳出公用 IP 位址,以提供更多的 SNAT 連接埠 (在次要節點類型上受到支援)。

  4. 針對較小規模的部署,您可以考慮 [將公用 IP 指派給節點] (../service-fabric/how-to-managed-cluster-networking#enable-public-ip.md) (在次要節點類型上受到支援)。 如果將公用 IP 指派給節點,則該公用 IP 提供的所有連接埠都可供節點使用。 不同於負載平衡器或 NAT 閘道,連接埠僅可供與 IP 位址相關聯的單一節點存取。

  5. 設計您的應用程式以有效率地使用連線。 連線效率可降低或消除在已部署的應用程式中耗盡 SNAT 連接埠的可能性。

緩和 SNAT 埠耗盡的一般策略會在Azure 檔的輸出連線問題解決一節中討論。 如果您在本文中任何地方需要協助,請連絡 MSDN Azure 和 Stack Overflow 論壇上的 Azure 專家。 或者,提出 Azure 支援案件。 請移至 Azure 支援網站,然後選取 [取得支援]