Ich muss erst mal etwas Frust ablassen. Aber vielleicht/hoffentlich entwickelt sich hier auch was Konstruktives.
Auf meinem NAS hatte (hab ich noch) ich die letzten Jahre immer ein DNSMasq laufen. Einsatzzweck: DHCP, DNS, Adblock-Listen
Ab und zu kam mal Einiges durch. Aber im Grunde genommen hat das Ganze relativ brauchbar funktioniert. Dazu finde ich eigentlich dnsmasq im heimischen Netz ganz gut, da es die Funktionalität von Authoritative-DNS-Servers mit der eine DHCP-Servers vereint und zusätzlich einen TFTP-Server beinhaltet, den ich allerdings nicht eingerichtet hatte.
Jetzt hab ich mein NAS von Debian 11 auf Debian 12 upgraded. Und seitdem flutet die Werbung mein "Interneterlebnis". Der Grund dafür ist, dass aus irgendeinem Grund neben den A- und AAAA-Records auch noch die MX-Records abgefragt werden. Und viele Ad-Server sind CNames, die dann trotz meiner Tausenden von Adblock-Einträgen einfach mal so aufgelöst werden. Beschrieben ist das Problem hier. Ich konnte dnsmasq bisher nicht dazu bewegen, die MX-Queries zurückzuweisen, wenn ein A-Record auf den lokalen Server zeigt.
Das Problem scheint auch in der unterschiedlichen Abfragemethodik der Tools begründet zu sein. dig zeigt brav nur den abgefragten Records (A, AAAA) an, während host gleich alle 3 Einträge (A, AAAA, MX) abfragt.
Ich hab dann mal auf meinem Notebook dasselbe Verhalten getestet. Da das Notebook auch im mobilen Einsatz ist, betreibe ich da einen Unbound. Der funktioniert korrekt, auch host erhält hier nur den A-Record.
Gut, dann versuchen wir einfach mal Alternativen. Von PowerDNS hab ich schon viel gehört, also probier ich den mal aus. Die Idee ist durchaus reizvoll, den DNS-Server vom Recursor (Caching, Forward-only) zu trennen. Auch das DB-Backend sollte sich eigentlich positiv auf große Eintragsmengen auswirken. Und dazu hab ich noch überlegt, die Einträge per PHPIPAM zu verwalten, was allerdings etwas überdimensioniert für 30 Einträge wäre, aber aufgrund der PowerDNS Integration reizvoll ist.
Jetzt kommt der Frust:
Unverständlich war mir dann der PDNS-Recursor:
Die Komponente soll eigentlich der 1. Ansprechpunkt sein. Interne Adressen sollen an den PDNS-Server, externe Adressen an öffentliche DNS-Server forwared werden. Soweit die Theorie. Meine Config
Erwartung:
Realität:
Vermutlich bin ich einfach zu blöd für PowerDNS. Aber soviel Komplexität und Blackboxverhalten hab ich selten erlebt.
Ich bin jetzt an dem Punkt, dass ich reumütig den Bind, gegen den ich mich im privaten Bereich jahrelang gewehrt hatte, und den ISC-DHCP-Server installieren werd. Ich geb dann mal Rückmeldung, wenn ich soweit bin.
Auf meinem NAS hatte (hab ich noch) ich die letzten Jahre immer ein DNSMasq laufen. Einsatzzweck: DHCP, DNS, Adblock-Listen
Ab und zu kam mal Einiges durch. Aber im Grunde genommen hat das Ganze relativ brauchbar funktioniert. Dazu finde ich eigentlich dnsmasq im heimischen Netz ganz gut, da es die Funktionalität von Authoritative-DNS-Servers mit der eine DHCP-Servers vereint und zusätzlich einen TFTP-Server beinhaltet, den ich allerdings nicht eingerichtet hatte.
Jetzt hab ich mein NAS von Debian 11 auf Debian 12 upgraded. Und seitdem flutet die Werbung mein "Interneterlebnis". Der Grund dafür ist, dass aus irgendeinem Grund neben den A- und AAAA-Records auch noch die MX-Records abgefragt werden. Und viele Ad-Server sind CNames, die dann trotz meiner Tausenden von Adblock-Einträgen einfach mal so aufgelöst werden. Beschrieben ist das Problem hier. Ich konnte dnsmasq bisher nicht dazu bewegen, die MX-Queries zurückzuweisen, wenn ein A-Record auf den lokalen Server zeigt.
Das Problem scheint auch in der unterschiedlichen Abfragemethodik der Tools begründet zu sein. dig zeigt brav nur den abgefragten Records (A, AAAA) an, während host gleich alle 3 Einträge (A, AAAA, MX) abfragt.
Ich hab dann mal auf meinem Notebook dasselbe Verhalten getestet. Da das Notebook auch im mobilen Einsatz ist, betreibe ich da einen Unbound. Der funktioniert korrekt, auch host erhält hier nur den A-Record.
Gut, dann versuchen wir einfach mal Alternativen. Von PowerDNS hab ich schon viel gehört, also probier ich den mal aus. Die Idee ist durchaus reizvoll, den DNS-Server vom Recursor (Caching, Forward-only) zu trennen. Auch das DB-Backend sollte sich eigentlich positiv auf große Eintragsmengen auswirken. Und dazu hab ich noch überlegt, die Einträge per PHPIPAM zu verwalten, was allerdings etwas überdimensioniert für 30 Einträge wäre, aber aufgrund der PowerDNS Integration reizvoll ist.
Jetzt kommt der Frust:
- Tutorials sind Mangelware
- PowerDNS erschlägt einen mit Optionen
- Will man eine Zone oder überhaupt Einträge anlegen, landet man schnell bei:
- PowerDNS Admin: Docker will ich nicht. Und die manuelle Installation hat sehr viele Freunde, die dann als verwaiste Leichen auf dem System enden. Wieso können die kein DEB-Paket bereitstellen? Also hab ich stattdessen:
- PDNS-Manager installiert. Das hat mich auch erst mal Nerven gekostet, bis ich rausgefunden hatte, dass der Pfad in der NGINX-Config nicht ganz korrekt ist und sich deshalb das Setup nicht ausführen lässt. Als nächstes muss man die Tabellen der PDNS-Datenbank wieder löschen, da der PDNS-Manager eine leere Datenbank will. Gut damit hab ich meine Zone und die ersten Einträge angelegt und konnte die auch per host und dig abfragen.
Unverständlich war mir dann der PDNS-Recursor:
Die Komponente soll eigentlich der 1. Ansprechpunkt sein. Interne Adressen sollen an den PDNS-Server, externe Adressen an öffentliche DNS-Server forwared werden. Soweit die Theorie. Meine Config
Code:
local-address=192.168.109.50
local-port=5353
allow-from=192.168.0.0/16, 127.0.0.1
forward-zones-recurse=mylocaldomain.=127.0.0.1:5300
- Meine internen Adressen werden an den PDNS-Server (127.0.0.1:5300) weitergeleitet.
- Externe werden verworfen, da ich keinen Forward-Eintrag dafür hab.
Realität:
- Interne Adressen werden nicht aufgelöst. Der DNS-Server (sowohl pdns als auch dnsmasq) werden noch nicht mal angefragt. Eine Fehlermeldung kommt nicht.
- Externe Adressen werden aufgelöst. Über welchen öffentlichen DNS-Server der PDNS-Recursor geht, ist mir vollkommen unklar. Eine oder mehrere IPs oder Namen öffentlicher DNS-Server konnte ich nicht finden in der Config.
Vermutlich bin ich einfach zu blöd für PowerDNS. Aber soviel Komplexität und Blackboxverhalten hab ich selten erlebt.
Ich bin jetzt an dem Punkt, dass ich reumütig den Bind, gegen den ich mich im privaten Bereich jahrelang gewehrt hatte, und den ISC-DHCP-Server installieren werd. Ich geb dann mal Rückmeldung, wenn ich soweit bin.