Anycast
Anycast ist eine Adressierungsart in Computernetzen, bei der einer ganzen Gruppe von Rechnern eine gemeinsame Adresse zugeteilt ist, unter der man aber nur den Rechner erreicht, der über die kürzeste Route erreichbar ist. Diese Technik kommt gemäß OSI-Modell in der Vermittlungsschicht zum Einsatz.
Kommunikationsformen / Routing-Schemata |
---|
Unicast
|
Broadcast
|
Anycast
|
Multicast
|
Geocast
|
Funktionsweise
Realisiert wird Anycast durch eine Verteilung mehrerer gleichartiger Server auf räumlich getrennte IP-Netze. In der Praxis wird oft auf jedem Kontinent oder in jedem Land einer Region mindestens ein Server installiert. Jeder dieser Rechner erhält dieselbe IP-Adresse und propagiert eine entsprechende Route über ein Routing-Protokoll (im Internet BGP). Bei Ausfall oder Unerreichbarkeit verschwindet die Route und alle folgenden Pakete werden zu einem anderen Server geleitet. Der gewünschte Dienst kann somit auch bei Ausfall eines oder mehrerer Server erbracht werden. Damit erhöht sich die Verfügbarkeit. Zur Administration muss ein Server auch direkt angesprochen werden können. Anycast-Server besitzen daher in fast allen Fällen zusätzlich eine Unicast-Adresse.
Aus Sicht eines Clients besteht zwischen Unicast und Anycast kein Unterschied. Im Gegensatz zu Multicast-Umgebungen, die Pakete für alle Gruppenmitglieder erzeugen, erzeugt der Absender hier nur ein einzelnes Paket. Anycast ist ein Merkmal, das insbesondere in IPv6 Unterstützung findet. Ein Paket mit einer Anycast-Adresse wird nur einem – im Allgemeinen dem nächstgelegenen – Interface der Gruppe zugestellt. Welches das ist, bestimmt der Eintrag in der Routingtabelle des dem Absender nächstgelegenen Routers.
Dieses Konzept ermöglicht es Unternehmen, eine isolierte Anycast-Adresse zu nutzen, um ein Paket mehreren Routern des Providers zuzustellen, welche Mitglied einer Anycastgruppe sind – d. h., sie besitzen dieselbe Anycast-Adresse. Hat das Unternehmen mehrere Zugangspunkte zum Internet, so kann der Ausfall einer Verbindung zum Provider oder eines Routers beim Provider sofort durch einen anderen Router der gleichen Anycastgruppe kompensiert werden, welcher dann über eine der alternativen Verbindungen erreicht wird. Der Sender hat jedoch keine Möglichkeit, den physischen Empfänger (das Empfangsinterface) zu wählen, das Ziel wird ausschließlich durch das Routingprotokoll bestimmt.
Analog kann damit eine Lastverteilung erreicht werden, indem Pakete von Absendern immer dem nächstgelegenen Server zugestellt werden. Wenn mehrere Server einer Anycastgruppe in verschiedenen Netzen existieren, kann so erreicht werden, dass sich die Last ohne Wissen oder Mitwirkung des Absenders auf viele Server verteilt. Dies wird u. a. für die DNS-Rootserver genutzt (siehe unten).
Praxis
Wichtigste Vorteile von Anycast sind Lastverteilung und kürzere Zugriffszeiten. Hinzu kommen eine nahezu völlige Transparenz (der Anwender merkt gar nicht, dass er mit einem Anycast-Server kommuniziert) sowie eine hervorragende Skalierbarkeit (es können jederzeit Server hinzugefügt oder entfernt werden). Ein Nachteil ist die aufwendige interne Synchronisation, da alle beteiligten Server stets identische Daten bereitstellen müssen. Außerdem wird im Störfall die Fehlersuche erschwert, da oft nicht ohne weitere Analyse ersichtlich ist, welcher Server verantwortlich ist.
Anycast wird beispielsweise bei einigen der Root-Nameserver und Top-Level-Domain-Server sowie bei dem IPv6-in-IPv4-Tunnelmechanismus 6to4 eingesetzt. Anycast wird auch zur Abwehr von Distributed-Denial-of-Service-Angriffen (DDoS-Angriffe) von Firmen wie Cloudflare eingesetzt und als Dienstleistung, beispielsweise für Webseiten, angeboten. Bei solcherart geschützten Webseiten erfolgt der Zugriff mittels Reverse Proxy. So waren beispielsweise durch die Anycast-Lastverteilung mehrere DoS-Angriffe auf Root-Nameserver 2006 und 2007 weitgehend erfolglos.[1] Auch konnte einer der mit Stand 2013 bisher größten DDoS-Angriffe gegen Cloudflare mit mehr als 300 Gbps Spitzenlast durch das eingesetzte Anycast aufgehalten werden.[2]
Normen und Standards
- RFC 1546, Host Anycasting Service (1993).