Über Anycast haben sicherlich viele gehört. Bei dieser Methode der Netzwerkadressierung und -routing wird eine IP-Adresse mehreren Servern im Netzwerk zugewiesen. Diese Server können sogar in weit voneinander entfernten Rechenzentren stehen. Die Idee von Anycast ist, dass die Daten abhängig vom Standort des Anfrageurs an den nächstgelegenen (gemäß der Netzwerktopologie, genauer gesagt – dem BGP-Routingprotokoll) Server gesendet werden. So kann die Anzahl der Netzwerkübergänge (Hops) und die Latenz (Delay) reduziert werden.
Im Grunde genommen wird die gleiche Route aus mehreren Rechenzentren weltweit angekündigt. Dadurch werden die Kunden an das „beste“ und „nächste“ Rechenzentrum gesendet, basierend auf den BGP-Routen. Warum also gerade Anycast? Warum sollte man Anycast anstelle von Unicast verwenden?
Unicast eignet sich tatsächlich für eine Website mit einem Webserver und moderatem Verkehrsaufkommen. Wenn ein Dienst jedoch Millionen von Abonnenten hat, nutzt er normalerweise viele Webserver, die alle die gleiche IP-Adresse haben. Diese Server sind geografisch verteilt, um Anfragen optimal zu bedienen.
In einem solchen Szenario bietet Anycast eine Leistungssteigerung (der Datenverkehr wird mit minimaler Verzögerung an den Benutzer geleitet), gewährleistet die Zuverlässigkeit des Dienstes (dank der Backup-Server) und Lastverteilung – das Routing auf mehrere Server verteilt die Last effektiv zwischen ihnen und verbessert die Geschwindigkeit der Website.
Anbieter offerieren ihren Kunden verschiedene Arten von Lastverteilung basierend auf Anycast und DNS. Kunden können IP-Adressen angeben, an die Anfragen abhängig vom geografischen Standort der Website gesendet werden. Dies ermöglicht eine flexiblere Verteilung der Benutzeranfragen.
Angenommen, es gibt mehrere Standorte, zwischen denen die Last (Benutzer) verteilt werden muss, beispielsweise ein Online-Shop mit 100.000 Anfragen pro Tag oder ein beliebter Blog. Um den geografischen Bereich zu begrenzen, aus dem die Benutzer auf einen bestimmten Standort zugreifen, kann die Geo Community-Option genutzt werden. Sie ermöglicht die Begrenzung der Region, innerhalb derer der Anbieter die Route ankündigen wird.


Anycast und Unicast: Unterschiede
Anycast wird häufig in Anwendungen wie DNS (Domain Name System) und CDN (Content Delivery Networks) verwendet, um Routingentscheidungen zu treffen, die die Netzwerkperformance verbessern. Content Delivery Networks nutzen Anycast, da sie mit hohen Datenmengen umgehen, und Anycast bietet in diesem Fall eine Reihe von Vorteilen (dazu mehr unten). Im DNS ermöglicht Anycast eine signifikante Steigerung der Zuverlässigkeit und Ausfallsicherheit des Dienstes.

