Was ist "anycast" und wie ist es hilfreich?


85

Ich hatte bis vor ein paar Sekunden noch nie von Anycast gehört, als ich " Was sind coole oder nützliche Server- / Netzwerk-Tricks? " Las .

Der Wikipedia- Artikel " Anycast " darüber ist recht formal und vermittelt keine Vorstellung davon, wie er verwendet werden würde.

Kann jemand in ein paar informellen Sätzen erklären, was "anycast" ist, wie Sie es konfigurieren (im Allgemeinen) und welche Vorteile es hat (was erleichtert es)?

Antworten:


88

Anycast ist eine Netzwerktechnik, bei der dasselbe IP-Präfix von mehreren Standorten aus angekündigt wird. Das Netzwerk entscheidet dann, an welchen Ort eine Benutzeranforderung weitergeleitet werden soll, basierend auf den Weiterleitungsprotokollkosten und möglicherweise der "Integrität" der Werbeserver.

Anycast bietet mehrere Vorteile. Erstens stellen Benutzer eines Anycast-Dienstes (DNS ist ein hervorragendes Beispiel) im eingeschwungenen Zustand immer eine Verbindung zum (aus Sicht des Routing-Protokolls) nächstgelegenen DNS-Server her. Dies reduziert die Latenz und sorgt für einen Lastenausgleich (vorausgesetzt, Ihre Kunden sind gleichmäßig in Ihrem Netzwerk verteilt).

Ein weiterer Vorteil ist die einfache Konfigurationsverwaltung. Anstatt je nach Einsatzort eines Servers / einer Arbeitsstation (Asien, Amerika, Europa) unterschiedliche DNS-Server konfigurieren zu müssen, verfügen Sie über eine IP-Adresse, die an jedem Standort konfiguriert ist.

Abhängig davon, wie Anycast implementiert ist, kann es auch eine hohe Verfügbarkeit bieten. Wenn für die Ankündigung der Anycast-Route eine Art Integritätsprüfung erforderlich ist (z. B. eine DNS-Abfrage für eine bekannte Domain in diesem Beispiel), kann die Route entfernt werden, sobald ein Server ausfällt. Sobald das Netzwerk wieder konvergiert, werden Benutzeranforderungen nahtlos an die nächstgelegene DNS-Instanz weitergeleitet, ohne dass ein manueller Eingriff oder eine Neukonfiguration erforderlich ist.

Ein letzter Vorteil ist der der horizontalen Skalierung. Wenn Sie feststellen, dass ein Server überlastet ist, stellen Sie einfach einen anderen an einem Ort bereit, an dem er einen Teil der Anforderungen des überlasteten Servers entgegennehmen kann. Auch dies kann sehr schnell erfolgen, da keine Client-Konfiguration erforderlich ist.


Verwendet Anycast mehr Bandbreite als Unicast? Stellen Sie sich vor, wir haben tausend Server, die alle dieselbe IP-Adresse haben. Wenn wir ein Paket an diese Adresse senden , würde es nicht mehr Bandbreite beanspruchen als Unicasting?
Pacerier

5
Nein - Verkehr, der an eine Anycast-Adresse gesendet wird, kommt nur an einem Ort an, an dem die Adresse angekündigt wird. Sie denken möglicherweise an Multicast , bei dem an eine Multicast-Gruppenadresse gesendete Pakete an alle Hosts gesendet werden, die an dieser Gruppe interessiert sind.
Murali Suriar

Wird das Problem " Statt je nach Einsatzort eines Servers / einer Arbeitsstation unterschiedliche DNS-Server konfigurieren zu müssen " nicht durch Domänennamen gelöst? Was bringt es also, wenn Anycast einfach dupliziert, was Domain-Namen bereits tun?
Pacerier

1
@Pacerier - Sie können keine Domain-Namen verwenden, um Ihren DNS-Server zu finden - das ist eine zirkuläre Abhängigkeit. Beispiel: Konfigurieren Sie dns.foo.com. als DNS-Server. An welche IP-Adresse sende ich Anfragen an dns.foo.com? Ich weiß, ich werde es in DNS nachschlagen. etc.
Murali Suriar

32

Eines der Dinge, die mich beim Verständnis von "anycast" oft verwirrten, ist, dass es sich bei der praktischen Umsetzung in der Regel um zwei Beispiele handelt:

  1. Router, die BGP verwenden , um denselben IP-Block über mehrere AS- Pfade zu bewerben , um Benutzer grob zu einer "näheren" Site zu leiten. Gleichzeitig wird ein nahezu transparentes Failover zu den anderen Standorten ermöglicht, indem die Routen nur von einem problematischen Standort zurückgezogen werden. Dies kann für nahezu jedes Protokoll nützlich sein, wirft jedoch offensichtlich zahlreiche Bedenken hinsichtlich der Back-End-Datensynchronisation auf.

  2. Annoncieren derselben Dienst-IP von mehreren Punkten in Ihrem eigenen Netzwerk (über statisches Routing , OSPF , EIGRP oder was auch immer). Wenn die Routen gewichtet anders wirkt es als Failover - Mechanismus. Wenn die Routen gleichmäßig gewichtet sind , können die Funktionen zum Lastenausgleich pro Paket oder pro Datenfluss der meisten Router von Markenherstellern genutzt werden. Sie müssen darauf achten, dass das Application-Layer- Protokoll damit vertraut ist. Deshalb hören Sie fast immer, dass es mit DNS verwendet wirdWobei eine Anfrage immer ein Paket ist und alles zustandslos ist. Persönlich betrachte ich dies als hackiges Eindringen von Bedenken der Anwendungsebene in die Netzwerkebene, wenn eine Kombination aus DNS und geeigneten Load-Balancern fast immer eine bessere Lösung ist.


