Was ist der Unterschied zwischen Anycast und GeoDNS / GeoIP wrt HA?


17

Basierend auf der Wikipedia-Beschreibung von Anycast umfasst diese sowohl die Verteilung einer Zuordnung von Domänennamen zu vielen IP-Adressen auf viele DNS-Server als auch die Beantwortung von Fragen an Clients mit dem geografisch nahesten (oder schnellsten) Server.

Im Kontext einer global verteilten, hochverfügbaren Website wie google.com (oder eines CDN-Dienstes mit vielen globalen Edge-Standorten) klingt dies nach den beiden wichtigsten Funktionen, die benötigt werden.

DNS-Dienste wie Amazon Route53, EasyDNS und DNSMadeEasy werben als Anycast-fähige Netzwerke.

Daher gehe ich davon aus, dass jeder dieser DNS-Dienste mir diese beiden Hauptmerkmale transparent bietet: Multi-IP-zu-Domain-Zuordnung UND Routing von Clients zum nächstgelegenen Knoten.

Allerdings scheint jeder dieser Dienste diese beiden Funktionen zu trennen, zum zweiten einem Bezug als „GeoDNS“, „GeoIP“ oder „Globalen Verkehr Director“ und Ladung Extra für den Dienst (Clients zum nächsten Knoten Routing).

Wenn ein Hauptmandant eines Anycast-fähigen Systems dies bereits tun soll, warum ist diese Funktionalität als zusätzliche Funktion vorgesehen? Was macht diese "GeoDNS" -Funktion, die ein standardmäßiger Anycast-DNS-Dienst nicht kann (gemäß der Definition von Anycast aus Wikipedia - ich verstehe, was beworben wird, nur nicht, warum dies nicht bereits impliziert ist)?

Ich bin besonders verwirrt, wenn ein DNS-Dienst wie Route53, der dieses nebulöse "GeoDNS" -Feature nicht unterstützt, folgende Funktionen auflistet:

Schnell - Route 53 verwendet ein globales Anycast-Netzwerk von DNS-Servern auf der ganzen Welt und leitet Ihre Benutzer abhängig von den Netzwerkbedingungen automatisch an den optimalen Standort weiter. Infolgedessen bietet der Dienst eine geringe Abfrageverzögerung für Ihre Endbenutzer sowie eine geringe Aktualisierungsverzögerung für Ihre DNS-Datensatzverwaltungsanforderungen.

... was genau so klingt wie das, was GeoDNS tun soll, aber das geografische Leiten von Clients ist etwas, das sie explizit noch nicht unterstützen .

Letztendlich suche ich für einen DNS-Anbieter die beiden folgenden Features:

  1. Einem Domain-Namen mehrere IP-Adressen zuordnen (wie google.com, amazon.com usw.)
  2. Verwenden Sie einen DNS-Dienst, der auf Clientanforderungen für diese Domäne mit der IP-Adresse des nächstgelegenen Servers zum Anfragenden antwortet.

Wie bereits erwähnt, scheint dies alles Teil eines "Anycast" -DNS-Dienstes zu sein (alle diese Dienste sind), aber die Funktionen und das Marketing, die ich darin sehe, lassen etwas anderes vermuten, sodass ich denke, dass ich ein bisschen mehr darüber lernen muss, wie DNS funktioniert, bevor eine Bereitstellungsauswahl getroffen wird.

Vielen Dank im Voraus für eventuelle Klarstellungen.

Antworten:


17

Der Hauptvorteil von GeoDNS besteht darin, dass derselbe Name anhand der IP-Adresse des Anforderers in verschiedene IP-Adressen aufgelöst wird.

Ein Anycasted-DNS-Server gibt dieselbe IP-Adresse zurück, unabhängig davon, wer die Abfrage vornimmt .

Die beiden arbeiten auf verschiedenen Netzwerkebenen. Anycast liegt unter GeoDNS, da es keinen Sinn für den Standort der anfordernden IP-Adresse hat, sondern nur für ihren Platz im Netzwerkdiagramm. Was sich möglicherweise in der Nähe des DNS-Servers befindet, befindet sich möglicherweise nicht in der Nähe der angeforderten Ressource , und der Anycasted DNS-Server kann dies nicht mitteilen.

