From 34bdcc6b56f38337eff21e401d54364b15065871 Mon Sep 17 00:00:00 2001 From: tpilat Date: Sun, 27 Nov 2016 18:27:55 +0100 Subject: [PATCH] Draft v2 --- HowtoNSD/edit.md | 79 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/HowtoNSD/edit.md b/HowtoNSD/edit.md index b04e4d55..b4c0c93f 100644 --- a/HowtoNSD/edit.md +++ b/HowtoNSD/edit.md @@ -8,8 +8,9 @@ categories: network openbsd * * * +* -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. +NSD est un serveur DNS faisant autorité. Il ne dispose pas de fonctionnalité de récursion, en d'autres termes il peut servir des zones DNS, mais ne peut pas interroger d'autres serveurs. Il utilise des fichiers de zone dans un format similaire à celui de Bind ce qui a l'avantage de faciliter une migration. ### Liens utiles @@ -28,9 +29,7 @@ Sous Debian, on l'installera via : ## 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`. +On configure le démon via le fichier `/var/nsd/etc/nsd.conf`(OpenBSD) ou `/etc/nsd/nsd.conf` (Debian). Pour lancer nsd(4) : @@ -53,12 +52,20 @@ Pour vérifier la configuration : # nsd-checkconf /chemin/vers/configuration/nsd.conf ~~~ -## Exemple de configuration : +## Exemple de configuration + +**La configuration est ici faite sous OpenBSD. Bien que globalement similaire sous Debian, la configuration tiendra compte de l'arborescence sous OpenBSD.** Prenons 2 machines, que l'on définit comme étant 2 serveurs DNS, l'un master, l'autre slave. ### Master +La première chose à faire est de générer tous les certificats afin de permettre un contrôle distant via nsd-control(8) : + +~~~ +# nsd-control-setup +~~~ + Voici le fichier `nsd.conf` sur le serveur avec l'adresse IP 192.0.2.53 (master) : ~~~ @@ -90,7 +97,7 @@ key: ## master zone example.com zone: name: "example.com" - zonefile: "master/example.com" + zonefile: "master/db.example.com" notify: 192.0.2.54 key.example.com. provide-xfr: 192.0.2.54 key.example.com. ~~~ @@ -102,23 +109,25 @@ Sur le serveur master on devra également définir la zone : ~~~ ~~~ + $ORIGIN example.com. $TTL 1800 -@ IN SOA master.example.com. email.example.com. ( - 2014080301 - 3600 - 900 - 1209600 - 1800 +@ IN SOA ns1.example.com. dns.example.com. ( + 2016112700 + 2h + 1h + 5w + 10m ) -@ 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 NS ns1.example.com. +@ IN NS ns2.example.com. +ns1 IN A 192.0.2.53 +dns IN A 192.0.2.53 +ns2 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. +@ IN MX 10 mx1.foo.com. +@ IN MX 20 mx2.foo.com. ~~~ On vérifie la configration ainsi que la zone : @@ -144,6 +153,12 @@ On peut désormais tester que tout fonctionne : ### Slave +Générons donc tous les certificats pour nsd-control(8) : + +~~~ +# nsd-control-setup +~~~ + Et voici le fichier `nsd.conf` sur le serveur avec l'adresse IP 192.0.2.54 (slave) : ~~~ @@ -175,9 +190,9 @@ key: ## 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. + zonefile: "slave/db.example.com" + allow-notify: 192.0.2.53 key.example.com. + request-xfr: 192.0.2.53 key.example.com. ~~~ On vérifie la configration : @@ -186,7 +201,25 @@ On vérifie la configration : # nsd-checkconf /var/nsd/etc/nsd.conf ~~~ -## Utilisation +On force maintenant le transfert de la zone : + +~~~ +# nsd-control transfer example.com +ok +~~~ + +Et enfin on teste le bon fonctionnement du slave : + +~~~ +# dig ANY example.com. @192.0.2.54 +~~~ + +### Commandes utiles + +Recharger une zone : + +~~~ +nsd-control reload example.com +~~~ -### Outils utiles