Bei Anycast IP gibt es bei der Verwendung von BGP mehrere Routen zu einem bestimmten Host. Tatsächlich handelt es sich dabei um Kopien von Hosts in verschiedenen Rechenzentren, die zur Herstellung von Verbindungen mit geringerer Latenz verwendet werden.
In einem Anycast-Netzwerk wird die gleiche IP-Adresse aus verschiedenen Standorten bekanntgegeben, und das Netzwerk entscheidet, wohin die Benutzeranfrage basierend auf den "Kosten" der Route geleitet wird. Beispielsweise wird oft das BGP-Protokoll verwendet, um die kürzeste Datenübertragungsroute zu bestimmen. Wenn ein Benutzer eine Anycast-Anfrage sendet, bestimmt BGP die beste Route zu den in dem Anycast-Netzwerk verfügbaren Servern.
Vorteile von Anycast
Reduzierte Latenz
Systeme mit Anycast sind in der Lage, die Latenz bei der Bearbeitung von Benutzeranfragen zu verringern, da sie die Daten von dem nächstgelegenen Server abrufen können. Das bedeutet, dass Benutzer immer mit dem "nächsten" (in Bezug auf das Routing-Protokoll) DNS-Server verbunden werden. Infolgedessen reduziert Anycast die Interaktionszeit, indem die Netzwerkentfernung zwischen Client und Server verringert wird. Dies verringert nicht nur die Latenz, sondern sorgt auch für eine Lastenverteilung.
Geschwindigkeit
Da der Verkehr zum nächstgelegenen Knoten geleitet wird und die Latenz bei der Datenübertragung zwischen Client und Knoten verringert wird, führt dies zu einer Optimierung der Liefergeschwindigkeit, unabhängig davon, von wo der Kunde Informationen anfordert.
Erhöhte Stabilität und Ausfallsicherheit
Wenn mehrere Server weltweit dieselbe IP-Adresse verwenden, wird der Verkehr im Falle eines Ausfalls eines der Server oder dessen Deaktivierung auf den nächstgelegenen Server umgeleitet. Infolgedessen macht Anycast den Dienst stabiler und verbessert den Zugriff auf Netzwerk/ Latenz/ Geschwindigkeit.
Auf diese Weise erhöht Anycast durch die Verfügbarkeit mehrerer Server, die den Benutzern ständig zur Verfügung stehen, die Stabilität des DNS-Betriebs. Im Falle eines Knotenausfalls werden die Benutzeranfragen ohne manuelles Eingreifen oder Neuprogrammierung an einen anderen DNS-Server umgeleitet. Anycast ermöglicht einen nahezu nahtlosen Wechsel zu anderen Sites, indem einfach die Routen zur problematischen Site entfernt werden.
Lastverteilung
Im Anycast-System wird der Netzwerkverkehr auf verschiedene Server verteilt. Es funktioniert also wie ein Lastenausgleicher, der verhindert, dass ein einzelner Server die Hauptlast des Datenverkehrs trägt. Lastverteilung kann beispielsweise verwendet werden, wenn mehrere Netzwerk-Knoten sich in derselben geografischen Entfernung von der Quelle der Anfragen befinden. In diesem Fall wird die Last auf die Knoten verteilt.
Reduzierung der Auswirkungen von DoS-Attacken
Eine weitere Besonderheit von Anycast ist die Widerstandsfähigkeit gegen DDoS. Es ist unwahrscheinlich, dass DDoS-Attacken das Anycast-System lahmlegen, da man alle Server in einem solchen Netzwerk mit einer Flut von Anfragen angreifen müsste.
Bei DDoS-Attacken kommen häufig Botnetze zum Einsatz, die ein solches Verkehrsvolumen erzeugen können, dass der angegriffene Server überlastet wird. Der Vorteil der Verwendung von Anycast in dieser Situation besteht darin, dass jeder Server einen Teil des Angriffs 'aufnehmen' kann, was die Belastung des spezifischen Servers verringert. Ein Angriffsversuch, bei dem ein Dienst nicht verfügbar gemacht wird, wird wahrscheinlich auf dem Server lokalisiert und hat keine Auswirkungen auf den gesamten Service.
Hohe horizontale Skalierbarkeit
Anycast-Systeme eignen sich gut für Dienste mit hohem Verkehrsaufkommen. Wenn ein Dienst, der Anycast nutzt, neue Server für die Verarbeitung des wachsenden Verkehrs benötigt, können neue Server in das Netzwerk integriert werden, um diesen zu verarbeiten. Diese können an neuen oder bereits bestehenden Standorten platziert werden.
Wenn an einem bestimmten Ort ein hoher Anstieg des Traffics beobachtet wird, kann das Hinzufügen eines Servers helfen, die Last für diese Plattform auszugleichen. Das Hinzufügen eines Servers an einem neuen Standort kann die Wartezeit verkürzen, indem für einige Benutzer eine neue, kürzere Route geschaffen wird. Beide Methoden helfen auch, die Stabilität des Dienstes zu erhöhen, da neue Server im Netzwerk verfügbar werden. So kann, wenn ein Server überlastet ist, einfach ein anderer an dem Ort bereitgestellt werden, der es ihm ermöglicht, einen Teil der Anfragen des überlasteten Servers zu bearbeiten. Dabei sind keine Einstellungen auf der Client-Seite erforderlich.
Nur auf diese Weise kann man Terabits an Traffic und eine sehr große Anzahl von Benutzern bedienen, wenn der Server nur über einige 10 oder 25 Gbit/s Ports verfügt. 100 Hosts mit einer IP-Adresse ermöglichen es, terabit große Trafficmengen zu verarbeiten.
Einfachheit der Konfigurationsverwaltung
Wie bereits erwähnt, ist die interessante Nutzung von Anycast - DNS. Man kann mehrere verschiedene DNS-Server in den Knoten des Netzwerks platzieren, aber eine einzige DNS-Adresse verwenden. Je nach Standort der Quelle werden die Anfragen an den nächstgelegenen Knoten geleitet. Dies sorgt für eine gewisse Traffic-Balancierung und Redundanz im Falle eines Ausfalls des DNS-Servers. Dadurch wird anstelle der Konfiguration verschiedener DNS-Server, je nachdem wo sie sich befinden, die Konfiguration eines einzigen DNS-Servers auf alle Knoten ausgedehnt.
Anycast-Netzwerke können so konfiguriert werden, dass Anfragen nicht nur basierend auf der Entfernung, sondern auch anhand solcher Parameter wie Serververfügbarkeit, Anzahl der aktiven Verbindungen oder Antwortzeiten geroutet werden.
Für die Nutzung der Anycast-Technologie auf der Client-Seite sind keine speziellen Server, Netzwerke oder Komponenten erforderlich. Anycast hat jedoch auch Nachteile. Es gilt als komplexe Aufgabe, die zusätzliche Hardware, zuverlässige Anbieter und die richtige Traffic-Routing erfordert.
Von der reinen Quelle ins schöne Ferne
Obwohl Anycast Benutzer basierend auf der geringsten Anzahl an Übergängen leitet, bedeutet dies nicht notwendigerweise die minimale Verzögerung. Die Verzögerung ist eine komplexere Metrik, da sie bei einem Übergang höher sein kann als bei zehn.