+1 für die Erwähnung eines Pakets und Staatenlosigkeit
nponeccop

3
Das Problem mit DNS ist, dass man Google oder einen anderen Remote-Resolver verwenden kann und der nächste Server zum Resolver möglicherweise anders ist als der Benutzer. Dies gilt natürlich nur für Anycasts, die nicht für DNS bestimmt sind (z. B. TCP-Anycasts oder andere Verwendungszwecke).
Akostadinov

@cagenut, Würde HTTP im Falle eines Lastausgleichs pro Paket (aufgrund gleichmäßiger Gewichte oder auf andere Weise) kaputt gehen?
Pacerier

16

Wird hauptsächlich für UDP-basierte Dienste wie DNS verwendet. Grundsätzlich kündigen Sie dieselbe Route von mehreren Rechenzentren auf der ganzen Welt aus an. Auf diese Weise werden Ihre Kunden zum "besten" und "nächstgelegenen" Rechenzentrum gesendet, basierend auf den BGP-Routen. In Anführungszeichen setze ich "best" und "am nächsten", da Netzwerkanbieter Spiele spielen und Verkehr von bestimmten Netzwerken unterschiedlich leiten können. Im Allgemeinen funktionieren die Dinge mit Anycast am besten, aber es ist keine Garantie.

Ein Beispiel hierfür wäre, Ihre DNS-Server als 1.2.3.4 und 1.2.3.5 aufzulisten. Ihre Router würden eine Route für 1.2.3 / 24 aus mehreren Rechenzentren ankündigen. Wenn Sie in Japan sind und dort ein Rechenzentrum haben, sind Sie wahrscheinlich dort gelandet. Wenn Sie sich in den USA befinden, werden Sie an Ihr US-Rechenzentrum weitergeleitet. Auch hier basiert es auf dem BGP-Routing und nicht auf dem tatsächlichen geografischen Routing.


1
Wie werden Konflikte dann vermieden?
Pacerier

Ich bin mir nicht sicher, was du mit Konflikten meinst. BGP lässt Konflikte nicht wirklich zu. Es wählt nur eine Route. Ein (oft ignoriertes) Problem mit Anycast ist legal. Technisch ist Anycasting durch verschiedene Patente geschützt. Niemand erzwingt dies, aber verschiedene Verkehrstypen (CDN, DNS, TCP vs UDP) sind durch verschiedene Patente geschützt. Dieser Absatz sollte mit IANAL abgedeckt werden.
Diq

Sie meinen also, dass diese IP-Ortungsdienste nicht korrekt sind? Da es keine offizielle Stelle für eine IP ist und es sein könnte überall je nachdem , welche BGP Computer mit Ihnen sprechen?
Pacerier

9

Gemäß meiner ursprünglichen Antwort habe ich gerade zwei weitere Artikel in meinem Blog veröffentlicht: Anycast DNS - Teil 3, Verwenden von RIP und Anycast DNS - Teil 3, Verwenden von RIP (Fortsetzung). Letzteres wird ausführlicher beschrieben. Unter www.netlinxinc.com/netlinx-blog.html finden Sie jedoch aktuelle Anleitungen zum Konfigurieren von Cisco-Routern und der hostbasierten Open Source Quagga-Routing-Software für Anycast DNS mithilfe von RIP.

Ich arbeite gerade daran, den vierten Artikel in der Reihe zu schreiben. Auf diese Weise erhalten Sie Informationen zum Bereitstellen von Anycast DNS mithilfe von OSPF. Als letztes in der Reihe zeige ich Rezepte für die Bereitstellung von Anycast DNS mit BGP.

Anycast DNS - Teil 1, Übersicht

Anycast DNS - Teil 2, Verwenden statischer Routen

Anycast DNS - Teil 3, Verwenden von RIP

Anycast DNS - Teil 3, Verwenden von RIP (Fortsetzung)


Stimmt es also, dass aufgrund von Anycast möglicherweise jemand anderes im Internet auf der ganzen Welt dieselbe öffentliche IP hat wie der, den Sie von Ihrem ISP erhalten haben?
Pacerier

Stimmt es nicht, dass nur ISPs Anycast-Server bereitstellen können?
Pacerier

Tatsächlich müssten Sie mehrere ISPs besitzen, um Anycasts zu erstellen.
Pacerier

4

Da dies im Moment hauptsächlich DNS ist ...

