Outils pour utilisateurs

Outils du site


sysadmin:configurer-bind9

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sysadmin:configurer-bind9 [2026/08/01 15:24] yoannsysadmin:configurer-bind9 [2026/08/03 05:47] (Version actuelle) yoann
Ligne 1: Ligne 1:
 {{tag>sysadmin netadmin linux dns bind}} {{tag>sysadmin netadmin linux dns bind}}
  
-======= Configurer bind9 ======+======= Configurer BIND9 ======
  
 Installation du serveur de résolution de nom ISC BIND((Berkeley Internet Name Domain)). Installation du serveur de résolution de nom ISC BIND((Berkeley Internet Name Domain)).
Ligne 63: Ligne 63:
 ===== A propos de la configuration ===== ===== A propos de la configuration =====
  
-Sans surprise, les fichiers de configuration du service BIND se trouvent dans le dossier ''/etc/bind''. +Sans surprise, les fichiers de configuration du service BIND se trouvent dans le dossier ''/etc/bind''Le fichier de configuration principal ''/etc/bind/named.conf'' inclus les fichiers : 
- +  * ''/etc/bind/named.conf.options'' définir les options globales (à compléter) ; 
-  * ''named.conf'': fichier de configuration principal+  * ''/etc/bind/named.conf.local'' définir les zones gérées par ce serveur (à compléter) ; 
-  * +  * ''/etc/bind/named.conf.root-hints'' importation des serveurs DNS racines ;
  
 Les nombreuses options de paramétrage sont détaillées dans la documentation : Les nombreuses options de paramétrage sont détaillées dans la documentation :
Ligne 74: Ligne 74:
 </code> </code>
  
-<note> 
-Avec la configuration initiale, le service s'exécute sur l'hôte mais n'est pas véritablement fonctionnel. Il va falloir le paramétrer selon l'usage souhaité. 
-</note> 
  
 Dans le fichier de configuration **''/etc/bind/named.conf.options''** on peut définir précisément les interfaces IPv4 ou IPv6 sur lesquelles le serveur bind sera à l'écoute. Dans le fichier de configuration **''/etc/bind/named.conf.options''** on peut définir précisément les interfaces IPv4 ou IPv6 sur lesquelles le serveur bind sera à l'écoute.
Ligne 86: Ligne 83:
 </file> </file>
  
-Spécifier une ou plusieurs adresses IPv4+Spécifier une ou plusieurs adresses IPv4 et le port
 <file> <file>
-listen-on { 127.0.0.1; 192.168.0.1; };+listen-on port 5353 { 127.0.0.1; 192.168.0.1; };
 listen-on-v6 { none; }; listen-on-v6 { none; };
 </file> </file>
- 
-<note> 
-Attention à ne pas faire écouter le service que sur la boucle locale (127.0.0.1) si l'on souhaite pouvoir répondre aux requêtes récursivement. Dans ce cas, les serveurs racines ou les forwarders doivent pouvoir être contactés. 
-</note> 
- 
-Le retrait de la déclaration **forwarders** permet d'éviter de s'appuyer sur les DNS du FAI. Dans ce cas bind interroge directement les DNS racines. On ne bénéficie plus du cache DNS du FAI mais on évite également ses DNS menteurs s'ils existent. 
- 
-Commenter les forwarders  
-<file> 
-        // forwarders { 
-        //      0.0.0.0; 
-        // }; 
-</file> 
- 
  
 Après toute modification de la configuration, vérifier la syntaxe avec la commande : Après toute modification de la configuration, vérifier la syntaxe avec la commande :
Ligne 113: Ligne 96:
  
 Puis recharger la configuration : Puis recharger la configuration :
 +
 <code bash> <code bash>
 rndc reload rndc reload
Ligne 120: Ligne 104:
 </code> </code>
  
-===== Configuration en serveur maître ===== 
  
-bind va être configuré en tant que serveur maître sur la zone **internal.** C'est lui qui fera autorité sur cette zone.+==== A propos du support d'IPv6 ====
  
