(SISR2-2017) Sébastien Mornier, Aurélien Ardillon
Bind9 est le service responsable de la gestion DNS sous Linux.
Le logiciel serveur pour DNS se nomme bind9 sous Debian/Ubuntu.
Installation du service et création de la zone sur le principal
Installation du secondaire
On parlera d'un maître, d'un primaire ou d'un principal. Il est définit comme Start Of Authority (SOA). Il n'y a qu'un serveur SOA pour un domaine DNS. Il est autorisé à apporter des modifications dans le fichier de zone. Il comporte l'ensemble des informations nécessaires à faire fonctionner BIND. À savoir :
Ce fichier de référence décrit les options courantes du serveur (attention, les valeurs sont des exemples) :
options { directory "/var/cache/bind"; #repertoire de stockage des fichiers de zone dump-file "/var/data/cache_dump.db"; #repertoire de cache statistics-file "/var/bind/named_stats.txt"; #repertoire de statistiques allow-recursion { any; }; allow-recursion-on { any ; }; }
On écrira dans ce fichier la déclaration des zones directes (sens FQDN→IP) et inverses (sens IP→FQDN). On portera une attention particulière aux points-virgules.
zone "rostand.fr" IN { type master; #serveur maître file "/etc/bind/base.rostand.dns"; #nom du fichier qui décrit la zone allow-update { any; }; #possibilité de mise à jour en réseau vers les secondaires };
zone "0.168.192.in-addr.arpa" IN { #adresse IP du réseau à l'envers suivi de in-addr.arpa type master; file "rostand.inverse"; allow-update { none; }; };
On trouvera ensuite, conformément à ce qui a été indiqué dans named.conf.local, autant de fichiers que de zones ou de zones inverse.
#Fichier rostand.dns décrivant la zone rostand.fr #SOA : start of authority + nom du serveur maître de la zone + nom de l'administrateur @ IN SOA dns.rostand.fr. root.rostand.fr. ( 42 #; numéro de série important pour les secondaires (actualisé à chaque modification) 3H #; temps de rafraîchissement des secondaires (3 heures) 15M #; temps d'attente entre deux tentatives de mise à jour pour les secondaires (15 min) 1W #; durée de vie d'une information (1 week) 1D ) #; temps avant la déclaration d'invalidité permanente du principal (1 day) IN NS dns.rostand.fr. # déclaration serveurs de noms principaux et secondaires btsinfo NS srvinfo.rostand.fr. # délégation d'autorité pour la sous-zone btsinfo.rostand.fr # le serveur aura pour nom srvinfo.rostand.fr MX 10 smtp # pointeur pour le serveur de messagerie avec numéro d'ordre MX 20 mail # deuxième pointeur, serveur secondaire dns A 192.168.0.152 # association pour le nom de machine dns.rostand.fr www A 192.168.0.152 # déclaration d'association pour le nom de machine www srvinfo A 192.168.0.153 # association pour la machine srvinfo smtp IN A 192.168.0.253 # association pour le nom smtp mail IN A 192.168.0.154 # association pour pour le nom mail console CNAME srvinfo # alias pour le nom de machine srvinfo www6 IN AAAA ::1 #; association pour une adresse IPv6
Exemple pour la résolution inverse :
#Fichier rostand.inverse décrivant la zone 0.168.192.in-addr.arpa #SOA : start of authority + IP du maître et nom de zone + nom de l'administrateur @ IN SOA 0.168.192.in-addr.arpa. root. 0.168.192.in-addr.arpa. ( 42 3H 15M 1W 1D ) IN NS rostand.fr # déclaration serveurs de noms par nom DNS 152 IN PTR www #association le numéro 253 vers le nom de machine www 153 PTR srvinfo # association pour le numéro 153 vers la machine srvinfo 253 PTR smtp # association pour le numéro 253 vers le nom smtp
Un fichier de zone comporte les éléments suivants :
Enregistrement | Rôle |
---|---|
SOA | Définit les indications du Start Of Authority : nom du domaine (ou de la zone) nom de la machine qui est SOA dans ce domaine nom de l'administrateur du domaine numéro de version de fichier délais pour la synchronisation |
NS | Déclare les noms des machines qui sont serveur de noms (principal ou secondaires) pour la zone Remarque : Ces noms devront en plus être associés à une adresse par un enregistrement A. |
A | Déclare les associations entre FQDN et adresse IP. On parle d'un hôte Remarques : un nom non terminé par un point est complété par la zone décrite dans le SOA un nom terminé par un point est un FQDN |
MX | Déclare le nom de la ou des machines assurant la fonction de serveur de messagerie pour le domaine. Remarque : Ces noms devront en plus être associés à une adresse par un enregistrement A. |
RT | Déclare le nom de la ou des machines assurant le rôle de routeur dans le domaine. Utilisé pour les systèmes avec auto-configuration. Remarque : Ces noms devront en plus être associés à une adresse par un enregistrement A. |
PTR | Enregistrement inverse qui associe le nom FQDN à une adresse IP de machine dans le réseau IP déclaré dans le SOA. Utilisé pour les systèmes de cartographie de réseau ou pour l'administration distante |
Un serveur secondaire est un serveur BIND qui a déclaré dans son fichier named.conf.local qu'il était esclave pour une zone déterminée (la terminologie Windows est secondaire).
zone "rostand.fr" IN { type slave; #serveur esclave masters {192.168.0.152 ;} #adresse des serveurs maîtres file "double.rostand.dns"; #nom du fichier si on veut en conserver une copie en local allow-update { none; }; #impossibilité de mise à jour en réseau vers # d'autres secondaires };
Dès lors, il recevra à intervalle régulier les mises à jour.
Attention : Il est important de changer le numéro de version à chaque modification du fichier principal de sorte que les secondaires se mettent correctement à jour.
Un serveur de zone délégué est un serveur DNS qui a l'autorité sur un sous ensemble d'une zone principale. Par exemple, la zone .gouv.fr. a délégué la responsabilité de nombreuses sous-zones : education.gouv.fr, impots.gouv.fr, etc. Pour chaque sous-zone, une inscription a été faite dans le fichier de zone principale, et chaque délégation renvoie vers un nouveau serveur SOA pour la sous zone. Cet enregistrement au niveau supérieur est indispensable pour éviter tout ajout non désiré (on ne peut pas décider librement de créer une sous-zone, il faut qu'on nous ait donné une délégation).
Exemple, dans le fichier de la zone gouv.fr, on trouvera :
education IN NS nom_dns_du_serveur_délégué_education impots IN NS nom_dns_du_serveur_délégué_impots
puis
nom_dns_du_serveur_délégué_education IN A adresse_ip_education nom_dns_du_serveur_délégué_impots IN A adresse_ip_impots
Pour le serveur délégué, il s'agit ni plus ni moins qu'un maître pour la zone education.gouv.fr ou impots.gouv.fr.
Avant de lancer un serveur suite à une modification, on peut prendre la précaution de tester les configurations des fichiers.
Commande | Rôle |
---|---|
named-checkconf | teste la validité des déclarations de zone (fichier named.conf et fichier de déclaration named.conf.local, named.conf.default-zones, etc). |
named-checkzone | Teste la validité d'une zone à partir de son fichier de configuration named-checkzone <nomZone> <cheminFichierZone> |
Un client DNS est une machine qui dispose du service DNS client activé et qui a une adresse IP d’un serveur DNS indiqué dans son paramétrage réseau. On paramètrera les clients pour qu'ils aillent s'informer auprès de leur serveur DNS (qui peut être le secondaire ou le principal).
Dans l'environnement graphique, utiliser « Adresses Automatiques uniquement » pour donner une valeur manuelle à la partie DNS (ici, copie d'écran sous ubuntu 10.10).
On teste le bon fonctionnement du serveur DNS en tapant :
• http://www.zytrax.com/books/dns : site complet en anglais sur DNS et Bind9