Beispiel: Interkontinentale Kommunikation kann einen Übergang mit sehr hoher Latenz umfassen.
Anycast wird hauptsächlich für UDP-basierte Dienste wie DNS verwendet. Benutzeranfragen werden basierend auf den BGP-Routen an das "beste" und "nächste" Rechenzentrum gelenkt.

Beispiel: Ein DNS-Client-Computer mit der Anycast DNS-IP-Adresse 123.10.10.10 führt die DNS-Auflösung für den nächstgelegenen von drei DNS-Nameservern durch, die mit derselben Anycast-IP-Adresse bereitgestellt werden. Im Falle eines Routerausfalls R1 oder eines Serverausfalls A werden die Pakete des DNS-Clients automatisch an den nächsten nächstgelegenen DNS-Server über die Router R2 und R3 umgeleitet. Darüber hinaus wird die Route zu unserem Server A aus den Routing-Tabellen entfernt, um die weitere Nutzung dieses Nameservers zu verhindern.
Bereitstellungsszenarien
Es gibt zwei gängige Schemata, die verwendet werden, um zu bestimmen, mit welchem Server der Benutzer verbunden wird:
- Anycast auf Netzwerkebene. Verbindet den Benutzer mit dem nächstgelegenen Server. Hier ist der Netzwerkpfad vom Benutzer zum Server wichtig.
- Anycast auf Anwendungsebene. In diesem Schema gibt es mehr berechenbare Metriken, einschließlich Serververfügbarkeit, Antwortzeit, Anzahl der Verbindungen usw. Dies hängt von einem externen Monitor ab, der Netzwerkstatistiken bereitstellt.
Anycast-basiertes CDN
Lassen Sie uns nun zum Einsatz von Anycast in Content Delivery Networks zurückkehren. Anycast ist zweifellos ein interessantes Netzwerk-Konzept und gewinnt bei Anbietern neuerer CDN-Generationen zunehmend an Anerkennung.
Ein CDN ist ein verteiltes Netzwerk von Servern, das Inhalte mit hoher Verfügbarkeit und niedriger Latenz an Endbenutzer liefert. Content Delivery Networks spielen heute eine wichtige Rolle und bilden die Grundlage für zahlreiche multimediale Online-Dienste, während die Verbraucher zunehmend weniger geduldig mit langsamen Ladezeiten sind. Videos und Sprachdienste sind besonders empfindlich gegenüber Jitter und Latenz im Netzwerk.
CDN verbindet alle Server in ein Netzwerk und sorgt für schnellere Ladezeiten von Inhalten. Manchmal lässt sich die Wartezeit des Nutzers um 5-6 Sekunden verkürzen. Ziel des CDN ist die Optimierung der Bereitstellung durch die Bereitstellung von Inhalten von dem Server, der dem Endbenutzer am nächsten ist. Das ähnelt sehr dem Anycast, wo der nächstgelegene Server je nach Standort des Endbenutzers ausgewählt wird. Es scheint, dass jeder CDN-Anbieter standardmäßig Anycast verwenden sollte, aber in der Realität ist das nicht der Fall.
Anwendungen, die Protokolle wie HTTP/TCP verwenden, verlassen sich auf eine hergestellte Verbindung. Wenn ein neuer Anycast-Knoten ausgewählt wird (z. B. im Falle eines Serverausfalls), kann der Service unterbrochen werden. Aus diesem Grund wurde Anycast früher für verbindungslose Dienste wie UDP und DNS empfohlen. Dennoch funktioniert Anycast auch gut für verbindungsorientierte Protokolle, wie zum Beispiel TCP, das im Anycast-Modus hervorragend funktioniert.
Einige CDN-Anbieter nutzen Anycast-basierte Routing, andere bevorzugen DNS-basiertes Routing: Der nächstgelegene Server wird abhängig davon ausgewählt, wo sich der DNS-Server des Nutzers befindet.
Hybride Infrastrukturen und Infrastrukturen mit mehreren Rechenzentren sind ein weiteres Beispiel für die Anwendung von Anycast. Die von dem Anbieter bereitgestellte Load Balancing IP-Adresse ermöglicht die Verteilung der Last auf die IP-Adressen verschiedener Kundenservices im Rechenzentrum des Anbieters. Durch die Adressierungstechnologie ermöglicht dies jedem Gerät eine bessere Leistung bei hohem Traffic, Ausfallsicherheit und hilft, die Reaktionszeiten bei einer großen Anzahl von Nutzern zu optimieren.
In hybriden Infrastrukturen mit mehreren Rechenzentren kann der Traffic zwischen Servern oder sogar virtuellen Maschinen auf dedizierten Servern verteilt werden.
Somit besteht eine riesige Auswahl an technischen Lösungen zum Aufbau der Infrastruktur. Es kann auch eine IP-Adresslastverteilung in mehreren Rechenzentren eingerichtet werden, wobei die Geräteadressierung der Gruppe zur Optimierung der Webseitenleistung verwendet wird.
Der Verkehr kann gemäß den eigenen Regeln verteilt werden, indem das „Gewicht“ jedes der verteilten Server in jedem Rechenzentrum festgelegt wird. Eine solche Konfiguration ist besonders nützlich, wenn ein verteilter Server-Park vorhanden ist und die Leistung der Dienste unterschiedlich ist. So kann der Verkehr häufiger verteilt werden, um die Serverleistung zu steigern.
Um ein Kontrollsystem mittels des Ping-Commands zu erstellen, besteht die Möglichkeit, Sensoren zu konfigurieren. Dies ermöglicht es dem Administrator, eigene Kontrollverfahren festzulegen und ein klareres Bild über den Zustand jedes einzelnen Komponente in der Infrastruktur zu erhalten. Auf diese Weise können Verfügbarkeitskriterien definiert werden.
Es besteht die Möglichkeit, eine hybride Infrastruktur aufzubauen: Manchmal ist es sinnvoll, das Backoffice im Unternehmensnetzwerk zu belassen und den Schnittstellenteil an einen Anbieter auszulagern.
Es ist möglich, SSL-Zertifikate für die Lastenverteilung, die Verschlüsselung übertragener Daten und die Sicherheit der Kommunikation zwischen Website-Besuchern und der Unternehmensinfrastruktur hinzuzufügen. Im Fall der Lastenverteilung zwischen Rechenzentren kann ebenfalls SSL eingesetzt werden.
Der Anycast-Dienst mit Lastenverteilung von Adressen kann von einem Anbieter bezogen werden. Diese Funktion hilft, den Algorithmus zur Interaktion der Benutzer mit Anwendungen je nach Standort zu verbessern. Es genügt, die verfügbaren Dienste im Rechenzentrum anzukündigen, und der Verkehr wird auf die nächstgelegene Infrastruktur umgeleitet. Wenn dedizierte Server vorhanden sind, beispielsweise in Frankreich oder Nordamerika, werden die Kunden auf den nächsten Server im Netzwerk geleitet.
Eine der Möglichkeiten, Anycast zu nutzen, ist die optimale Auswahl des Standorts des Netzbetreibers (PoP). Wir geben an, . LinkedIn (in Russland blockiert) strebt nicht nur danach, die Leistung und Geschwindigkeit seiner Produkte – mobiler und webbasierter Anwendungen – zu verbessern, sondern auch die Netzwerkstruktur für eine schnellere Inhaltslieferung zu perfektionieren. Zu diesem Zweck nutzt LinkedIn aktiv PoPs – Punkte der Präsenz für die dynamische Inhaltslieferung. Um die Benutzer zum nächstgelegenen PoP zu leiten, wird Anycast angewendet.
Der Grund dafür ist, dass jede PoP von LinkedIn im Fall von Unycast eine eindeutige IP-Adresse hat. Dann werden die Benutzer abhängig von ihrem geografischen Standort über DNS einem PoP zugewiesen. Das Problem dabei ist, dass etwa 30 % der Benutzer in den Vereinigten Staaten bei der Verwendung von DNS zu einem suboptimalen PoP umgeleitet wurden. Durch das schrittweise Einführen von Anycast fiel die suboptimale Zuweisung von PoP von 31 % auf 10 %.