-Modifier le fichier de configuration ''**/etc/bind/named.conf.local**'' afin de déclarer la zone internal.+Si IPv6 est utilisé seulement sur le réseau local et que le serveur BIND ne peut pas joindre les serveurs racines ou les forwarders via ce protocole, les réponses aux requêtes peuvent être très longues et comporter des erreurs de type ''SERVFAIL'' 
 + 
 +<code bash [highlight_lines_extra="7,16"]> 
 +dig @127.0.0.1 www.google.fr A 
 + 
 +; <<>> DiG 9.20.26-1~deb13u1-Debian <<>> @127.0.0.1 www.google.fr A 
 +; (1 server found) 
 +;; global options: +cmd 
 +;; Got answer: 
 +;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 20789 
 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 
 + 
 +;; OPT PSEUDOSECTION: 
 +; EDNS: version: 0, flags:; udp: 1232 
 +; COOKIE: 819fa453655def6b010000006a6f289ecc0afcf6f9ae8ce2 (good) 
 +;; QUESTION SECTION: 
 +;www.google.fr.                 IN      A 
 + 
 +;; Query time: 255 msec 
 +;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) 
 +;; WHEN: Sun Aug 02 13:23:10 CEST 2026 
 +;; MSG SIZE  rcvd: 70 
 +</code> 
 + 
 +Dans ce cas, il faut paramétrer le service sans support du protocole IPv6. 
 + 
 +Modifier le fichier ''/etc/default/named'' et ajouter l'option ''-4'' pour forcer BIND à utiliser seulement la pile IPv4 
 + 
 +<file conf> 
 +
 +# run resolvconf? 
 +RESOLVCONF=no 
 + 
 +# startup options for the server 
 +OPTIONS="-u bind -4" 
 +</file> 
 + 
 +Relancer le service 
 + 
 +<code bash> 
 +systemclt restart named.service 
 +</code> 
 + 
 +===== Créer une zone ===== 
 + 
 +Nous allons créer la zone **glp.internal.** et définir le serveur en tant que serveur maître sur celle-ci :  C'est lui qui fera autorité sur cette zone. 
 + 
 +Modifier le fichier de configuration ''**/etc/bind/named.conf.local**'' afin de déclarer la zone ''glp.internal.''
  
 <file> <file>
-zone "internal"+zone "glp.internal"
         type master;          type master; 
-        file "/etc/bind/db.internal"; +        file "/etc/bind/db.glp.internal"; 
         allow-update { none; };         allow-update { none; };
 }; };
Ligne 136: Ligne 166:
 Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update** Remarque: Pour éviter qu'un tiers ne mette à jour dynamiquement votre zone DNS, utiliser la déclaration **allow-update**
    
-Le fichier ''**/etc/bind/db.internal**'' contiendra la définition de la zone internal. Créer le fichier+Le fichier ''**/etc/bind/db.glp.internal**'' contiendra la définition de la zone ''glp.internal''. Créer le fichier
 <code bash> <code bash>
-touch db.internal+touch db.glp.internal
 </code> </code>
  
Ligne 147: Ligne 178:
 ; ;
 $TTL    604800 $TTL    604800
-@       IN      SOA     ns.internal. contact.internal. ( +@       IN      SOA     ns1.glp.internal. contact.glp.internal. ( 
-                                      ; Serial+                                      ; Serial
                          604800         ; Refresh                          604800         ; Refresh
                           86400         ; Retry                           86400         ; Retry
Ligne 154: Ligne 185:
                          604800 )       ; Negative Cache TTL                          604800 )       ; Negative Cache TTL
 ; ;
-@        IN      NS      ns1.internal. +@        IN      NS      ns1.glp.internal. 
-ns1      IN      A       192.168.1.15+;
 gateway  IN      A       192.168.1.1 gateway  IN      A       192.168.1.1
 +ns1      IN      A       192.168.1.15
 +test     IN      A       192.168.1.20
 </file> </file>
- 
  
  
Ligne 168: Ligne 200:
 zone "1.168.192.in-addr.arpa" { zone "1.168.192.in-addr.arpa" {
         type master;         type master;
 +        file "/etc/bind/db.reverse.glp.internal";
         notify no;         notify no;
-        file "/etc/bind/db.reverse.internal";+        allow-update { none; };
 }; };
 </file> </file>
Ligne 186: Ligne 219:
 ; ;
 $TTL    604800 $TTL    604800
-@       IN      SOA     ns1.lan. admin.lan. (+@       IN      SOA     ns1.glp.internal. admin.glp.internal. (
                               1         ; Serial                               1         ; Serial
                          604800         ; Refresh                          604800         ; Refresh
Ligne 192: Ligne 225:
                         2419200         ; Expire                         2419200         ; Expire
                          604800 )       ; Negative Cache TTL                          604800 )       ; Negative Cache TTL
-; 
-@       IN      NS      ns1. 
  
