Ausgehende Verbindungen in AzureOutbound connections in Azure

In Azure wird die Konnektivität in ausgehender Richtung für Benutzerbereitstellungen mit mehreren unterschiedlichen Mechanismen erzielt.Azure provides outbound connectivity for customer deployments through several different mechanisms. In diesem Artikel wird beschrieben, welche Szenarien es gibt, wann sie zutreffen, wie sie funktionieren und wie sie verwaltet werden.This article describes what the scenarios are, when they apply, how they work, and how to manage them.

Hinweis

Dieser Artikel gilt nur für Ressourcen-Manager-Bereitstellungen.This article covers Resource Manager deployments only. Lesen Sie für alle klassischen Bereitstellungsszenarien in Azure den Artikel Ausgehende Verbindungen (klassisch).Review Outbound connections (Classic) for all Classic deployment scenarios in Azure.

Eine Bereitstellung in Azure kann mit Endpunkten außerhalb von Azure im öffentlichen IP-Adressraum kommunizieren.A deployment in Azure can communicate with endpoints outside Azure in the public IP address space. Wenn eine Instanz einen ausgehenden Datenfluss zu einem Ziel im öffentlichen IP-Adressraum initiiert, ordnet Azure die private IP-Adresse dynamisch einer öffentlichen IP-Adresse zu.When an instance initiates an outbound flow to a destination in the public IP address space, Azure dynamically maps the private IP address to a public IP address. Nachdem diese Zuordnung erstellt wurde, kann der Antwortdatenverkehr für diesen ursprünglich ausgehenden Datenfluss auch die private IP-Adresse erreichen, von welcher der Datenfluss stammt.After this mapping is created, return traffic for this outbound originated flow can also reach the private IP address where the flow originated.

Azure verwendet für diese Aufgabe das Verfahren „Übersetzung der Quellnetzwerkadresse“ (Source Network Address Translation, SNAT).Azure uses source network address translation (SNAT) to perform this function. Wenn mehrere private IP-Adressen durch eine einzelne öffentliche IP-Adresse maskiert sind, wird in Azure die Portadressenübersetzung (Port Address Translation, PAT) genutzt, um private IP-Adressen zu maskieren.When multiple private IP addresses are masquerading behind a single public IP address, Azure uses port address translation (PAT) to masquerade private IP addresses. Kurzlebige Ports werden für PAT verwendet und sind je nach Poolgröße vorab zugeordnet.Ephemeral ports are used for PAT and are preallocated based on pool size.

Es gibt mehrere Szenarien für die ausgehende Richtung.There are multiple outbound scenarios. Diese Szenarien können nach Bedarf kombiniert werden.You can combine these scenarios as needed. Prüfen Sie sie sorgfältig, um die Funktionen, Einschränkungen und Muster sowie die damit verbundenen Auswirkungen auf Ihr Bereitstellungsmodell und Anwendungsszenario zu verstehen.Review them carefully to understand the capabilities, constraints, and patterns as they apply to your deployment model and application scenario. Sehen Sie sich die Anleitung zur Verwaltung dieser Szenarien an.Review guidance for managing these scenarios.

Wichtig

Standard Load Balancer führt neue Fähigkeiten und anderes Verhalten für ausgehende Verbindungen ein.Standard Load Balancer introduces new abilities and different behaviors to outbound connectivity. Beispielsweise gibt es Szenario 3 nicht, wenn ein interner Standard Load Balancer vorhanden ist und andere Schritte durchgeführt werden müssen.For example, scenario 3 does not exist when an internal Standard Load Balancer is present and different steps need to be taken. Lesen Sie dieses ganze Dokument sorgfältig durch, um die Gesamtkonzepte und Unterschiede zwischen den einzelnen SKUs zu verstehen.Carefully review this entire document to understand the overall concepts and differences between SKUs.

Übersicht über das SzenarioScenario overview

Azure Load Balancer und die zugehörigen Ressourcen werden bei Verwendung von Azure Resource Manager explizit definiert.Azure Load Balancer and related resources are explicitly defined when you're using Azure Resource Manager. In Azure gibt es derzeit drei verschiedene Methoden, wie die ausgehende Konnektivität für Azure Resource Manager-Ressourcen erreicht werden kann.Azure currently provides three different methods to achieve outbound connectivity for Azure Resource Manager resources.

SzenarioScenario MethodeMethod IP-ProtokolleIP protocols BESCHREIBUNGDescription
1. Virtuelle Computer mit öffentlicher IP-Adresse auf Instanzebene (mit oder ohne Azure Load Balancer)1. VM with an Instance Level Public IP address (with or without Load Balancer) SNAT, keine PortmaskierungSNAT, port masquerading not used TCP, UDP, ICMP, ESPTCP, UDP, ICMP, ESP In Azure wird die öffentliche IP-Adresse verwendet, die der IP-Konfiguration der NIC einer Instanz zugewiesen ist.Azure uses the public IP assigned to the IP configuration of the instance's NIC. Für die Instanz sind alle kurzlebigen Ports verfügbar.The instance has all ephemeral ports available.
2. Öffentlicher Lastenausgleich, der einem virtuellen Computer zugewiesen ist (keine öffentliche IP-Adresse auf Instanzebene für die Instanz)2. Public Load Balancer associated with a VM (no Instance Level Public IP address on the instance) SNAT mit Portmaskierung (PAT) unter Verwendung der Front-Ends des LastenausgleichsSNAT with port masquerading (PAT) using the Load Balancer frontends TCP, UDPTCP, UDP In Azure wird die öffentliche Front-End-IP-Adresse des öffentlichen Lastenausgleichs mit mehreren privaten IP-Adressen gemeinsam genutzt.Azure shares the public IP address of the public Load Balancer frontends with multiple private IP addresses. Für PAT verwendet Azure kurzlebige Ports der Front-Ends.Azure uses ephemeral ports of the frontends to PAT.
3. Eigenständiger virtueller Computer (kein Azure Load Balancer, keine öffentliche IP-Adresse auf Instanzebene)3. Standalone VM (no Load Balancer, no Instance Level Public IP address) SNAT mit Portmaskierung (PAT)SNAT with port masquerading (PAT) TCP, UDPTCP, UDP Azure weist SNAT automatisch eine öffentliche IP-Adresse zu, nutzt diese öffentliche IP-Adresse gemeinsam mit mehreren privaten IP-Adressen der Verfügbarkeitsgruppe und verwendet kurzlebige Ports dieser öffentlichen IP-Adresse.Azure automatically designates a public IP address for SNAT, shares this public IP address with multiple private IP addresses of the availability set, and uses ephemeral ports of this public IP address. Dieses Szenario ist ein Fallbackszenario für die vorherigen Szenarien.This is a fallback scenario for the preceding scenarios. Es ist nicht zu empfehlen, wenn Sie Sichtbarkeit und Kontrolle benötigen.We don't recommend it if you need visibility and control.

