Freigeben über


Auf der Tageszeit basierende DNS-Antworten mit einem Azure-Cloud-App-Server

Anhand dieses Themas können Sie lernen, wie Sie den Anwendungsdatenverkehr auf verschiedene geografisch verteilte Instanzen einer Anwendung verteilen, indem Sie auf der Uhrzeit basierende DNS-Richtlinien verwenden.

Dieses Szenario ist in Situationen nützlich, in denen Sie Datenverkehr in einer bestimmten Zeitzone an alternative Anwendungsserver weiterleiten möchten, z. B. Webserver, die in Microsoft Azure gehostet werden und sich in einer anderen Zeitzone befinden. Dadurch können Sie in Spitzenzeiten, wenn die primären Server mit Datenverkehr überladen sind, über Anwendungsinstanzen hinweg einen Lastenausgleich in Bezug auf den Datenverkehr vornehmen.

Hinweis

Informationen zur Verwendung der DNS-Richtlinie für intelligente DNS-Antworten ohne Verwendung von Azure finden Sie unter Verwenden der DNS-Richtlinie für intelligente DNS-Antworten basierend auf der Uhrzeit.

Beispiel für intelligente, auf der Uhrzeit basierende DNS-Antworten mit einem Azure-Cloud-App-Server

Im Folgenden finden Sie ein Beispiel dafür, wie Sie die DNS-Richtlinie verwenden können, um in Bezug auf den Anwendungsdatenverkehr einen Lastenausgleich basierend auf der Uhrzeit vorzunehmen.

In diesem Beispiel wird das fiktive Unternehmen Contoso Gift Services verwendet, das weltweit Online-Geschenklösungen über die Website contosogiftservices.com anbietet.

Die Website contosogiftservices.com wird nur in einem einzigen lokalen Rechenzentrum in Seattle (mit der öffentlichen IP-Adresse 192.68.30.2) gehostet.

Auch der DNS-Server befindet sich im lokalen Rechenzentrum.

Aufgrund eines kürzlich erfolgten Anstiegs des Geschäfts verzeichnet contosogiftservices.com täglich eine höhere Anzahl von Besuchern, und einige der Kunden haben Probleme mit der Serviceverfügbarkeit gemeldet.

Contoso Gift Services führt eine Websiteanalyse durch und stellt fest, dass jeden Abend zwischen 18:00 Uhr und 21:00 Uhr Ortszeit der Datenverkehr zum Webserver in Seattle plötzlich ansteigt. Der Webserver kann nicht so skaliert werden, dass der erhöhte Datenverkehr zu diesen Spitzenzeiten verarbeitet werden kann. Dies führt zu einem Denial of Service für Kunden.

Damit gewährleistet ist, dass Kunden die Website contosogiftservices.com mit ordnungsgemäßer Systemreaktion nutzen können, beschließt das Unternehmen Contoso Gift Services, dass es während dieser Stunden einen virtuellen Computer (Virtual Machine, VM) in Microsoft Azure anmietet, um eine Kopie des Webservers zu hosten.

Contoso Gift Services erhält von Azure eine öffentliche IP-Adresse für den virtuellen Computer (192.68.31.44) und entwickelt die Automatisierungsfunktion, um den Webserver täglich zwischen 17:00 Uhr und 22:00 Uhr in Azure bereitzustellen, sodass ein Notfallzeitraum von einer Stunde einkalkuliert wird.

Hinweis

Weitere Informationen zu Azure-VMs finden Sie unter Dokumentation zu virtuellen Computern.

Die DNS-Server sind mit Zonenbereichen und DNS-Richtlinien konfiguriert, sodass täglich zwischen 17:00 Uhr und 21:00 Uhr 30 % der Abfragen an die Instanz des Webservers gesendet werden, der in Azure ausgeführt wird.

Die folgende Abbildung zeigt dieses Szenario.

DNS-Richtlinie für Uhrzeitantworten

Funktionsweise von intelligenten, auf der Uhrzeit basierenden DNS-Antworten mit einem Azure-App-Server

In diesem Artikel wird veranschaulicht, wie Sie den DNS-Server so konfigurieren, dass DNS-Abfragen mit zwei unterschiedlichen IP-Adressen des Anwendungsservers beantwortet werden: Ein Webserver befindet sich in Seattle und der andere befindet sich in einem Azure-Rechenzentrum.

Nach der Konfiguration einer neuen DNS-Richtlinie, die auf den Spitzenzeiten von 18:00 Uhr bis 21:00 Uhr in Seattle basiert, werden vom DNS-Server siebzig Prozent der DNS-Antworten an Clients gesendet, die die IP-Adresse des Webservers aus Seattle enthalten, und dreißig Prozent der DNS-Antworten werden an Clients gesendet, die die IP-Adresse des Azure-Webservers enthalten. Dadurch wird der Clientdatenverkehr an den neuen Azure-Webserver weitergeleitet und verhindert, dass der Webserver in Seattle überlastet wird.

Zu allen anderen Tageszeiten erfolgt die normale Abfrageverarbeitung im Standardzonenbereich, und die Antworten werden aus diesem gesendet. Der Standardzonenbereich enthält dabei einen Eintrag für den Webserver im lokalen Rechenzentrum.

Durch die Gültigkeitsdauer von 10 Minuten im Azure-Eintrag wird sichergestellt, dass der Eintrag aus dem LDNS-Cache abgelaufen ist, bevor der virtuelle Computer aus Azure entfernt wird. Ein Vorteil einer solchen Skalierung besteht darin, dass die DNS-Daten auf dem lokalen System bleiben und nach Bedarf horizontal auf die Azure-Instanz skaliert werden können.

