Hier ist das Schnelle und Schmutzige: Unter BIND9 mit einer dynamischen Zone, die von Ansichten gemeinsam genutzt wird, funktioniert das Aktualisieren / Erstellen / Löschen eines Datensatzes einwandfrei, wenn ich diesen Datensatz von einem Client abfrage, der in dieselbe Ansicht fällt wie das nsupdate von.
Wenn Sie aus einer Ansicht abfragen , die nicht mit der Ansicht übereinstimmt, die ich für nsupdate verwendet habe, wird NXDOMAIN ausgelöst (wenn ein neuer Datensatz hinzugefügt wird) oder es werden alte Datensatzinformationen im Falle einer Änderung / Aktualisierung bis zu einer beliebigen Zeitspanne angezeigt (z. B. 15) Minuten) vergeht, oder ich tue es gewaltsam $ rndc freeze && rndc thaw
. $ rndc sync
scheint überhaupt nichts zu tun, um das Problem zu beheben - ich hatte gehofft, dass es sich nur um eine Journaldateisache handelt, da dokumentiert ist, dass das Löschen des Journals etwa 15 Minuten dauert.
Wenn das nicht klar ist, finden Sie hier einen Pseudocode, um uns den Einstieg zu erleichtern:
BIND-Ansichten
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Beispiel Befehlszeile
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds with correct answer 10.5.6.7 ]
An anderer Stelle fällt ein Host in dieselbe Ansicht wie das nsupdate
user@10.11.12.50:~$ foohost.example.com (resolv.conf points to above nameserver)
[ responds with correct answer 10.5.6.7 ]
An anderer Stelle fällt der Host in eine andere Ansicht als das nsupdate
user@10.1.1.50:~$ dig foohost.example.com (resolv.conf points to above nameserver)
[ responds with NXDOMAIN even though I'm asking the same server ]
Wenn ich geduldig bin, wird sich das Problem zu diesem Zeitpunkt von selbst lösen (vielleicht 15 Minuten), aber ich habe häufig nicht den Luxus der Geduld, so dass ich gezwungen bin, $ rndc freeze && rndc thaw
auf dem Nameserver das Problem zwangsweise zu beheben.
Auf der Kehrseite
Auf der perfekt umgekehrten Seite kehrt sich das Problem um, wenn ich das nsupdate für den Server von einer Adresse aus durchführe, die in die Ansicht "cdn-redir" fällt. Nachfolgende Anfragen von Clients „CDN-redir“ erhalten die korrekte Aufzeichnung unmittelbar nach nsupdate passend ohne mit „rndc Frost / Tau - “ Hantieren, aber von Adressen abfragt , die außerhalb der Sicht von „CDN-redir“ fallen nun die Verzögerung / rndc silliness haben.
Meine letzte Frage
Wenn es so einfach wie 42 wäre, würde ich es mit offenen Armen nehmen ...
Ich möchte vermeiden, dass ich "rndc freeze && rndc thaw" muss, aus Angst, ein dynamisches Update vom DHCP-Server zu verpassen. Weiß jemand, wie die aktualisierten Datensätze effektiver / effizienter zwischen Ansichten synchronisiert werden können, oder kann er Aufschluss darüber geben, wo ich möglicherweise falsch liege?
Edit: BIND 9.9.5 / Ubuntu 14.04, aber es ist in früheren Versionen von Ubuntu und BIND passiert.
Vielen Dank an alle!
Wie von Andrew B angefordert , ist hier die redigierte (und teilweise) Zone:
$ORIGIN .
$TTL 3600
example.com IN SOA ns1.example.com. HOSTMASTER.example.com. (
2009025039 ; serial
900 ; refresh 15
600 ; retry 10
86400 ; expire 1 day
900 ; minimum 15 min
)
NS ns1.example.com.
$ORIGIN example.com.
$TTL 30
AEGIS A 10.2.1.60
TXT "31bdb9b3dec929e051f778dda5abd0dfc7"
$TTL 86400
ts-router A 10.1.1.1
A 10.1.2.1
A 10.1.3.1
A 10.1.4.1
A 10.1.5.1
A 10.1.6.1
A 10.1.7.1
A 10.1.8.1
A 10.2.1.1
A 10.2.2.1
A 10.2.3.1
ts-server A 10.2.1.20
ts-squid0 A 10.2.2.20
ts-squid1 A 10.2.2.21
$TTL 600
tssw4 A 10.2.3.4
tssw5 A 10.2.3.5
tssw6 A 10.2.3.6
tssw7 A 10.2.3.7
; wash rinse repeat for more hosts
$TTL 30
wintermute A 10.2.1.61
TXT "003f141e5bcd3fc86954ac559e8a55700"
zone
Erklärung sehen, weil meine Gedanken in eine ähnliche Richtung gingen wie die von Håkan.
server
anstelle von local external-ip-address
den MNAME der Zone (in der SOA der Zone) konsultiert und Sie möglicherweise zu einem anderen Nameserver führt, um Ihr DNS-Update durchzuführen (insbesondere, wenn Sie einen versteckten Master / öffentlichen Slave haben) oder Stealth-Master-Netzwerktopologie).