Wenn ein virtueller Computer nicht mit Endpunkten außerhalb von Azure im öffentlichen IP-Adressraum kommunizieren soll, können Sie nach Bedarf zum Blockieren des Zugriffs Netzwerksicherheitsgruppen verwenden.If you don't want a VM to communicate with endpoints outside Azure in public IP address space, you can use network security groups (NSGs) to block access as needed. Netzwerksicherheitsgruppen werden im Abschnitt Verhindern der ausgehenden Konnektivität ausführlicher beschrieben.The section Preventing outbound connectivity discusses NSGs in more detail. Das Entwerfen, Implementieren und Verwalten eines virtuellen Netzwerks ohne ausgehenden Zugriff und die entsprechenden Anleitungen hierzu sind nicht Gegenstand dieses Artikels.Guidance on designing, implementing, and managing a virtual network without any outbound access is outside the scope of this article.

Szenario 1: VM mit einer öffentlichen IP-Adresse auf InstanzebeneScenario 1: VM with an Instance Level Public IP address

In diesem Szenario ist der VM eine öffentliche IP-Adresse auf Instanzebene (Instance Level Public IP, ILPIP) zugewiesen.In this scenario, the VM has an Instance Level Public IP (ILPIP) assigned to it. Bei ausgehenden Verbindungen spielt es keine Rolle, ob für den virtuellen Computer ein Lastenausgleich durchgeführt wird.As far as outbound connections are concerned, it doesn't matter whether the VM is load balanced or not. Dieses Szenario hat Vorrang vor den anderen Szenarien.This scenario takes precedence over the others. Wenn eine öffentliche IP-Adresse auf Instanzebene (ILPIP) verwendet wird, nutzt die VM die ILPIP für alle ausgehenden Datenflüsse.When an ILPIP is used, the VM uses the ILPIP for all outbound flows.

Eine öffentliche IP-Adresse, die einem virtuellen Computer zugewiesen ist, ist eine 1:1-Beziehung (keine 1:n-Beziehung) und wird als zustandslose 1:1-NAT implementiert.A public IP assigned to a VM is a 1:1 relationship (rather than 1:many) and implemented as a stateless 1:1 NAT. Es wird keine Portmaskierung (PAT) verwendet, und für den virtuellen Computer sind alle kurzlebigen Ports verfügbar.Port masquerading (PAT) is not used, and the VM has all ephemeral ports available for use.

Wenn Ihre Anwendung viele ausgehende Datenflüsse initiiert und es zu einer Überlastung der SNAT-Ports kommt, sollten Sie das Zuweisen einer öffentlichen IP-Adresse auf Instanzebene erwägen, um SNAT-Engpässe zu entschärfen.If your application initiates many outbound flows and you experience SNAT port exhaustion, consider assigning an ILPIP to mitigate SNAT constraints. Lesen Sie den Abschnitt Verwalten der SNAT-Auslastung ganz durch.Review Managing SNAT exhaustion in its entirety.

Szenario 2: Virtueller Computer mit Lastenausgleich ohne öffentliche IP-Adresse auf InstanzebeneScenario 2: Load-balanced VM without an Instance Level Public IP address

Bei diesem Szenario ist die VM Teil eines Back-End-Pools für den öffentlichen Lastenausgleich.In this scenario, the VM is part of a public Load Balancer backend pool. Der VM ist keine öffentliche IP-Adresse zugewiesen.The VM does not have a public IP address assigned to it. Die Lastenausgleichsressource muss mit einer Lastenausgleichsregel zum Erstellen einer Verknüpfung der öffentlichen Front-End-IP mit dem Back-End-Pool konfiguriert werden.The Load Balancer resource must be configured with a load balancer rule to create a link between the public IP frontend with the backend pool.

Wenn Sie diese Regelkonfiguration nicht abschließen, ergibt sich das Verhalten wie oben unter Eigenständige VM ohne öffentliche IP-Adresse auf Instanzebene beschrieben.If you do not complete this rule configuration, the behavior is as described in the scenario for Standalone VM with no Instance Level Public IP. Die Regel muss nicht über einen funktionierenden Listener im Back-End-Pool verfügen, damit der Integritätstest erfolgreich durchgeführt werden kann.It is not necessary for the rule to have a working listener in the backend pool for the health probe to succeed.

Wenn die dem Lastenausgleich unterliegende VM einen ausgehenden Datenfluss erstellt, übersetzt Azure die private IP-Quelladresse des ausgehenden Datenflusses in die öffentliche IP-Adresse des öffentlichen Lastenausgleichs-Frond-End.When the load-balanced VM creates an outbound flow, Azure translates the private source IP address of the outbound flow to the public IP address of the public Load Balancer frontend. Azure verwendet SNAT, um diese Funktion durchzuführen.Azure uses SNAT to perform this function. Azure verwendet auch PAT, um mehrere private IP-Adressen durch eine öffentliche IP-Adresse zu maskieren.Azure also uses PAT to masquerade multiple private IP addresses behind a public IP address.

Mit kurzlebigen Ports der öffentlichen Front-End-IP-Adresse des Lastenausgleich werden die einzelnen Datenflüsse unterschieden, die von dem virtuellen Computer stammen.Ephemeral ports of the load balancer's public IP address frontend are used to distinguish individual flows originated by the VM. Beim Erstellen ausgehender Datenflüsse werden für SNAT vorab zugewiesene kurzlebige Ports verwendet.SNAT dynamically uses preallocated ephemeral ports when outbound flows are created. In diesem Zusammenhang werden die kurzlebigen für SNAT verwendeten Ports als SNAT-Ports bezeichnet.In this context, the ephemeral ports used for SNAT are called SNAT ports.

SNAT-Ports werden vorab zugeordnet, wie im Abschnitt Grundlagen von SNAT und PAT beschrieben.SNAT ports are preallocated as described in the Understanding SNAT and PAT section. Es handelt sich um eine begrenzte Ressource, die überlastet werden kann.They're a finite resource that can be exhausted. Es ist wichtig zu verstehen, wie sie genutzt wird.It's important to understand how they are consumed. Um zu verstehen, wie Sie diese Nutzung beim Entwurf berücksichtigen und je nach Bedarf Abhilfemaßnahmen schaffen können, lesen Sie den Abschnitt Verwalten der SNAT-Auslastung.To understand how to design for this consumption and mitigate as necessary, review Managing SNAT exhaustion.

Wenn Load Balancer Basic mehrere öffentliche IP-Adressen zugeordnet sind, sind diese öffentlichen IP-Adressen Kandidaten für ausgehende Datenflüsse, und eine davon wird nach dem Zufallsprinzip ausgewählt.When multiple public IP addresses are associated with Load Balancer Basic, any of these public IP addresses are a candidate for outbound flows, and one is selected at random.

Zum Überwachen der Integrität ausgehender Verbindungen mit Load Balancer Basic können Sie Log Analytics für Azure Load Balancer und Warnungsereignisprotokolle verwenden.To monitor the health of outbound connections with Load Balancer Basic, you can use Log Analytics for Load Balancer and alert event logs to monitor for SNAT port exhaustion messages.

Szenario 3: Eigenständiger virtueller Computer ohne öffentliche IP-Adresse auf InstanzebeneScenario 3: Standalone VM without an Instance Level Public IP address

