Logo English Web Page
Accueil Association BSD Linux Dev Reseau Infologisme Mac OSX
tl tr
Sujet Domaine Date 02-02-2011
Titre BIND Système Nom Domaine - Arch Linux Section Dev Reseau
Article

BIND – Serveur DNS

BIND (Berkeley Internet Name Domain) est une implémentation des protocoles DNS et fournit une implémentation ouverte et redistribuable des références et de ces composants principaux du Domain Name System, incluant :

    * Domain Name System server
    * Domain Name System resolver library
    * Tools for managing and verifying the proper operation of the DNS server

BIND DNS Server est employé mondialement dans une large majorité de Serveurs de DNS pour Internet, fournissant une architecture robuste et stable, il est établi que l‘organisation de nommage de Nom de Domaine s‘appuie principalement sur BIND. La référence planétaire pour servir des DNS est BIND.

La bibliothèque du résolveur incluse dans la distribution de BIND fournit une APIs standard pour la traduction entre les Noms de Domaine et les adresses IP Publique sur Internet et il est prévu pour être intégré avec les applications exigeant un service de Nom de Domaine, le service DNS est utilisé par Apache, PostFix, ProFTPD, Sendmail, Squid et autres pour les serveurs, ainsi que pour les clients Mail et les clients Web.

BIND version 9 est une réécriture importante de presque tous les aspects de l‘architecture fondamentale de BIND. Certains des fondements importants de BIND 9 sont liés à la sécurité des DNS (DNSSEC, TSIG), IPv6, le perfectionnements des protocoles DNS (IXFR, DDNS, DNS Notify, EDNS0), au regard du support de multiprocesseur avec une architecture de portabilité améliorée.

Aujourd‘hui, la version 4 de BIND est officiellement abandonnée et le développement de la version 8 de BIND est seulement maintenu en faveur du développement de la version 9 de BIND. Aucun développement additionnel ne sera fait sur la version 4 ou 8 de BIND, autres que pour les mises à jour liées aux failles de sécurité. Internet Systems Consortium encourage tous les développeurs de BIND à améliorer la version 9, celle-ci leur convenant mieux.

DNS – Système Nom Domaine

Système de Nom de Domaine ou DNS est un module fondamental pour le fonctionnement d‘Internet. C‘est la base de données globale, hiérarchique et distribuée de l‘information du Domain Name System qui a la responsabilité de traduire les Noms de domaine en adresses IP Publique et vice versa, conduisant aux destinations appropriées beaucoup de services Internet.

Pour comprendre comment fonctionne un Serveur DNS, saisir dans un navigateur Web l‘adresse IP suivante :

http://193.252.173.102

On tombe sur un Site Web, c‘est sûr, mais lequel ?

Cette adresse IP héberge www.c-extra.com et d‘autres Sites Web.

Remarque : La redirection se fait sur la première ligne du fichier hosts de Nom de Machine ou Hostname de ce Serveur et sur le premier Site Virtuel du Serveur Web Apache. Ces deux paramètres sont intimement liés pour la Résolution du Nom de Domaine et pour le fonctionnement correct du Serveur Bind.

Extrait du fichier hosts

#
192.168.1.1 c-extra.com www.c-extra.com ftp.c-extra.com mail.c-extra.com
192.168.1.1 c-extra.fr www.c-extra.fr ftp.c-extra.fr mail.c-extra.fr
192.168.1.1 c-extra.net www.c-extra.net ftp.c-extra.net mail.c-extra.net
192.168.1.1 c-expresso.com www.c-expresso.com ftp.c-expresso.com mail.c-expresso.com
192.168.1.1 c-expresso.fr www.c-expresso.fr ftp.c-expresso.fr mail.c-expresso.fr
192.168.1.1 cextra.com www.cextra.com ftp.cextra.com mail.cextra.com Forward c-extra.com
192.168.1.1 impress.fr www.impress.fr ftp.impress.fr mail.impress.fr Idem
#


