Mehrere A-Einträge, die auf dieselbe Domäne verweisen, werden anscheinend fast ausschließlich zum Implementieren von DNS Round Robin als billige Lastausgleichstechnik verwendet.
Die übliche Warnung vor DNS RR ist, dass es nicht gut für eine hohe Verfügbarkeit ist. Wenn eine IP-Adresse ausfällt, wird sie von den Clients minutenlang verwendet.
Ein Load Balancer wird häufig als bessere Wahl vorgeschlagen.
Beide Behauptungen sind nicht ganz richtig:
Wenn der Datenverkehr dann HTTP ist, können die meisten HTML-Browser automatisch den nächsten A-Eintrag versuchen, wenn der vorherige nicht verfügbar ist, ohne dass eine neue DNS-Suche durchgeführt wird. Lesen Sie hier Kapitel 3.1 und hier .
Wenn mehrere Rechenzentren beteiligt sind, ist DNS RR die einzige Option, um den Datenverkehr auf diese zu verteilen.
Stimmt es also, dass die Verwendung von DNS RR bei mehreren Rechenzentren und HTTP-Datenverkehr die EINZIGE Möglichkeit ist, ein sofortiges Failover zu gewährleisten, wenn ein Rechenzentrum ausfällt?
Vielen Dank,
Valentino
Bearbeiten:
- Selbstverständlich verfügt jedes Rechenzentrum über einen lokalen Load Balancer mit Hot Spare.
- Es ist in Ordnung, die Sitzungsaffinität für ein sofortiges Failover zu opfern.
- AFAIK Die einzige Möglichkeit für einen DNS, ein Rechenzentrum anstelle eines anderen vorzuschlagen, besteht darin, nur mit der IP (oder den IPs) zu antworten, die diesem Rechenzentrum zugeordnet sind. Wenn das Rechenzentrum nicht mehr erreichbar ist, sind auch alle diese IP-Adressen nicht mehr erreichbar. Dies bedeutet, dass alle Versuche fehlschlagen, bis der lokale Cache - Eintrag abläuft und eine neue DNS - Suche durchgeführt wird und die neuen funktionierenden IP - Adressen abgerufen werden (ich nehme an, DNS schlägt a automatisch vor) neues Rechenzentrum, wenn einer ausfällt). "Smart DNS" kann also kein sofortiges Failover gewährleisten.
- Umgekehrt erlaubt ein DNS-Round-Robin dies. Wenn ein Rechenzentrum ausfällt, versuchen die (meisten) intelligenten HTML-Browser sofort, die anderen zwischengespeicherten A-Datensätze in ein anderes (funktionierendes) Rechenzentrum zu verschieben. DNS Round-Robin sichert also nicht die Sitzungsaffinität oder die niedrigste RTT, sondern scheint die einzige Möglichkeit zu sein, ein sofortiges Failover zu gewährleisten, wenn die Clients "intelligente" HTML-Browser sind.
Bearbeiten 2:
- Einige Leute schlagen TCP Anycast als endgültige Lösung vor. In diesem Artikel (Kapitel 6) wird erklärt, dass Anycast-Failover mit der BGP-Konvergenz zusammenhängt. Aus diesem Grund kann Anycast zwischen 15 Minuten und 20 Sekunden Zeit in Anspruch nehmen. In Netzwerken, in denen die Topologie dafür optimiert wurde, sind 20 Sekunden möglich. Wahrscheinlich können nur CDN-Betreiber solche schnellen Ausfälle gewähren.
Edit 3: *
- Ich habe ein paar DNS-Lookups und Traceroutes durchgeführt (vielleicht kann ein Experte dies noch einmal überprüfen) und:
- Das einzige CDN, das TCP Anycast verwendet, scheint CacheFly zu sein, andere Betreiber wie CDN-Netzwerke und BitGravity verwenden CacheFly. Scheint, dass ihre Kanten nicht als Reverse-Proxys verwendet werden können. Sie können daher nicht zum Gewähren eines sofortigen Failovers verwendet werden.
- Akamai und LimeLight scheinen geobewusstes DNS zu verwenden. Aber! Sie geben mehrere A-Datensätze zurück. Aus Traceroutes geht hervor, dass sich die zurückgegebenen IPs im selben Rechenzentrum befinden. Ich bin verwirrt darüber, wie sie eine 100% SLA anbieten können, wenn ein Rechenzentrum ausfällt.