In diesem Szenario gehört die VM nicht zu einem öffentlichen Load Balancer-Pool (und sie ist nicht Teil eines internen Standard Load Balancer-Pools), und ihr ist keine ILPIP-Adresse zugewiesen.In this scenario, the VM is not part of a public Load Balancer pool (and not part of an internal Standard Load Balancer pool) and does not have an ILPIP address assigned to it. Wenn der virtuelle Computer einen ausgehenden Datenfluss einleitet, übersetzt Azure die private IP-Quelladresse für den ausgehenden Datenfluss in eine öffentliche IP-Quelladresse.When the VM creates an outbound flow, Azure translates the private source IP address of the outbound flow to a public source IP address. Die für diesen ausgehenden Datenfluss verwendete öffentliche IP-Adresse ist nicht konfigurierbar und wird nicht auf die Ressourcengrenze des Abonnements für öffentliche IP-Adressen angerechnet.The public IP address used for this outbound flow is not configurable and does not count against the subscription's public IP resource limit.

Wichtig

Dieses Szenario gilt auch, wenn nur ein interner Basic Load Balancer verknüpft ist.This scenario also applies when only an internal Basic Load Balancer is attached. Szenario 3 ist nicht verfügbar, wenn ein interner Standard Load Balancer mit einer VM verknüpft ist.Scenario 3 is not available when an internal Standard Load Balancer is attached to a VM. Sie müssen Szenario 1 oder Szenario 2 zusätzlich zu einem internen Standard Load Balancer explizit erstellen.You must explicitly create scenario 1 or scenario 2 in addition to using an internal Standard Load Balancer.

Azure verwendet SNAT mit Portmaskierung (PAT) für diese Aufgabe.Azure uses SNAT with port masquerading (PAT) to perform this function. Dieses Szenario ähnelt Szenario 2. Der Unterschied besteht darin, dass keine Steuerung der IP-Adresse verwendet wird.This scenario is similar to scenario 2, except there is no control over the IP address used. Dies ist ein Fallbackszenario für den Fall, dass Szenario 1 und Szenario 2 nicht vorhanden sind.This is a fallback scenario for when scenarios 1 and 2 do not exist. Dieses Szenario wird nicht empfohlen, wenn eine Kontrolle über die ausgehende Adresse gewünscht ist.We don't recommend this scenario if you want control over the outbound address. Wenn ausgehende Verbindungen ein wichtiger Teil Ihrer Anwendung sind, sollten Sie ein anderes Szenario auswählen.If outbound connections are a critical part of your application, you should choose another scenario.

SNAT-Ports werden vorab zugeordnet, wie im Abschnitt Grundlagen von SNAT und PAT beschrieben.SNAT ports are preallocated as described in the Understanding SNAT and PAT section. Die Anzahl der VMs, die sich eine Verfügbarkeitsgruppe teilen, bestimmt, welche Stufe der Vorabzuordnung gilt.The number of VMs sharing an Availability Set determines which preallocation tier applies. Eine eigenständige VM ohne Verfügbarkeitsgruppe ist effektiv ein Pool von 1 für die Ermittlung der Vorabzuordnung (1024 SNAT-Ports).A standalone VM without an Availability Set is effectively a pool of 1 for the purposes of determining preallocation (1024 SNAT ports). SNAT Ports sind begrenzte Ressourcen, die sich erschöpfen können.SNAT ports are a finite resource that can be exhausted. Es ist wichtig zu verstehen, wie sie genutzt wird.It's important to understand how they are consumed. Um zu verstehen, wie Sie diese Nutzung beim Entwurf berücksichtigen und je nach Bedarf Abhilfemaßnahmen schaffen können, lesen Sie den Abschnitt Verwalten der SNAT-Auslastung.To understand how to design for this consumption and mitigate as necessary, review Managing SNAT exhaustion.

Mehrere kombinierte SzenarienMultiple, combined scenarios

Sie können die in den vorherigen Abschnitten beschriebenen Szenarien kombinieren, um ein bestimmtes Ergebnis zu erzielen.You can combine the scenarios described in the preceding sections to achieve a particular outcome. Wenn mehrere Szenarien vorhanden sind, gilt eine Prioritätsreihenfolge: Szenario 1 hat Vorrang vor Szenario 2 und 3.When multiple scenarios are present, an order of precedence applies: scenario 1 takes precedence over scenario 2 and 3. Szenario 2 überschreibt Szenario 3.Scenario 2 overrides scenario 3.

Ein Beispiel hierfür ist eine Azure Resource Manager-Bereitstellung, bei der die Anwendung stark von ausgehenden Verbindungen mit einer begrenzten Anzahl von Zielen abhängig ist, aber auch eingehende Datenflüsse über ein Front-End des Lastenausgleichs empfängt.An example is an Azure Resource Manager deployment where the application relies heavily on outbound connections to a limited number of destinations but also receives inbound flows over a Load Balancer frontend. In diesem Fall können Sie als Lösung die Szenarien 1 und 2 kombinieren.In this case, you can combine scenarios 1 and 2 for relief. Informationen zu zusätzlichen Mustern finden Sie unter Verwalten der SNAT-Auslastung.For additional patterns, review Managing SNAT exhaustion.

Mehrere Front-Ends für ausgehende DatenflüsseMultiple frontends for outbound flows

Load Balancer StandardLoad Balancer Standard

Load Balancer Standard verwendet alle Kandidaten für ausgehende Datenflüsse, wenn gleichzeitig mehrere (öffentliche) IP-Front-Ends vorhanden sind.Load Balancer Standard uses all candidates for outbound flows at the same time when multiple (public) IP frontends is present. Jedes Front-End multipliziert die Anzahl von verfügbaren, vorab zugeordneten SNAT-Ports, wenn eine Lastenausgleichsregel für ausgehende Verbindungen aktiviert ist.Each frontend multiplies the number of available preallocated SNAT ports if a load balancing rule is enabled for outbound connections.

Sie können die Verwendung einer Front-End-IP-Adresse für ausgehende Verbindungen mit einer neuen Option für Lastausgleichsregeln unterdrücken:You can choose to suppress a frontend IP address from being used for outbound connections with a new load balancing rule option:

      "loadBalancingRules": [
        {
          "disableOutboundSnat": false
        }
      ]

Normalerweise ist diese Option auf false voreingestellt und bedeutet, dass diese Regel den ausgehenden SNAT für die zugehörigen VMs im Back-End-Pool der Lastenausgleichsregel programmiert.Normally, this option defaults to false and signifies that this rule programs outbound SNAT for the associated VMs in the backend pool of the load balancing rule. Diese kann auf true gesetzt werden, um zu verhindern, dass für den Lastenausgleich die zugehörige Front-End-IP-Adresse für ausgehende Verbindungen der VMs im Back-End-Pool dieser Lastenausgleichsregel verwendet wird.This can be changed to true to prevent Load Balancer from using the associated frontend IP address for outbound connections for the VM's in the backend pool of this load balancing rule. Zudem können Sie noch immer für ausgehende Datenflüsse eine bestimmte IP-Adresse festlegen, wie unter Mehrere kombinierte Szenarien beschrieben.And you can also still designate a specific IP address for outbound flows as described in Multiple, combined scenarios as well.

Load Balancer BasicLoad Balancer Basic