Pour pouvoir examiner ce site Web, le navigateur Web doit découvrir l‘adresse IP Publique de www.c-extra.com du Serveur DNS. Il est posé une question au résolveur de DNS local, qui questionne alternativement le serveur local et le Serveur DNS. Le Serveur DNS effectue un travail primordiale, il découvre rapidement l‘adresse IP Publique assortie au Nom de Domaine et renvoie cette requête au résolveur de DNS local qui transmet cette réponse au navigateur Web.

En jargon DNS, cette consultation s‘appelle une question pour « un enregistrement ». Cet enregistrement décrit la relation entre un hostname avec l‘adresse IP Publique correspondant au DNS.

Naturellement, le processus de résolution complet du DNS est légèrement plus complexe. Le protocole original du DNS est décrit dans le RFC 1034 et le RFC 1035.

Prérequis

Version de logiciel et serveur requis :

Système d‘exploitation : Arch Linux ou autre Linux
Serveur : Bind
Administration Serveur : Webmin


Composants ou Packages nécessaires
Arch Linux
bind 9.7.2.P3-3 Berkeley Internet Name Daemon (BIND) the reference Domain Name System DNS
Il est évident que nom-site.com représente par exemple : c-extra.com

Avoir la première interface réseau en 192.168.1.1 cela va sans dire.
Les paramètres TCP/IP à fournir à un système d‘exploitation réseau sont donc l‘adresse IP de la machine, son masque de sous-réseau, une ou plusieurs adresses DNS et l‘adresse de la passerelle par défaut.
Adressage manuel TCP/IP pour un Serveur de Nom de Domaine – DNS
Adresse IP 192.168.1.1
Sous Réseaux 255.255.255.0
Passerelle 192.168.1.254
DNS Primaire 192.168.1.1
DNS Secondaire 80.10.246.2
DNS Tertiaire 80.10.246.129
Remarque : Adresse IP des Serveurs DNS primaire et secondaire de Orange.fr – 80.10.246.2 – 80.10.246.129
Nom de machine ou hostname : production.nom-site.com
Exemple : production.c-extra.com

Nom de Domaine : nom-site.com
Exemple : c-extra.com

Nom de Domaine : nom-site2.com
Exemple : c-expresso.fr

nom-site.com est le Nom de Domaine pour l‘exemple, remplacer nom-site.com par le domaine voulu qui sera le Nom de Domaine du Serveur. Il faut différencier le Nom de Domaine principal qui doit être le même que le hostname du Serveur matériel ou en traduit français littéralement par « Nom de hôte », mais on utilise plus l‘expression « Nom de machine ».

nom-site.fr, nom-site.net, nom-site2.com, nom-site2.fr, nom-site2.net dans cet exemple ne sont pas, le Nom de Domaine principal du Serveur physique de la machine ou est installer le Serveur de Nom de Domaine Bind.


Le fichier /etc/hosts


#
# /etc/hosts : static lookup table for host names
#
# <ip-address>    <hostname.domain.org>    <hostname>
#
127.0.0.1       production.nom-site.com production localhost.localdomain localhost
::1             production.nom-site.com production localhost.localdomain localhost
#
192.168.1.1     nom-site.com www.nom-site.com ftp.nom-site.com mail.nom-site.com
192.168.1.1     nom-site.fr www.nom-site.fr ftp.nom-site.fr mail.nom-site.fr
192.168.1.1     nom-site.net www.nom-site.net ftp.nom-site.net mail.nom-site.net
192.168.1.1     nom-site2.com www.nom-site2.com ftp.nom-site2.com mail.nom-site2.com
192.168.1.1     nom-site2.net www.nom-site2.net ftp.nom-site2.net mail.nom-site2.net
192.168.1.1     nom-site3.com www.nom-site3.com ftp.nom-site3.com mail.nom-site3.com
192.168.1.1     nom-site3.net www.nom-site3.net ftp.nom-site3.net mail.nom-site3.net



