diff --git a/HowtoNSD/edit.md b/HowtoNSD/edit.md new file mode 100644 index 00000000..99c7658d --- /dev/null +++ b/HowtoNSD/edit.md @@ -0,0 +1,190 @@ +--- +title: Howto NSD +categories: network openbsd +... + +## Documentation + +* +* +* + +NSD est un serveur DNS faisant authorité. Il utilise des fichiers de zone au format Bind ce qui a l'avantage de faciliter une migration. + +### Liens utiles + +* +* + +## Installation + +Sous OpenBSD, nsd(4) fait partie du système de base. + +Sous Debian, on l'installera via : + +~~~ +# apt-get install nsd +~~~ + +## Configuration + +**La configuration est ici faite sous OpenBSD. Bien que globalement similaire, la configuration tiendra compte de l'arborescence sous OpenBSD.** + +On configure le démon via le fichier `/var/nsd/etc/nsd.conf`. + +Pour lancer nsd(4) : + +OpenBSD +~~~ +# rcctl start bgpd +~~~ + +Debian +~~~ +# systemctl start nsd +~~~ + +Pour vérifier la configuration : + +~~~ +# nsd-checkzone example.com /chemin/vers/zone/db.example.com +# nsd-checkconf /chemin/vers/configuration/nsd.conf +~~~ + +## Exemple de configuration : + +Prenons 2 machines, que l'on définit comme étant 2 serveurs DNS, l'un master, l'autre slave. + +### Master + +Voici le fichier `nsd.conf` sur le serveur avec l'adresse IP 192.0.2.53 (master) : + +~~~ +# vi /var/nsd/etc/nsd.conf +~~~ + +~~~ + server: + server-count: 1 # use this number of cpu cores + database: "" # or use "" + zonelistfile: "/var/nsd/db/zone.list" + username: _nsd + logfile: "/var/log/nsd.log" + pidfile: "/var/nsd/run/nsd.pid" + xfrdfile: "/var/nsd/run/xfrd.state" + +## bind to a specific address/port + ip-address: 192.0.2.53 + +remote-control: + control-enable: yes + +## tsig key example +key: + name: "key.example.com." + algorithm: hmac-sha256 + secret: "rMZVA3oOLyrk9Xn+aKe19aCqOf3xYv9kVw8M3crGkFE=" + +## master zone example.com +zone: + name: "example.com" + zonefile: "master/example.com" + notify: 192.0.2.54 key.example.com. + provide-xfr: 192.0.2.54 key.example.com. +~~~ + +Sur le serveur master on devra également définir la zone : + +~~~ +# vi /var/nsd/zones/master/db.example.com +~~~ + +~~~ +$ORIGIN example.com. +$TTL 1800 +@ IN SOA master.example.com. email.example.com. ( + 2014080301 + 3600 + 900 + 1209600 + 1800 + ) +@ IN NS master.example.com. +@ IN NS slave.example.com. +master IN A 192.0.2.53 +slave IN A 192.0.2.54 +@ IN A 192.0.2.80 +www IN CNAME example.com. +@ IN MX 10 aspmx.l.google.com. +@ IN MX 20 alt1.aspmx.l.google.com. +~~~ + +On vérifie la configration ainsi que la zone : + +~~~ +# nsd-checkconf /var/nsd/etc/nsd.conf +# nsd-checkzone example.com /var/nsd/zones/master/db.example.com +zone example.com is ok +~~~ + +On active et démarre nsd : + +~~~ +# rcctl enable nsd +# rcctl start nsd +~~~ + +On peut désormais tester que tout fonctionne : + +~~~ +# dig ANY tristanpilat.com. @192.0.2.53 +~~~ + +### Slave + +Et voici le fichier `nsd.conf` sur le serveur avec l'adresse IP 192.0.2.54 (slave) : + +~~~ +# vi /var/nsd/etc/nsd.conf +~~~ + +~~~ + server: + server-count: 1 # use this number of cpu cores + database: "" # or use "" + zonelistfile: "/var/nsd/db/zone.list" + username: _nsd + logfile: "/var/log/nsd.log" + pidfile: "/var/nsd/run/nsd.pid" + xfrdfile: "/var/nsd/run/xfrd.state" + +## bind to a specific address/port + ip-address: 192.0.2.54 + +remote-control: + control-enable: yes + +## tsig key example +key: + name: "key.example.com." + algorithm: hmac-sha256 + secret: "rMZVA3oOLyrk9Xn+aKe19aCqOf3xYv9kVw8M3crGkFE=" + +## master zone example.com +zone: + name: "example.com" + zonefile: "master/example.com" + notify: 192.0.2.53 key.example.com. + provide-xfr: 192.0.2.53 key.example.com. +~~~ + +On vérifie la configration : + +~~~ +# nsd-checkconf /var/nsd/etc/nsd.conf +~~~ + +## Utilisation + + +### Outils utiles