Table des matières

, , ,

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:

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

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