Le fichier /etc/resolv.conf

nameserver 192.168.1.1
nameserver 80.10.246.2
nameserver 80.10.246.129
domain nom-site.com
Liste des Ports ouverts avec leurs protocoles pour servir Nom de Domaine et Site Web.
Serveur Port Protocole
Bind 53 TCP
Bind 53 UDP
Apache 80 TCP
Apache 443 TCP
Configurer le Firewall de Linux IPTables pour héberger un Site Web : Webmin - Configuration du Firewall Linux IPTables

BIND – Installation et mise en œuvre

Il faut paramétrer /etc/named.conf de Bind 9.7.2.P3-3 de Arch Linux


Le fichier named.conf


// $ Arch Linux: /etc/named.conf 2010/12/10 12:00:00
//

options {
        directory "/var/named";
        pid-file "/var/run/named/named.pid";
        auth-nxdomain yes;
        datasize default;
        allow-recursion { 127.0.0.1; };
        listen-on { any; };
        };


zone "." { type hint; file "root.hint"; };



Remarque : Une syntaxe de base, qui doit être adapté pour chaque situation.

Avec Webmin cliquer sur l‘icône Serveurs puis Serveur de noms de domaines BIND puis cliquer sur l‘onglet Configuration du module et paramétrer la ligne suivante :

Full path to the rndc.conf file        /etc/rndc.conf

Démarrer avec l‘onglet Start Bind

On peut ensuite générer la clef RNDC avec l‘icône Setup RNDC.

Cela rajoutera ce type de syntaxe au fichier named.conf


key rndc-key {
        algorithm hmac-md5;
        secret "Ezz+EiLjQLP+SVwzPh3b+g==";
        };

controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
        };



Cliquer sur l‘onglet Apply Configuration


Créer une zone primaire

DNS – Zone primaire

Avec Webmin cliquer sur l‘icône Serveurs puis Serveur de noms de domaines BIND puis de la section Zone DNS existantes cliquer sur Créer une zone primaire.
Création d‘une zone primaire
 Options de la nouvelle zone primaire
Type de la zone Direct (noms -> adresses) Inverse (adresses -> noms)
Nom de domaine / Réseau
Fichier d‘enregistrements Automatique
Serveur primaire Ajouter un enregistrement NS pour le serveur primaire ?
Adresse électronique
Utiliser un modèle de zone ? Oui Non Adresse IP des enregistrements des modèles
Adresse inverse d‘enregistrement ? Oui Non
Temps de rafraîchissement Temps de retransfert
Temps d‘expiration Durée de vie par défaut
Cela ajoutera ce type de syntaxe au fichier named.conf


zone "localhost" {
        type master;
        file "/var/named/localhost.hosts";
        };


Cliquer sur la zone Master localhost puis sur Adresse sous l‘icône du  A
Enregistrements Adresse
Ajouter l'enregistrement Adresse
Nom Durée de vie Par défaut
Adresse
Mettre à jour l'adresse inverse ? Oui Oui (et remplacer l'adresse existante) Non
Ce qui donne comme fichier /var/named/localhost.hosts


$ttl 38400
localhost.       IN        SOA   localhost.nom-site.com.    root.localhost (
                           1234454420
                           10800
                           3600
                           604800
                           38400 )
localhost.                 IN    NS    localhost.nom-site.com.
localhost.                 IN    A     127.0.0.1



Maintenant créer la zone primaire du Domaine nom-site.com
Création d‘une zone primaire
 Options de la nouvelle zone primaire
Type de la zone Direct (noms -> adresses) Inverse (adresses -> noms)
Nom de domaine / Réseau
Fichier d‘enregistrements Automatique
Serveur primaire Ajouter un enregistrement NS pour le serveur primaire ?
Adresse électronique
Utiliser un modèle de zone ? Oui Non Adresse IP des enregistrements des modèles
Adresse inverse d‘enregistrement ? Oui Non
Temps de rafraîchissement Temps de retransfert
Temps d‘expiration Durée de vie par défaut
Cela ajoutera ce type de syntaxe au fichier named.conf


