Frage Was ist "Anycast" und wie ist es hilfreich?


Bis vor ein paar Sekunden hatte ich noch nie von Anycast gehört, als ich gelesen habe "Was sind einige coole oder nützliche Server / Netzwerktricks?".

Die Wikipedia "Anycast"Der Artikel dazu ist ziemlich formal und erweckt nicht wirklich ein mentales Bild davon, wie er verwendet werden würde.

Kann jemand in ein paar informellen Sätzen erklären, was "Anycast" ist, wie Sie es konfigurieren (nur in einem allgemeinen Sinne), und was seine Vorteile (was macht es einfacher)?


78
2018-05-29 18:54


Ursprung




Antworten:


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

Anycast hat mehrere Vorteile. Erstens, im eingeschwungenen Zustand, werden Benutzer eines Anycast-Dienstes (DNS ist ein hervorragendes Beispiel) immer mit dem "nächsten" (aus einer Routing-Protokoll-Perspektive) DNS-Server verbunden. Dies reduziert die Latenz und sorgt für einen Lastausgleich (unter der Annahme, dass Ihre Kunden gleichmäßig in Ihrem Netzwerk verteilt sind).

Ein weiterer Vorteil ist die einfache Konfigurationsverwaltung. Anstatt unterschiedliche DNS-Server zu konfigurieren, je nachdem, wo ein Server / eine Arbeitsstation bereitgestellt wird (Asien, Amerika, Europa), haben Sie eine IP-Adresse, die an jedem Standort konfiguriert ist.

Je nachdem, wie anycast implementiert ist, kann auch eine hohe Verfügbarkeit erreicht werden. Wenn die Ankündigung der Anycast-Route von einer Art von Gesundheitsprüfung abhängig ist (z. B. eine DNS-Abfrage für eine bekannte Domäne in diesem Beispiel), dann kann, sobald ein Server ausfällt, seine Route entfernt werden. Sobald das Netzwerk rekonvergiert ist, werden Benutzeranforderungen nahtlos an die nächstgelegene Instanz von DNS weitergeleitet, ohne dass manuelle Eingriffe oder Neukonfigurationen erforderlich sind.

Ein letzter Vorteil ist der der horizontalen Skalierung; Wenn Sie feststellen, dass ein Server überlastet ist, stellen Sie einfach einen anderen Server an einem Ort bereit, an dem er einen Teil der Anfragen des überlasteten Servers übernehmen kann. Da keine Client-Konfiguration erforderlich ist, kann dies sehr schnell durchgeführt werden.


83
2018-05-29 19:22



Nutzt Anycast mehr Bandbreite als Unicast? Stellen Sie sich vor, wir haben tausend Server, die alle die gleiche IP-Adresse teilen, wenn wir ein Paket senden Das Adresse, würde es nicht mehr Bandbreite als im Vergleich zu Unicasting verbrauchen? - Pacerier
Nein - Verkehr, der an eine Anycast-Adresse gesendet wird, wird nur an einem Ort ankommen, an dem die Adresse angekündigt wird. Daran denkst du vielleicht Multicast, wobei an eine Multicast-Gruppenadresse gesendete Pakete an alle Hosts gesendet werden, die an dieser Gruppe interessiert sind. - Murali Suriar
Ist das nicht das Problem von "Anstatt unterschiedliche DNS-Server konfigurieren zu müssen, hängt davon ab, wo ein Server / eine Arbeitsstation bereitgestellt wird"gelöst durch Domain-Namen? Also was ist der Sinn von Anycast, wenn es einfach dupliziert, was Domain-Namen bereits tun? - Pacerier
@Pacerier - Sie können keine Domainnamen verwenden, um Ihren DNS-Server zu finden - das ist eine zirkuläre Abhängigkeit. Beispiel: Konfigurieren Sie dns.foo.com. als Ihr DNS-Server. An welche IP-Adresse sende ich Anfragen an dns.foo.com? Ich weiß, ich werde es in DNS nachschlagen. usw. - Murali Suriar


Eines der Dinge, die mich beim Verständnis von "Anycast" oft verwirrt haben, ist, dass es in der praktischen Umsetzung in der Regel auf zwei Beispiele hinausläuft:

  1. Router mit BGP um den gleichen IP-Block über mehrere zu bewerben WIE Pfade als grobe Methode, Benutzer zu einer "näheren" Site zu leiten. Gleichzeitig ermöglicht es ein nahezu transparentes Failover zu den anderen Standorten, indem nur die Routen von einer problematischen Site zurückgezogen werden. Dies kann für fast jedes Protokoll nützlich sein, obwohl es offensichtlich viele Probleme bei der Backend-Datensynchronisation aufwirft.

  2. Werbung für die gleiche Service - IP von mehreren Punkten innerhalb Ihres eigenen Netzwerks (über statisches Routing, OSPF, EIGRP, oder Wasauchimmer). Wenn die Routen gewichtet sind andersEs fungiert als Failover-Mechanismus. Wenn die Routen gewichtet sind gleichmäßig Es kann die pro-Paket- oder pro-Fluss-Lastausgleichsfähigkeiten der meisten Marken-Hersteller-Router nutzen. Sie müssen aufpassen, dass die Anwendungsschicht Protokoll ist damit angenehm, deshalb hört man fast immer davon gewohnt DNS wo eine Anfrage immer ein Paket ist und alles zustandslos ist. Persönlich betrachte ich dies als ein hacky Eindringen von Anwendungsebene Bedenken in die Netzwerkschicht, wenn eine Kombination von DNS und richtigen Load-Balancer wird fast immer eine bessere Lösung sein.


