{{tag>proxy dns linux unbound}} ====== Serveur DNS unbound ====== **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). ===== Rôles ===== Le serveur DNS est en mesure de fournir plusieurs services: * DNS cache, les réponses sont stockées pour être fournies rapidement selon les délais (TTL) indiqués dans la configuration de l'enregistrement. * DNS récursif, répond à toutes les requêtes même celles pour lesquelles ils n'ont pas autorité en consultant le ou les serveurs faisant autorité et en transmettant la réponse. * Validation, vérifie que la réponse donnée est correcte et sûre (DNSSEC) 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. ===== Installation ===== $ apt-get install unbound ===== Configuration en DNS cache ===== 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 ===== Directives de configuration ===== * **interface**: spécifier sur quelle interface le serveur écoute les requêtes clientes. * **outgoing-interface**: interface à utiliser pour transmettre les requêtes aux serveur faisant autorité. ===== zone locale ===== 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" ===== Contrôle du service ===== 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 ===== Les logs ===== 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 ===== Problèmes rencontrés ===== Malgré une configuration en cache DNS, coté client le temps de réponse de requêtes successives ne chute pas: ===== Références ===== * https://doc.ubuntu-fr.org/unbound * https://calomel.org/unbound_dns.html * http://www.tecmint.com/setup-dns-cache-server-in-centos-7/ * https://www.bentasker.co.uk/documentation/linux/279-unbound-adding-custom-dns-records