zone "nom-site.com" {
        type master;
        file "/var/named/nom-site.com.hosts";
        };



Cliquer sur la zone Master nom-site.com puis sur Modifier le fichier d‘enregistrements comme ci-dessous.


Le fichier /var/named/nom-site.com.hosts


$ttl 38400
nom-site.com.     IN       SOA   production.nom-site.com.    root.nom-site.com (
                           1234476834
                           10800
                           3600
                           604800
                           38400 )
@                          IN    NS    nom-site.com.
nom-site.com.              IN    A     192.168.1.1
www.nom-site.com.          IN    A     192.168.1.1
ftp.nom-site.com.          IN    A     192.168.1.1
mail.nom-site.com.         IN    A     192.168.1.1
production.nom-site.com.   IN    A     127.0.0.1



Remarque :

La syntaxe de la deuxième Zone DNS et les suivantes sont un peu différente. Cela me paraît normal puisque le premier Nom de Domaine est celui du Nom de Serveur.

Le moyen de vérifier si tout est Ok, se fait en arrêtant et en démarrant Bind par un autre poste avec Webmin et le Serveur à tester doit être en mode console, là apparaît vraiment les erreurs...

Pour une syntaxe correcte de configuration, le fichier de log /var/log/messages indique les informations suivantes :

Jun 2 16:00:00 production named[946]: starting 9.7.2.P3 -t /var/named -u bind
Jan 2 16:00:00 production named[946]: command channel listening on 127.0.0.1#953
Jan 2 16:00:00 production named[946]: the working directory is not writable
Jan 2 16:00:00 production named[946]: running

DNS – Deuxième Zone et suivantes

Créer une nouvelle Zone master comme indiquer ci-dessus, cela ajoutera ce type de syntaxe au fichier named.conf


zone "nom-site.fr" {
        type master;
        file "/var/named/nom-site.fr.hosts";
        };



Cliquer sur la zone Master nom-site.fr puis sur Modifier le fichier d‘enregistrements comme ci-dessous.


Le fichier /var/named/nom-site.fr.hosts


$ttl 38400
nom-site.fr.      IN       SOA   production.nom-site.fr.    root.nom-site.fr (
                           1234454420
                           10800
                           3600
                           604800
                           38400 )
@                          IN    NS    production.nom-site.fr.
nom-site.fr.               IN    A     192.168.1.1
www.nom-site.fr.           IN    A     192.168.1.1
ftp.nom-site.fr.           IN    A     192.168.1.1
mail.nom-site.fr.          IN    A     192.168.1.1



Le Serveur BIND est paramétré, c‘est la fin du moment de plaisir, normalement cela devrait bien se se passer !

DNS – Redirection

La redirection par exemple chez GANDI, cliquer sur le lien Nom de Domaine puis sur le lien Gérer les zones puis choisir l‘interface experte pour personnalisé un DNS.

Syntaxe :

@ 3600 IN A 000.000.000.000
ftp 3600 IN A 000.000.000.000
www 3600 IN A 000.000.000.000


Attention : Avec une adresse IP seule, le Serveur de mail ne fonctionnera pas.


Article connexe du sujet

BIND Système Nom Domaine - FreeBSD
BIND Système Nom Domaine - Mac OSX Leopard
Configuration Oracle VM VirtualBox pour Arch Linux
Résolution DNS Fichier hosts et hostname - Servir avec Apache sur un Nom
Webmin - Administration Serveur & Système

Auteur
Eric Douzet
Début de page
bl br
C-extra.com v. 1.2.2 © 2000-2014, tous droits réservés  –  Mise à jour le 12 Avril 2014 Infologisme.com