BITFOX® | LÖSUNGEN | SERVICE | LOGIN | BLOG | KONTAKT
Posts mit dem Label bind werden angezeigt. Alle Posts anzeigen
Posts mit dem Label bind werden angezeigt. Alle Posts anzeigen

Montag, 22. Februar 2021

DDNS: DHCPd und die Journal-Files (.jnl)

Wer einen DHCPd errichtet und gegen den DNS betreibt stellt nach einer Zeit fest, dass die dynamischen Einträge im DNS durch Journal-Files (.jnl) in /var/named zu den Zonefiles vorgehalten werden. 

Nach einiger Zeit sieht das nicht nur ziemlich unschön aus, man kann auch aus den Zonefiles nicht mehr die "aktuelle Realität" ablesen -
und die Journal-Files sind für das menschliche Auge nicht ohne weiteres sprechend. 


Bereits im März 2019 hatte ich mich mal wieder damit befasst und hatte ein paar Zeilen geschrieben

Der wohl allgemeine Tipp um diese Deltas zwangsweise zusammen zu führen ist, die Zonen mit
rndc freeze rndc thaw
einzufrieren bzw. freizugeben. Das klappt jedoch auch nicht immer so ganz und persönlich fand ich das immer unschön, weil es nicht das "Problem" an der Wurzel packt - dem Synchronisieren der Files.

Eher zufällig bin ich heute durch das Manual gestolpert und habe da eine definitiv schönere Lösung gefunden:
rndc sync -clean
Das ganze als Cronjob auf 30 Minuten - und schon ist das Arbeiten wieder etwas einfacher.
*/30 * * * * rndc sync -clean
Man lernt nicht aus...! Schön! :-)

Sonntag, 21. Februar 2021

DNS und Root-Adressen updaten


Sonntags um 03:00 Uhr - das eigene Monitoring klingelt:
Internet gibt es nur noch so halb und alles alles an Maschinerie benimmt sich sehr sehr eigenartig.

5 Minuten später ist das Problem erkannt:
Der hauseigene mini-DNSrelay hat versagt und ich schwenke erst einmal voll um auf die Fritzbox bzw. Telekom. Doch was war passiert?

Aus unerklärlichen Gründen hatte sich beim Update der DNS-Rootserer-Einträge die /var/named/named.ca "aufgelöst" und somit konnten keine DNS-Rootserver mehr gefunden werden; was natürlich die entsprechenden Folgen hatte.
Hrm....

Also - ein neues Update-Script für die Ermittlung der DNS-Rootserver....! :-)

#!/bin/bash # # update-dns-roots # Script zum Aktualisieren der DNS-Root-Adressen # # 2021-02-21 Oliver Lenz # # contab -> # 0 10 1 * * /root/bin/update-dns-roots.bash >/dev/null 2>&1 || echo "Probleme in update-dns-roots.bash" # PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin destination="69.58.179.79" # ftp.rs.internic.net dt=$(date "+%Y%m%d%H%M%S") filter="FILTER:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" errorlevel=255 echo "Setup Firewall for ftp-Communication with ${destination}" modprobe ip_conntrack modprobe ip_conntrack_ftp iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 20 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}" iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 -d ${destination} --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "${filter}" iptables -A OUTPUT -p tcp --sport 1024:65535 -d ${destination} --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}" iptables -A INPUT -p tcp -s ${destination} --sport 20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "${filter}" iptables -A INPUT -p tcp -m tcp -m multiport -s ${destination} --sports 21,1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT -m comment --comment "${filter}" echo "Getting ca-File from ${destination}" wget -q --timeout=4 --tries=3 --waitretry=2 --user=ftp --password=ftp ftp://69.58.179.79/domain/db.cache -O /var/named/named.ca.tmp &>/dev/null if [ "$?" == "0" ]; then if cmp -s /var/named/named.ca /var/named/named.ca.tmp; then echo "No changes." rm -f /var/named/named.ca.tmp else cp -f /var/named/named.ca /var/named/named.ca.${dt} mv -f /var/named/named.ca.tmp /var/named/named.ca /usr/bin/systemctl restart named-chroot.service echo "Update ca-file successfully." fi errorlevel=0 else echo "Problems getting new ca-file via /root/bin/update-dns-roots.bash" errorlevel=1 fi echo "Remove Firewall-Rules for ftp-Communication with ${destination}." while read rule; do echo "${rule}" | xargs iptables done< <( iptables-save | grep " --comment \"${filter}\"" | sed "s/-A /-D /g" ) exit ${errorlevel}
Update: 2022-01-16 Typo in der Dateiausleitung nach /dev/null in der wget-zeile.

Sonntag, 2. Juni 2019

Jun 2 01:00:44 router named[4611]: isc_file_isplainfile '/var/log/named/named.log' failed: permission denied


Da war er wieder... bind.

Mal wieder eine Fehlermeldung aus dem Nichts:

Jun  2 01:00:44 router named[4611]: isc_file_isplainfile '/var/log/named/named.log' failed: permission denied



Ja was soll denn das? Lief doch alles....
Ein Blick nach /var/log/named --- da liegen Logfiles.
Mal an die Seite schieben und den Service neu starten:
Die werden anscheinend von Bind weder neu angelegt, noch überhaupt beachtet.
Nanu?

Sonntag, 24. März 2019

loading from master file /var/named/dynamic/managed-keys.bind failed

Nach dem ich die letzten Tage den Nameserver neu gefüttert hatte, war mir beim Durchschauen der Logs aufgefallen, dass da irgendwas noch nicht ganz richtig sein kann.

24-Mar-2019 19:23:18.997 general: error: managed-keys-zone ./IN: loading from master file /var/named/dynamic/managed-keys.bind failed: permission denied 
24-Mar-2019 19:23:18.997 general: error: /var/named/dynamic/managed-keys.bind.jnl: open: permission denied 
24-Mar-2019 19:23:18.997 general: error: managed-keys-zone ./IN: journal rollforward failed: unexpected error

...eigenartig - die Berechtigungen passen, das hatte ich doch grade erst -
und SELinux bzw. "setsebool -P named_write_master_zones=1" ist nicht das übliche Problem...

Sonntag, 17. März 2019

Zonen und das .jnl-File

Immer wieder etwas nervig:
Der Nameserver/bind schreibt für dynamische DNS-Updates ("ddns") seine Deltas in Journal-Files.
Doch insbesondere wenn man dann mal "eben" schauen will, wer was wo wie grade unter welchem Namen im Netzwerk ansprechbar ist bzw. man ein Zonenfile überarbeitet, nerven die deltas, denn in den Zonen-Files sieht man ja deswegen grade nicht, was aktuell der "echte" Stand der Dinge ist.... :-)

Okay - schreiben wir doch mal ein Mini-Script, was die Journal-Files in die Zonenfiles auch hinein schreibt.
Aktuelles