Wie kann ich Besucher über DNS an den nächstgelegenen Server senden?

20

Gibt es eine Möglichkeit, DNS-Einträge zu lokalisieren? Das bedeutet, dass Benutzer aus Asien mydomain.com auf eine andere IP-Adresse als Benutzer aus den USA oder Europa auflösen. Dies wäre hilfreich, um den Benutzern den Server in der Nähe zur Verfügung zu stellen. DNS ist die einzige bisher verwendete Technik, was bedeutet, dass ich keine Software oder ein zentrales System installieren kann, das die DNS ersetzt, um dieses Problem zu lösen.

kcode
quelle

Antworten:

20

Ja, es gibt derzeit zwei beliebte Lösungen für dieses Problem.

Der erste wird als AnycastIP-Block bezeichnet , bei dem derselbe IP-Block buchstäblich an mehreren Standorten auf der ganzen Welt verwendet wird. Das heißt, die Nameserver für Ihre Domain geben immer dieselbe IP-Adresse zurück, diese IP-Adresse wird jedoch tatsächlich mehreren physischen Servern zugewiesen.

Sie können mehr darüber hier lesen http://en.wikipedia.org/wiki/Anycast

Die zweite Technik betrifft wieder AnyCast. Diesmal bezieht sich der übertragene IP-Adressbereich jedoch auf unsere Nameserver. Da die Nameserver nur von Clients anfordern, die ihnen am nächsten stehen (wie durch die Magie von BGP bestimmt), können sie selbst IP-Adressen zurückgeben, die logisch lokal für den Client sind.

Ein Beispiel hierfür ist die Domain l.google.com von Google

Von einem Gastgeber in Australien

crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104

Von einem Gastgeber in den USA

[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103

Der CNAME für wird also www.google.comin aufgelöst www.l.google.com. Wenn Sie dies jedoch abhängig von Ihrem Standort auflösen, erhält Ihr Client einen anderen Satz von IP-Adressen. Dies liegt daran, dass www.l.google.comder Nameserver, für den die Anforderung empfangen wurde, der lokale Nameserver im Verhältnis zum Client war.

Dave Cheney
quelle
5
Diese Antwort beantwortet die Frage technisch, aber ich denke, sie ist ziemlich nutzlos, da sie eine echte Antwort für ein tatsächliches Problem darstellt: Die meisten Parteien haben keine Sendung, daher ist Ihre Antwort für alle diese Parteien unerreichbar.
21.03.13
Welcher Registrant bietet diese Lösung an?
Dynamische
Erwähnenswert ist auch, dass DNS diese Funktion nativ hat. Platzieren Sie einen DNS-Server in einer Region, deren Datensatz auf einen Webserver in dieser Region verweist. Wiederholen Sie in anderen Regionen. Profitieren.
Dmourati
@dmourati: Würde dies nicht andere DNS-Server verbreiten und aktualisieren? Ich bin immer davon ausgegangen, dass DNS-Server Informationen immer verbreiten, bis sie alle synchron sind.
Guru Prasad
@GuruPrasad Mehrere Hosts (in der Regel in verschiedenen geografischen Gebieten) erhalten dieselbe Unicast-IP-Adresse, und verschiedene Routen zur Adresse werden über BGP bekannt gegeben. Router betrachten dies als alternative Routen zum selben Ziel, obwohl es sich tatsächlich um Routen zu unterschiedlichen Zielen mit derselben Adresse handelt. Wie üblich wählen Router eine Route anhand der verwendeten Entfernungsmetrik aus (die kostengünstigsten, die am wenigsten überlasteten und die kürzesten). Wenn Sie in diesem Setup eine Route auswählen, müssen Sie ein Ziel auswählen. == wikipedia / anycast ---- aber es funktioniert besser in IPv6 als diese Beschreibung
Garet Claborn
2

Wenn Sie nur Server für Asien, Nordamerika und Europa lokalisieren möchten, können Sie sowohl Ihre Webanwendung als auch Ihren DNS selbst ausführen.

Mit DNS könnten Sie so etwas wie den Split-Horizon-DNS- Ansatz verwenden, der entweder durch die integrierte Funktionalität Ihres DNS-Servers (sie nennen es möglicherweise GeoDNS ) oder durch eine Firewall erreicht werden kann , die unterschiedliche IP-Adressbereiche auf unterschiedliche Ausführung umleitet Instanzen Ihres DNS-Servers (Sie können mehrere verschiedene Kopien des Servers auf Ihrem lokalen Computer ausführen, die unterschiedliche lokale IP-Adressen überwachen).

Sie könnten wahrscheinlich in 90% der Fälle erwartete Ergebnisse erzielen, wenn Sie auf DNS-Anfragen von RIPE- und AfriNIC-IP-Adressen mit einem Eintrag AIhres Hosts in Europa, Anfragen von APNIC - Host in Asien und Anfragen von den IP-Adressen von antworten / 8- Blöcke, die von ARIN , LACNIC und dem Rest des / 8-Adressraums verwaltet werden, mit einem ADatensatz Ihres Servers in Nordamerika. Dies hat in bestimmten Situationen einige falsche Ergebnisse zur Folge (einige / 8-Blöcke werden zwischen Europa und Nordamerika geteilt, einige Adressräume sind Anycasts usw.), aber das Schlimmste, was passieren würde, ist eine zusätzliche Latenz für die betroffene Partei. t eine große Sache sein.

(Und ja, es sollte einen Weg geben, diese Dinge einfacher zu machen, aber bisher scheint es keinen zu geben.)

cnst
quelle
2

Ich hatte das gleiche problem Unsere Firma hat Kunden in Russland und China und alle brauchen eine sehr schnelle Verbindung zu unserem Service. Wir haben Amazon Route 53 Geo-DNS verwendet und gerade zwei Datensätze erstellt, von denen einer Kunden aus China zu unserem Cluster in der Region Tokio und Kunden aus Russland nach London weiterleiten wird.

amanbolat
quelle