Wie kann ich DNS verwenden, um eine geografisch lokale IP-Adresse zurückzugeben?

7

Wir haben weltweit mehrere Niederlassungen, aber unsere Rechenzentren befinden sich hauptsächlich an zwei zentralen Standorten (Nordamerika und Europa). Die Latenz zwischen verschiedenen Büros ist relativ hoch. Daher versuchen wir, Dienste am nächstgelegenen Standort des Benutzers zu hosten (dh kanadische Mitarbeiter verwenden Exchange-Dienste in den USA und nicht in Europa.)

Dieses Setup funktioniert größtenteils gut. Bei der Verwendung von Diensten wie Active Directory, Exchange oder DFS verlassen sich Clients auf vorhandene Standortinformationen in AD, um den nächstgelegenen Standort zu ermitteln.

Jetzt haben wir die Anfrage nach einem gemeinsamen DNS-Namen für den Zugriff auf bestimmte Webdienste, die sowohl in NA als auch in Europa gehostet werden. Bisher haben wir separate DNS-Namen verwendet (na-service.domain.local oder eu-service.domain.local), aber das wird für unsere Endbenutzer umständlich.

Alle unsere internen DNS werden derzeit auf Windows 2003- und 2008-Servern mit Microsoft DNS gehostet. Gibt es eine Möglichkeit, Microsoft DNS-Dienste so zu konfigurieren, dass sie nur auf Anfragen mit einer "lokalen" IP-Adresse antworten? Ich weiß, dass das Konfigurieren mehrerer A-Datensätze zu einer Antwort im Round-Robin-Stil führt, was nicht ideal ist. Wir könnten auch Primärzonen an jedem Standort verwenden und nur die lokale IP-Adresse eingeben, aber wir haben Hunderte anderer DNS-Einträge, die manuell auf jeden Server repliziert werden müssten.

Wenn dies mit MS DNS nicht möglich ist, gibt es andere kostengünstige Alternativen? Ich weiß, dass F5 Networks Produkte hat, die damit umgehen können, aber das ist mit einem ziemlich hohen Aufwand verbunden.

Doug Luxem
quelle

Antworten:

3

Möglicherweise haben Sie etwas Glück mit der Funktion "Subnetzpriorisierung" auf dem Microsoft DNS-Server. Ob es Ihnen hilft oder nicht, hängt davon ab, wie Ihre Subnetze angesprochen werden und wie Ihre geografisch "lokalen" Server angesprochen werden. Diese Funktion ist in Windows Server 2003 und 2008 standardmäßig aktiviert.

Ich würde empfehlen, sich über diese Funktion zu informieren. Besuchen Sie http://technet.microsoft.com/en-us/library/dd197495(WS.10).aspx unter der Überschrift "Subnetzpriorisierung".

Die "Ansicht" -Funktionalität in BIND würde wahrscheinlich auch das tun, was Sie wollen, aber dann sprechen Sie über die Bereitstellung einer parallelen DNS-Infrastruktur und viel Konfiguration.

Wenn Sie die Kontrolle über die webbasierte Anwendung haben, können Sie etwas außerhalb der Wand tun, z. B. Javascript einbetten, um den Standort des Benutzers zu "erkennen" und auf der Clientseite umzuleiten. Es ist ein bisschen Buschliga, aber es könnte tun, was Sie brauchen.

Evan Anderson
quelle
Interessant, das ist das erste Mal, dass ich von diesem Konzept gehört habe. Leider funktioniert dies bei uns nicht, da sich Clients selten im selben Subnetz wie die Server befinden (obwohl sie sich möglicherweise in dem größeren klassenlosen Subnetz befinden, das zur Vereinfachung des Routings verwendet wird).
Doug Luxem
Falls Sie die Beispiele nicht durchgelesen haben: Die Server und Clients müssen sich nicht im selben Subnetz befinden. Eine genaue Übereinstimmung im Client-Subnetz mit dem Server wird nicht durchgeführt. Stattdessen ordnet der Server die Ergebnisse anhand der engsten Übereinstimmung der IP-Adresse des Clients mit den Ergebnissen an. In einer typischen VLSM-Umgebung sollten die IP-Adressen, die sich geografisch in Ihrer Nähe befinden, hoffentlich bitweise in der Nähe Ihrer eigenen IP-Adresse liegen.
Evan Anderson
In diesem Fall sollte es ungefähr 90% unserer Kunden abdecken (einige Subnetze haben keinerlei Bezug zum geografischen Standort). Danke für die Information.
Doug Luxem
3