-; ================= Serveurs ========================= +@       IN      NS      ns1.glp.internal.
-200     IN      PTR     ns1.lan. +
-201     IN      PTR     pi-stache.lan. +
-254     IN      PTR     gw.lan.+
  
 +1       IN      PTR     gateway.glp.internal.
 +15      IN      PTR     ns1.glp.internal.
 +20      IN      PTR     test.glp.internal.
 </file> </file>
  
 Vérifier la configuration et recharger les fichiers de configuration Vérifier la configuration et recharger les fichiers de configuration
 +
 <code bash> <code bash>
 named-checkzone 122.168.192.in-addr.arpa /etc/bind/db.reverse.glp.internal named-checkzone 122.168.192.in-addr.arpa /etc/bind/db.reverse.glp.internal
Ligne 229: Ligne 261:
 ===== Utilisation du service par l’hôte ===== ===== Utilisation du service par l’hôte =====
  
-Une fois le service correctement paramétré, on peut configurer l’hôte pour qu'il utilise ce serveur DNS :+:TODO_DOCUPDATE:
  
-<code bash>+Une fois le service correctement paramétré, on peut configurer l’hôte pour qu'il utilise ce serveur DNS.
  
 +Pour afficher quel serveur DNS est utilisé par défaut sur le système :
 +
 +<code bash>
 +cat /etc/resolv.conf
 </code> </code>
 +
 +Les commentaires du fichiers indiquent quel service à définit le contenu du fichier (en général le client DHCP).
 +
  
 Le fichier ''/etc/resolv.conf'' doit maintenant indiquer l'adresse de notre serveur BIND : Le fichier ''/etc/resolv.conf'' doit maintenant indiquer l'adresse de notre serveur BIND :
 +<code bash>
 +systemctl start named-resolvconf.service
 +
 +</code>
 +
  
  
Ligne 276: Ligne 320:
   * http://www.linuxpedia.fr/doku.php/bind   * http://www.linuxpedia.fr/doku.php/bind
   * https://www.it-connect.fr/dns-avec-bind-9/   * https://www.it-connect.fr/dns-avec-bind-9/
-  * [[https://kb.isc.org/docs/monitoring-recommendations-for-bind-9|Recommandation pour la supervision d'une serveur BIND 9 (isc.org) (en)]] 
   * [[https://www.it-connect.fr/linux-comment-configurer-un-serveur-dns-bind9-sur-un-reseau-deconnecte-dinternet/|Configurer BIND 9 comme résolveur sur un réseau local non connecté]]   * [[https://www.it-connect.fr/linux-comment-configurer-un-serveur-dns-bind9-sur-un-reseau-deconnecte-dinternet/|Configurer BIND 9 comme résolveur sur un réseau local non connecté]]
   * [[https://blog.tips4tech.fr/creer-un-serveur-dns-avec-bind9/|Configurer un serveur DNS BIND (tips4tech.fr)]]   * [[https://blog.tips4tech.fr/creer-un-serveur-dns-avec-bind9/|Configurer un serveur DNS BIND (tips4tech.fr)]]
   * [[https://www.linuxbabe.com/debian/dns-resolver-debian-10-buster-bind9|Configurer bind9 comme resolveur DNS sous Debian10 (linuxbabe.com)(en)]]   * [[https://www.linuxbabe.com/debian/dns-resolver-debian-10-buster-bind9|Configurer bind9 comme resolveur DNS sous Debian10 (linuxbabe.com)(en)]]
 +  * [[https://kb.isc.org/docs/aa-00206|Désactiver IPv6 pour les requêtes récursives (isc.org) (en)]]
 +  * [[https://www.mybluelinux.com/bind-disabling-ipv6-responses-in-bind-dns-server/]]
 +  * [[https://philchen.com/2007/04/04/configuring-reverse-dns/|Configurer une zone inverse dans BIND9 (philchen.com) (en)]]
 +  * [[https://serverfault.com/questions/409190/how-to-properly-configure-bind-forward-zone-for-an-internal-dns-server#718162|Configurer un transfert pour une sous-zone du TLD "internal" (serverfault.com) (en) ]]
 +  * [[https://kb.isc.org/docs/monitoring-recommendations-for-bind-9|Recommandation pour la supervision d'une serveur BIND 9 (isc.org) (en)]]
   * [[https://access.redhat.com/solutions/477073|Accès aux statistiques du serveur DNS BIND (access.redhat.com) (en)]]   * [[https://access.redhat.com/solutions/477073|Accès aux statistiques du serveur DNS BIND (access.redhat.com) (en)]]
 +  * {{reversednspresentation.pdf|Configure reverse DNS in BIND}}
sysadmin/configurer-bind9.1785597884.txt.gz · Dernière modification : 2026/08/01 15:24 de yoann