Load Balancer Basic wählt ein einzelnes Front-End für ausgehende Datenflüsse aus, wenn mehrere (öffentliche) Front-End-IP-Adressen Kandidaten für ausgehende Datenflüsse sind.Load Balancer Basic chooses a single frontend to be used for outbound flows when multiple (public) IP frontends are candidates for outbound flows. Diese Auswahl ist nicht konfigurierbar; Sie sollten den Auswahlalgorithmus als zufällig betrachten.This selection is not configurable, and you should consider the selection algorithm to be random. Sie können für ausgehende Datenflüsse eine bestimmte IP-Adresse festlegen, wie unter Mehrere kombinierte Szenarien beschrieben.You can designate a specific IP address for outbound flows as described in Multiple, combined scenarios.

VerfügbarkeitszonenAvailability Zones

Bei Verwendung von Standard Load Balancer mit Verfügbarkeitszonen können zonenredundante ausgehende SNAT-Verbindungen von zonenredundanten Front-Ends bereitgestellt werden. Die SNAT-Programmierung ist nach Zonenausfällen noch immer vorhanden.When using Standard Load Balancer with Availability Zones, zone-redundant frontends can provide zone-redundant outbound SNAT connections and SNAT programming survives zone failure. Wenn zonenbezogene Front-Ends verwendet werden, geschieht mit ausgehenden SNAT-Verbindungen dasselbe wie mit der Zone, zu der sie gehören.When zonal frontends are used, outbound SNAT connections share fate with the zone they belong to.

Grundlagen von SNAT und PATUnderstanding SNAT and PAT

Portmaskierung mit SNAT (PAT)Port masquerading SNAT (PAT)

Wenn eine öffentliche Load Balancer-Ressource mit VM-Instanzen verknüpft ist, wird jede ausgehende Verbindungsquelle erneut geschrieben.When a public Load Balancer resource is associated with VM instances, each outbound connection source is rewritten. Die Quelle wird aus dem privaten IP-Adressraum des virtuellen Netzwerks in die öffentliche Front-End-IP-Adresse des Lastenausgleichs umgeschrieben.The source is rewritten from the virtual network private IP address space to the frontend Public IP address of the load balancer. Im öffentlichen IP-Adressraum müssen die fünf Tupel des Datenflusses (IP-Quelladresse, Quellport, IP-Transportprotokoll, IP-Zieladresse, Zielport) eindeutig sein.In the public IP address space, the 5-tuple of the flow (source IP address, source port, IP transport protocol, destination IP address, destination port) must be unique. Portmaskierung mit SNAT kann mit entweder mit dem TCP- oder UDP IP-Protokoll verwendet werden.Port masquerading SNAT can be used with either TCP or UDP IP protocols.

Hierfür werden kurzlebige Ports (SNAT-Ports) verwendet, nachdem die private IP-Quelladresse umgeschrieben wurde, da mehrere Datenflüsse von einer einzelnen öffentlichen IP-Adresse stammen.Ephemeral ports (SNAT ports) are used to achieve this after rewriting the private source IP address, because multiple flows originate from a single public IP address. Die Portmaskierung mit SNAT-Algorithmus weist SNAT-Ports für UDP und TCP unterschiedlich zu.The port masquerading SNAT algorithm allocates SNAT ports differently for UDP versus TCP.

TCP-SNAT-PortsTCP SNAT Ports

Pro Datenfluss zu einer einzelnen IP-Zieladresse/einem einzelnen Port wird ein SNAT-Port genutzt.One SNAT port is consumed per flow to a single destination IP address, port. Bei mehreren TCP-Datenflüssen zur gleichen IP-Zieladresse bzw. zum Port und Protokoll belegt jeder TCP-Datenfluss einen einzelnen SNAT-Port.For multiple TCP flows to the same destination IP address, port, and protocol, each TCP flow consumes a single SNAT port. Hierdurch wird sichergestellt, dass die Datenflüsse eindeutig sind, wenn sie von der gleichen öffentlichen IP-Adresse stammen und die gleiche IP-Zieladresse, den gleichen Port und das gleiche Protokoll aufweisen.This ensures that the flows are unique when they originate from the same public IP address and go to the same destination IP address, port, and protocol.

Mehrere Datenflüsse mit jeweils anderen Angaben für IP-Zieladresse, Port und Protokoll verwenden gemeinsam einen einzelnen SNAT-Port.Multiple flows, each to a different destination IP address, port, and protocol, share a single SNAT port. Die IP-Adresse, der Port und das Protokoll für das Ziel machen den Datenfluss eindeutig, ohne dass zusätzliche Quellports verwendet werden müssen, um Datenflüsse im öffentlichen IP-Adressraum zu unterscheiden.The destination IP address, port, and protocol make flows unique without the need for additional source ports to distinguish flows in the public IP address space.

UDP-SNAT-PortsUDP SNAT Ports

UDP-SNAT-Ports werden von einem anderen Algorithmus als TCP-SNAT-Ports verwaltet.UDP SNAT ports are managed by a different algorithm than TCP SNAT ports. Load Balancer verwendet für UDP einen Algorithmus, der als „portbeschränktes Cone-NAT“ bezeichnet wird.Load Balancer uses an algorithm known as "port-restricted cone NAT" for UDP. Für jeden Datenfluss wird unabhängig von der IP-Zieladresse/dem Zielport ein SNAT-Port genutzt.One SNAT port is consumed for each flow, irrespective of destination IP address, port.

AuslastungExhaustion

Sobald die SNAT-Portressourcen erschöpft sind, sind ausgehende Datenflüsse erst wieder möglich, wenn SNAT-Ports von vorhandenen Datenflüssen freigegeben werden.When SNAT port resources are exhausted, outbound flows fail until existing flows release SNAT ports. Der Load Balancer gibt die SNAT-Ports wieder frei, wenn der Datenflussvorgang abgeschlossen ist. Es wird ein Leerlauftimeout von 4 Minuten verwendet, um SNAT-Ports für im Leerlauf befindliche Datenflüsse wieder freizugeben.Load Balancer reclaims SNAT ports when the flow closes and uses a 4-minute idle timeout for reclaiming SNAT ports from idle flows.

UDP-SNAT-Ports erschöpfen aufgrund des Unterschieds im verwendeten Algorithmus in der Regel viel schneller als TCP-SNAT-Ports.UDP SNAT ports generally exhaust much faster than TCP SNAT ports due to the difference in algorithm used. Diesen Unterschied müssen Sie beim Entwerfen und Skalieren berücksichtigen.You must design and scale test with this difference in mind.

Im Abschnitt Verwalten von SNAT werden Muster für das Entschärfen von Bedingungen beschrieben, die häufig zu einer Überlastung von SNAT-Ports führen.For patterns to mitigate conditions that commonly lead to SNAT port exhaustion, review the Managing SNAT section.

Vorabzuordnung von kurzlebigen Ports für die Portmaskierung per SNAT (PAT)Ephemeral port preallocation for port masquerading SNAT (PAT)

In Azure wird ein Algorithmus verwendet, um basierend auf der Größe des Back-End-Pools bei der Portmaskierung per SNAT (PAT) die Anzahl von verfügbaren vorab zugeordneten SNAT-Ports zu ermitteln.Azure uses an algorithm to determine the number of preallocated SNAT ports available based on the size of the backend pool when using port masquerading SNAT (PAT). SNAT-Ports sind kurzlebige Ports, die für eine bestimmte öffentliche IP-Quelladresse verfügbar sind.SNAT ports are ephemeral ports available for a particular public IP source address.