Die Ergebnisse des Pilot-Tests sind im Diagramm dargestellt, wobei die Y-Achse den Prozentsatz der optimalen PoP-Zuweisung darstellt. Mit dem „Hochfahren“ von Anycast zeigte sich in vielen Bundesstaaten der USA eine Verbesserung des Prozentsatzes des Traffics zu einem optimalen PoP.
Anycast-Netzwerküberwachung
Theoretisch sind Anycast-Netzwerke einfach: Mehreren physikalischen Servern wird dieselbe IP-Adresse zugewiesen, die BGP zur Bestimmung des Pfades verwendet. Die Implementierung und das Design von Anycast-Plattformen sind jedoch komplex, insbesondere sind dafür ausfallsichere Anycast-Netze bekannt. Noch komplizierter ist die effektive Überwachung von Anycast-Netzen zur schnellen Erkennung und Lokalisierung von Störungen.
Wenn Dienste einen externen CDN-Anbieter zur Bereitstellung ihrer Inhalte nutzen, ist es für sie von größter Bedeutung, die Netzwerkleistung zu überwachen und zu überprüfen. Bei der Überwachung von Anycast-basierten CDNs liegt der Schwerpunkt auf der Messung der End-to-End-Latenzen und der Merkmale des Penultimate Hops, um zu verstehen, welches Rechenzentrum den Inhalt bereitstellt. Die Analyse der HTTP-Server-Header ist eine weitere Methode, um herauszufinden, woher die Daten stammen.

