Qu’est que BIND, qu’est-ce qu’une vue ?
Bind est un logiciel qui implémente un service DNS ( Domain Name Service ). On peut dire que BIND est « LE » serveur DNS d’Internet car c’est le plus utilisé de tous.
Le DNS, bien que souvent ignoré est le pilier d’Internet.
C’est DNS qui vous permet de ne pas retenir 216.239.59.103 ou 216.239.59.147 pour aller sur www.google.fr.
On appelle ceci une résolution de nom.
Je donne un nom logique de machine, et DNS me donne son adresse IP qui correspond à la position sur Internet du serveur.
Sachez qu’avec DNS si on donne une adresse IP, il va nous donner le nom du serveur destinataire si l’administrateur a bien fait son travail.
La recherche d’une adresse IP avec un nom se nomme recherche directe.
La recherche d’un nom de serveur avec une adresse IP se nomme recherche inverse.
Exemples :
– Recherche Directe
[laurent@fedora ~]$ host www.google.fr
www.google.fr is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 216.239.59.103
www.l.google.com has address 216.239.59.99
www.l.google.com has address 216.239.59.147
www.l.google.com has address 216.239.59.104
www.google.fr is an alias for www.google.com.
www.google.fr is an alias for www.google.com.
– Recherche Inverse
[laurent@fedora ~]$ host 213.190.70.10
10.70.190.213.in-addr.arpa domain name pointer www.caplaser.fr.
Les vues dans Bind permettent de personnaliser les réponses faites aux machines qui interrogent le service DNS.
Cela permet notamment sur un serveur de zone de ne pas servir de resolveur à toutes les machines d’Internet.
Un serveur de zone est un serveur qui est l’autorité pour Internet sur un nom de domaine particulier. Par exemple pour castres-wireless.org, les serveurs de zone sont ns1.caplaser.fr et ns1.e-teleport.net.
ns1.caplaser.fr est dit primaire car c’est l’autorité réelle sur le nom de domaine castres-wireless.org.
ns1.e-teleport.net est dit secondaire, car c’est un serveur de secours pour le domaine castres-wireless.org. Il synchronise ses informations locales depuis ns1.caplaser.fr son primaire.
Un résolveur est le serveur DNS de votre FAI par exemple. Son travail est de répondre aux demandes des clients mais ne sert pas d’autorité pour quelque domaine que ce soit.
Le cas que je traite ici est donc un medley des deux fonctionnements.
Configuration de BIND
Je considère que ce serveur possède :
– une zone primaire pour rayssiguier.com
– une zone secondaire pour castres-wireless.org
Il sert de resolveur pour le réseau 192.168.10.0/24 uniquement.
Ces considérations impliquent que quelle que soit la machine qui demande un nom sur castres-wireless.org ou rayssiguier.com, le serveur devra répondre.
Pour toute autre requête il ne répondra pas hormis aux machines du réseau spécifié.
Ceci implique qu’il va falloir créer deux vues ( une pour le réseau 192.168.10.0/24 et une pour toute autre client ) et ces deux vues vont avoir des informations communes ( les données pour les deux domaines pour lesquels le serveur est autorité ).
Ce qui se transcrit comme ceci dans le fichier /etc/named.conf ( ou /var/named/chroot/etc/named.conf pour une version redhat chrootée ).
options
version "Bind 8";
directory "/var/named";
allow-transfer serveursdns; ;
;
acl "serveursdns"
ip.de.mon.secondaire;
;
acl "recursionOK"
192.168.10.0/24;
127.0.0.1;
;
view "internal"
match-clients recursionOK;;
recursion yes;
include "/etc/mes_zones.conf";
;
view "external"
match-clients any;;
recursion no;
include "/etc/mes_zones.conf";
;
On trouve donc bien la vue « internal » qui utilise l’acl « recursionOK » pour identifier les machines autorisées et une vue « external » pour toutes les autres machines.
Le fichier de configuration de zones mes_zones.conf est commun aux deux vues.
Le fihier mes_zones.conf contient ceci :
zone "."
type hint;
file "named.ca";
;
zone "rayssiguier.com"
type master;
file "rayssiguier.com.db";
;
zone "castres-wireless.org"
type slave;
file "castres-wireless.org.db";
masters ip.du.serveur.primaire; ;
allow-transfer serveursdns; ;
;
La zone particulière « . » est la zone qui sert au serveur DNS à répondres aux requêtes DNS pour lesquelles il n’est pas autorité. C’est donc son fichier de configuration pour sa partie résolveur.
La vue qu’on a mise en place nommée « external » bloque l’usage de cette zone particulière par la directive « recursion no; » alors que pour la vue internal cette directive est à yes.
La zone « . » est définie dans le ficher /var/named/named.ca qui est fourni avec la distribution de bind par le paquet ( caching-nameserver ). Il doit être mis à jour de temps en temps pour prendre en compte les modifications dans les serveurs « racine » d’Internet.
Ce fichier peut être trouvé sous le nom /domain/named.root sur le serveur FTP ftp.rs.internic.net.
On peut imaginer un script qui le récupère tout seul comme un grand via une tache cron.
#!/bin/bash
#
# Script de mise à jour du fichier named.ca
#
DOSSIER_BIND=/var/named/chroot/var/named
cd $DOSSIER_BIND
# Obtention du fichier
/usr/bin/wget ftp://ftp.rs.internic.net/domain/named.root
# Suppression de l'ancien
/bin/rm -f named.ca
# Mise en place du nouveau
/bin/mv named.root named.ca
/bin/chown named: named.ca
# Relecture de la configuration de Bind
/usr/sbin/rndc reload
Pour info, voici le contenu d’un fichier de zone :
$TTL 172800
@ IN SOA ns1.caplaser.fr. technique.caplaser.net. (
2006020601
86400 ;raffraichissement 1 jour
7200 ;reessai 2 heures
2419200 ;obsolescence 4 semaines
172800 ) ;durée de vie 2 jours
@ IN NS ns1.caplaser.fr.
IN NS ns1.e-teleport.net.
localhost IN A 127.0.0.1
@ IN MX 10 mail.caplaser.com.
@ IN MX 20 mx2.caplaser.fr.
www IN A 82.245.220.46
IN A 82.245.220.46
linuxtips IN CNAME www