Ich habe diese Frage hier bei der Arbeit ein paar Mal gestellt bekommen, obwohl sie nie umgesetzt werden musste. Das ist also reine Theorie meinerseits.

Die beste Lösung (Hack?), Die ich finden könnte, wäre eine gemeinsame DNS-Subdomain, die nicht repliziert wird. Dann setzen Sie einfach die lokalen Server in dieses Setup. Sie hätten also so etwas:

NA DNS-Server
service.domain.local
web01.service.domain.local -> 10.10.10.200

EU-DNS-Server
service.domain.local
web01.service.domain.local -> 10.200.200.200

Die Clients, die eine Verbindung zu web01.service.domain.local herstellen, übernehmen also die lokale IP des Dienstes von ihren Standard-DNS-Servern. Sie können sie innerhalb der EU und der NA replizieren lassen, aber die Zone muss nicht zwischen der EU und der NA repliziert werden.

Zypher
quelle
2

Wie in einer früheren Antwort angegeben, sehen die Ansichten von BIND so aus, wie Sie es möchten. Es ermöglicht einem Nameserver, Gruppen von Clients, die Sie definieren, unterschiedliche Konfigurationen desselben Nameservers zu präsentieren.

Die Gruppen können über einzelne IP-Adressen oder Präfixe (wie 10.10.1.192/26) definiert werden. Hoffentlich können Ihre EU- und amerikanischen Gastgeber auf diese Weise unterschieden werden.

Netter Nebeneffekt: Ihre beiden Server können (fast) identisch BIND-konfiguriert sein und somit als gegenseitiges Failover fungieren.

Eine gute Möglichkeit, sich Views vorzustellen, besteht darin, dass es sich um die Virtualisierungsversion eines DNS-Servers handelt. Art von.

BIND ist kostenlos unter www.isc.org erhältlich.

Allen
quelle
1

Muss die Lösung über DNS erfolgen? Wenn nicht, klingt dies wie ein perfekter Kandidat für IP Anycast . Weitere Informationen finden Sie in dieser Frage. Kurz gesagt, es handelt sich um eine Netzwerkarchitektur, mit der Sie dieselbe IP-Adresse von mehreren Standorten aus ankündigen können, wobei Clients an die "nächste" Instanz (aus Sicht der Netzwerkkosten) der IP weitergeleitet werden. Auf diese Weise können Sie einfach einen globalen VIP (Virtual IP) für Ihre DNS-Einträge festlegen.

Murali Suriar
quelle
0

Neben BIND Views verfügt die neue Version von Windows Server (derzeit in einer technischen Vorschau) über eine Funktion namens DNS-Richtlinien, die sehr vielversprechend aussieht, um das zu erreichen, wonach Sie suchen.

Gabriel Talavera
quelle
0

Ich hatte das gleiche Problem. Wenn die Domain domain.local ist und ich wollte, dass webmail.domain.local je nach Site unterschiedlich reagiert, habe ich eine neue Zone webmail.domain.local (nicht AD-integriert) erstellt und der lokalen IP-Adresse des Webmail-Servers einen Platzhalter hinzugefügt .

Diese Domain wird nirgendwo repliziert, aber ich habe mich aus Redundanzgründen an jedem Standort für Master / Slave-Konfigurationen entschieden.

Obwohl dies zu einem Chaos wird, wenn Sie häufig auf vielen Websites warten müssen.

Jean
quelle
0

Mit den neuen Funktionen in Windows Server 2016 DNS können Sie Richtlinien für diese Art von Szenario definieren. Weitere Informationen finden Sie hier .

Yooakim
quelle