Petit tuto (fait avec le couteau sous la gorge

NSD c'est quoi ?
Déjà, NSD c'est un jeu de mot tout pourris puisque ce sont les lettres DNS dans le désordre

NSD est un serveur DNS autoritaire. C'est-à-dire que son rôle est d'avoir des fichiers des zones de vos domaines dans sa configuration, et de répondre à tout internet quelles sont les IP derrière vos domaines et sous-domaines. C'est donc ce qu'on appelle grossièrement, un serveur DNS. On lui colle un fichier par domaine avec toutes les infos du domaine, on le déclare en serveur GLUE chez vos registrar et il répond aux requêtes des gens.
Ce serveur ne peut répondre QUE aux requêtes des domaines pour lesquels il a les fichiers de zone !!!
Unbound c'est quoi ?
Unbound, un jeu de mot pourris avec Bind qui est un homologue, (parce que bind = attaché et unbound = détaché [:tinostar] ), est un serveur DNS récursif. Son boulot, c'est qu'on lui demande "c'est quoi le MX de truc.com ?", et lui il se démerde pour aller contacter un DNS qui va te dire le MX de truc.com et te renvoyer le résultat. Le DNS de votre FAI, 8.8.8.8 de Google, OpenDNS etc... sont des serveurs récursifs, ils répondent à vos requêtes DNS.
À moins d'avoir une bonne raison Unbound ne doit pas être accessible sur le web, car n'importe qui pourrait s'amuser à faire des requêtes vers n'importe qui ! (un peu comme un serveur SMTP ouvert en relais à tout le monde)
Unbound est très simple à configurer, puisqu'il s'agit globalement de lui dire quels DNS utiliser pour ces recherches, comment gérer le cache, les adresses autorisées à lui faire des requêtes etc..
Au boulot, pour de la facilité, j'ai 3 serveurs sur qui NSD est greffé dessus, et 3 autres serveurs avec Unbound dessus, et UN serveur avec NSD et Unbound. Avoir les deux sur la même machine impose une chose => avoir une ip par service.
Les 2 services utilisent le port 53 (TCP et UDP), sur votre machine avec les 2 services, unbound seul ne répondrait pas aux clients extérieurs les infos de vos zones, et NSD seul ne permettrait pas aux machines de votre réseau local de résoudre des adresses DNS. Il faut donc une ip pour NSD qui sera joignable par le web, et une ip pour unbound qui restera accessible en lan uniquement.
Exemple de fichier nsd.conf
server: ip-transparent: no hide-version: yes ip4-only: yes ip6-only: no database: "/var/db/nsd/nsd.db" identity: "*** DNS SERVER" server-count: 1 port: 53 username: nsd ip-address: 192.168.0.40 zonesdir: "/usr/local/etc/nsd/zones/" zone: name: "machin.com" zonefile: "machin.com.zone" zone: name: "truc.com" zonefile: "truc.com.zone"
Exemple de fichier unbound.conf
server: verbosity: 1 interface: 192.168.0.41 port: 53 do-ip4: yes do-ip6: no do-udp: yes do-tcp: yes do-daemonize: yes access-control: 192.168.0.0/16 allow chroot: "/usr/local/etc/unbound" username: "unbound" directory: "/usr/local/etc/unbound" use-syslog: yes log-time-ascii: yes root-hints: "root.hints" do-not-query-localhost: no python: remote-control: control-enable: yes forward-zone: name: "machin.com" forward-addr: 192.168.0.40 forward-zone: name: "truc.com" forward-addr: 192.168.0.40J'ai mis des forward-zone dans unbound pour éviter que pour MES domaines il aille les chercher via internet alors qu'on les as en local ! ^^
La grosse différence avec BIND, c'est que lui fais tout cela, mais que c'est autorisé ou non selon des règles d'ip, et que globalement BIND c'est incompréhensible