31
2018-05-30 04:24



+1 für die Erwähnung eines Pakets und der Staatenlosigkeit - nponeccop
Problem mit DNS ist, dass man Google oder einen anderen Remote-Resolver verwenden kann und der nächstgelegene Server zum Resolver möglicherweise anders als der Benutzer ist. Natürlich ist dies nur gültig, wenn Anycast für Nicht-DNS-Nutzung verwendet wird (z. B. TCP-Anycast oder andere Verwendung). - akostadinov
@cagenut, Würde HTTP im Falle des Paketausgleichs (aufgrund von gleichmäßigen oder anderen Gewichten) brechen? - Pacerier


Wird hauptsächlich für UDP-basierte Dienste wie DNS verwendet. Im Grunde kündigen Sie den gleichen Weg aus mehreren Datenzentren auf der ganzen Welt an. Auf diese Weise werden Ihre Kunden basierend auf BGP-Routen zum "besten" und "nächsten" Datencenter gesendet. Ich gebe "am besten" und "am nächsten" in Anführungszeichen, weil Netzwerkanbieter Spiele spielen und den Verkehr aus bestimmten Netzwerken anders leiten können. Im Allgemeinen läuft alles gut mit Anycast, 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 von mehreren Datencentern ankündigen. Wenn Sie in Japan sind und dort ein Rechenzentrum haben, werden Sie wahrscheinlich dort enden. Wenn Sie in den USA sind, werden Sie in Ihr US-Rechenzentrum geschickt. Wiederum basiert es auf dem BGP-Routing und nicht auf dem tatsächlichen geografischen Routing, aber das ist normalerweise der Grund, warum die Dinge zusammenbrechen.


16
2018-05-29 19:01



Wie werden Konflikte vermieden? - Pacerier
Ich bin mir nicht sicher, was Sie mit Konflikten meinen. BGP lässt Konflikte nicht wirklich zu. Es wählt nur eine Route aus. Ein (oft ignoriertes) Problem mit Anycast ist legal. Technisch ist Anycasting durch verschiedene Patente abgedeckt. Niemand erzwingt dies, aber verschiedene Verkehrstypen (CDN, DNS, TCP vs. UDP) sind durch verschiedene Patente abgedeckt. Dieser Absatz sollte mit IANAL abgedeckt werden. - diq
Sie meinen also, dass diese ip2location-Dienste ungenau sind? Weil es keinen offiziellen Ort für eine IP gibt und es könnte sein irgendwo abhängig davon, mit welchem ​​BGP-Computer du sprichst? - Pacerier


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 geht näher, aber unter www.netlinxinc.com/netlinx-blog.html finden Sie aktuelle Rezepte zur Konfiguration von Cisco-Routern und quelloffener Quagga-Routing-Software für Anycast DNS mit RIP.

Ich arbeite gerade daran, den vierten Artikel der Serie zu schreiben. Hier finden Sie Rezepte zum Bereitstellen von Anycast DNS mit OSPF. Zuletzt in der Serie zeige ich Rezepte für die Bereitstellung von Anycast DNS mit BGP.

Anycast DNS - Teil 1, Übersicht

Anycast DNS - Teil 2, Verwenden von statischen Routen

Anycast DNS - Teil 3, Verwenden von RIP 

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


8
2018-05-31 16:32



Ist es wahr, dass es aufgrund von Anycast möglich ist, dass jemand anderes im Internet auf der ganzen Welt die gleiche öffentliche IP hat wie die, die Ihnen Ihr ISP gegeben hat? - Pacerier
Stimmt es nicht, dass nur ISPs Anycast-Server bereitstellen können? - Pacerier
In der Tat müssten Sie besitzen mehrere ISPs machen Anycast. - Pacerier


Da dies zur Zeit hauptsächlich DNS ist ...

Informell macht es Ihren Dienst widerstandsfähiger und mit besserem Netzwerkzugriff / Latenz / Geschwindigkeit, indem Sie den gleichen Dienst an mehreren Standorten auf der ganzen Welt einrichten können, die alle die gleiche Adresse verwenden. Wenn jemand nach dieser Adresse fragt, wird ihm die nächste / beste Route gegeben.

