Überlegungen zu Azure NAT Gateway für die Mehrinstanzenfähigkeit
Azure NAT Gateway ermöglicht die Steuerung der ausgehenden Netzwerkkonnektivität von Ihren Ressourcen, die in einem virtuellen Azure-Netzwerk gehostet werden. In diesem Artikel erfahren Sie, wie NAT Gateway die SNAT-Portauslastung (Source Network Address Translation, Quellnetzwerkadressübersetzung) abmildern kann, die mehrinstanzenfähige Anwendungen beeinträchtigen kann. Wir besprechen außerdem, wie NAT Gateway statische IP-Adressen dem ausgehenden Datenverkehr aus Ihrer mehrinstanzenfähigen Lösung zuweist.
Hinweis
Mit Firewalls wie Azure Firewall können Sie Ihren ausgehenden Datenverkehr steuern und protokollieren. Azure Firewall bietet auch einen ähnlichen Umfang an SNAT-Ports sowie ähnliche Steuerung der ausgehenden IP-Adressen für NAT Gateway. NAT Gateway ist kostengünstiger, verfügt aber auch über weniger Features und ist kein Sicherheitsprodukt.
Features von NAT Gateway, die Mehrinstanzenfähigkeit unterstützen
SNAT-Ports mit hohem Umfang
SNAT-Ports werden zugeordnet, wenn Ihre Anwendung mehrere gleichzeitige ausgehende Verbindungen mit derselben öffentlichen IP-Adresse am selben Port herstellt. SNAT-Ports sind eine endliche Ressource innerhalb von Load Balancern. Wenn Ihre Anwendung eine große Anzahl separater Verbindungen mit demselben Host öffnet, kann sie alle verfügbaren SNAT-Ports verbrauchen. Diese Situation wird als SNAT-Portauslastung bezeichnet.
In den meisten Anwendungen weist die SNAT-Portauslastung darauf hin, dass Ihre Anwendung HTTP-Verbindungen oder TCP-Ports falsch verarbeitet. Bei einigen mehrinstanzenfähigen Anwendungen besteht jedoch ein besonderes Risiko, die SNAT-Portlimits zu überschreiten, auch wenn Verbindungen entsprechend wiederverwendet werden. Diese Situation kann beispielsweise auftreten, wenn Ihre Anwendung eine Verbindung mit vielen mandantenspezifischen Datenbanken hinter demselben Datenbankgateway herstellt.
Tipp
Wenn Sie SNAT-Portauslastung in einer mehrinstanzenfähigen Anwendung beobachten, sollten Sie überprüfen, ob Ihre Anwendung bewährte Methoden befolgt. Stellen Sie sicher, dass Sie HTTP-Verbindungen wiederverwenden und nicht jedes Mal neue Verbindungen erstellen, wenn Sie eine Verbindung mit einem externen Dienst herstellen. Möglicherweise können Sie ein NAT Gateway bereitstellen, um das Problem zu umgehen, doch wenn Ihr Code nicht den bewährten Methoden entspricht, kann das Problem in Zukunft erneut auftreten.
Das Problem verschlimmert sich, wenn Sie mit Azure-Diensten arbeiten, die SNAT-Portzuordnungen zwischen mehreren Kunden gemeinsam nutzen, z. B. Azure App Service und Azure Functions.
Wenn Sie feststellen, dass die SNAT-Auslastung auftritt und Sie sicher sind, dass Ihr Anwendungscode Ihre ausgehenden Verbindungen ordnungsgemäß verarbeitet, sollten Sie die Bereitstellung von NAT Gateway in Betracht ziehen. Dieser Ansatz wird häufig von Kunden verwendet, die mehrinstanzenfähige Lösungen bereitstellen, die auf Azure App Service und Azure Functions basieren.
Einem einzelnen NAT-Gateway können mehrere öffentliche IP-Adressen angefügt werden, und jede öffentliche IP-Adresse stellt eine Reihe von SNAT-Ports bereit, die dazu dienen, eine Verbindung mit dem Internet herzustellen. Informationen zur maximalen Anzahl von SNAT-Ports und IP-Adressen, die ein einzelnes NAT-Gateway unterstützen kann, finden Sie unter Azure-Abonnement und Dienstbeschränkungen, Kontingente und Einschränkungen. Wenn Sie über diesen Grenzwert hinaus skalieren müssen, können Sie erwägen, mehrere NAT Gateway-Instanzen über mehrere Subnetze oder VNets hinweg bereitzustellen. Jeder virtuelle Computer in einem Subnetz kann bei Bedarf jeden der verfügbaren SNAT-Ports verwenden.
Steuerung ausgehender IP-Adressen
Die Steuerung ausgehender IP-Adressen kann in mehrinstanzenfähigen Anwendungen nützlich sein, wenn Sie alle folgenden Anforderungen erfüllen:
- Sie verwenden Azure-Dienste, die nicht automatisch dedizierte statische IP-Adressen für ausgehenden Datenverkehr bereitstellen. Zu diesen Diensten gehören Azure App Service, Azure Functions, API Management (bei Ausführung im Verbrauchstarif) und Azure Container Instances.
- Sie müssen eine Verbindung mit den Netzwerken Ihrer Mandanten über das Internet herstellen.
- Ihre Mandanten müssen eingehenden Datenverkehr basierend auf der IP-Adresse der einzelnen Anforderungen filtern.
Wenn eine NAT Gateway-Instanz auf ein Subnetz angewendet wird, verwendet der gesamte ausgehende Datenverkehr aus diesem Subnetz die öffentlichen IP-Adressen, die dem NAT Gateway zugeordnet sind.
Hinweis
Wenn Sie einem einzelnen NAT Gateway mehrere öffentliche IP-Adressen zuordnen, kann Ihr ausgehender Datenverkehr von jeder dieser IP-Adressen stammen. Möglicherweise müssen Sie Firewallregeln am Ziel konfigurieren. Sie sollten entweder alle IP-Adressen zulassen oder eine Präfixressource für öffentliche IP-Adressen verwenden, um einen Satz öffentlicher IP-Adressen im selben Bereich zu verwenden.
Isolationsmodelle
Wenn Sie für jeden Mandanten unterschiedliche ausgehende öffentliche IP-Adressen bereitstellen müssen, müssen Sie einzelne NAT Gateway-Ressourcen bereitstellen. Jedes Subnetz kann einer einzelnen NAT Gateway-Instanz zugeordnet werden. Um weitere NAT Gateways bereitzustellen, müssen Sie mehrere Subnetze oder virtuelle Netzwerke bereitstellen. Im Gegenzug müssen Sie wahrscheinlich mehrere Sätze von Computeressourcen bereitstellen.
Weitere Informationen zum Entwerfen einer mehrinstanzenfähigen Netzwerktopologie finden Sie unter Architekturansätze für Netzwerke in mehrinstanzenfähigen Lösungen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- John Downs | Principal Customer Engineer, FastTrack for Azure
Andere Mitwirkende:
- Aimee Littleton | Programm-Manager 2, Azure NAT Gateway
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack for Azure
- Joshua Waddell | Senior Customer Engineer, FastTrack für Azure
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.