Dieselbe Anzahl von SNAT-Ports wird vorab für UDP bzw. TCP zugeordnet und unabhängig voneinander pro IP-Transportprotokoll genutzt.The same number of SNAT ports are preallocated for UDP and TCP respectively and consumed independently per IP transport protocol. Die Verwendung des SNAT-Ports unterscheidet sich jedoch abhängig davon, ob es sich um einen UDP- oder TCP-Datenfluss handelt.However, the SNAT port usage is different depending on whether the flow is UDP or TCP.

Wichtig

Standard-SKU-SNAT Programmierung erfolgt pro IP-Transportprotokoll und wird aus der Lastenausgleichsregel abgeleitet.Standard SKU SNAT programming is per IP transport protocol and derived from the load balancing rule. Ist nur eine TCP-Lastenausgleichsregel vorhanden, ist SNAT nur für TCP verfügbar.If only a TCP load balancing rule exists, SNAT is only available for TCP. Wenn Sie nur eine TCP-Lastenausgleichsregel haben und ausgehendes SNAT für UDP benötigen, erstellen Sie eine UDP-Lastenausgleichsregel vom selben Front-End- zum selben Back-End-Pool.If you have only a TCP load balancing rule and need outbound SNAT for UDP, create a UDP load balancing rule from the same frontend to the same backend pool. Dadurch wird SNAT-Programmierung für UDP ausgelöst.This will trigger SNAT programming for UDP. Eine Arbeitsregel oder ein Integritätstest ist nicht erforderlich.A working rule or health probe is not required. Basic-SKU-SNAT bewirkt immer, dass SNAT für beide IP-Transportprotokolle programmiert wird, unabhängig von dem Transportprotokoll, das in der Lastenausgleichsregel angegeben ist.Basic SKU SNAT always programs SNAT for both IP transport protocol, irrespective of the transport protocol specified in the load balancing rule.

In Azure werden SNAT-Ports vorab der IP-Konfiguration der NIC jeder VM zugeordnet.Azure preallocates SNAT ports to the IP configuration of the NIC of each VM. Wenn dem Pool eine IP-Konfiguration hinzugefügt wird, werden die SNAT-Ports für diese IP-Konfiguration basierend auf der Größe des Back-End-Pools vorab zugeordnet.When an IP configuration is added to the pool, the SNAT ports are preallocated for this IP configuration based on the backend pool size. Bei Erstellung von ausgehenden Datenflüssen werden diese Ports von PAT dynamisch genutzt (bis zum vorab festgelegten Grenzwert) und wieder freigegeben, wenn der Datenfluss geschlossen wird oder ein Leerlauftimeout eintritt.When outbound flows are created, PAT dynamically consumes (up to the preallocated limit) and releases these ports when the flow closes or idle timeouts happen.

In der folgenden Tabelle sind die SNAT-Port-Vorabzuordnungen für die Ebenen der Back-End-Poolgrößen angegeben:The following table shows the SNAT port preallocations for tiers of backend pool sizes:

Poolgröße (VM-Instanzen)Pool size (VM instances) Vorab zugeordnete SNAT-Ports pro IP-KonfigurationPreallocated SNAT ports per IP configuration
1-501-50 10241,024
51-10051-100 512512
101-200101-200 256256
201-400201-400 128128
401-800401-800 6464
801-1.000801-1,000 3232

Hinweis

Bei Verwendung von Standard Load Balancer mit mehreren Front-Ends multipliziert jede Front-End-IP-Adresse die Anzahl der verfügbaren SNAT-Ports in der vorherigen Tabelle.When using Standard Load Balancer with multiple frontends, each frontend IP address multiplies the number of available SNAT ports in the previous table. Beispielsweise verwendet ein Back-End-Pool von 50 VMs mit zwei Lastenausgleichsregeln, jede mit einer eigenen Front-End-IP-Adresse, 2048 (2 x 1024) SNAT-Ports pro IP-Konfiguration.For example, a backend pool of 50 VM's with 2 load balancing rules, each with a separate frontend IP address, will use 2048 (2x 1024) SNAT ports per IP configuration. Weitere Informationen finden Sie in den Details zu mehreren Front-Ends.See details for multiple frontends.

Denken Sie daran, dass die Anzahl der verfügbaren SNAT-Ports nicht direkt in die Anzahl der Datenflüsse zu übersetzen ist.Remember that the number of SNAT ports available does not translate directly to number of flows. Ein einzelner SNAT-Port kann für mehrere eindeutige Ziele wiederverwendet werden.A single SNAT port can be reused for multiple unique destinations. Ports werden nur genutzt, wenn Datenflüsse eindeutig gemacht werden müssen.Ports are consumed only if it's necessary to make flows unique. Eine Anleitung für den Entwurf und Lösungsmöglichkeiten finden Sie in den Abschnitten, in den die Verwaltung dieser begrenzten Ressource und PAT beschrieben sind.For design and mitigation guidance, refer to the section about how to manage this exhaustible resource and the section that describes PAT.

Von einer Größenänderung Ihres Back-End-Pools können einige der eingerichteten Datenflüsse betroffen sein.Changing the size of your backend pool might affect some of your established flows. Wenn die Größe des Back-End-Pools zunimmt und der Übergang auf die nächste Ebene erfolgt, wird die Hälfte der vorab zugeordneten SNAT-Ports während des Übergangs zur nächstgrößeren Back-End-Poolebene freigegeben.If the backend pool size increases and transitions into the next tier, half of your preallocated SNAT ports are reclaimed during the transition to the next larger backend pool tier. Bei Datenflüssen, die einem wieder freigegebenen SNAT-Port zugeordnet sind, tritt ein Timeout auf, und sie müssen neu eingerichtet werden.Flows that are associated with a reclaimed SNAT port will time out and must be reestablished. Versuche zum Einrichten eines neuen Datenflusses sind sofort erfolgreich, solange vorab zugeordnete Ports verfügbar sind.If a new flow is attempted, the flow will succeed immediately as long as preallocated ports are available.

Wenn sich die Größe des Back-End-Pools reduziert und der Übergang auf eine niedrigere Ebene erfolgt, nimmt die Anzahl der verfügbaren SNAT-Ports zu.If the backend pool size decreases and transitions into a lower tier, the number of available SNAT ports increases. In diesem Fall sind vorhandene zugeordnete SNAT-Ports und die entsprechenden Datenflüsse nicht betroffen.In this case, existing allocated SNAT ports and their respective flows are not affected.

SNAT-Portzuordnungen gelten speziell für das jeweilige IP-Transportprotokoll (TCP und UDP werden separat verwaltet) und werden unter den folgenden Bedingungen freigegeben:SNAT ports allocations are IP transport protocol specific (TCP and UDP are maintained separately) and are released under the following conditions:

