it-swarm.com.de

Kann ich das DNS-Protokoll so ändern, dass Websites auf mehreren Servern gehostet werden und Benutzer zur geografisch nächstgelegenen Adresse weitergeleitet werden?

Lassen Sie uns so tun, als würde ich eine sehr große und beliebte Website hosten. Stellen wir uns auch vor, ich hätte viele Webserver auf der ganzen Welt verteilt. Jeder Webserver enthält identische Dateien.

Wenn ich meinen eigenen DNS-Daemon erstelle, können dann je nach ISP, der die Datensätze anfordert, unterschiedliche Datensätze ausgegeben werden, sodass jeder Benutzer direkt auf einen Webserver zugreifen kann, der viel näher bei ihm liegt?

6
charlie

Ja, dies ist möglich, vorausgesetzt Ihr DNS-Daemon verfügt über die Funktionen, um die nächstgelegene Webserver-IP basierend auf der Anforderung der Client-IP bereitzustellen. Keine typische DNS-Daemon-Bereitstellung, die sicher ist.

Es wurden zwei Links zum Konfigurieren von BIND gefunden, um die gewünschten Ergebnisse zu erzielen:

Viele Content Delivery Networks (CDN) wie Akamai verfügen über diese Funktion. Was sie noch besser macht, ist, dass sie Gesundheitschecks für den Zieldienst durchführen. Dadurch wird sichergestellt, dass der Kunde zu einem Dienst geleitet wird, der verfügbar ist und die beste Leistung erbringt.

2
user2320464

Wenn Sie Benutzer nur mit DNS zum nächstgelegenen Server leiten möchten, dann würde ich empfehlen, ein paar billige VPSs einzurichten, mit denen Sie Ihr eigenes DNS an verschiedenen geografischen Standorten hosten können.

DNS-Round-Robin ist keine großartige Möglichkeit zum geografischen Lastenausgleich, da bei mehreren A-Einträgen mit unterschiedlichen IP-Adressen der DNS-Server bei jeder Abfrage eines Nameservers lediglich die Reihenfolge der Adresseinträge ändert.

Daher könnte ein DNS-Server in Nordamerika Ihren A-Eintrag in Ihren Webserver in Nordamerika auflösen, während Ihr DNS-Server in Europa Ihren A-Eintrag in Ihren Webserver in Europa auflösen könnte. (Diese Standorte sind nur ein Beispiel. Der Punkt ist, dass Ihre DNS-Server Ihre A-Einträge auf Ihren Webserver auflösen, der diesem bestimmten DNS-Server am nächsten ist.)

Dies liegt daran, dass ein Client sollte den nächstgelegenen DNS-Server verwendet. Lesen Sie hier, wie ein Client den nächstgelegenen/schnellsten Nameserver auswählt - https: // superuser.com/questions/527116/how-does-my-browser-locate-the-nearest-dns-root-servers

Dies sollte Ihnen das gewünschte Ergebnis bringen, wenn Sie nur DNS-Server verwenden. Es gibt jedoch kommerzielle Lastausgleichsdienste, die viel eleganter wären.

1
Analog

Das DNS-Protokoll muss nicht manipuliert werden. Sie können einfach mehrere A-Einträge mit unterschiedlichen IP-Adressen hinzufügen. Der DNS-Server gibt die verschiedenen A-Einträge in zufälliger Reihenfolge zurück, sodass Ihre Benutzer zufällig auf die verschiedenen IP-Adressen verteilt werden.

0

Verwenden Sie Round-Robin-DNS oder einen Lastenausgleich.

0
William Edwards