W . A . X . O
ncc-1701
LINUX - UNIX




DNS BIND Berkeley Internet Domain Name

Configurer sa Freebox pour utiliser un serveur DNS local, en ipv4 et ipv6.

  • Configurer l'adresse ipv4 de votre serveur DNS local (type Bind) dans la section DHCP de votre Freebox.

  • Configurer l'adresse ipv6 de votre serveur DNS local (type Bind) dans la section Configuration ipv6, DNS ipv6 de votre Freebox.

  • Alors vos machines qui obtiennent leur configuration par DHCP auront bien deux adresses de votre serveur DNS, l'une en ipv4 et l'autre en ipv6.


INSTALLATION DE BIND 9

  • "apt-get install bind9"
  • + dnsutils : commandes nslookup, host et dig
  • + bind9-host : commande host
  • + dns-browse : GUI de dig, avec dns_tree
  • + dnscvsutil : gestion des zones via CVS
  • + nslint : audit de la configuration du serveur DNS (commande "$ nslint")
    PRINCIPE DE LA RESOLUTION DE NOM

  • Unix utilise en premier le fichier /etc/hosts pour résoudre un nom.
  • Unix utilise ensuite le fichier /etc/resolv.conf pour trouver un serveur DNS.
  • Le fichier resolv.conf indique les serveurs DNS auxquels il doit se référer.
  • Si resolv.conf contient 127.0.0.1, la résolution passe par le BIND du serveur.
    PRINCIPE DE CONFIGURATION D'UN SERVEUR BIND

  • La configuration s'effectue à partir du fichier /etc/named.conf
  • Le fichier named.conf définit les zones de bases du serveur (hint, localhost, reverse)
  • Le fichier named.conf inclut deux autres fichiers : named.conf.local + named.conf.options.
  • Le fichier named.conf.local définit les zones locales : enregistrements pour chaque domaine (A, MX, NS, PTR)
  • Le fichier named.conf.options définit les options (forwarders définit les serveurs que BIND va interroger lorsqu'il ne peut lui-même répondre, FAI)
             forwarders {
                    212.27.54.252;
                    212.27.39.135;
             };
    
    ARCHITECTURE D'UN SERVEUR BIND

  • Il existe deux types d'architecture : indépendant ou primaire/secondaire.
  • DNS indépendant : un seul serveur et/ou serveur DNS CACHE.
  • DNS CACHE : le serveur enregistre des correspondances IP/adresse ce qui lui permet de ne pas les redemander à chaque interrogation des clients.
  • DNS primaire/secondaire : le primaire a l'autorité sur les zones (domaines) déclarées. Le secondaire récupère les informations auprès du primaire.
    NAMED.CONF : ZONE PRIMAIRE

    zone "httpedit.org" {
            type master;
            file "/etc/bind/httpedit.org_db";
            allow-query { any; };
    };
    
    NAMED.CONF : ZONE INVERSE

    zone "1.0.10.in-addr.arpa" IN {
       type master;
       file "labo-linux.com.rr.zone";
       allow-update { none; };
    };
    
    NAMED.CONF : ZONE SECONDAIRE

    zone "domaine-ami.org" {
    	type slave;
    	file "domaine-ami.org.zone";
            # ATTENTION  
            # chemin sur le serveur primaire, 
            # directement le nom du fichier si il y a un CACHE
    	masters { 12.42.112.242; };  # @ip du serveur primaire
    };
    
    MISE A JOUR DU SECONDAIRE PAR LE PRIMAIRE
    La mise à jour du DNS ``escalve'' est automatique à partir du DNS ``maître''. Ainsi, insérer une nouvelle machine dans le DNS prend peu de temps (il n'y a que quelque lignes à rajouter dans deux fichiers), et tous les serveurs secondaires seront mis à jour automatiquement ! Les options figurant au début du fichier de zone (serial, refresh...) servent pour le DNS secondaire. Détaillons ces options :

  • serial
  • C'est le numéro (un nombre entier) de version du fichier d'information de zones. Ce numéro est utilisé par les DNS secondaires pour savoir si le fichier d'informations de zone du DNS primaire a été changé. Il doit être augmenté de 1 à chaque modification du fichier.
  • refresh
  • Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de vérifier (et éventuellement mettre à jour) l'enregistrement SOA du DNS primaire. Ces enregistrements ne changent pas souvent en général, une journée (86400 secondes) peut largement suffir.
  • retry
  • Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de réessayer une requette vers le DNS primaire si celui ci n'est pas accessible. Cette valeur devrait être de quelque minutes.
  • expire
  • Intervalle de temps en secondes durant lequel le DNS secondaire attend avant de rejeter les informations de zones si il n'a pu contacter le DNS primaire. Cette valeur devrait être de plusieurs jours (voir plusieurs mois).
    LES CLASSES DE PROTOCOLES DES ENREGISTREMENTS

  • Une valeur encodée sur 16 bits identifie une famille de protocoles ou une instance d'un protocole.
  • IN : classe "INTERNET", utilisée par défaut
  • CH : classe "CHAOS", chaosnet est un ancien réseau qui historiquement a eu une grosse influence sur le développement de l'Internet, on peut considérer à l'heure actuelle qu'il n'est plus utilisé
  • HS : classe "HESIOD", service d'information du projet Athena du MIT
  • CS : classe "CSnet", obsolète
    FICHIER DE ZONE mondomaine.org_db

    @            IN           SOA       dns.labo-linux.com.         hostmaster.labo-linux.com. (
    02050500			      ; numéro de série
    3H				      ; rafraichir après 3 heures 
    1800				      ; retenter après 30 minutes
    604800				      ; expire après 1 semain
    3D )				      ; TTL minimum de 3 jours
    
    		  IN	   NS		  dns.labo-linux.com.
    		  IN	   MX       10	  mail.labo-linux.com.
    
    dns		  IN       A		  192.168.1.1
    www               IN       CNAME	  dns.labo-linux.com.
    ftp               IN       A		  192.168.1.2
    mail              IN       A		  192.168.1.3
    pop               IN       CNAME	  mail.labo-linux.com.
    smtp              IN       CNAME	  mail.labo-linux.com.
    imap              IN       CNAME	  mail.labo-linux.com.
    imprimante        IN       A		  192.168.1.4
    tftp              IN       A		  192.168.1.5
    routeuradsl       IN       A		  192.168.1.254
    
    FICHIER DE ZONE INVERSE mondomaine.org_db

    $ORIGIN 1.168.192.in-addr.arpa
    $TTL 86400
    @            IN           SOA       dns.labo-linux.com.  hostmaster.labo-linux.com. (
    02050500			; numéro de série
    3H				; rafraichir après 3 heures 
    1800				; retenter après 30 minutes
    604800				; expire après 1 semain
    3D )				; TTL minimum de 3 jours
    
    	       IN	NS	    dns.labo-linux.com.
    	       IN	MX    10    mail.labo-linux.com.
    20	       IN       PTR	    ws1.labo-linux.com.
    21	       IN       PTR	    ws2.labo-linux.com.
    22	       IN       PTR	    ws3.labo-linux.com.
    23	       IN       PTR	    laptop1.labo-linux.com.
    24	       IN       PTR	    database.labo-linux.com.
    25	       IN       PTR	    gateway.labo-linux.com.
    
    REGLES DE CONFIGURATION DE BIND

  • Les déclarations de zones inverses doivent être faites.
  • Le numéro de série (date+chiffre) doit être changée à chaque modification d'une fichier de zone.
  • Aucune @ip ne doit être répétée dans les enregistrements : mettre des noms complets ou courts avec CNAME.
  • L'enregistrement "vide" (domaine.org) peut être de type A. Alors les autres sont des CNAME pointant vers "domaine.org.", c-a-d l'enregistrement "vide".
  • Vérifier la configuration avec "nslint".