TCP-SNAT-PortfreigabeTCP SNAT port release

  • Wenn Server und Client FIN/ACK senden, wird der SNAT-Port nach 240 Sekunden freigegeben.If both server/client sends FIN/ACK, SNAT port will be released after 240 seconds.
  • Tritt ein RST auf, wird der SNAT-Port nach 15 Sekunden freigegeben.If a RST is seen, SNAT port will be released after 15 seconds.
  • Leerlauftimeout wurde erreicht.idle timeout has been reached

UDP-SNAT-PortfreigabeUDP SNAT port release

  • Leerlauftimeout wurde erreicht.idle timeout has been reached

ProblembehebungProblem solving

Dieser Abschnitt soll dazu beitragen, die SNAT-Überlastung und andere Szenarien, die bei ausgehenden Verbindungen in Azure auftreten können, zu verringern.This section is intended to help mitigate SNAT exhaustion and other scenarios which can occur with outbound connections in Azure.

Verwalten der SNAT-Portauslastung (PAT)Managing SNAT (PAT) port exhaustion

Für PAT verwendete kurzlebige Ports sind eine begrenzte Ressource, wie unter Eigenständiger virtueller Computer ohne öffentliche IP-Adresse auf Instanzebene und Virtueller Computer mit Lastenausgleich ohne öffentliche IP-Adresse auf Instanzebene beschrieben.Ephemeral ports used for PAT are an exhaustible resource, as described in Standalone VM without an Instance Level Public IP address and Load-balanced VM without an Instance Level Public IP address.

Wenn Sie wissen, dass Sie viele ausgehende TCP- oder UDP-Verbindungen zu derselben IP-Zieladresse und demselben Port initiieren und Fehler bei ausgehenden Verbindungen feststellen oder vom Support darauf hingewiesen werden, dass Sie zu viele SNAT-Ports (vorab zugeordnete kurzlebige Ports, die für PAT verwendet werden) in Anspruch nehmen, stehen Ihnen mehrere Lösungsmöglichkeiten zur Verfügung.If you know that you're initiating many outbound TCP or UDP connections to the same destination IP address and port, and you observe failing outbound connections or are advised by support that you're exhausting SNAT ports (preallocated ephemeral ports used by PAT), you have several general mitigation options. Überprüfen Sie diese Optionen, und entscheiden Sie, welche für Ihr Szenario verfügbar und am besten geeignet sind.Review these options and decide what is available and best for your scenario. Möglicherweise kann die ein oder andere die Verwaltung dieses Szenarios erleichtern.It's possible that one or more can help manage this scenario.

Wenn Sie Probleme haben, das Verhalten der ausgehenden Verbindungen zu verstehen, können Sie die IP-Stapelstatistiken (netstat) verwenden.If you are having trouble understanding the outbound connection behavior, you can use IP stack statistics (netstat). Es kann aber auch hilfreich sein, das Verbindungsverhalten mithilfe von Paketerfassungen zu beobachten.Or it can be helpful to observe connection behaviors by using packet captures. Sie können diese Paketerfassungen im Gastbetriebssystem Ihrer Instanz durchführen oder Network Watcher für die Paketerfassung verwenden.You can perform these packet captures in the guest OS of your instance or use Network Watcher for packet capture.

Ändern der Anwendung für die Wiederverwendung von VerbindungenModify the application to reuse connections

Sie können den Bedarf an kurzlebigen Ports, die für SNAT verwendet werden, durch Wiederverwenden von Verbindungen in der Anwendung reduzieren.You can reduce demand for ephemeral ports that are used for SNAT by reusing connections in your application. Dies gilt insbesondere für Protokolle wie HTTP/1.1, das standardmäßig Verbindungen wiederverwendet.This is especially true for protocols like HTTP/1.1, where connection reuse is the default. Andere Protokolle, die HTTP als Transportprotokoll verwenden (z. B. REST) können davon wiederum profitieren.And other protocols that use HTTP as their transport (for example, REST) can benefit in turn.

Die Wiederverwendung ist immer besser als einzelne, unteilbare TCP-Verbindungen für jede Anforderung.Reuse is always better than individual, atomic TCP connections for each request. Die Wiederverwendung führt zu leistungsfähigeren, sehr effizienten TCP-Transaktionen.Reuse results in more performant, very efficient TCP transactions.

Ändern der Anwendung für die Verwendung von VerbindungspoolingModify the application to use connection pooling

Sie können in Ihrer Anwendung ein Verbindungspoolingschema verwenden, bei dem Anforderungen intern auf einen festen Satz von Verbindungen verteilt werden (wobei die Verbindungen möglichst wiederverwendet werden).You can employ a connection pooling scheme in your application, where requests are internally distributed across a fixed set of connections (each reusing where possible). Bei diesem Schema wird die Anzahl der verwendeten kurzlebigen Ports eingeschränkt und eine besser vorhersagbare Umgebung erstellt.This scheme constrains the number of ephemeral ports in use and creates a more predictable environment. Dies kann auch den Durchsatz von Anforderungen erhöhen, da mehrere gleichzeitige Vorgänge zugelassen werden, wenn eine einzelne Verbindung durch die Antwort eines Vorgangs blockiert wird.This scheme can also increase the throughput of requests by allowing multiple simultaneous operations when a single connection is blocking on the reply of an operation.

Verbindungspooling ist möglicherweise innerhalb des Frameworks, das Sie zum Entwickeln Ihrer Anwendung oder der Konfigurationseinstellungen für Ihre Anwendung verwenden, bereits vorhanden.Connection pooling might already exist within the framework that you're using to develop your application or the configuration settings for your application. Sie können das Verbindungspooling mit der Wiederverwendung von Verbindungen kombinieren.You can combine connection pooling with connection reuse. Mehrere Anforderungen nutzen dann eine feste vorhersagbare Anzahl von Ports für die gleiche IP-Zieladresse und den gleichen Port.Your multiple requests then consume a fixed, predictable number of ports to the same destination IP address and port. Bei den Anforderungen profitieren Sie außerdem von der effizienten Verwendung von TCP-Transaktionen, was zu niedrigeren Latenzzeiten und geringerer Ressourcenauslastung führt.The requests also benefit from efficient use of TCP transactions reducing latency and resource utilization. Auch bei den UDP-Transaktionen können Sie profitieren, da Sie durch das Verwalten der Anzahl von UDP-Datenflüssen wiederum Zustände mit Überlastung vermeiden und die SNAT-Portauslastung verwalten können.UDP transactions can also benefit, because managing the number of UDP flows can in turn avoid exhaust conditions and manage the SNAT port utilization.

Ändern der Anwendung für die Verwendung weniger aggressiver WiederholungslogikModify the application to use less aggressive retry logic

Wenn die für PAT verwendeten vorab zugeordneten kurzlebigen Ports erschöpft sind oder Anwendungsfehler auftreten, führen aggressive oder Brute-Force-Wiederholungsversuche ohne Verfalls- und Backofflogik zu Erschöpfung oder gar anhaltender Erschöpfung.When preallocated ephemeral ports used for PAT are exhausted or application failures occur, aggressive or brute force retries without decay and backoff logic cause exhaustion to occur or persist. Sie können den Bedarf an kurzlebigen Ports durch Verwendung einer weniger aggressiven Wiederholungslogik reduzieren.You can reduce demand for ephemeral ports by using a less aggressive retry logic.

