Anycast – Was ist das?

Unser Themen Artikel zum Routing-Szenario Anycast
Home » Themen » Anycast – Was ist das?

Was ist Anycast?

Anycast ist eine Adressierungs- bzw. Routingmethode, bei der Anfragen von Nutzern an mehreren Standorten ankommen und beantwortet werden können. Während bei Unicast jedes Endgerät eine eigene IP-Adresse erhält, ist dies bei Anycast explizit nicht gewünscht. Traffic von und zu einer IP-Adresse wird immer in dem am nächsten gelegenen Rechenzentrum verarbeitet. Lastspitzen und hohe Latenzzeiten können mit Anycast effektiv entgegengewirkt werden. Zudem kann Anycast eingesetzt werden um skalierbare Hochverfügbarkeitslösungen umzusetzen.

Anycast im WAN:

Im WAN-Bereich funktioniert Anycast, indem das gleiche IP-Netz an mehreren Standorten per BGP in das Internet announced – d.h. an die dortigen Upstreams und Peerings weitergegeben – wird. Dies hat zur Folge, dass die Anfragen von allen Nutzern an die IP-Adressen nicht mehr nur an einem Standort ankommen. Stattdessen wird der, aus Sicht des Nutzers, üblicherweise kürzeste Pfad zum nächstgelegenen Rechenzentrum genutzt. Jedes involvierte Rechenzentrum bzw. die dortigen Server verarbeiten somit nicht mehr alle Anfragen, sondern nur eine Teilmenge. Eine Entlastung der lokalen Ressourcen ist die Folge. Die Verteilung auf mehrere Endpunkte sorgt außerdem dafür, dass selbst der Ausfall von ganzen Rechenzentren automatisch kompensierbar ist. Damit es nicht soweit kommt, bietet Anycast im LAN zusätzliche Möglichkeiten, flexibel auf wechselnde Anforderungen zu reagieren.

Anycast im LAN:

Sobald entsprechende Anfragen von Nutzern in einem Rechenzentrum angekommen sind, bieten sich dank Anycast weitere Vorteile. Alle Endgeräte erhalten hier zwar eine eigene IP-Adresse, so dass ihre Erreichbarkeit gewährleistet ist, zusätzlich allerdings auch eine oder mehrere IP-Adressen aus einem IP-Netz, welches per Anycast in das Internet announced wird. Das Routing funktioniert hierbei ähnlich wie im WAN:
Jeder Server announced seine IP-Adresse(n) per BGP an die lokalen Router, welche daraufhin alle eingehenden Anfragen auf die verschiedenen Endgeräte verteilen. Auf den Servern kann hierfür beispielsweise eine Open-Source Routingsoftware eingesetzt werden. Die Server erhalten so die Möglichkeit, BGP Sessions zu anderen Geräten aufzubauen. Welche Software im Einzelfall sinnvoll ist, hängt jedoch sehr stark von der gegebenen Infrastruktur ab und bedarf daher einiger Überlegungen. Beispiele für BGP fähige Routing-Software im Open-Source Bereich wären etwa BIRD, Quagga und FRRouting, um nur drei zu nennen.

Anycast ermöglicht dadurch eine enorme Flexibilität. Benötigt man zusätzliche Server, so können diese einfach hinzugefügt werden, indem diese in das BGP-Setup aufgenommen werden. Andersherum können einzelne Server bei Problemen schnell aus dem Betrieb ausgeschlossen werden, indem einfach das Announcement der IP-Adresse(n) gestoppt wird – dies
ist natürlich auch automatisch möglich, sollten beispielsweise im Monitoring Probleme mit einem Server sichtbar werden. Auch eine Gewichtung der Routen kann realisiert werden, wenn man beispielsweise ein Fallback-Szenario anstrebt oder einzelne Geräte aus Lastgründen kurzzeitig ausschließen, aber nicht ganz aus dem Anycast-Setup herausnehmen möchte.

Anycast für alles?

Traditionell wurde Anycast in Szenarien verwendet, bei denen große Mengen an statischen Inhalten schnell zu den Nutzern gebracht werden sollen. Typischerweise wurde diese Technik daher in Content Delivery Networks (CDN) eingesetzt. In der heutigen Zeit wird es jedoch immer wichtiger auch dynamische Inhalte von Anwendungen zuverlässig und mit geringer Latenz zu den Nutzern zu bringen. Damit die optimale Skalierbarkeit und selbst im Katastrophenfall der Betrieb sichergestellt ist, kommt häufig eine weitere Anforderung hinzu:
Der Content soll geografisch über verschiedene Rechenzentren und Landesgrenzen hinweg verteilt werden können. Dies kann eine Herausforderung darstellen, doch auch in diesen Fällen bietet sich Anycast an, da das Routing im WAN-Bereich generell sehr variabel ist. Zwar kann man seinen Einflussbereich so weit es geht nutzen, d.h. beispielsweise die Auswahl an Upstreams und Peerings steuern, eigene AS-Pfade verlängern oder verkürzen und ähnliche Möglichkeiten ausschöpfen, das Routing bei anderen Providern kann man allerdings kaum weitergehend beeinflussen. Die verschiedenen Provider steuern ihre Routing-Pfade nach unterschiedlichen Kriterien, haben in verschiedenen Regionen unterschiedliche Bandbreiten zur Verfügung oder Schwankungen in der Auslastung ihrer Infrastruktur. Dadurch sind Pfade durch das Internet oftmals dynamisch und ändern sich häufig.

Es kann also passieren, dass die Anfragen eines Nutzers nicht alle permanent in einem Rechenzentrum bearbeitet werden. Bei modernen Webseiten ist dies zum Beispiel schnell ein Problem, da Session-Daten von permanenten Verbindungen üblicherweise nur an einem Standort oder eventuell sogar nur auf einem Server bekannt sind. Wechselt das Routing dann zu einem anderen Rechenzentrum, können die dortigen Endgeräte nichts mit den nachfolgenden Anfragen der betroffenen Nutzer innerhalb ihrer Sitzung anfangen.

Trotz dieser Einschränkung ist es möglich, Anycast auch für dynamische Inhalte zu nutzen. Wir betreiben über die recast IT Infrastruktur beispielweise seit vielen Jahren auch sehr komplexe Anwendungen, die dynamische Inhalte zuverlässig über Rechenzentren und Ländergrenzen hinweg an Kunden ausliefern. Die entsprechenden Session-Daten müssen bei einer solchen Lösung natürlich über die Rechenzentren bzw. die jeweiligen Server synchronisiert werden, was durchaus zu einem Mehraufwand bei der Einrichtung und Wartung, sowieso zu einer höheren Komplexität einer solchen Lösung führt. Der nötige Aufwand kann sich aber, je nach Größenordnung der Anwendung, durchaus lohnen und die Qualität der Dienste deutlich steigern.

Unsere Kunden – gemeinsam erfolgreich