Im Wesentlichen wird dieselbe Route von mehreren Rechenzentren auf der ganzen Welt aus beworben. Auf diese Weise werden Kunden basierend auf den BGP-Routen, dem Rechenzentrum, an die "besten" und "nächsten" gesendet. Warum Anycast? Warum Anycast anstelle von Unicast verwenden?
Unicast ist wirklich gut für eine Site mit einem Webserver und mäßigem Datenverkehr. Wenn ein Dienst jedoch Millionen von Abonnenten hat, verwendet er normalerweise viele Webserver mit jeweils derselben IP-Adresse. Diese Server sind geografisch verteilt, um Anforderungen optimal zu bedienen.
In diesem Szenario verbessert Anycast die Leistung (der Datenverkehr wird mit minimaler Latenz an den Benutzer geleitet), stellt die Zuverlässigkeit des Dienstes (dank redundanter Server) und den Lastausgleich sicher. Durch das Routing auf mehrere Server wird die Last effektiv zwischen diesen verteilt, wodurch die Geschwindigkeit der Site verbessert wird.
Betreiber bieten Kunden verschiedene Arten des Lastausgleichs basierend auf Anycast und DNS. Clients können je nach geografischem Standort des Standorts IP-Adressen angeben, an die Anforderungen gesendet werden. Dies ermöglicht eine flexiblere Verteilung von Benutzeranforderungen.
Angenommen, es gibt mehrere Websites, auf die Sie die Last (Benutzer) verteilen müssen, z. B. einen Online-Shop mit 100.000 Anfragen pro Tag oder ein beliebtes Blog. Um die Region einzuschränken, von der aus Benutzer eine bestimmte Site betreten, können Sie die Option Geo Community verwenden. Sie können damit die Region begrenzen, in der der Betreiber die Route ankündigt.
Anycast vs. Unicast: Unterschiede
Anycast wird häufig in Anwendungen wie DNS (Domain Name System) und CDN (Content Delivery Networks) verwendet, sodass Routing-Entscheidungen getroffen werden können, die die Netzwerkleistung verbessern. Content Delivery-Netzwerke verwenden Anycast, da sie mit großem Verkehrsaufkommen umgehen, und Anycast bietet in diesem Fall eine Reihe von Vorteilen (mehr dazu weiter unten). In DNS kann Anycast die Zuverlässigkeit und Fehlertoleranz des Dienstes erheblich erhöhen.
In Anycast IP gibt es bei Verwendung von BGP mehrere Routen zu einem bestimmten Host. Hierbei handelt es sich tatsächlich um Kopien von Hosts in mehreren Rechenzentren, die zum Herstellen von Verbindungen mit geringerer Latenz verwendet werden.
Im Anycast-Netzwerk wird dieselbe IP-Adresse von verschiedenen Standorten aus angekündigt, und das Netzwerk entscheidet anhand der "Kosten" der Route, wohin die Benutzeranforderung geleitet werden soll. Beispielsweise wird BGP häufig verwendet, um den kürzesten Weg für die Datenübertragung zu bestimmen. Wenn ein Benutzer eine Anycast-Anfrage sendet, ermittelt BGP die beste Route für die im Netzwerk verfügbaren Anycast-Server.
Anycast Vorteile
Latenz reduzieren | Anycast , . «» ( ) DNS-. Anycast . , . |
|
, , , , .
|
|
IP, . Anycast //.
, , , Anycast, , DNS. DNS - . Anycast , . |
|
Anycast . , , . , , . .
|
DoS-
|
Anycast – DDoS. DDoS- Anycast, .
DDoS- , , . Anycast , «» , . « », , . |
|
Anycast . , Anycast, , . .
, . , . , . , , , . . , 10 25 /. 100 IP- . |
|
, Anycast — DNS. DNS-, DNS-. , , . DNS-. , , DNS- , , DNS- .
Anycast , , , . . |
Für die Verwendung der Anycast-Technologie auf der Clientseite sind keine speziellen Server, Netzwerke oder speziellen Komponenten erforderlich. Aber Anycast hat seine Nachteile. Es wird angenommen, dass seine Implementierung eine komplexe Aufgabe ist, die zusätzliche Ausrüstung, zuverlässige Anbieter und eine ordnungsgemäße Verkehrsführung erfordert.
Von einer reinen Quelle zu einer schönen Ferne
Während Anycast Benutzer basierend auf den geringsten Sprüngen weiterleitet, bedeutet dies nicht unbedingt die geringste Latenz. Die Latenz ist eine komplexere Metrik, da ein Übergang mehr als zehn haben kann.
Beispiel: Interkontinentale Kommunikation kann einen Hop mit sehr hoher Latenz beinhalten.
Anycast wird hauptsächlich für UDP-basierte Dienste wie DNS verwendet. Benutzeranfragen werden basierend auf BGP-Routen an die "besten" und "nächstgelegenen" Rechenzentren gerichtet.
Beispiel: Eine DNS-Client-Workstation mit einer Anycast-DNS-IP-Adresse 123.10.10.10 führt eine DNS-Auflösung für den nächsten von drei DNS-Nameservern durch, die mit derselben Anycast-IP-Adresse bereitgestellt werden. Wenn Router R1 oder Server A ausfällt, werden die DNS-Client-Pakete automatisch über R2 und R3 an den nächstgelegenen DNS-Server weitergeleitet. Außerdem wird die Route zu unserem Server A aus den Routing-Tabellen entfernt, wodurch die weitere Verwendung dieses Nameservers verhindert wird.
Bereitstellungsszenarien
Es gibt zwei allgemeine Schemata, mit denen bestimmt wird, zu welchem Server ein Benutzer eine Verbindung herstellt:
- Anycast-Netzwerkschicht . Verbindet den Benutzer mit dem nächsten Server. Der Netzwerkpfad vom Benutzer zum Server ist hier wichtig.
- Anycast . , , , . . , .
CDN Anycast
Kehren wir nun zur Verwendung von Anycast in Content Delivery-Netzwerken zurück. Anycast ist sicherlich ein interessantes Netzwerkkonzept und gewinnt bei CDN-Anbietern der nächsten Generation zunehmend an Akzeptanz.
CDN ist ein verteiltes Netzwerk von Servern, die Endbenutzern Inhalte mit hoher Verfügbarkeit und geringer Latenz bereitstellen. Content Delivery Networks spielen heute eine wichtige Rolle als Rückgrat zahlreicher Online-Multimediadienste, und Verbraucher sind zunehmend weniger tolerant gegenüber langsamen Download-Geschwindigkeiten. Video- und Sprachanwendungen reagieren besonders empfindlich auf Netzwerkjitter und Latenz.
CDN bringt alle Server in ein Netzwerk und ermöglicht ein schnelleres Laden von Inhalten. Manchmal ist es möglich, die Wartezeit des Benutzers um 5-6 Sekunden zu reduzieren. Das Ziel eines CDN besteht darin, die Bereitstellung zu optimieren, indem Inhalte von dem Server bereitgestellt werden, der dem Endbenutzer am nächsten liegt. Dies ist Anycast sehr ähnlich, bei dem der nächstgelegene Server basierend auf dem Standort des Endbenutzers ausgewählt wird. Es scheint, dass jeder CDN-Anbieter standardmäßig Anycast verwendet, in Wirklichkeit jedoch nicht.
Anwendungen, die Protokolle wie HTTP / TCP verwenden, basieren auf der hergestellten Verbindung. Wenn ein neuer Anycast-Knoten ausgewählt wird (z. B. wenn der Server ausfällt), wird der Dienst möglicherweise unterbrochen. Aus diesem Grund wurde Anycast zuvor für verbindungslose Dienste wie UDP und DNS empfohlen. Anycast funktioniert jedoch auch gut für verbindungsorientierte Protokolle. Beispielsweise funktioniert TCP im Anycast-Modus einwandfrei.
Einige CDN-Anbieter verwenden Anycast-basiertes Routing, andere bevorzugen DNS-basiertes Routing: Der nächstgelegene Server wird ausgewählt, je nachdem, wo sich der DNS-Server des Benutzers befindet.
Hybrid- und Multi-Rechenzentrumsinfrastrukturen sind ein weiterer Anwendungsfall für Anycast. Mit der vom Anbieter empfangenen IP-Adresse für den Lastenausgleich können Sie die Last auf die IP-Adressen verschiedener Clientdienste im Rechenzentrum des Anbieters verteilen. Mit jeder Geräteadressierungstechnologie bietet sie eine bessere Leistung bei erheblichem Datenverkehr und Fehlertoleranz und hilft bei der Optimierung der Antwortzeiten für eine große Anzahl von Benutzern.
In hybriden Multi-Rechenzentrums-Infrastrukturen können Sie den Datenverkehr auf Server oder sogar virtuelle Maschinen auf dedizierten Servern verteilen.
Somit gibt es eine große Auswahl an technischen Lösungen für die Gebäudeinfrastruktur. Sie können den Lastausgleich von IP-Adressen auch über mehrere Rechenzentren hinweg mit jedem Gerät in der Gruppe konfigurieren, um die Standortleistung zu optimieren.
Sie können den Datenverkehr nach Ihren eigenen Regeln verteilen und das "Gewicht" jedes der verteilten Server in jedem Rechenzentrum definieren. Diese Konfiguration ist besonders nützlich, wenn ein verteilter Serverpark vorhanden ist und die Leistung der Dienste nicht einheitlich ist. Auf diese Weise können Sie den Datenverkehr häufiger verteilen, um die Serverleistung zu verbessern.
Um ein Überwachungssystem mit dem Befehl ping zu erstellen, können Sonden konfiguriert werden. Auf diese Weise kann der Administrator seine eigenen Überwachungsverfahren definieren und einen klareren Überblick über den Zustand jeder Komponente in der Infrastruktur erhalten. Auf diese Weise können Kriterien für die Barrierefreiheit definiert werden.
Es besteht die Möglichkeit, eine hybride Infrastruktur aufzubauen: Manchmal ist es bequem, das Backoffice im Unternehmensnetzwerk zu belassen und den Front-End-Teil an das Outsourcing an den Anbieter zu übertragen.
Es ist möglich, SSL-Zertifikate für den Lastenausgleich, die Verschlüsselung übertragener Daten und die Sicherheit der Kommunikation zwischen Site-Besuchern und Unternehmensinfrastruktur hinzuzufügen. Beim Lastausgleich zwischen Rechenzentren kann auch SSL verwendet werden.
Der Lastausgleichsdienst für Anycast-Adressen ist bei Ihrem Internetdienstanbieter erhältlich. Diese Funktion verbessert die Interaktion der Benutzer mit Apps basierend auf dem Standort. Es reicht aus, anzugeben, welche Dienste im Rechenzentrum verfügbar sind, und der Datenverkehr wird zur nächstgelegenen Infrastruktur umgeleitet. Wenn es dedizierte Server gibt, beispielsweise in Frankreich oder Nordamerika, werden die Clients an den nächstgelegenen Server im Netzwerk weitergeleitet.
Ein Anwendungsfall für Anycast ist die optimale Auswahl des Point of Presence (PoP) des Bedieners. Geben wir ein Beispiel... LinkedIn (in Russland blockiert) möchte nicht nur die Leistung und Geschwindigkeit seiner Produkte - Mobil- und Webanwendungen - verbessern, sondern auch die Netzwerkinfrastruktur für eine beschleunigte Bereitstellung von Inhalten verbessern. Für diese dynamische Bereitstellung von Inhalten verwendet LinkedIn aktiv PoPs - Points of Presence. Anycast wird angewendet, um Benutzer zum nächsten PoP zu leiten.
Der Grund ist, dass im Fall von Unycast jeder PoP auf LinkedIn eine eindeutige IP-Adresse hat. Benutzern werden dann mithilfe von DNS PoPs basierend auf ihrem geografischen Standort zugewiesen. Das Problem ist, dass bei Verwendung von DNS etwa 30% der Benutzer in den USA auf suboptimalen PoP umgeleitet wurden. Mit der schrittweisen Implementierung von Anycast sank die suboptimale PoP-Zuweisung von 31% auf 10%.
, Y — PoP. «» Anycast PoP.
Anycast
Theoretisch sind Anycast-Netzwerke einfach: Mehrere physische Server erhalten dieselbe IP-Adresse, die BGP zur Bestimmung der Route verwendet. Die Implementierung und das Design von Anycast-Plattformen ist jedoch komplex, und fehlertolerante Anycast-Netzwerke sind dafür besonders bekannt. Noch schwieriger ist die effektive Überwachung des Anycast-Netzwerks, um Fehler schnell zu erkennen und zu isolieren.
Wenn Dienste einen CDN-Anbieter eines Drittanbieters verwenden, um ihre Inhalte bereitzustellen, ist es für sie sehr wichtig, die Netzwerkleistung zu überwachen und zu überprüfen. Die Anycast-basierte CDN-Überwachung konzentriert sich auf die Messung der End-to-End-Latenz und der vorletzten Hop-Leistung, um zu verstehen, welches Rechenzentrum den Inhalt bereitstellt. Das Analysieren der HTTP-Server-Header ist eine weitere Möglichkeit, um festzustellen, woher die Daten stammen.
Beispiel: HTTP-Antwortheader, die den Standort des CDN-Servers angeben.
Beispielsweise verwendet CloudFlare in HTTP-Antwortnachrichten einen eigenen CF-Ray-Header, der eine Angabe des Datencenters enthält, an das die Anforderung gestellt wurde. Im Fall von Zendesk lautet der CF-Ray-Header für die Region Seattle CF-RAY: 2a21675e65fd2a3d-SEA und für Amsterdam CF-RAY: 2a216896b93a0c71-AMS. Sie können auch die HTTP X-Header aus der HTTP-Antwort verwenden, um zu bestimmen, wo sich der Inhalt befindet.
Andere Adressierungsmethoden
Es gibt andere Adressierungsmethoden zum Weiterleiten von Benutzeranforderungen an einen bestimmten Netzwerkendpunkt:
Unicast
|
Der Großteil des heutigen Internets verwendet diese Methode. Unicast - Bei der Unicast-Übertragung ist die IP-Adresse nur einem bestimmten Knoten im Netzwerk zugeordnet. Dies wird als Eins-zu-Eins-Korrespondenz bezeichnet.
|
Multicast
|
Multicast « » « ». . ( ). Multicast Anycast, , Anycast , .
|
Broadcast
|
, . , ( ).
|
Geocast
|
Geocast Multicast: . , . .
(Geo Router) . , , . . |
Unicast, Multicast und Broadcast.
Die Verwendung der Anycast-Technologie erhöht die Zuverlässigkeit, Ausfallsicherheit und Sicherheit des DNS. Mithilfe dieser Technologie bieten Betreiber ihren Kunden Dienste für verschiedene Arten des DNS-basierten Lastausgleichs an. In der Systemsteuerung können Sie die IP-Adressen angeben, an die Anforderungen je nach geografischem Standort gesendet werden. Dies gibt Kunden die Möglichkeit, Benutzeranforderungen flexibler zu verteilen.
Einige Betreiber verwenden die POP-Routenüberwachung: Das System analysiert automatisch die kürzesten lokalen und globalen Routen auf Präsenzpunkte und leitet sie an geografische Standorte mit der geringsten Latenz ohne Ausfallzeiten weiter.
Derzeit ist Anycast die stabilste und zuverlässigste Lösung für den Aufbau hoch ausgelasteter DNS-Dienste, die hohen Anforderungen an Stabilität und Zuverlässigkeit unterliegen.
Die .ru-Domäne unterstützt 35 Anycast-DNS-Server, die in 20 Knoten gruppiert sind und auf fünf Anycast-Clouds verteilt sind. In diesem Fall wird das Prinzip der Konstruktion auf geografischer Basis verwendet, d.h. Geocast. Beim Platzieren von DNS-Knoten ist geplant, diese an geografisch verteilte Standorte in der Nähe der aktivsten Benutzer zu verschieben, die maximale Konzentration russischer Anbieter am Standort des Knotens sowie die Verfügbarkeit freier Kapazitäten und die einfache Interaktion mit dem Standort.
Wie erstelle ich ein CDN?
CDN ist ein Netzwerk von Servern, das die Bereitstellung von Inhalten für Benutzer beschleunigt. Das Content Delivery-Netzwerk verbindet alle Server zu einem Netzwerk und ermöglicht ein schnelleres Laden von Inhalten. Die Entfernung vom Server zum Benutzer spielt eine wichtige Rolle für die Download-Geschwindigkeit.
Mit CDN können Sie Server verwenden, die Ihrer Zielgruppe am nächsten liegen. Dies reduziert die Wartezeit und beschleunigt das Laden von Website-Inhalten für alle Besucher. Dies ist besonders wichtig für Websites mit großen Dateien oder Multimediadiensten. Typische CDN-Anwendungen sind E-Commerce und Unterhaltung.
Das Netzwerk zusätzlicher Server in der CDN-Infrastruktur, die sich so nah wie möglich an den Benutzern befinden, trägt zu einer stabileren und schnelleren Datenlieferung bei. Laut Statistik reduziert die Verwendung eines CDN die Latenz beim Zugriff auf eine Site um mehr als 70% im Vergleich zu Sites ohne CDN.
So erstellen Sie ein CDN mit DNS? Das Einrichten eines CDN mit Ihrer eigenen Anycast-Lösung kann ein recht teures Projekt sein, es gibt jedoch günstigere Optionen. Sie können beispielsweise GeoDNS und reguläre Server mit eindeutigen IP-Adressen verwenden. GeoDNS-Dienste können ein geolokalisiertes CDN erstellen, bei dem Entscheidungen basierend auf dem tatsächlichen Standort des Besuchers und nicht auf dem Standort des DNS-Resolvers getroffen werden. Sie können Ihre DNS-Zone so konfigurieren, dass US-Besuchern die IP-Adressen von US-Servern angezeigt werden und europäischen Besuchern die IP-Adresse aus Europa angezeigt wird.
Mit GeoDNS ist es möglich, abhängig von der IP-Adresse des Benutzers unterschiedliche DNS-Antworten zurückzugeben. Zu diesem Zweck ist der DNS-Server so konfiguriert, dass er basierend auf der ursprünglichen IP-Adresse in der Anforderung unterschiedliche IP-Adressen zurückgibt. In der Regel wird die GeoIP-Datenbank verwendet, um die Region zu bestimmen, aus der die Anforderung gestellt wird. Durch die Geolokalisierung mithilfe von DNS können Sie Inhalte von einer nahe gelegenen Site an Benutzer senden.
GeoDNS definiert die IP-Adresse des Clients, der die DNS-Anforderung gestellt hat, oder die IP-Adresse des rekursiven DNS-Servers des ISP, der zur Verarbeitung der Clientanforderung verwendet wird. Das Land / die Region wird durch die IP- und GeoIP-Basis des Kunden bestimmt. Der Client erhält dann die IP-Adresse des nächsten CDN-Servers. Weitere Informationen zum Einrichten von GeoDNS finden Sie hier .
Anycast oder GeoDNS?
Anycast ist zwar eine großartige Möglichkeit, Inhalte global bereitzustellen, es fehlt jedoch an Spezifität. Hier kommt GeoDNS ins Spiel. Mit diesem Dienst können Sie Regeln erstellen, die Benutzer basierend auf ihrem Standort an eindeutige Endpunkte senden.
Beispiel: Benutzer aus Europa werden zu einem anderen Endpunkt geleitet.
Sie können den Zugriff auf Domänen auch verweigern, indem Sie alle Anforderungen löschen. Dies ist insbesondere eine schnelle Möglichkeit, Eindringlinge auszuschalten.
GeoDNS bietet genauere Antworten als Anycast. Während bei Anycast die kürzeste Route durch die Anzahl der Hops bestimmt wird, basiert das Routing für Endbenutzer in GeoDNS auf ihrem physischen Standort. Dies reduziert die Latenz und verbessert die Genauigkeit beim Erstellen detaillierter Routing-Regeln.
Beim Wechsel zu einer Domain kontaktiert der Browser den nächstgelegenen DNS-Server, der je nach Domain eine IP-Adresse zum Laden der Site ausgibt. Angenommen, ein Online-Shop ist in den USA und in Europa beliebt, und DNS-Server dafür gibt es nur in Europa. Dann müssen Benutzer aus den USA, die die Dienste des Geschäfts nutzen möchten, eine Anfrage an den nächstgelegenen Server senden. Da dieser sehr weit entfernt ist, dauert es lange, bis er auf eine Antwort wartet. Die Website wird nicht schnell geladen.
Wenn sich ein GeoDNS-Server in den USA befindet, verweisen Benutzer bereits darauf. Die Antwort ist schnell, was sich auf die Ladegeschwindigkeit der Site auswirkt.
In einer Situation mit einem vorhandenen DNS-Server in den USA wird ein Benutzer aus den USA, der zu dieser Domäne wechselt, den nächstgelegenen Server kontaktieren, der die gewünschte IP-Adresse angibt. Der Benutzer wird zu dem Server weitergeleitet, der den Inhalt der Site enthält. Da jedoch die Server mit dem Inhalt weit entfernt sind, erhält er ihn nicht schnell.
Wenn wir CDN-Server mit zwischengespeicherten Daten in den USA hosten, sendet der Browser des Clients beim Laden eine Anfrage an den nächsten DNS-Server, der die richtige IP-Adresse zurücksendet. Der Browser mit der erhaltenen IP-Adresse adressiert den nächstgelegenen CDN-Server und den Hauptserver, und der CDN-Server sendet den zwischengespeicherten Inhalt an den Browser. Während der zwischengespeicherte Inhalt geladen wird, werden die Dateien, die zum Laden der vollständigen Site fehlen, vom Hauptserver empfangen. Infolgedessen wird die Ladezeit der Site reduziert, da viel weniger Dateien vom Hauptserver gesendet werden.
Das Ermitteln des genauen Standorts einer bestimmten IP-Adresse ist nicht immer einfach: Es spielen viele Faktoren eine Rolle, und die Eigentümer des IP-Adressbereichs entscheiden sich möglicherweise dafür, ihn auf der anderen Seite der Welt anzukündigen (dann müssen Sie warten, bis die Datenbank aktualisiert wurde, um den richtigen Standort zu erhalten). Manchmal weisen VPS-Anbieter Adressen, von denen angenommen wird, dass sie sich in den USA befinden, einem VPS in Singapur zu.
Im Gegensatz zur Verwendung von Anycast-Adressen erfolgt die Verteilung während der Namensauflösung und nicht während der Verbindung zum Caching-Server. Wenn der rekursive Server keine EDNS-Client-Subnetze unterstützt, wird der Speicherort dieses rekursiven Servers verwendet, nicht der Benutzer, der eine Verbindung zum Cache-Server herstellt.
Client-Subnetze in DNS sind eine DNS-Erweiterung (RFC7871), die definiert, wie rekursive DNS-Server Clientinformationen an einen DNS-Server senden können, insbesondere Netzwerkinformationen, mit denen der GeoDNS-Server einen Client genauer lokalisieren kann.
Die meisten verwenden die DNS-Server ihres ISP oder DNS-Server, die sich geografisch in ihrer Nähe befinden. Wenn sich jedoch jemand in den USA aus irgendeinem Grund für die Verwendung eines DNS-Resolvers in Australien entscheidet, erhält er höchstwahrscheinlich eine IP. Serveradresse am nächsten zu Australien.
Wenn Sie GeoDNS verwenden möchten, ist es wichtig, diese Funktionen zu kennen, da dies in einigen Fällen den Abstand zwischen den Caching-Servern und dem Client vergrößern kann.
Zusammenfassung: Wenn Sie mehrere VPS in einem CDN kombinieren möchten, ist die beste Bereitstellungsoption die Verwendung eines DNS-Serverpakets mit der sofort einsatzbereiten GeoDNS + Anycast-Funktion.