DNS-Master synchronisieren

Anus+

New Member
Servus!

Ausgangssituation:
Zwei örtlich getrennte Firmen-Standorte, zwei Gateways ins Internet, zwei Master-DNS Server, zwei DHCP-Server - jew. einer je Standort.
Jeder Standort ist Infrastrukturtechnisch unabhängig vom anderen (das ist so gewünscht und soll auch so bleiben). Die Master-DNS Server werden über den DHCP-Server (DDNS) mit aktuellen einträgen versorgt. Die beiden internen Netze sind über VPN (Layer 2 Bridge-Mode) miteinander verbunden. Die Gateways machen NAT für die internen Netze bei beiden Standorten (Verbindungen ins Internet laufen nicht über das VPN, sondern direkt). Die DNS-Server verwalten die gleiche interne zone "intranet.local". Auf allen Servern läuft selbstverständlich Linux (Debian 4.0 Etch).

Hoffe das war halbwegs verständlich. Die DHCP-Server vergeben Adressen aus dem Subnetz 192.168.0/23, wobei am Standort A nur Adressen von 192.168.0.1 bis 192.168.0.254 und am Standort B nur Adressen von 192.168.1.1 bis 192.168.1.254 verteilt werden. Das Subnetz ist absichtlich auf beiden Seiten so gewählt (wg. der Windows-Clients, damit das ganze NetBios Zeug auch vernünftig funktioniert).

Somit funktioniert jeder Standort für sich noch ohne Einschränkungen, auch wenn die Internet-Verbindung und somit das VPN einmal zusammenbricht.

Zur Verdeutlichung im Anhang noch eine (hoffentlich aussagekräftige Grafik).


Problem:
Wenn nun am Standort A ein neuer Client hinzukommt, erhält dieser eine IP aus dem Bereich 192.168.0.1 - 192.168.0.254 und wird in den DNS eingetragen und ist somit auch über seinen Hostnamen host.intranet.local erreichbar - zumindest am Standort A.
Standort B kann host.intranet.local nicht über dessen Hostnamen erreichen, weil der DNS am Standort B natürlich nichts von ihm weiß (Master-DNS Server). Über die IP-Adresse funktioniert es natürlich (sind ja beide Standorte im Subnetz 192.168.0/23).
Das Gleiche Spiel geht natürlich auch genau umgekehrt.

Frage:
Wie kann man bewerkstelligen, das der Master-DNS am Standort B von host.intranet.local erfährt ohne das ich aus ihm einen Slave mache?
Oder ist es möglich auch einen Slave mit DDNS-Updates zu versorgen die er dann anschließend dem Master mitteilt?


Bin ich ja einmal gespannt ob mir hier jemand helfen kann... bin für jeden Ratschlag dankbar!


Gruß, Anus+
 

Attachments

  • Zeichnung1.png
    Zeichnung1.png
    90.5 KB · Views: 959
im DNS ist es (IMHO) leider nicht vorgesehen, dass es mehrere Master für dieselbe Zone gibt...

Mir scheinen im wesentlichen zwei Lösungen praktikabel:

a) das ganze in zwei Zonen aufsplitten ....a.intranet.local. und ....b.intranet.local., wobei die Master jeweils an den entsprechenden Standorten stehen und an den anderen Standorten dann die Slaves. Für gemeinsam genutzte Rechner kann man ja CNAMEs verwenden. Falls ein Rechner während eines "Net-Splits" dazu kommt, ist er bei den anderen Standorten natürlich zunächst nicht bekannt -- daher kann man ja die Slaves regelmäßig Zone-Transfers durchführen lassen.

b) Wenn die Rechnerfluktuation nicht ganz so hoch ist, kann man die IP-Adressen per DHCP nicht dynamisch vergeben, sondern an die MAC-Adresse binden. Somit brauchen sich die Windows-Rechner dann auch nicht in DNS zu registrieren und es reicht, nur an einem Standort einen Master zu haben und an den anderen Standorten Slaves. Nachteil: Es können keine "ganz neuen" Rechner hinzugefügt werden, solange das VPN nicht funktioniert.

Diese Lösungen gehen zwar nicht in die Richtung, die Du Dir vorgestellt hast, stellen aber IMHO den "saubereren" Weg dar.

Viele Grüße,
LinuxAdmin
 
Andere Möglichkeit:

Standort A -> Master DNS
Standort B -> Slave DNS

Alle Rechner bekommen alle 2 DNS Server per DHCP zugewiesen. Das sollte doch passen. Ist der eine DNS nicht erreichbar, weil die VPN weg ist, wird automatisch der 2. DNS Server angesprochen. Wenn dann jeweils lokal (auf Standort bezogen) noch die DNS Anfragen zwischengespeichert werden, kannst du an das Thema "DNS Traffic zw. Standort A und B" einen Haken machen. :)

Abgewandelte Variante:
Alle Rechner im Standort A bekommen als ersten DNS den Master als Alternativ DNS den Slave per DHCP zugewiesen.
Alle Rechner im Standort B bekommen als ersten den Slave DNS und den Master DNS als Alternative per DHCP zugewiesen.

Um das Master Slave Verhältnis würde ich keinen Bogen machen, schon um sicherzustellen das die 2 DNS Server sich regulär abgleichen.
 
Last edited by a moderator:
Vielen Dank erst einmal für all die Vorschläge!

Irgendwie ist davon leider keiner wirklich befriedigend und alles die Konstellationen, die ich mir selbst schon so oder ähnlich ausgesponnen hatte. Ich werde die Vorgeschlagenen Möglichkeiten aber nochmals genauer analysieren, evtl. komme ich ja doch noch mit einer zurecht. ;-)

Beim weiteren überlegen ist mir auch folgende Idee gekommen: Man könnte ein kleines Shell- od. Perl-Skrip erstellen, welches die Logdatei von DHCP/DNS überwacht und im Falle das ein neuer Eintrag im DNS angelegt wurde, mittels nsupdate auch den zweiten Nameserver aktualisieren.

Allerdings ist das wieder so eine "Bastellösung", gefällt mir also noch weniger. Wäre aber vermutlich die Variante, die Trafficmäßig am wenigsten ins Gewicht fällt bei einem DDNS-Update-Vorgang.

Sonst noch irgendwelche Ideen?

@society: Microsoft Visio 2003 :cool:


Gruß, Anus+
 
Das mit dem Skript gänge natürlich auch. Aber das was du damit erreichen möchtest, macht ja das DNS mit dem Master / Slave Verhältniss von Haus aus automatisch. Die Arbeit würde ich mir sparen.

Wenn es dir wirklich nur um den Traffic geht: Wenn ich das richtig in Erinnerung habe, kann man die Aktualisierungs-Intervalle zwischen DNS Servern prinzipiell einstellen. Du hättest also die Möglichkeit zu sagen, das sich die beiden Server nicht permanent abgleichen (machen die das überhaupt?), sondern in "größeren" Intervallen.
Ist das mit dem Traffic wirklich so wichtig? Ich glaube DNS erzeugt nicht wirklich viel Daten, welche von Standort A zum Standort B bzw. umgekehrt geschickt werden müssten.
 
Na ja, da einer der Standorte nur über schmalband (1000/256 KBit/s) angebunden ist, sollte die Leitung natürlich so wenig wie möglich belastet sein. Damit noch genug Spielraum für das Tagesgeschäft (Dateiübertragungen, Internet) zur Verfügung steht.

Das Problem was mir auf anhieb einfällt, wenn ich die Update-Intervalle zwischen Master- und Slave-Server erhöhe ist folgendes (angenommen Master Server am Standort A und Clients am Standort B bekommen den Slave als Primären DNS): Ein neuer Client am Standort B bekommt eine neue IP, es wird eine DDNS-Nachricht vom DHCP-Server an den DNS am Standort B geschickt, dieser leitet die DDNS-Update-Message weiter an den Master-DNS, dieser macht das Update. Wenn jetzt der Slave nicht über die Änderung in der Zone benachrichtigt wird, kann der neue Client am Standort B nicht über seinen Hostname erreicht werden - vom Standort A allerdings schon. :-) Klar hierfür gibt es allerdings wieder notify...

Dennoch: Umso mehr ich darüber nachdenke... umso sympathischer wird mir die Sache mit einem Master und einem Slave. Das mit den unterschiedlichen (Sub-) Domains muss ich mir auch nochmals genauer überlegen, ob das "schön" zu realisieren ist. So könnte man vielleicht jew. den DNS des anderen Standorts als forwarder eintragen.


Gruß, Anus+
 
Back
Top