Unbound est un serveur DNS idéal pour petite infra. Sa configuration est bien plus simple que le serveur Bind. Dans la même esprit on trouve dnsmasq utilisé notamment sur les routeurs ou les distribution embarquées (OpenWRT).
Le serveur DNS est en mesure de fournir plusieurs services:
Le cache permet de réduire le temps de réponse d'une requêtes de l'ordre de plusieurs centaines de milliseconde à 1 ou 2 millisecondes.
Unbound peut être paramétré comme serveur de nom faisant autorité pour une zone privée associée au lan.
$ apt-get install unbound
Copier le fichier exemple du dossier /usr/share/doc/examples/unbound/ pour le définir en tant que fichier de configuration du service:
$ sudo cp /usr/share/doc/examples/unbound/unbound.conf /etc/unbound/
Après modifications, vérifier la syntaxe avec la commande:
$ unbound-checkconf
Le serveur unbound peut faire autorité sur les IPs et noms définis sur le LAN. Pour cela utiliser les directives local-zone, local-data et local-data-ptr
private-address: 192.168.0.0/24 private-domain: "lan." local-zone: "lan." static local-data: "photocopieur.lan. IN A 192.168.0.9" local-data: "nas.lan. IN A 192.168.0.250" local-data: "firewall.lan. IN A 192.168.0.254" local-data: "www.lan. IN CNAME 192.168.0.254" local-data-ptr: "192.168.0.9 photocopieur.lan" local-data-prt: "192.168.0.250 nas.lan" local-data-ptr; "192.168.0.254 firewall.lan"
Arrêt et redémarrage via service
$ sudo service restart unbound
La commande unbound-control permet notamment:
de contrôler l’état du processus:
$ unbound-control status
Afficher le contenu du cache
$ unbound-control dump_cache
Afficher les forwarders:
$ unbound-control list_forwards
Supprimer un enregistrement ou des enregistrements du cache
Une requête de test, elle est exécutée 2 fois, le temps retourné la seconde fois doit être quasi nul:
$ for i in 1 2; do dig @192.9.200.5 www.example.com | grep 'time:'; done
Ici on la commande retourne:
;; Query time: 3390 msec ;; Query time: 0 msec
Les logs sont disponibles par défaut
Par défaut les erreurs sont affichées sur la sortie standard. Baisser le niveau de verbosité aux seules erreurs et spécifier le fichier de log:
verbosity 0
Malgré une configuration en cache DNS, coté client le temps de réponse de requêtes successives ne chute pas: