Bereitstellen von hoch verfügbaren NVAs

Azure Active Directory
Firewall
Functions
Traffic Manager
Virtual Machines

In diesem Artikel lernen Sie mehrere Optionen kennen, um mehrere virtuelle Netzwerkgeräte (Network Virtual Appliances, NVAs) hochverfügbar in Azure bereitzustellen.This article shows several options for how to deploy a set of network virtual appliances (NVAs) for high availability in Azure. Ein NVA wird normalerweise verwendet, um den Netzwerkdatenverkehrsfluss von einem Umkreisnetzwerk (auch als DMZ bekannt) zu anderen Netzwerken oder Subnetzen zu steuern.An NVA is typically used to control the flow of network traffic from a perimeter network, also known as a DMZ, to other networks or subnets. Informationen zum Implementieren einer DMZ in Azure finden Sie unter Microsoft-Clouddienste und Netzwerksicherheit.To learn about implementing a DMZ in Azure, see Microsoft cloud services and network security. Der Artikel enthält Beispielarchitekturen für nur eingehenden, nur ausgehenden sowie ein- und ausgehenden Datenverkehr.The article includes example architectures for ingress only, egress only, and both ingress and egress.

Voraussetzungen: In diesem Artikel werden grundlegende Kenntnisse über Azure-Netzwerke, Azure-Lastenausgleichsmodule und benutzerdefinierte Routen (User-Defined Routes, UDRs) vorausgesetzt.Prerequisites: This article assumes a basic understanding of Azure networking, Azure load balancers, and user-defined routes (UDRs).

Konzeptionelle Übersicht über NVANVA conceptual overview

Die folgende Abbildung veranschaulicht die Verwendung eines einzelnen virtuellen Netzwerkgeräts für den eingehenden und ausgehenden Netzwerkdatenverkehr.The following figure illustrates the use of a single NVA for ingress and egress of network traffic.

00

In dieser Architektur stellt das NVA eine sichere Netzwerkgrenze dar, indem der gesamte eingehende und ausgehende Netzwerkdatenverkehr überprüft und nur der Datenverkehr weitergeleitet wird, der die Netzwerksicherheitsregeln erfüllt.In this architecture, the NVA provides a secure network boundary by checking all inbound and outbound network traffic and passing only the traffic that meets network security rules. Aufgrund der Tatsache, dass der gesamte Netzwerkdatenverkehr über das NVA erfolgen muss, stellt das NVA eine einzelne Fehlerquelle (Single Point of Failure) im Netzwerk dar.However, the fact that all network traffic must pass through the NVA means that the NVA is a single point of failure in the network. Tritt beim NVA ein Fehler auf, steht kein anderer Pfad für den Netzwerkdatenverkehr bereit und keines der Back-End-Subnetze ist verfügbar.If the NVA fails, there is no other path for network traffic and all the back-end subnets are unavailable.

Ein einzelnes virtuelles Netzwerkgerät kann eine höhere Verfügbarkeit aufweisen, wenn Sie SSD Premium- oder Ultra-Datenträger für alle Betriebssystemdatenträger und Datenträger für Daten verwenden.A single NVA can have have higher availability if you use Premium SSD or Ultra Disk for all Operating System Disks and Data Disks. Um noch höhere Verfügbarkeitsziele zu erreichen, können Sie mehr als ein virtuelles Netzwerkgerät in einer Verfügbarkeitsgruppe oder in mehreren Verfügbarkeitszonen bereitstellen.To achieve even greater availability targets deploy more than one NVA into an Availability Set or into multiple Availability Zones. Informationen zur Vereinbarung zum Service Level für einzelne und mehrere VMs finden Sie unter SLA für Virtual Machines.To understand the service level agreement for individual and multiple VMs, see SLA for Virtual Machines. Die höchste verfügbare Betriebszeit wird erreicht, wenn mehrere virtuelle NVA-Computer in mehreren Verfügbarkeitszonen bereitgestellt werden.The highest level of uptime is achieved with multiple NVA VMs deployed across multiple Availability Zones

Übersicht über HochverfügbarkeitsarchitekturenHA architectures overview

In den folgenden Architekturen sind die für hochverfügbare NVAs erforderlichen Ressourcen und die Konfiguration angegeben:The following architectures describe the resources and configuration necessary for highly available NVAs:

LösungSolution VorteileBenefits ÜberlegungenConsiderations BereitstellungDeployment
Standard- und Hochverfügbarkeitsports für Load BalancerLoad Balancer Standard and HA ports Sorgt für den Ausgleich aller TCP- und UDP-Flüsse.Balances all TCP and UDP flows Überprüfen Sie bei den jeweiligen NVA-Anbietern, wie Hochverfügbarkeitsports optimal genutzt werden, und informieren Sie sich, welche Szenarien unterstützt werden.Confirm with NVA providers how to best use HA ports and to learn which scenarios are supported
Das Feature für Hochverfügbarkeitsports ist in allen Azure-Regionen weltweit verfügbar.HA ports feature is available in all the global Azure regions
Schnelles Failover auf fehlerfreie Instanzen mit Integritätstests pro InstanzFast failover to healthy instances, with per-instance health probes
Informieren Sie sich über Einschränkungen.Review limitations
Klicken Sie für BereitstellungsdetailsClick for Deployment Details
Eingehender Datenverkehr mit Layer-7-NVAsIngress with layer 7 NVAs Alle NVA-Knoten sind aktiv.All NVA nodes are active Erfordert ein NVA, das Verbindungen beenden und SNAT verwenden kann.Requires an NVA that can terminate connections and use SNAT
Erfordert eine separate Gruppe von NVAs für den Datenverkehr aus dem Internet und von Azure.Requires a separate set of NVAs for traffic coming from the Internet and from Azure
Kann nur für Datenverkehr verwendet werden, dessen Ursprung außerhalb von Azure liegt.Can only be used for traffic originating outside Azure
Bereitstellen der Layer-7-Architektur für eingehenden DatenverkehrDeploy the Layer 7 Ingress architecture
Ausgehender Datenverkehr mit Layer-7-NVAsEgress with layer 7 NVAs Alle NVA-Knoten sind aktiv.All NVA nodes are active Erfordert ein NVA, das Verbindungen beenden kann und die Übersetzung der Quellnetzwerkadresse (SNAT) implementiert.Requires an NVA that can terminate connections and implements source network address translation (SNAT) Bereitstellen der Layer-7-Architektur für ausgehenden DatenverkehrDeploy the Layer 7 Egress architecture
Eingehender/ausgehender Datenverkehr mit Layer-7-NVAsIngress-Egress with layer 7 NVAs Alle Knoten sind aktiv.All nodes are active
Kann den aus Azure stammenden Datenverkehr abwickeln.Able to handle traffic originated in Azure
Erfordert ein NVA, das Verbindungen beenden und SNAT verwenden kann.Requires an NVA that can terminate connections and use SNAT
Erfordert eine separate Gruppe von NVAs für den Datenverkehr aus dem Internet und von Azure.Requires a separate set of NVAs for traffic coming from the Internet and from Azure
Bereitstellen der Layer-7-Architektur für ein-/ausgehenden DatenverkehrDeploy the Layer 7 Ingress/Egress architecture
PIP/UDR ohne SNATPIP-UDR without SNAT Einzelne Gruppe von NVAs für den gesamten Datenverkehr.Single set of NVAs for all traffic
Kann den gesamten Datenverkehr abwickeln (keine Beschränkung für Portregeln).Can handle all traffic (no limit on port rules)
Erfordert keine SNAT-Konfiguration für eingehende Anforderungen.Does not require configuring SNAT for inbound requests
Aktiv/PassivActive-passive
Erfordert einen Failoverprozess.Requires a failover process
Sondierung und Failoverlogik werden außerhalb des virtuellen Netzwerks ausgeführt.Probing and failover logic run outside the virtual network
Bereitstellen des PIP-UDR-Switches mit Layer-4-NVAs ohne SNAT-ArchitekturDeploy the PIP-UDR switch with layer 4 NVAs without SNAT architecture

Standard- und Hochverfügbarkeitsports für Load BalancerLoad Balancer Standard and HA ports

Sie können Azure Load Balancer Standard mit Hochverfügbarkeitsports für Anwendungen verwenden, in denen ein Lastenausgleich für eine große Anzahl von Ports erforderlich ist.You can use an Azure Standard Load Balancer with HA ports for applications that require load balancing of large numbers of ports. Eine einzelne Lastenausgleichsregel ersetzt mehrere einzelne Lastenausgleichsregeln, die jeweils für einen Port verwendet wurden.A single load-balancing rule replaces multiple individual load-balancing rules, one for each port.

HAPortsArchHAPortsArch

Bereitstellen der Architektur für HochverfügbarkeitsportsDeploy the HA Ports architecture

Die Unterstützung für Hochverfügbarkeitsports und Bereitstellungsoptionen hängt vom jeweiligen NVA-Partneranbieter ab.Support for HA Ports and deployment options will vary by NVA partner vendor. Informationen zu Unterstützung, Einschränkungen und Bereitstellung finden Sie in der Dokumentation zu Load Balancer Standard und Hochverfügbarkeitsports sowie in der jeweiligen NVA-Dokumentation.Refer to the Load Balancer Standard & HA ports documentation and specific NVA documentation for support, limitations, and deployment details.

Eingehender Datenverkehr mit Layer-7-NVAsIngress with layer 7 NVAs

Die folgende Abbildung zeigt eine Hochverfügbarkeitsarchitektur, die eine DMZ für eingehenden Datenverkehr hinter einem Lastenausgleich mit Internetzugriff implementiert.The following figure shows a high availability architecture that implements an ingress DMZ behind an internet-facing load balancer. Diese Architektur bietet Konnektivität für Azure-Workloads für den Layer-7-Datenverkehr, z. B. HTTP oder HTTPS:This architecture is designed to provide connectivity to Azure workloads for layer 7 traffic, such as HTTP or HTTPS:

11

Der Vorteil dieser Architektur ist, dass alle NVAs aktiv sind, und bei Ausfall eines NVA wird der Netzwerkdatenverkehr durch den Lastenausgleich an das andere NVA weitergeleitet.The benefit of this architecture is that all NVAs are active, and if one fails the load balancer directs network traffic to the other NVA. Beide NVAs leiten den Datenverkehr an den internen Lastenausgleich, sodass der Datenverkehr weiter fließt, solange ein NVA aktiv ist.Both NVAs route traffic to the internal load balancer so as long as one NVA is active, traffic continues to flow. Die NVAs sind erforderlich, um den für virtuelle Computer der Webebene vorgesehenen SSL-Datenverkehr zu beenden.The NVAs are required to terminate SSL traffic intended for the web tier VMs. Diese NVAs können nicht auf die Handhabung des lokalen Datenverkehrs ausgeweitet werden, da für den lokalen Datenverkehr eine andere dedizierte Gruppe von NVAs mit eigenen Netzwerkrouten erforderlich ist.These NVAs cannot be extended to handle on-premises traffic because on-premises traffic requires another dedicated set of NVAs with their own network routes.

Bereitstellen der Layer-7-Architektur für eingehenden DatenverkehrDeploy the Layer 7 Ingress architecture

Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe für die Bereitstellung zu erstellen.Use the following command to create a resource group for the deployment. Klicken Sie auf die Schaltfläche Testen, um eine eingebettete Shell zu verwenden.Click the Try it button to use an embedded shell.

az group create --name ha-nva-l7i --location eastus

Führen Sie den folgenden Befehl aus, um die Layer-7-Beispielarchitektur für eingehenden Datenverkehr bereitzustellen.Run the following command to deploy the Layer 7 Ingress example architecture.

az deployment group create --resource-group ha-nva-l7i \
    --template-uri https://raw.githubusercontent.com/mspnp/samples/master/solutions/ha-nva/azuredeploy.json \
    --parameters deployIngressAppGatewayWebLoadBalancer=true deployEgressLoadBalancerNva=false

Ausführliche Informationen und zusätzliche Bereitstellungsoptionen finden Sie in den ARM-Vorlagen (Azure Resource Manager), die für die Bereitstellung dieser Lösung verwendet werden.For detailed information and additional deployment options, see the Azure Resource Manager templates (ARM templates) used to deploy this solution.

Ausgehender Datenverkehr mit Layer-7-NVAsEgress with layer 7 NVAs

Die vorherige Architektur kann so erweitert werden, dass sie eine ausgehende DMZ für Anforderungen umfasst, die aus der Azure-Workload stammen.The previous architecture can be expanded to provide an egress DMZ for requests originating in the Azure workload. Die folgende Architektur bietet Hochverfügbarkeit der NVAs in der DMZ für den Layer-7-Datenverkehr, z. B. HTTP oder HTTPS:The following architecture is designed to provide high availability of the NVAs in the DMZ for layer 7 traffic, such as HTTP or HTTPS:

22

In dieser Architektur wird der gesamte aus Azure stammende Datenverkehr über eine Betriebssystem-Proxykonfiguration an einen internen Lastenausgleich weitergeleitet.In this architecture, all traffic originating in Azure is directed to an internal load balancer via OS proxy configuration. Der Lastenausgleich verteilt ausgehende Anforderungen auf eine Gruppe von NVAs.The load balancer distributes outgoing requests between a set of NVAs. Diese NVAs leiten den Datenverkehr über ihre jeweiligen öffentlichen IP-Adressen an das Internet weiter.These NVAs direct traffic to the Internet using their individual public IP addresses.

Bereitstellen der Layer-7-Architektur für ausgehenden DatenverkehrDeploy the Layer 7 Egress architecture

Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe für die Bereitstellung zu erstellen.Use the following command to create a resource group for the deployment. Klicken Sie auf die Schaltfläche Testen, um eine eingebettete Shell zu verwenden.Click the Try it button to use an embedded shell.

az group create --name ha-nva-l7e --location eastus

Führen Sie den folgenden Befehl aus, um die Layer-7-Beispielarchitektur für ausgehenden Datenverkehr bereitzustellen.Run the following command to deploy the Layer 7 Egress example architecture.

az deployment group create --resource-group ha-nva-l7e \
    --template-uri https://raw.githubusercontent.com/mspnp/samples/master/solutions/ha-nva/azuredeploy.json \
    --parameters deployIngressAppGatewayWebLoadBalancer=false deployEgressLoadBalancerNva=true

Ausführliche Informationen und zusätzliche Bereitstellungsoptionen finden Sie in den ARM-Vorlagen (Azure Resource Manager), die für die Bereitstellung dieser Lösung verwendet werden.For detailed information and additional deployment options, see the Azure Resource Manager templates (ARM templates) used to deploy this solution.

Ein-/ausgehender Datenverkehr mit Layer-7-NVAsIngress/Egress with layer 7 NVAs

Bei den beiden vorherigen Architekturen gab es eine separate DMZ für eingehenden und ausgehenden Datenverkehr.In the two previous architectures, there was a separate DMZ for ingress and egress. Die folgende Architektur veranschaulicht das Erstellen einer DMZ, die sowohl für eingehenden als auch ausgehenden Layer-7-Datenverkehr, z. B. HTTP oder HTTPS, verwendet werden kann:The following architecture demonstrates how to create a DMZ that can be used for both ingress and egress for layer 7 traffic, such as HTTP or HTTPS:

33

