BIND

De ArchwikiFR


BIND, pour Berkeley Internet Name Daemon, est une implémentation de résolution de noms d'hôtes sur un réseau d'adresses IP (et vice versa). Il peut être utilisé par exemple dans le cadre d'un routeur ou d'un fournisseur de services Internet.

Installation

Le paquet bind se trouve dans les dépôts extra et dnsutils dans core.


Facultatif, vous pouvez éditer /etc/named.conf et dans la section des options n'autoriser que les liaisons avec localhost :

listen-on { 127.0.0.1; };

Éditez /etc/resolv.conf pour l'utilisation d'un serveur DNS local :

nameserver 127.0.0.1

En root, lancez le démon named (en remplaçant start par enable si vous souhaitez automatiser ce lancement) :

systemctl start named

Configuration

Dans cet exemple nous mettons en place un réseau domestique DNS avec bind.

Configuration du serveur

Fichier: /etc/named.conf
zone "domain.tld" IN {
         type master;
         file "domain.tld.zone";
         allow-update { none; };
         notify no;
 };

Création de zonefile

Dans cet exemple nous utilisons « domain.tld ».

Fichier: /var/named/domain.tld.zone
$TTL 7200
 ; domain.tld
 @       IN      SOA     ns01.domain.tld. postmaster.domain.tld. (
                                         2007011601 ; Serial
                                         28800      ; Refresh
                                         1800       ; Retry
                                         604800     ; Expire - 1 week
                                         86400 )    ; Minimum
                 IN      NS      ns01
                 IN      NS      ns02
 ns01            IN      A       0.0.0.0
 ns02            IN      A       0.0.0.0
 localhost       IN      A       127.0.0.1
 @               IN      MX 10   mail
 imap            IN      CNAME   mail
 smtp            IN      CNAME   mail
 @               IN      A       0.0.0.0
 www             IN      A       0.0.0.0
 mail            IN      A       0.0.0.0
 @               IN      TXT     "v=spf1 mx"
Note : $TTL définit l'intervalle de regénération en secondes pour les enregistrements de tous types. Dans cet exemple, 2 heures.

Configuration du client

L'adresse IP du serveur doit être renseignée. Ici, pour l'exemple, nous prenons 192.168.1.20.

Fichier: /etc/resolv.conf
domain home
   nameserver 192.168.1.20


Relancez le démon :

systemctl restart named

Tests

  • Forward Lookup:
# nslookup HostA
Server:         192.168.1.20
Address:	192.168.1.20#53
   
Name:	namesrv.home
Address: 192.168.1.1
  • Reverse Lookup:
# nslookup 192.168.1.20
Server:	        192.168.1.20
Address:	192.168.1.20#53
   
1.1.168.192.in-addr.arpa	name = HostA.home.
  • Et enfin vérification des alias:
# nslookup www.home
Server:		192.168.1.20
Address:	192.168.1.20#53
   
www.home	canonical name = HostA.home.
Name:	HostA.home
Address: 192.168.1.1

BIND en tant que simple DNS

Si vous rencontrez des problèmes, par exemple, avec une connexion VPN, alors vous pouvez tenter une résolution en mettant en place une redirection de serveur DNS, aisée avec bind.

Ajoutez les lignes suivantes à la fois dans la section des options globales et dans les spécificités de votre zone, et modifiez l'adresse IP suivant votre configuration :

Fichier: /etc/named.conf
options {
  listen-on { 192.168.66.1; };
  forwarders { 8.8.8.8; 8.8.4.4; };
 };

Relancez les démons.


Écoute active de nouvelles interfaces

Par défaut bind scanne les nouvelles interfaces et s'arrête lorsqu'elles n'existent plus toutes les heures. Vous pouvez modifier cette valeur en ajoutant dans la section des options :

Fichier: /etc/named.conf
interface-interval <rescan-timeout-in-minutes>;

La valeur maximale du paramètre est 28 jours (40320 minutes). Une valeur 0 désactive la fonction.