Aus einer Serverperspektive:

Wenn Unicast zu einer einzelnen Person geht, und Multicast zu mehreren geht, und Broadcast geht zu allen Menschen, dann ist Anycast schizophren und hat mehrere Persönlichkeiten, wo die Persönlichkeit, die für jede Person am besten geeignet ist, sich mit ihnen verbindet. Hmm. Nicht die beste Analogie.


4
2018-05-29 19:19





Ein wirklich interessanter Einsatz von Anycast ist DNS. Sie können 5 verschiedene DNS-Server an verschiedenen physischen Standorten und im Netzwerk platzieren, aber eine einzelne (oder manchmal beide primäre und sekundäre DNS-) Adressen teilen. Je nachdem, wo sich die Quelle befindet, werden sie an ihren nächstgelegenen Knoten weitergeleitet. Dies führt zu einem gewissen Ausgleich des Datenverkehrs und es bietet Redundanz, wenn ein DNS-Server stirbt.


3
2018-05-29 19:03



Aber wird die Redundanz nicht bereits vom DNS-System bereitgestellt? - Pacerier


Laut einem meiner Kollegen ist es auch als DoS-Angriffsminderungs-Technik nützlich, da die Leute nur die "nächste" Anycast-IP-Adresse angreifen können. Wenn es also z. B. in den USA viele Zombies gäbe, wäre deine Euro-Site größtenteils unbeeinflusst, da sie Pakete nicht wirklich dorthin senden können.

Es könnte auch möglich sein, gefälschte Pakete (etwas naiv) zu filtern, wenn sie offensichtlich von irgendwo her kommen, von dem in BGP nicht als die richtige Route beworben wird (zB Pakete, die nach Europa kommen, wenn der ASN auf ein N American hinweist) Block).


2
2018-05-31 17:16



Nun, selbst im einfachen Fall würde das nur die Leute stoppen, deren AS-Pfad zu diesem Server geht - z.B. Sie können Leute stoppen, die Sie von Comcast, aber nicht AT & T erreichen. Wenn Sie es richtig für Failover eingerichtet haben (verfolgen Sie den L7-Dienst, hören Sie auf zu melden, wenn es abstürzt), dann ist es viel schwieriger, mit DoS-Angriffen umzugehen, da es einen Server vernichten und dann zum nächsten wechseln wird Ankündigungen werden aufgehoben ... - James Cape
@JamesCape, Interessant, aber wenn sie zum nächsten gehen, ist das Dos gescheitert, da Leute nicht in der Lage sind, richtig zu verbinden? - Pacerier
@Pacerier Im einfachsten Fall, wo du einfach überall die gleiche IP Werbung ohne Intelligenz anbietest, ja. Wenn Sie jedoch versuchen, clever zu werden und die Werbung in den USA zurückzuziehen, weil der Service nicht reagiert, dann bleibt nur noch die Werbung in Europa übrig. Also werden alle US-Zombies den nächsten verfügbaren Server treffen und diesen auch töten. - James Cape


Es ist auch gut zu bemerken, dass Anycast nicht gut oder zuverlässig für einige TCP-Verbindungen ist, die das Zurücksetzen oder eine lange Konversation nicht überleben können.

Anycast-IPs, die BGP verwenden, teilen dem Internet mit, dass es solche gibt 2, 3 oder mehr Pfade zu einem bestimmten HOSTaber in Wirklichkeit sind dies NICHT der gleiche GastgeberEs handelt sich dabei um exakte Replikate von Hosts, die über mehrere Datencenter hinweg angekündigt werden, um Verbindungen mit geringerer Latenz zu erreichen.

Zum Beispiel habe ich 3 Server, die 301 nicht-www-Umleitung für 198.251.86.133 ausführen, wenn Sie diesen Host pingen, erhalten Sie manchmal DUPLICATE-Antworten oder fallen sogar abhängig davon, wo Sie sich befinden, da meine Server US-Ost, US sind -West und EUR. für kurze zeitgesteuerte Verbindungen (wie 301, die Browser-Cache sind) geben dies eine schnelle Antwort von einem lokalen Server im nächsten Datencenter.

Aus Redundanzgründen gibt es keinen eingebauten Anycast, Sie würden immer noch eine unabhängige Redundanz an jedem Standort benötigen, da diese IP (in typischen Szenarien) immer auf diese Datencenter zeigt.


2
2017-10-13 12:58



Re "ping"; pingt eine UDP-Verbindung nicht? - Pacerier
Re "wie diese IP wird (in typischen Szenarien) immer auf diese Datencenter zeigen"; bist du sicher? Wenn dieser Server ausfällt, würden sie auf den nächsten Server zeigen, nicht wahr? - Pacerier