In dieser Architektur verarbeiten die NVAs eingehende Anforderungen vom Anwendungsgateway.In this architecture, the NVAs process incoming requests from the application gateway. Die NVAs verarbeiten auch ausgehende Anforderungen von den Workload-VMs im Back-End-Pool des Lastenausgleichs.The NVAs also process outgoing requests from the workload VMs in the back-end pool of the load balancer. Da eingehender Datenverkehr mit einem Anwendungsgateway und ausgehender Datenverkehr mit einem Lastenausgleich weitergeleitet wird, sind die NVAs für die Bewahrung der Sitzungsaffinität zuständig.Because incoming traffic is routed with an application gateway and outgoing traffic is routed with a load balancer, the NVAs are responsible for maintaining session affinity. Das heißt, dass das Anwendungsgateway eine Zuordnung von eingehenden und ausgehenden Anforderungen verwaltet, damit es die richtige Antwort an den ursprünglichen Anforderer weiterleiten kann.That is, the application gateway maintains a mapping of inbound and outbound requests so it can forward the correct response to the original requestor. Der interne Lastenausgleich hat jedoch keinen Zugriff auf die Zuordnungen des Anwendungsgateways und verwendet eine eigene Logik zum Senden von Antworten an die NVAs.However, the internal load balancer does not have access to the application gateway mappings, and uses its own logic to send responses to the NVAs. Es ist möglich, dass der Lastenausgleich eine Antwort an ein NVA sendet, das die Anforderung nicht ursprünglich vom Anwendungsgateway empfangen hat.It's possible the load balancer could send a response to an NVA that did not initially receive the request from the application gateway. In diesem Fall müssen die NVAs kommunizieren und die Antwort untereinander übertragen, damit das richtige NVA die Antwort an das Anwendungsgateway weiterleiten kann.In this case, the NVAs must communicate and transfer the response between them so the correct NVA can forward the response to the application gateway.

Hinweis

Sie können das Problem des asymmetrischen Routings auch beheben, indem Sie sicherstellen, dass die NVAs eine eingehende Übersetzung der Quellnetzwerkadresse (SNAT) ausführen.You can also solve the asymmetric routing issue by ensuring the NVAs perform inbound source network address translation (SNAT). Dadurch wird die ursprüngliche Quell-IP des Anforderers durch eine der IP-Adressen des NVA ersetzt, der für den eingehenden Datenfluss verwendet wird.This would replace the original source IP of the requestor to one of the IP addresses of the NVA used on the inbound flow. Auf diese Weise ist sichergestellt, dass Sie mehrere NVAs gleichzeitig verwenden und dabei die Routensymmetrie beibehalten können.This ensures that you can use multiple NVAs at a time, while preserving the route symmetry.

Bereitstellen der Layer-7-Architektur für ein-/ausgehenden DatenverkehrDeploy the Layer 7 Ingress/Egress architecture

Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe für die Bereitstellung zu erstellen.Use the following command to create a resource group for the deployment. Klicken Sie auf die Schaltfläche Testen, um eine eingebettete Shell zu verwenden.Click the Try it button to use an embedded shell.

az group create --name ha-nva-l7ie --location eastus

Führen Sie den folgenden Befehl aus, um die Layer-7-Beispielarchitektur für ein-/ausgehenden Datenverkehr bereitzustellen.Run the following command to deploy the Layer 7 Ingress/Egress example architecture.

az deployment group create --resource-group ha-nva-l7ie \
    --template-uri https://raw.githubusercontent.com/mspnp/samples/master/solutions/ha-nva/azuredeploy.json

Ausführliche Informationen und zusätzliche Bereitstellungsoptionen finden Sie in den ARM-Vorlagen (Azure Resource Manager), die für die Bereitstellung dieser Lösung verwendet werden.For detailed information and additional deployment options, see the Azure Resource Manager templates (ARM templates) used to deploy this solution.

PIP-UDR-Switch mit Layer-4-NVAs ohne SNATPIP-UDR switch with layer 4 NVAs without SNAT

