2009-04-21 5 views
3

Ich möchte Bind/Write-Treiber konfigurieren, die DNS-Anforderungen basierend auf der IP-Adresse des Clients löst.DNS-Auflösung basierend auf Client-IP

Wir möchten die Domainnamen aller Testumgebungen für unsere Webanwendung vereinheitlichen. Anstatt viele Domänen wie test.mysite.com, qa.mysite.com usw. für verschiedene Staging-Umgebungen zu haben, wollen wir nur www.mysite.com haben und es konfigurierbar machen, auf welche Testumgebung es "zeigt".

Um dies zu erreichen, stelle ich mir eine Webschnittstelle zur Verfügung, um zu konfigurieren, welche Testumgebung verwendet werden soll. DNS-Anfragen als sollten basierend auf dieser Konfiguration beantwortet werden.

Glauben Sie, dass so etwas mit bind oder anderen DNS-Servern machbar ist? Und wie vergleicht es sich damit, Client-Anwendungen zu schreiben, die die lokale Hosts-Datei modifizieren?

+0

Ich denke, dass dies schnell auseinander fallen wird, wenn Sie Kunden kommen, um es von anderen IPs zu testen. Kunden werden in der Regel Produktionsdaten und einige Testumgebungen verwenden wollen. Clients haben möglicherweise keinen Zugriff auf alle Testumgebungen. Es würde auch ziemlich nervig sein, wenn man Umgebungen vergleicht oder sicherstellt, dass eine gefährliche Operation tatsächlich auf die Umgebung abzielt, auf die sie zielen sollte. –

Antwort

3

Sie PowerDNS mit dem pipe backend können verschiedene IP-Adressen abhängig von der Client-IP-Adresse zurück.

+0

Ja, nette Software und es gibt mehrere Möglichkeiten, ein Backend zu schreiben (die Pipe ist die einfachste). – bortzmeyer

1

Sie können dies mit der location Einrichtung in djbdns tun. Ihre Aufgabe besteht darin, die DNS-Datendateien im richtigen Format zu schreiben (und zu analysieren, wenn Sie kein separates Datenbank-Backend haben möchten).

Hier ist eine weitere Ressource zu einem verwandten Thema, "Split Horizon DNS". Es ist nicht das gleiche wie Ihre Frage, aber die Ideen in dem Artikel können an Ihre Bedürfnisse angepasst werden: http://jdebp.eu./FGA/dns-split-horizon.html