Konfigurieren der DNS-Richtlinie für intelligente DNS-Antworten basierend auf der Uhrzeit mit Azure-App-Server

Führen Sie die folgenden Schritte aus, um die DNS-Richtlinie für Abfrageantworten zu konfigurieren, die auf einem an der Uhrzeit orientierten Lastenausgleich für Anwendungsdatenverkehr basieren.

Hinweis

Sie müssen diese Schritte auf dem DNS-Server ausführen, der für die Zone, die Sie konfigurieren möchten, autoritativ ist. Sie müssen Mitglied der Gruppe DnsAdmins oder einer entsprechenden Gruppe sein, um das folgende Verfahren ausführen zu können.

Die folgenden Abschnitte enthalten detaillierte Konfigurationsanweisungen.

Wichtig

Die folgenden Abschnitte enthalten Beispiele für Windows PowerShell-Befehle, die Beispielwerte für viele Parameter enthalten. Achten Sie darauf, dass Sie Beispielwerte in diesen Befehlen durch Werte ersetzen, die für Ihre Bereitstellung geeignet sind, bevor Sie diese Befehle ausführen.

Erstellen der Zonenbereiche

Ein Zonenbereich ist eine eindeutige Instanz der Zone. Eine DNS-Zone kann mehrere Zonenbereiche umfassen, wobei jeder Zonenbereich eigene DNS-Einträge enthält. Ein und derselbe Eintrag kann in mehreren Bereichen mit unterschiedlichen oder denselben IP-Adressen vorhanden sein.

Hinweis

Standardmäßig ist ein Zonenbereich in den DNS-Zonen vorhanden. Dieser Zonenbereich hat denselben Namen wie die Zone, und DNS-Legacyvorgänge funktionieren in diesem Bereich.

Sie können den folgenden Beispielbefehl verwenden, um einen Zonenbereich zum Hosten der Azure-Einträge zu erstellen.

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "AzureZoneScope"

Weitere Informationen finden Sie unter Add-DnsServerZoneScope.

Hinzufügen von Einträgen zu den Zonenbereichen

Der nächste Schritt besteht darin, die Einträge, die den Webserverhost repräsentieren, in den Zonenbereichen hinzuzufügen.

In AzureZoneScope wird der Eintrag www.contosogiftservices.com mit der IP-Adresse 192.68.31.44 hinzugefügt, die sich in der öffentlichen Azure-Cloud befindet.

Entsprechend wird im Standardzonenbereich (contosogiftservices.com) ein Eintrag (www.contosogiftservices.com) mit der IP-Adresse 192.68.30.2 des Webservers hinzugefügt, der im lokalen Rechenzentrum in Seattle ausgeführt wird.

Im zweiten Cmdlet unten ist der Parameter –ZoneScope nicht enthalten. Aus diesem Grund werden die Einträge im Standard-ZoneScope hinzugefügt.

Darüber hinaus bleibt die Gültigkeitsdauer des Eintrags für Azure-VMs bei 600s (10 Minuten), sodass der Eintrag nicht länger im LDNS-Cache zwischenspeichert wird, da dies den Lastenausgleich beeinträchtigen würde. Außerdem stehen die Azure-VMs eine weitere Stunde lang zu Notfallzwecken zur Verfügung, damit gewährleistet ist, dass die Auflösung auch für Clients mit zwischengespeicherten Einträgen möglich ist.

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.31.44" -ZoneScope "AzureZoneScope" –TimeToLive 600

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.30.2"

Weitere Informationen finden Sie unter Add-DnsServerResourceRecord.

Erstellen der DNS-Richtlinien

Nachdem die Zonenbereiche erstellt wurden, können Sie DNS-Richtlinien erstellen, durch die die eingehenden Abfragen auf diese Bereiche verteilt werden, sodass Folgendes geschieht.

  1. Von 18:00 Uhr bis 21:00 Uhr täglich erhalten 30 % der Clients in der DNS-Antwort die IP-Adresse des Webservers im Azure-Rechenzentrum, während 70 % der Clients die IP-Adresse des lokalen Webservers in Seattle erhalten.
  2. Zu allen anderen Zeiten erhalten alle Clients die IP-Adresse des lokalen Webservers in Seattle.

Die Uhrzeit muss in der Ortszeit des DNS-Servers angegeben werden.

Sie können den folgenden Beispielbefehl verwenden, um die DNS-Richtlinie zu erstellen.

Add-DnsServerQueryResolutionPolicy -Name "Contoso6To9Policy" -Action ALLOW -ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00” -ZoneName "contosogiftservices.com" –ProcessingOrder 1

Weitere Informationen finden Sie unter Add-DnsServerQueryResolutionPolicy.

Jetzt ist der DNS-Server mit den erforderlichen DNS-Richtlinien konfiguriert, sodass Datenverkehr basierend auf der Uhrzeit an den Azure-Webserver umgeleitet wird.

Beachten Sie den Ausdruck:

-ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00”

Dieser Ausdruck konfiguriert den DNS-Server mit einer Kombination aus ZoneScope und Gewichtung, die den DNS-Server anweist, die IP-Adresse des Webservers in Seattle während siebzig Prozent des Zeitraums und die IP-Adresse des Azure-Webservers während dreißig Prozent des Zeitraums zu senden.

Sie können Tausende von DNS-Richtlinien für Ihre Anforderungen an die Datenverkehrsverwaltung erstellen. Alle neuen Richtlinien werden bei eingehenden Abfragen dynamisch angewendet – ohne dass der DNS-Server neu gestartet werden muss.