Beispiel: HTTP-Antwortheader, die den Standort des CDN-Servers angeben.
Zum Beispiel verwendet CloudFlare seinen eigenen Header CF-Ray in den HTTP-Antwortnachrichten, der den Standort des Rechenzentrums angibt, an das die Anfrage gesendet wurde. Im Falle von Zendesk stellt der Header CF-Ray für die Region Seattle CF-RAY: 2a21675e65fd2a3d-SEA dar, während er für Amsterdam CF-RAY: 2a216896b93a0c71-AMS ist. Um herauszufinden, wo sich der Inhalt befindet, können auch die HTTP-X-Header aus der HTTP-Antwort verwendet werden.
Weitere Adressierungsmethoden
Es gibt auch andere Adressierungsmethoden, um Benutzeranfragen an einen bestimmten Endpunkt im Netzwerk zu routen:
Unicast
Der größte Teil des Internets verwendet heute genau diese Methode. Unicast ist eine Einzelfadübertragung, bei der die IP-Adresse nur mit einem bestimmten Knoten im Netzwerk verknüpft ist. Dies wird als eindeutige Zuordnung bezeichnet.
Multicast
Multicast verwendet die Kommunikation „eins zu vielen aus vielen“ oder „viele zu vielen“. Multicast ermöglicht es, eine Anfrage vom Sender gleichzeitig an verschiedene ausgewählte Endpunkte zu senden. Dies gibt dem Client die Möglichkeit, eine Datei in Teilen von mehreren Hosts gleichzeitig herunterzuladen (was nützlich für Streaming von Audio oder Video ist). Multicast wird häufig mit Anycast verwechselt, jedoch besteht der Hauptunterschied darin, dass Anycast den Sender an einen bestimmten Knoten leitet, auch wenn mehrere Knoten verfügbar sind.
Broadcast
Ein Datagramm von einem einzelnen Sender wird an alle Endpunkte gesendet, die mit der Broadcast-Adresse verbunden sind. Das Netzwerk repliziert automatisch die Datagramme, um mit allen Empfängern in der Broadcast-Übertragung (normalerweise in einem Subnetz) kommunizieren zu können.
Geocast
Geocast ähnelt in gewisser Weise dem Multicast: Anfragen vom Sender werden gleichzeitig an mehrere Endpunkte gesendet. Der Unterschied besteht jedoch darin, dass der Empfänger durch seinen geografischen Standort bestimmt wird. Dies ist eine spezialisierte Form der Gruppenadressierung, die von einigen Routing-Protokollen für mobile Peer-to-Peer-Netzwerke verwendet wird.
Der geografische Router (Geo Router) berechnet seine Zuständigkeitszone und nährt sie näherungsweise. Geo-Router bauen durch den Austausch von Zuständigkeitszonen Routing-Tabellen auf. Das System der Geo-Router hat eine hierarchische Struktur.