GeoDNS verwendet eine Karte der Ressourcenstandorte und führt eine Logik durch, um zu bestimmen, welche dieser Ressourcen einer bestimmten anfordernden IP-Adresse am nächsten liegt. Anschließend wird diese IP-Adresse zurückgegeben.

Wenn Sie Ihre DNS-Server nicht mit Ihren Netzwerkressourcen kombinieren, befindet sich der Standort des DNS-Servers nicht immer in der Nähe der Ressource. Daher ist die Verwendung von Anycast als Datenlokalitätsmethode weniger effektiv als die direkte Verwendung von GeoDNS.


Genau richtig, ich habe nicht einmal überlegt, wie man die Adresse in zwei Schritten auflöst (zuerst den DNS-Server selbst, dann den Zielserver). Vielen Dank!
Riad Kalla

6

Der BGP-Anycast-Aspekt ermöglicht es Clients, eine Anforderung an einen bestimmten DNS-Server zu senden und diese Anforderung mithilfe der BGP-Routingtabelle an eine nahe gelegene Instanz des DNS-Servers zu senden, um hoffentlich eine schnelle Antwort zu erhalten.

Ein normaler alter DNS-Server, der geografisch verteilt und Anycast-fähig ist, kann jedoch je nach Standort des anfragenden Clients nicht unterschiedlich auf Anfragen reagieren. Dies ist die zusätzliche Funktion, die diese "Geo-DNS" -Dienste für zusätzliche Kosten bereitstellen Sie können Kunden an eine Instanz eines Dienstes senden, der ihnen nahe steht.

Der Grund für diese Funktion ist, dass BGP-Anycast für etwas zustandsloses wie DNS einwandfrei funktioniert, bei dem es schnell und schmutzig ist und keine Verbindung oder Sitzungspersistenz benötigt. Für etwas wie einen Webserver möchten Sie jedoch Instanzen auf der ganzen Welt festhalten und stellen Sie sicher, dass ein bestimmter Client an einer bestimmten Instanz festhält - Routingänderungen in der globalen BGP-Tabelle während der Verbindung würden TCP-Verbindungen unterbrechen, Webanwendungssitzungen unterbrechen und im Allgemeinen Chaos verursachen. Aus diesem Grund wird für Webserver in der Regel kein Anycast verwendet.

Es ist am besten, einem Benutzer in County X eine IP-Adresse für eine Instanz in Country X über DNS bereitzustellen. Dies ist der Grund, warum Sie mit einem Geo-DNS-Dienst Geld verdienen.


4

In der Regel verfügen Sie über mehrere DNS-Server. Ein Client wählt einen zufällig aus und fragt ihn nach der IP-Adresse Ihres Webservers. Dies ist gut, wenn der DNS-Server in der Nähe des Clients ist, aber schlecht, wenn der DNS-Server - wie häufig - weit vom Client entfernt ist. In beiden Fällen erhält der Client dieselbe IP-Adresse als Antwort.

Mit Anycast können mehrere Server auf dieselbe IP-Adresse antworten. Bei Anycast-DNS antwortet der nächstgelegene / schnellste Nameserver, wenn ein Client versucht, mit Ihrem Nameserver zu kommunizieren. Dies bedeutet, dass der Client immer eine schnelle Antwort auf seine DNS-Anfrage erhält. Er erhält jedoch immer die gleiche Antwort auf seine DNS-Abfrage - die IP Ihres Servers. Wenn Ihr Server weit vom Client entfernt ist, ist die Client-Erfahrung möglicherweise nicht optimal.

Mit GeoDNS kann ein DNS-Server mit einer anderen IP-Adresse antworten, je nachdem, wo sich der Client befindet. (Dies erfordert natürlich, dass Sie über mehrere geografisch verteilte Server verfügen.) GeoDNS impliziert kein Anycast, obwohl Sie normalerweise beide bereitstellen, sodass ein Client seine DNS-Anfrage von einem geografisch nahe gelegenen DNS-Server beantwortet bekommt, der dann mit antwortet Die IP-Adresse eines geografisch nahe gelegenen Webservers.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.