--- 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