Unbound ersetzt Views
Es ist jetzt knappe sieben Jahre her, dass ich die DNS-Server meiner privaten Infrastruktur für DNSSEC bereit gemacht habe. Trotz der etwas höheren Komplexität hat das leidlich funktioniert, ich bin nur bei ca. jeder zweiten Umstellung über die Besonderheiten dieses Setups gestolpert.
Heute hatte ich dann genug und habe das Setup auseinander gerissen: Authoritative DNS macht nach wie vor ein bind9-Setup, aber eben ohne Views. Dadurch, dass der Server nun keine Doppelfunktion mehr hat hat sich die Konfiguration auch auf ca. die Hälfte verringert.
Für rekursive Anfragen lauscht am loopback-Interface sowie auf allen virtuellen Netzwerk-Interfaces jetzt ein Unbound. Die Konfiguration, die ich dabei aus Puppet heraus rendern lasse, ist denkbar einfach:
|
|
Der Trust-Anchor wird dabei von Puppet bei der Installation einmalig erzeugt (und die Location unterscheidet sich je nach Distribution, deswegen ist sie hier parametrisiert).
Die Variable @mynetworks
in Puppet beschreibt dabei die Gesamtheit der von mir
verwendeten Subnetze, es macht also Sinn, dass die alle auf den Server zugreifen
dürfen (sofern denn Routing und Paketfilter es erlauben). Die Variable
@interfaces
enthält dabei alle Interfaces, an denen bind9 nicht lauscht.
Wie man sieht verwende ich mal wieder nur eine recht minimale Konfiguration, insbesondere fasse ich weder das Threading noch Memory an - aber ich hab bisher halt auch einfach noch gar keine Performance-Probleme bemerkt, von daher erschien mir das nicht notwendig.
Es mag komisch erscheinen, wenn jemand, der seit über einem halben Jahrzehnt Puppet verwendet, Euch jetzt sagt: “Weniger Konfiguration ist besser”, aber eigentlich ist das genau die Lehre, die ich aus den vergangenen Jahren mitgenommen habe :-)