Bei dieser Architektur werden zwei virtuelle Azure-Computer verwendet, um die NVA-Firewall in einer Aktiv/Passiv-Konfiguration zu hosten, die automatische Failovervorgänge unterstützt, aber keine Übersetzung der Quellnetzwerkadresse (Source Network Address Translation, SNAT) benötigt.This architecture uses two Azure virtual machines to host the NVA firewall in an active-passive configuration that supports automated failover but does not require Source Network Address Translation (SNAT).

55

Diese Lösung ist für Azure-Kunden konzipiert, die SNAT nicht für eingehende Anforderungen in Ihrer NVA-Firewall konfigurieren können.This solution is designed for Azure customers who cannot configure SNAT for inbound requests on their NVA firewalls. SNAT blendet die ursprüngliche Quellclient-IP-Adresse aus.SNAT hides the original source client IP address. Wenn Sie die ursprünglichen IP-Adressen protokollieren oder innerhalb anderer mehrstufiger Sicherheitskomponenten hinter Ihren NVAs verwenden möchten, ist diese Lösung grundsätzlich geeignet.If you need to log the original IPs or used them within other layered security components behind your NVAs, this solution offers a basic approach.

Das Failover von UDR-Tabelleneinträgen wird mittels einer Adresse für den nächsten Hop automatisiert, die auf die IP-Adresse einer Schnittstelle des virtuellen Computers mit der aktiven NVA-Firewall festgelegt ist.The failover of UDR table entries is automated by a next-hop address set to the IP address of an interface on the active NVA firewall virtual machine. Die Logik für das automatische Failover wird in einer Funktions-App gehostet, die Sie mithilfe von Azure Functions erstellen.The automated failover logic is hosted in a function app that you create using Azure Functions. Der Failovercode wird als serverlose Funktion in Azure Functions ausgeführt.The failover code runs as a serverless function inside Azure Functions. Die Bereitstellung ist unkompliziert und kostengünstig und lässt sich einfach verwalten und anpassen.Deployment is convenient, cost-effective, and easy to maintain and customize. Und da die Funktions-App in Azure Functions gehostet wird, ist sie nicht vom virtuellen Netzwerk abhängig.In addition, the function app is hosted within Azure Functions, so it has no dependencies on the virtual network. Wenn sich Änderungen am virtuellen Netzwerk auf die NVA-Firewalls auswirken, wird die Funktions-App weiterhin unabhängig ausgeführt.If changes to the virtual network impact the NVA firewalls, the function app continues to run independently. Auch Tests sind genauer, da sie außerhalb des virtuellen Netzwerks und unter Verwendung der gleichen Route ausgeführt werden, die auch für eingehende Clientanforderungen verwendet wird.Testing is more accurate as well, because it takes place outside the virtual network using the same route as the inbound client requests.

Die Verfügbarkeit der NVA-Firewall wird vom Code der Funktions-App auf zwei Arten überprüft:To check the availability of the NVA firewall, the function app code probes it in one of two ways:

  • Überwachen des Zustands der virtuellen Azure-Computer, die die NVA-Firewall hostenBy monitoring the state of the Azure virtual machines hosting the NVA firewall.

  • Testen, ob in der Firewall ein offener Port zum Back-End-Webserver vorhanden ist.By testing whether there is an open port through the firewall to the back-end web server. Für diese Option muss das virtuelle Netzwerkgerät über PIP einen Socket verfügbar machen, den der Code der Funktions-App testen kann.For this option, the NVA must expose a socket via PIP for the function app code to test.

Der gewünschte Test wird beim Konfigurieren der Funktions-App ausgewählt.You choose the type of probe you want to use when you configure the function app.

Bereitstellen des PIP-UDR-Switches mit Layer-4-NVAs ohne SNAT-ArchitekturDeploy the PIP-UDR switch with layer 4 NVAs without SNAT architecture

Für diese Bereitstellung sind mehrere Bereitstellungsschritte und eine manuelle Konfiguration erforderlich.This deployment requires several deployment steps and manual configuration. Weitere Informationen finden Sie im GitHub-Repository.For details see the GitHub repository.

Nächste SchritteNext steps