Unicast, Multicast und Broadcast.
Die Verwendung der Anycast-Technologie erhöht das Maß an Zuverlässigkeit, Fehlertoleranz und Sicherheit von DNS. Mit dieser Technologie bieten Betreiber ihren Kunden Dienste für verschiedene Arten von Lastenausgleich auf DNS-Basis an. Im Control Panel können IP-Adressen angegeben werden, an die Anfragen je nach geografischer Lokalisierung gesendet werden. Dies ermöglicht den Kunden eine flexiblere Verteilung der Nutzeranfragen.
Einige Betreiber wenden Routing-Überwachungssysteme an jedem Point of Presence (POP) an: Das System analysiert automatisch die kürzesten lokalen und globalen Routen für die Points of Presence und leitet sie über geografische Standorte mit der niedrigsten Latenz um, ohne Ausfallzeiten.
Momentan ist Anycast die stabilste und zuverlässigste Lösung für den Aufbau von hochbelasteten DNS-Diensten, die hohe Anforderungen an Stabilität und Zuverlässigkeit stellen.
Die .ru-Domain unterstützt 35 Anycast DNS-Server, die in 20 Knoten gruppiert sind, die sich über fünf Anycast-Clouds erstrecken. Dabei kommt das Prinzip der geographischen Anordnung, d.h. Geocast, zum Einsatz. Bei der Platzierung der DNS-Knoten wird darauf geachtet, dass sie in geografisch verteilten Standorten nahe bei den aktivsten Nutzern platziert werden, um eine maximale Konzentration russischer Anbieter am Standort des Knotens zu erreichen, sowie die Verfügbarkeit von freien Kapazitäten und die Möglichkeit des komfortablen Zugangs zur Plattform.
Wie erstellt man ein CDN?
Ein CDN ist ein Netzwerk von Servern, das die Auslieferung von Inhalten an Nutzer beschleunigt. verbindet alle Server zu einem Netzwerk und sorgt für schnellere Ladezeiten von Inhalten. Bei der Ladegeschwindigkeit spielt die Distanz vom Server zum Nutzer eine wichtige Rolle.
CDN ermöglicht die Nutzung von Servern, die der Zielgruppe am nächsten stehen. Dies verkürzt die Wartezeit und hilft, die Ladezeit von Websites für alle Besucher zu beschleunigen, was besonders entscheidend für Websites mit großen Dateien oder Multimedia-Diensten ist. Typische Anwendungsgebiete von CDN sind der elektronischen Handel und die Unterhaltungsindustrie.
Das in der CDN-Infrastruktur erstellte Netzwerk zusätzlicher Server, die möglichst nah an den Nutzern positioniert sind, fördert eine stabilere und schnellere Datenlieferung. Statistiken zeigen, dass die Nutzung von CDN die Verzögerung beim Zugriff auf eine Website um mehr als 70 % im Vergleich zu Websites ohne CDN reduziert.
Wie? Настройка CDN с использованием собственного решения Anycast может быть достаточно дорогим проектом, но есть более дешевые варианты. Например, можно использовать GeoDNS и обычные серверы с уникальными IP-адресами. С помощью сервисов GeoDNS можно создать CDN с функциями геолокации, в которой решения принимаются на основе реального местоположения посетителя, а не местоположения ресолвера DNS. Можно настроить свою DNS-зону так, чтобы показывать IP-адреса американских серверов посетителям из США, а европейские посетители будут видеть IP-адрес из Европы.
Mit GeoDNS können unterschiedliche DNS-Antworten je nach IP-Adresse des Nutzers zurückgegeben werden. Dazu wird der DNS-Server so konfiguriert, dass er je nach ursprünglicher IP-Adresse im Anfrage verschiedene IP-Adressen zurückgibt. Üblicherweise kommt eine GeoIP-Datenbank zum Einsatz, um die Region zu bestimmen, aus der die Anfrage kommt. Die Geolokalisierung mittels DNS ermöglicht es, den Nutzern Inhalte von der nächstgelegenen Seite zu liefern.
GeoDNS bestimmt die IP-Adresse des Clients, der die DNS-Anfrage gesendet hat, oder die IP-Adresse des rekursiven DNS-Servers des Anbieters, der bei der Bearbeitung der Client-Anfrage verwendet wird. Anhand der IP des Clients und der GeoIP-Daten wird das Land/Region bestimmt. Anschließend erhält der Client die IP-Adresse des nächstgelegenen CDN-Servers. Weitere Informationen zur Konfiguration von GeoDNS sind verfügbar..
Anycast oder GeoDNS?
Obwohl Anycast eine hervorragende Möglichkeit zum globalen Content-Delivery darstellt, fehlt es ihm an Spezifität. Hier kommt GeoDNS ins Spiel. Dieser Dienst ermöglicht es, Regeln zu erstellen, die Benutzer je nach ihrem Standort an einzigartige Endpunkte weiterleiten.