Informell macht es Ihren Service ausfallsicherer und bietet einen besseren Netzwerkzugriff / eine höhere Latenz / Geschwindigkeit, indem Sie denselben Service an mehreren Standorten auf der ganzen Welt unter derselben Adresse einrichten können. Wenn jemand nach dieser Adresse fragt, erhält er die nächstgelegene / beste Route.

Aus Serverperspektive:

Wenn Sie mit Unicast eine einzelne Person ansprechen und mit Multicast mehrere Personen ansprechen und mit Broadcast alle Personen ansprechen, ist Anycast schitzophren und hat mehrere Persönlichkeiten, bei denen die für jede Person am besten geeignete Persönlichkeit eine Verbindung zu ihnen herstellt. Hmm. Nicht die beste Analogie.


3

Eine wirklich interessante Verwendung von Anycast ist DNS. Sie können 5 verschiedene DNS-Server an verschiedenen physischen und Netzwerkstandorten platzieren, aber eine einzelne (oder manchmal sowohl primäre als auch sekundäre) DNS-Adresse gemeinsam nutzen. Abhängig davon, wo sich die Quelle befindet, werden sie zu ihrem nächsten Knoten weitergeleitet. Dadurch wird der Datenverkehr ausgeglichen und es wird Redundanz bereitgestellt, wenn ein DNS-Server ausfällt.


Wird die Redundanz nicht bereits vom DNS-System bereitgestellt?
Pacerier

2

Laut einem meiner Kollegen ist es auch als DoS-Angriffsminderungstechnik nützlich, da nur die "nächstgelegene" Anycast-IP-Adresse angegriffen werden kann. Wenn also beispielsweise in den USA viele Zombines existieren, wäre Ihre Euro-Site eine solche Meistens unbeeinflusst, da sie tatsächlich keine Pakete an sie senden können.

Es kann auch möglich sein, gefälschte Pakete (etwas naiv) zu filtern, wenn sie offensichtlich von einem Ort stammen, von dem es unwahrscheinlich ist, dass sie in BGP als die richtige Route angekündigt werden (z. B. Pakete, die nach Europa kommen, wenn der ASN einen N-Amerikaner anzeigt) Block).


1
Nun, selbst in dem einfachen Fall, dass nur die Personen gestoppt werden, deren AS-Pfad zu diesem Server führt, können Sie beispielsweise Personen stoppen, die Sie von Comcast aus erreichen, nicht jedoch AT & T. Wenn Sie es für das Failover "richtig" eingerichtet haben (verfolgen Sie den L7-Dienst, hören Sie auf, zu melden, wenn er ausfällt), ist es tatsächlich sehr viel schwieriger, DoS-Angriffe zu handhaben, da es einen Server zum Absturz bringt und dann zum nächsten wechselt, wenn dies der Fall ist Ankündigungen werden entfernt ...
James Cape

@ JamesCape, Interessant, aber wenn sie zum nächsten wechseln, ist das Dos gescheitert, da die Leute nicht in der Lage sind, eine Verbindung herzustellen, oder?
Pacerier

@Pacerier Im einfachsten Fall, wenn Sie überall dieselbe IP ohne Intelligenz bewerben, ja. Wenn Sie jedoch versuchen, clever zu werden und die Werbung in den USA zurückzuziehen, weil der Dienst nicht reagiert, ist die einzige verbleibende Werbung die in Europa. Alle US-Zombies treffen dann den nächsten verfügbaren Server und töten auch diesen.
James Cape

2

Es ist auch zu beachten, dass Anycast für einige TCP-Verbindungen, die Zurücksetzungen oder lange Konversationen nicht überstehen können, nicht gut oder nicht zuverlässig ist.

Anycast-IPs, die BGP verwenden, teilen dem Internet mit, dass es 2, 3 oder mehr Pfade zu einem bestimmten Host gibt. Tatsächlich handelt es sich jedoch NICHT um denselben Host , sondern um exakte Replikate von Hosts, die über mehrere Rechenzentren verteilt sind, um Verbindungen mit geringerer Latenz zu erzielen.

Zum Beispiel habe ich 3 Server, die 301 nicht-www-Umleitung für 198.251.86.133 ausführen. Wenn Sie diesen Host anpingen, erhalten Sie möglicherweise zeitweise DUPLICATE-Antworten oder werden sogar gelöscht, je nachdem, wo Sie sich befinden, da sich meine Server in den USA und in den USA befinden -West und EUR. Bei kurzzeitigen Verbindungen (wie 301-Verbindungen, bei denen es sich um Browser-Cache-Verbindungen handelt) gibt dies eine schnelle Antwort von einem lokalen Server im nächsten Datencenter.

Unter Redundanzgesichtspunkten ist in Anycast kein Redundanzsystem integriert. Sie benötigen jedoch an jedem Standort eine unabhängige Redundanz, da diese IP-Adresse (in typischen Szenarien) immer auf diese Datencenter verweist.


Re "ping"; Pingen Sie keine UDP-Verbindung?
Pacerier

Re "da diese IP (in typischen Szenarien) immer auf diese Rechenzentren verweist"; bist du sicher? Wenn dieser Server ausfällt, zeigen sie auf den nächstgelegenen Server, nicht wahr?
Pacerier
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.