Kurzlebige Ports haben ein Leerlauftimeout von vier Minuten (nicht veränderbar).Ephemeral ports have a 4-minute idle timeout (not adjustable). Wenn die Wiederholungen zu aggressiv sind, besteht keine Möglichkeit, dass sich die Überlastung von alleine erholt.If the retries are too aggressive, the exhaustion has no opportunity to clear up on its own. Daher ist die Überlegung, wie und wie oft Ihre Anwendung Transaktionen wiederholen soll, ein wichtiger Aspekt des Entwurfs.Therefore, considering how--and how often--your application retries transactions is a critical part of the design.

Zuweisen einer öffentlichen IP-Adresse auf Instanzebene für jeden virtuellen ComputerAssign an Instance Level Public IP to each VM

Durch das Zuweisen einer öffentlichen IP-Adresse auf Instanzebene erhalten Sie das Szenario Virtueller Computer mit öffentlicher IP-Adresse auf Instanzebene.Assigning an ILPIP changes your scenario to Instance Level Public IP to a VM. Alle kurzlebigen Ports für die öffentliche IP-Adresse, die für jeden virtuellen Computer verwendet werden, sind für den virtuellen Computer verfügbar.All ephemeral ports of the public IP that are used for each VM are available to the VM. (Das steht im Gegensatz zu Szenarien, bei denen kurzlebige Ports für eine öffentliche IP-Adresse von allen virtuellen Computern, die dem entsprechenden Back-End-Pool zugeordnet sind, gemeinsam genutzt werden.) Es müssen auch Nachteile berücksichtigt werden, wie beispielsweise zusätzliche Kosten für öffentliche IP-Adressen und mögliche Auswirkungen des Whitelistings für eine große Anzahl einzelner IP-Adressen.(As opposed to scenarios where ephemeral ports of a public IP are shared with all the VMs associated with the respective backend pool.) There are trade-offs to consider, such as the additional cost of public IP addresses and the potential impact of whitelisting a large number of individual IP addresses.

Hinweis

Diese Option ist für Webworkerrollen nicht verfügbar.This option is not available for web worker roles.

Verwenden mehrerer Front-EndsUse multiple frontends

Bei Verwendung des öffentlichen Standard Load Balancers vergeben Sie mehrere Front-End-IP-Adressen für ausgehende Verbindungen und multiplizieren die Anzahl der verfügbaren SNAT-Ports.When using public Standard Load Balancer, you assign multiple frontend IP addresses for outbound connections and multiply the number of SNAT ports available. Sie müssen eine Front-End-IP-Konfiguration, eine Regel und einen Back-End-Pool anlegen, um die Programmierung von SNAT auf die öffentliche IP-Adresse des Front-Ends auszulösen.You need to create a frontend IP configuration, rule, and backend pool to trigger the programming of SNAT to the public IP of the frontend. Die Regel muss nicht funktionieren, und ein Integritätstest muss nicht erfolgreich sein.The rule does not need to function and a health probe does not need to succeed. Wenn Sie auch für eingehende (und nicht nur für ausgehende) Datenflüsse mehrere Front-Ends verwenden, sollten Sie benutzerdefinierte Integritätstests verwenden, um die Zuverlässigkeit sicherzustellen.If you do use multiple frontends for inbound as well (rather than just for outbound), you should use custom health probes well to ensure reliability.

Hinweis

In den meisten Fällen ist die Überlastung der SNAT-Ports ein Zeichen für ein schlechtes Design.In most cases, exhaustion of SNAT ports is a sign of bad design. Stellen Sie sicher, dass die Gründe für die Portüberlastung kennen, bevor Sie weitere Front-Ends verwenden, um SNAT-Ports hinzuzufügen.Make sure you understand why you are exhausting ports before using more frontends to add SNAT ports. Möglicherweise verdecken Sie ein Problem, das später zu Fehlern führen kann.You may be masking a problem which can lead to failure later.

Horizontales SkalierenScale out

Vorab zugeordnete Ports werden anhand der Größe des Back-End-Pools zugewiesen und in Ebenen gruppiert, um Unterbrechungen zu minimieren, wenn einige der Ports neu zugewiesen werden müssen, um die nächstgrößere Back-End-Pool-Größenebene abzudecken.Preallocated ports are assigned based on the backend pool size and grouped into tiers to minimize disruption when some of the ports have to be reallocated to accommodate the next larger backend pool size tier. Sie können möglicherweise die Intensität der SNAT-Portnutzung für ein bestimmtes Front-End erhöhen, indem Sie Ihren Back-End-Pool entsprechend der maximalen Größe einer bestimmten Ebene skalieren.You may have an option to increase the intensity of SNAT port utilization for a given frontend by scaling your backend pool to the maximum size for a given tier. Dies erfordert, dass die Anwendung effizient horizontal skaliert wird.This requires for the application to scale out efficiently.

Beispielsweise sind für zwei virtuelle Computer im Back-End-Pool 1024 SNAT Ports pro IP-Konfiguration verfügbar, sodass insgesamt 2048 SNAT-Ports für die Bereitstellung zulässig sind.For example, 2 virtual machines in the backend pool would have 1024 SNAT ports available per IP configuration, allowing a total of 2048 SNAT ports for the deployment. Soll die Bereitstellung auf 50 virtuelle Computer vergrößert werden, können, obwohl die Anzahl der vorab zugeordneten Ports pro virtuellem Computer konstant bleibt, insgesamt 51.200 (50 x 1024) SNAT-Ports durch die Bereitstellung genutzt werden.If the deployment were to be increased to 50 virtual machines, even though the number of preallocated ports remains constant per virtual machine, a total of 51,200 (50 x 1024) SNAT ports can be used by the deployment. Wenn Sie Ihre Bereitstellung horizontal skalieren möchten, überprüfen Sie die Anzahl von vorab zugeordneten Ports pro Ebene, um sicherzustellen, dass Sie die horizontale Skalierung entsprechend dem Maximum der jeweiligen Ebene festlegen.If you wish to scale out your deployment, check the number of preallocated ports per tier to make sure you shape your scale out to the maximum for the respective tier. Hätten Sie sich im vorherigen Beispiel zu einer horizontalen Skalierung auf 51 statt 50 Instanzen entschieden, würden Sie zur nächsten Ebene gelangen und somit weniger SNAT-Ports pro VM sowie weniger SNAT-Ports insgesamt erhalten.In the preceding example, if you had chosen to scale out to 51 instead of 50 instances, you would progress to the next tier and end up with fewer SNAT ports per VM as well as in total.

Wenn Sie horizontal auf die nächstgrößere Back-End-Poolgröße hochskalieren, erfolgt möglicherweise für einige Ihrer ausgehenden Verbindungen ein Timeout, wenn zugeordnete Ports neu zugeordnet werden müssen.If you scale out to the next larger backend pool size tier, there is potential for some of your outbound connections to time out if allocated ports have to be reallocated. Wenn Sie nur einige Ihrer SNAT-Ports verwenden, hat das Hochskalieren über die nächstgrößere Back-End-Poolgröße hinaus keine Auswirkungen.If you are only using some of your SNAT ports, scaling out across the next larger backend pool size is inconsequential. Die Hälfte der vorhandenen Ports wird bei jedem Wechsel zur nächsten Back-End-Poolebene neu zugeordnet.Half the existing ports will be reallocated each time you move to the next backend pool tier. Soll dies nicht stattfinden, müssen Sie Ihre Bereitstellung an die Ebenengröße anpassen.If you don't want this to take place, you need to shape your deployment to the tier size. Oder Sie stellen sicher, dass Ihre Anwendung geeignet erkennen und wiederholen kann.Or make sure your application can detect and retry as necessary. TCP-Keepalives können bei der Erkennung unterstützen, wenn SNAT-Ports nicht mehr funktionieren, weil sie neu zugeordnet werden.TCP keepalives can assist in detect when SNAT ports no longer function due to being reallocated.

Verwenden von Keepalives zum Zurücksetzen des Leerlauftimeouts für ausgehende VerbindungenUse keepalives to reset the outbound idle timeout

Ausgehende Verbindungen haben einen 4-Minuten-Leerlauftimeout.Outbound connections have a 4-minute idle timeout. Dieses Timeout ist nicht anpassbar.This timeout is not adjustable. Sie können jedoch Keepalives auf der Transportschicht (z. B. TCP-Keepalives) oder der Anwendungsschicht verwenden, um einen im Leerlauf befindlichen Datenfluss zu aktualisieren und den Leerlauftimeout bei Bedarf zurückzusetzen.However, you can use transport (for example, TCP keepalives) or application-layer keepalives to refresh an idle flow and reset this idle timeout if necessary.

Wenn TCP-Keepalives verwendet werden, genügt es, sie auf einer Seite der Verbindung zu aktivieren.When using TCP keepalives, it is sufficient to enable them on one side of the connection. Beispielsweise genügt es, sie nur auf der Serverseite zu aktivieren, um den Leerlauftimer des Datenflusses zurückzusetzen, und es ist nicht erforderlich, TCP-Keepalives auf beiden Seiten auszulösen.For example, it is sufficient to enable them on the server side only to reset the idle timer of the flow and it is not necessary for both sides to initiated TCP keepalives. Ähnliche Konzepte gibt es für die Anwendungsschicht, einschließlich Client/Server-Konfigurationen für Datenbanken.Similar concepts exist for application layer, including database client-server configurations. Überprüfen Sie auf der Serverseite, welche Optionen es für anwendungsspezifische Keepalives gibt.Check the server side for what options exist for application specific keepalives.

Ermitteln der von einem virtuellen Computer verwendeten öffentlichen IP-AdresseDiscovering the public IP that a VM uses

Es gibt viele Möglichkeiten, die öffentliche IP-Quelladresse einer ausgehenden Verbindung zu bestimmen.There are many ways to determine the public source IP address of an outbound connection. OpenDNS bietet einen Dienst, der die öffentliche IP-Adresse Ihrer VM anzeigen kann.OpenDNS provides a service that can show you the public IP address of your VM.

Mit dem Befehl „nslookup“ können Sie eine DNS-Abfrage für den Namen „myip.opendns.com“ an den OpenDNS-Resolver senden.By using the nslookup command, you can send a DNS query for the name myip.opendns.com to the OpenDNS resolver. Der Dienst gibt die IP-Quelladresse zurück, die zum Senden der Abfrage verwendet wurde.The service returns the source IP address that was used to send the query. Wenn Sie die folgende Abfrage auf Ihrem virtuellen Computer ausführen, wird die öffentliche IP-Adresse zurückgegeben, die für diesen virtuellen Computer verwendet wird:When you run the following query from your VM, the response is the public IP used for that VM:

nslookup myip.opendns.com resolver1.opendns.com

Verhindern der Konnektivität in ausgehender RichtungPreventing outbound connectivity

Manchmal ist es nicht wünschenswert, einem virtuellen Computer das Erstellen eines ausgehenden Datenflusses zu erlauben.Sometimes it's undesirable for a VM to be allowed to create an outbound flow. Möglicherweise müssen Sie auch verwalten, welche Ziele mit ausgehenden Datenflüssen erreicht werden bzw. welche Ziele eingehende Datenflüsse beginnen können.Or there might be a requirement to manage which destinations can be reached with outbound flows, or which destinations can begin inbound flows. In diesem Fall können Sie Netzwerksicherheitsgruppen zum Verwalten der vom virtuellen Computer erreichbaren Ziele verwenden.In this case, you can use network security groups to manage the destinations that the VM can reach. Mit Netzwerksicherheitsgruppen können Sie auch verwalten, welches öffentliche Ziel eingehende Datenflüsse initiieren kann.You can also use NSGs to manage which public destination can initiate inbound flows.

Wenn Sie eine Netzwerksicherheitsgruppe einem virtuellen Computer mit Lastenausgleich zuordnen, müssen Sie auf die Diensttags und Standardsicherheitsregeln achten.When you apply an NSG to a load-balanced VM, pay attention to the service tags and default security rules. Sie müssen sicherstellen, dass die VM Anforderungen von Integritätstests von Azure Load Balancer empfangen kann.You must ensure that the VM can receive health probe requests from Azure Load Balancer.

Wenn eine Netzwerksicherheitsgruppe Anforderungen von Integritätstests vom Standardtag AZURE_LOADBALANCER blockiert, misslingt Ihr VM-Integritätstests, weshalb die VM mit „Außer Betrieb“ markiert wird.If an NSG blocks health probe requests from the AZURE_LOADBALANCER default tag, your VM health probe fails and the VM is marked down. Der Lastenausgleich beendet das Senden neuer Datenflüsse an diese VM.Load Balancer stops sending new flows to that VM.

EinschränkungenLimitations

  • „DisableOutboundSnat“ ist bei der Konfiguration einer Lastausgleichsregel im Portal nicht als Option verfügbar.DisableOutboundSnat is not available as an option when configuring a load balancing rule in the portal. Verwenden Sie stattdessen REST, eine Vorlage oder Clienttools.Use REST, template, or client tools instead.
  • Auf Web-Workerrollen ohne VNet und andere Plattformdienste von Microsoft kann aufgrund eines Nebeneffekts der Funktionsweise von Diensten vor VNet und anderen Plattformdiensten nur zugegriffen werden, wenn interner Standard-Load Balancer verwendet wird.Web Worker Roles without a VNet and other Microsoft platform services can be accessible when only an internal Standard Load Balancer is used due to a side effect from how pre-VNet services and other platform services function. Sie dürfen sich nicht auf diesen Nebeneffekt verlassen, da der jeweilige Dienst oder die zugrunde liegende Plattform ohne vorherige Ankündigung geändert werden kann.You must not rely on this side effect as the respective service itself or the underlying platform may change without notice. Sie müssen immer davon ausgehen, dass Sie ausgehende Verbindungen, falls gewünscht, explizit erstellen müssen, wenn Sie nur einen internen Load Balancer im Tarif „Standard“ verwenden.You must always assume you need to create outbound connectivity explicitly if desired when using an internal Standard Load Balancer only. Das in diesem Artikel beschriebene Szenario 3 für Standard-SNAT ist nicht verfügbar.The default SNAT scenario 3 described in this article is not available.

Nächste SchritteNext steps