Beispiel: Benutzer aus Europa werden zu einem anderen Endpunkt geleitet.
Es ist auch möglich, den Zugriff auf Domänen zu sperren, indem alle Anfragen verworfen werden. Dies ist insbesondere eine schnelle Methode, um Angreifer herauszufiltern.
GeoDNS liefert genauere Antworten als Anycast. Während bei Anycast der kürzeste Weg nach der Anzahl der Hops bestimmt wird, erfolgt die Routing für Endbenutzer bei GeoDNS abhängig von ihrem physikalischen Standort. Das verringert die Latenz und erhöht die Genauigkeit bei der Erstellung granularer Routing-Regeln.
Wenn ein Benutzer auf eine Domain zugreift, wendet sich sein Browser an den nächstgelegenen DNS-Server, der je nach Domain die IP-Adresse für das Laden der Website bereitstellt. Angenommen, ein Online-Shop ist in den USA und in Europa beliebt, aber es gibt nur DNS-Server in Europa. Dann müssen Benutzer aus den USA, die die Dienste des Shops nutzen möchten, eine Anfrage an den nächstgelegenen Server senden, und da dieser sehr weit entfernt ist, wird die Antwort lange auf sich warten lassen – das Laden der Website wird nicht schnell sein.
Durch die Platzierung eines GeoDNS-Servers in den USA werden die Benutzer bereits auf ihn zugreifen. Die Antwort wird schnell sein, was sich auf die Ladegeschwindigkeit der Website auswirkt.
Im Falle eines vorhandenen DNS-Servers in den USA wird ein Benutzer aus den USA, der auf diese Domain zugreift, den nächstgelegenen Server ansprechen, der die benötigte IP bereitstellt. Der Benutzer wird auf den Server geleitet, der den Inhalt der Website enthält, aber da sich die Server mit dem Inhalt weit entfernt befinden, wird er diesen nicht schnell erhalten.
Wenn Sie in den USA CDN-Server mit zwischengespeicherten Daten bereitstellen, sendet der Browser des Kunden bei der Anfrage an den nächsten DNS-Server, der die benötigte IP-Adresse zurückgibt. Der Browser kontaktiert den nächstgelegenen CDN-Server sowie den Hauptserver, und der CDN-Server überträgt den zwischengespeicherten Inhalt an den Browser. Während der zwischengespeicherte Inhalt geladen wird, werden vom Hauptserver die fehlenden Dateien übertragen, die benötigt werden, um die vollständige Website zu laden. Dadurch wird die Ladezeit der Website verkürzt, da deutlich weniger Dateien vom Hauptserver gesendet werden.
Die genaue Bestimmung des Standorts einer bestimmten IP-Adresse ist nicht immer einfach: Hier wirken viele Faktoren, und die Eigentümer von IP-Adressbereichen können entscheiden, sie am anderen Ende der Welt anzumelden (dann muss gewartet werden, bis die Datenbank aktualisiert wird, um den richtigen Standort zu erhalten). Manchmal weisen VPS-Anbieter Adressen zu, die angeblich in den USA liegen, für VPS in Singapur.
Im Gegensatz zur Verwendung von Anycast-Adressen erfolgt die Verteilung während der Namensauflösung und nicht beim Herstellen der Verbindung zu einem Cache-Server. Wenn der rekursive Server die klientenbasierten EDNS-Subnetze nicht unterstützt, wird der Standort dieses rekursiven Servers verwendet, anstatt den Standort des Benutzers, der sich mit dem Cache-Server verbindet.
Client-Subnetze im DNS sind eine Erweiterung des DNS (RFC7871), die definiert, wie rekursive DNS-Server Informationen über den Kunden an den DNS-Server senden können, insbesondere Informationen über das Netzwerk, die der GeoDNS-Server zur genaueren Bestimmung des Standorts des Kunden verwenden kann.
Die meisten verwenden die DNS-Server ihres Internetanbieters oder DNS-Server, die geographisch in ihrer Nähe liegen, aber wenn jemand in den USA aus irgendeinem Grund beschließt, einen DNS-Resolver in Australien zu verwenden, erhält er höchstwahrscheinlich die IP-Adresse des Servers, der am nächsten zu Australien liegt.
Wenn Sie GeoDNS verwenden möchten, ist es wichtig, solche Besonderheiten zu kennen, da dies in einigen Fällen die Entfernung zwischen den Cache-Servern und dem Kunden vergrößern kann.
Zusammenfassung: Wenn Sie mehrere VPS in einem CDN zusammenfassen möchten, ist die beste Bereitstellungsoption die Verwendung einer Kombination aus einem DNS-Server mit GeoDNS-Funktion und Anycast "out of the box".
Quelle: habr.com
