Wie macht man regionales DNS wie ein CDN?

15

Ich schätze, diese Frage könnte berechtigt sein, wie funktioniert CDN auf DNS-Ebene? Das eigentliche Problem besteht jedoch darin, dass mein Unternehmen über Rechenzentren auf drei Kontinenten verfügt und wir über europe.example.com, us.example.com und asia.example verfügen müssen .com

CDNs senden Sie normalerweise an das lokale Rechenzentrum, das ich mir je nach Ihrer IP-Adresse vorstelle. Dies muss ein DNS-Vorgang sein, bei dem der DNS-Server in den USA Sie an ein USA-Rechenzentrum sendet, um dieselbe DNS-Suche für example.com durchzuführen.

Liege ich falsch? Wie kann ich dies effektiv und wenn möglich ohne zentrale (Nicht-DNS-) Server tun, wenn ich mich irre?

Stewart Robinson
quelle
5
Sie sollten nicht: queue.acm.org/detail.cfm?id=1647302
Etienne Dechamps

Antworten:

12

Das Problem mit CDNs ist, dass sie Sie nicht anhand Ihrer eigenen IP-Adresse leiten - sie leiten Sie anhand der IP-Adresse Ihres DNS-Servers ... Das könnte völlig falsch sein. Und lesen Sie den ACM-Artikel von Paul Vixie .

Wie auch immer, wenn Sie bereits haben region.example.comgesetzt und laufen, Sie könnten erwägen aus einem HTTP - Weiterleitung example.comauf den entsprechenden Web - Server, basierend auf der Adresse des Client - IP.

Das ist so ziemlich das, was Google macht, und so bin ich zum google.co.ukTippen gekommen google.com.

Stellen Sie jedoch auch sicher, dass Sie den Kunden die Möglichkeit geben, zu den anderen Variationen zu gelangen. Kunden mögen es nicht, wenn sie zu einer bestimmten Site gezwungen werden, sei es aufgrund von Fehlern in den Geo-Datenbanken oder einfach, weil sie die Site tatsächlich aus einer anderen Region sehen müssen.

Alnitak
quelle
5

Neuere CDNs (Cloudflare, MaxCDN, fast.ly) verwenden Anycast sowohl für DNS- als auch für eigentliche Inhaltsserver. Dies ist etwas besser als der Versuch, die Quell-IP einer DNS-Abfrage und einer sich ständig ändernden Zuordnungsdatenbank zu verwenden.

Theoretisch ermöglicht die Verwendung von Anycast sowohl für den DNS- als auch für den Inhaltsserver dem Netzwerk, die "nächstgelegenen" Server zum Client zu finden. In der Praxis ist dies meistens der Fall, aber es gibt einige seltsame Fälle, in denen Menschen in Singapur Edge-Server in Kalifornien anstelle von Hongkong treffen, da sich die Peering-Beziehungen zwischen ISPs ständig ändern.

Anycast ist schwer gut zu machen .

Ältere CDNs wie Akamai und Limelight verwenden in der Regel Anycast, um Sie zum nächstgelegenen DNS-Server zu bringen, verwenden dann jedoch den auf der Quelle basierenden IP-Ansatz. Dies funktioniert meiner Erfahrung nach nicht so gut, insbesondere wenn ein Client DNS-Server verwendet, die in Bezug auf die Netzwerktopologie nicht in der Nähe sind. Ein riesiger etablierter CDN wie Akamai verfügt jedoch über Hunderte von Content-Server-Standorten, sodass die Rückgabe einer "ausreichend engen" Antwort zu einer anständigen Benutzererfahrung führt. Es ist offensichtlich sehr teuer, Hunderte von Websites zu haben, weshalb sich keiner der CDNs für diese Route entschieden hat. Folglich berechnen sie auch nicht so viel für meist gleichwertige Dienstleistungen.

Malayter
quelle
1

Es gibt eine Reihe von Möglichkeiten, um damit umzugehen, aber alle beschränken sich darauf, herauszufinden, wo sich eine IP-Adresse befindet, und sie entsprechend zu verweisen. Beispielsweise können Sie einen IP-Bereich für Nordamerika und einen für Europa angeben. Wenn die IP, die die Informationen anfordert (von DNS, Ihrem Webserver, Ihrem Inhaltsserver usw.), in den europäischen Bereich fällt, sollten Ihre europäischen Server die Anforderungen erhalten.

Ben Doom
quelle
Ben, was meinst du? Meinst du, ich habe einen DNS-Server in den USA und einen in Großbritannien? Wenn ich an DNS denke, stelle ich einfach meinen A-Eintrag ein und bin fertig. Wie kann ich diese DNS-Server auf regionaler Basis angeben?
Stewart Robinson
Ich glaube, was er meint, ist so etwas wie Ansichten in Verbindung. Sie können verschiedene Ansichten in DNS einrichten, die anhand der IP-Adresse des Clients übereinstimmen. Diese können grob als zu einer geografischen Region gehörend identifiziert werden. Es stehen viele Dienste zur Verfügung, über die Sie eine Anforderung an eine API weiterleiten und einen Speicherort abrufen können. Wenn Sie sich kurz umschauen , können Sie hostip.info/dl/index.html für eine günstigere / kostenlose Option ausprobieren .
Greeblesnort
Das habe ich gerade beim abendlichen Stöbern gesehen: blogs.techrepublic.com.com/networking/…
Greeblesnort
@Stewart - Nein, Sie würden nicht einen DNS-Server pro Region betreiben. Nun, Sie könnten, aber das wäre aus Redundanzgründen, da das DNS-System selbst standortunabhängig ist. @ greeblesnorts Antwort ist fast so gut wie sein Name. :-)
Ben Doom
0

Sie können unter example.com eine Standard-Hauptseite einrichten. Wenn jemand das erste Mal zu Besuch ist, wählt er die Region aus, an die er weitergeleitet werden möchte. So funktioniert auch www.ups.com.

Der Benutzer kann ein Kontrollkästchen aktivieren, um diese Auswahl von diesem Zeitpunkt an zu seiner Standardauswahl zu machen und somit die Auswahl in einem Cookie zu speichern.

Auf diese Weise können Sie das DNS so nutzen, wie es von Paul Vixie entwickelt wurde, und Ihren Benutzern gleichzeitig die Möglichkeit geben, genau zu entscheiden, an welches Rechenzentrum sie weitergeleitet werden sollen.

Richard West
quelle
0

Wenn Sie eine Website haben, die in mehreren Regionen gehostet wird, müssen Sie auf DNS-Ebene nichts unternehmen. Sie können eine API wie http://ipinfo.io verwenden , um das Land des Besuchers abzurufen und diese dann an die entsprechende URL weiterzuleiten.

Wenn es sich nicht um eine Website oder ein Protokoll handelt, das Weiterleitungen verarbeitet, stehen auf DNS-Ebene einige Optionen zur Verfügung. Sie können dieselbe IP-Ländersuche durchführen und dann einen Datensatz zurückgeben, der mit der Region übereinstimmt (geolocation based DNS), oder Sie können eine Karte der Latenz zwischen verschiedenen Netzwerken erstellen und einen Datensatz zurückgeben, der die niedrigste Latenz für den Benutzer darstellt (Latenz) basiertes DNS). Der Route53-DNS-Service von Amazon bietet beides.

Ben Dowling
quelle