logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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édentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:serveur:bind9 [15/01/2017 19:03]
robert2a [Introduction au DNS]
doc:reseau:serveur:bind9 [22/06/2017 08:37] (Version actuelle)
lagrenouille [Introduction au DNS]
Ligne 8: Ligne 8:
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=7636 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))    * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=7636 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
-Source : [[http://​archil.fr/​Doc_install_BIND.html]]+Source : 
 +  * [https://​wiki.debian.org/​fr/​Bind9]] 
 +  * [[http://​archil.fr/​Doc_install_BIND.html]] 
 +Lien utile sur le forum : 
 +  * [[https://​debian-facile.org/​viewtopic.php?​id=16508]]
  
-===== Introduction au DNS=====+===== Introduction au DNS =====
  
-====Quelques bases sur les servers DNS ====+==== Quelques bases sur les servers DNS ====
  
 DNS permet une correspondance entre nom d'​hôte (FQDN) et adresse IP.\\  DNS permet une correspondance entre nom d'​hôte (FQDN) et adresse IP.\\ 
 Principe de hiérarchie :\\  Principe de hiérarchie :\\ 
   *serveur racine (serveur DNS de plus haut niveau (.)   *serveur racine (serveur DNS de plus haut niveau (.)
- 
   *serveur TLD : Top Level Domaine (com org net fr ...)   *serveur TLD : Top Level Domaine (com org net fr ...)
- 
   *Domaine (toto.fr) ​   *Domaine (toto.fr) ​
- 
   *hôte ​   (www)\\ Par exemple <​nowiki>​www.toto.com.</​nowiki>​\\ il peut y avoir des sous-domaines comme par exemple, <​nowiki>​www.domaine1.toto.com.</​nowiki>​.\\   *hôte ​   (www)\\ Par exemple <​nowiki>​www.toto.com.</​nowiki>​\\ il peut y avoir des sous-domaines comme par exemple, <​nowiki>​www.domaine1.toto.com.</​nowiki>​.\\
  
 Le point après ''​com''​ est sous-entendu pour l'​utilisation du côté client, mais pas dans la configuration du DNS. Le point après ''​com''​ est sous-entendu pour l'​utilisation du côté client, mais pas dans la configuration du DNS.
  
-Tout cela compose le **FQDN** (fool domaine name). ​+Tout cela compose le **FQDN** (fool domaine name). 
 + 
 +=== Exemple ===
  
-  * Exemple : 
 Un client souhaite savoir à quel adresse IP correspond **<​nowiki>​www.toto.com</​nowiki>​**.\\ ​ Un client souhaite savoir à quel adresse IP correspond **<​nowiki>​www.toto.com</​nowiki>​**.\\ ​
- +Dans l'ordi de ce client on a configuré un ou plusieurs DNS dans le fichier **/etc/resolv.conf** dans lequel est indiqué l'​adresse IP de serveur local Bind comme server de référence.\\  
-Dans l'ordi de ce client on a configuré un ou plusieurs DNS dans le fichier **/etc/resolve.conf** dans lequel est indiqué l'​adresse IP de serveur local Bind comme server de référence.\\  +Cet ordi a donc l'​adresse IP d'un DNS est lui pose la question "donne moi l'IP de **<​nowiki>​www.toto.com</​nowiki>​**. 
- +  ​- ​Si le server sait répondre il lui donne l'IP, 
-Cette ordi a donc l'​adresse IP d'un DNS est lui pose la question "donne moi l'IP de **<​nowiki>​www.toto.com</​nowiki>​**.\\  +  - s'il ne sait pas il va interroger les serveurs DNS au dessus de lui, TLD, Racine... 
- +  - Quand il a l'​adresse,​ il répond au client qui peut joindre l'ordi de toto.com
-Si le server sait répondre il lui donne l'IP, s'il ne sait pas il va interroger les serveurs DNS au dessus de lui, TLD, Racine...\\ Quand il a l'​adresse,​ il répond au client qui peut joindre l'ordi de toto.com\\+
  
 ===Vocabulaire === ===Vocabulaire ===
-  *Zone : Ensemble des directives correspondantes à un Domaine. À chaque zone correspond un fichier. (Une zone n'est pas forcément un domaine).\\ ​ 
  
-  * DNS récursif : DNS capable d'​interroger d'​autres servers DNS, lorsqu'​il ne parvient à trouver un serveur faisant autorité sur le nom de domaine recherché.\\ ​+  ​***Zone** : Ensemble des directives correspondantes à un Domaine. À chaque zone correspond un fichier. (Une zone n'est pas forcément un domaine). 
 +  * **DNS récursif** : DNS capable d'​interroger d'​autres servers DNS, lorsqu'​il ne parvient à trouver un serveur faisant autorité sur le nom de domaine recherché.  
 +  * **Serveur "​primaire"​ ou "​maître"​ (d'une zone)**, en anglais serveur "​authoritive"​) : serveur qui a la configuration de sa zone grâce à un fichier. C'est le serveur principal d'une domaine.\\  
 +  * **Serveur secondaire** : serveur qui des informations sur une zone à partir d'un serveur primaire et non grâce à sa configuration. 
 +  * **Faire autorité sur un domaine** : C'est le fait pour un serveur DNS de répondre directement aux requêtes un domaine, sans passer par un autre serveur ou un cache. Le cache c'est le fichier dans lequel le serveur DNS récursif conserve l'​information qu'il a obtenu d'un autre serveur à la suite d'une requête qui lui a été faite par un client.
  
-  * Serveur "​primaire"​ ou "​maître"​ (d'une zone), en anglais serveur "​authoritive"​) : serveur qui a la configuration de sa zone grâce à un fichier. C'est le serveur principal d'​une ​domaine.\\ +Donc les serveur qui font autorité sur un domaine sont : 
 +  - soit des serveurs primaires,​ 
 +  - soit des serveurs secondaires s'ils ont une copie de ces informations.
  
-  * Serveur secondaire : serveur qui des informations sur une zone à partir d'un serveur primaire et non grâce à sa configuration.\\ ​+==== Composants de bind 9 ====
  
-  * Faire autorité sur un domaine ​C'est le fait pour un serveur DNS de répondre directement aux requêtes un domainesans passer par un autre serveur ou un cache. Le cache c'est le fichier dans lequel le serveur DNS récursif conserve l'​information qu'il a obtenu d'un autre serveur à la suite d'une requête qui lui a été faite par un client.\\ +  * bind Berkeley Internet Name Daemon 
 +  * Version 9 : stablesécurisée ​est celle dont il s'agit . 
 +  * (Version 10 depuis 2013 intègre le DHCP.)
  
-Donc les serveur qui font autorité sur un domaine sont, soit des serveurs primaires, soit des serveurs secondaires s'ils ont une copie de ces informations.\\ ​+=== named ===
  
-====Composants de bind 9 ==== +named C'est le programme qui lance le serveur. /​usr/​sbin/​named
-bind Berkeley Internet Name Daemon+
  
-Version 9 : stable, sécurisée est celle dont il s'agit .+=== bind9 ===
  
-(Version 10 depuis 2013 intègre le DHCP.) +Permet de gérer bind.
- +
-===/​usr/​sbin/​named===  +
-Le programme qui lance le serveur. +
- +
-===/​etc/​init.d/​bind9=== +
-Permet de gérer bind.\\ +
  
   *En **root** :   *En **root** :
-    * **''/​etc/​init.d/​bind9 stop''​** : pour arrếter+    * **''/​etc/​init.d/​bind9 stop''​** : pour arrêter
     * **''/​etc/​init.d/​bind9 start''​** : pour rédémarrer     * **''/​etc/​init.d/​bind9 start''​** : pour rédémarrer
-    * **''/​etc/​init.d/​bind9 restart''​** : pour redémarrer (si il était démarrer, avec restart, il est éteint, ​puis redémarrer ​avec un nouveau processus +    * **''/​etc/​init.d/​bind9 restart''​** : pour redémarrer (si il était démarrer, avec restart, il est éteint, ​ 
-    * **''/​etc/​init.d/​bind9 reload''​** : pour recharger la configuration (ne stoppe pas avant de recharger+ 
 +Redémarrer ​avec un nouveau processus ​: 
 +    * **''/​etc/​init.d/​bind9 reload''​** : pour recharger la configuration (ne stoppe pas avant de recharger).
  
 On peut aussi utiliser **''​service''​** avec chacune des commandes décrites pour init.d par exemple : On peut aussi utiliser **''​service''​** avec chacune des commandes décrites pour init.d par exemple :
 <code root>​service bind9 restart</​code>​ <code root>​service bind9 restart</​code>​
  
-===L'​utilitaire rndc=== ​+=== L'​utilitaire rndc === 
 /​usr/​sbin/​rndc est le fichier binaire de l'​utilitaire de contrôle rndc.\\ ​ /​usr/​sbin/​rndc est le fichier binaire de l'​utilitaire de contrôle rndc.\\ ​
-Il permet de gérer Bind9 +Il permet de gérer Bind9.
 <​code>​ <​code>​
 rndc [b source-adress] [-c config-file] [k key-file] [-s serveur] rndc [b source-adress] [-c config-file] [k key-file] [-s serveur]
Ligne 89: Ligne 92:
  
  
-=== /​etc/​bind/​named.conf=== ​+=== /​etc/​bind/​named.conf=== 
 C'est le fichier de configuration centrale de bind.\\ ​ C'est le fichier de configuration centrale de bind.\\ ​
-Il peut se trouver dans différents dossiers (sécurité,​ chroot) par exemple dans /​etc/​named.conf ou /etc/\\+Il peut se trouver dans différents dossiers (sécurité,​ chroot) par exemple dans /​etc/​named.conf ou /etc/
  
-On peut externaliser ​certaines ​points de configuration de ce fichier central dans des fichiers;\\ **/​etc/​bind/​named.conf.local**\\ **/​etc/​bind/​named.conf.options**+On peut externaliser ​certains ​points de configuration de ce fichier central dans des fichiers; 
 +  * **/​etc/​bind/​named.conf.local** 
 +  * **/​etc/​bind/​named.conf.options**
  
 ===/​etc/​init.d/​bind=== ===/​etc/​init.d/​bind===
-Ils 'agit d'un init script qui permet de redémarrer bind : 
  
 +Il 'agit d'un init script qui permet de redémarrer bind :
 <code root>/​etc/​init.d/​bind9 restart</​code>​ <code root>/​etc/​init.d/​bind9 restart</​code>​
- 
  
 === /var/named/ === === /var/named/ ===
 +
 Il s'agit d'un répertoire de travail. Il s'agit d'un répertoire de travail.
  
-====Syntaxe des fichiers de configuration ​ ====+==== Syntaxe des fichiers de configuration ​ ==== 
 (named.conf,​ named.conf.local,​ named.conf.options,​ etc.) (named.conf,​ named.conf.local,​ named.conf.options,​ etc.)
- 
   * Toujours un point virgule pour finir une instruction.   * Toujours un point virgule pour finir une instruction.
- 
   * __Instruction entre accolades :__   * __Instruction entre accolades :__
 On donne une "​intruction"​ (statements) On donne une "​intruction"​ (statements)
- 
 <​code>​ <​code>​
 mot-clé { mot-clé {
Ligne 119: Ligne 123:
  
   * __Instruction simples entre guillemets doubles :__   * __Instruction simples entre guillemets doubles :__
 +
 Par exemple dans /​etc/​bind/​named.conf : Par exemple dans /​etc/​bind/​named.conf :
 <​code>​ <​code>​
Ligne 127: Ligne 132:
 </​code>​ </​code>​
  
-===Options de configuration du DNS=== +=== Options de configuration du DNS ===
- +
-//Souvent dans le fichier "​named.conf.options//​.\\ +
- +
-Dans l'​instruction "​option"​ du fichier named.conf.options,​ on peut donner les instructions suivantes:+
  
 +<note tip>​Souvent dans le fichier "​named.conf.options.</​note>​
 +Dans l'​instruction "​option"​ du fichier named.conf.options,​ on peut donner les instructions suivantes :
 ^Options ^significations ^exemples ^ ^Options ^significations ^exemples ^
 |directory | répertoire de travail |directory "/​var/​named";​ | |directory | répertoire de travail |directory "/​var/​named";​ |
Ligne 139: Ligne 142:
 |version | version du serveur à afficher quand le serveur est interrogé| version none ; | |version | version du serveur à afficher quand le serveur est interrogé| version none ; |
  
-  * Par exemple dans /​etc/​bind/​named.conf.options : +Par exemple dans /​etc/​bind/​named.conf.options : \\ 
-  ​* ​pour une utilisation locale uniquement +pour une utilisation locale uniquement ​\\ 
-  ​* ​le forwarders avec une IP du DNS externe en cas d'un échec de résolution par le DNS local+le forwarders avec une IP du DNS externe en cas d'un échec de résolution par le DNS local
 <​code>​ <​code>​
 options { options {
Ligne 163: Ligne 166:
 </​code>​ </​code>​
  
-===L'​instruction zones===+=== L'​instruction zones ===
  
-Permet de définir les paramètres généraux d'une zone.\\ +<note tip>À placer dans /​etc/​bind/​named.conf.local.</​note>​ 
 +Permet de définir les paramètres généraux d'une zone. 
 <​code>​ <​code>​
 zone "​nom-de-notre-zone"​ { zone "​nom-de-notre-zone"​ {
Ligne 178: Ligne 182:
   *éventuellement des options   *éventuellement des options
  
- +Exemple ​:
-=====Pré-requis à la l'​installation d'un DNS Maître du réseau local===== +
-Il va s'agir de configurer un serveur DNS qui servira de serveur cache pour le système sur lequel Bind va être installé, et qui sera de serveur DNS maître pour les systèmes clients du réseau local. +
- +
-  * Soit un server sous Debian Wheezy nommé ​"​debian-serveur"​ +
-  * Adresse IP pour "eth0 " du serveur "​debian-serveur"​ : 192.168.0.14 +
-  * Soit un nom de domaine : "​mondomaine.hyp"​ +
-  * Soit un ordi client sur le réseau local : "​debian-client"​ avec l'IP 192.168.0.22 +
-  * Soit un autre ordi sur le réseau local : "​debian-hp"​ avec l'IP 192.168.0.23 +
-Les IP des ordinateurs clients et du système sur lequel il va être installé Bind sont fixées par le serveur DHCP par exemple celui du modem fourni par son FAI((Se rendre sur le site de son FAI, et associer l'​adresse mac du serveur à l'IP dans les BAUX/​DHCP.)),​ ou encore par un serveur DHCP installé entre le routeur et les clients du réseau local. +
- +
-===Connaître le nom du système sur lequel on installera Bind === +
- +
-<code user>​hostname </​code>​ +
-<​code>​debian-serveur</​code>​ +
- +
-  * Si on veut le changer pour lui donner un nom plus significatif de sa fonction de server : +
- +
-<code root>vim /​etc/​hostname</​code>​ +
- +
-  * Puis ré-initialiser : +
- +
-<code root>/​etc/​init.d/​hostname.sh start</​code>​ +
- +
-===Compléter /​etc/​host.conf=== +
-Il s'agit là de la partie cliente du système sur lequel va être installé Bind. Un même système peut être à la fois client et serveur, c'​est-à-dire,​ serveur DNS "pour lui-même"​.  +
- +
-<code root>vim /​etc/​host.conf </​code>​ +
-<​code>​order hosts, bind +
-multi on +
-</​code>​ +
- +
-===Compléter /​etc/​hosts=== +
-Il s'agit là encore de l'​aspect client du système. On renseigne tous les clients du réseau local.\\  +
-On renseigne aussi le nom de domaine de ce système en tant que client. +
- +
-<code root>vim /​etc/​hosts</​code>​ +
 <​code>​ <​code>​
-127.0.0.1 ​      ​localhost.mondomaine.hyp ​     localhost +zone "​mondomaine.net" {
-192.168.0.14 ​   debian-serveur.mondomaine.hyp debian-serveur +
-192.168.0.22 ​   debian-client1 +
-192.168.0.23 ​   debian-hp +
- +
- +
- +
-# The following lines are desirable for IPv6 capable hosts +
-::1     ​localhost ip6-localhost ip6-loopback +
-ff02::1 ip6-allnodes +
-ff02::2 ip6-allrouters +
- +
-</​code>​ +
- +
-===Déclarer un nom de domaine dans /​etc/​resolv.conf=== +
- +
-If faut déclarer un nom de domaine dans /​etc/​resolv.conf.\\  +
-Et retirer les DNS extérieurs,​ afin que Bind soit consulté.\\  +
- +
-Sur le système voué à servir de serveur DNS, s'il a été installé un environnement de bureau, lors du redémarrage du système, la nouvelle configuration du fichier **/​etc/​resolv.conf** sera effacée par Network Manager.\\  +
- +
-Deux solutions pour résoudre ce problème : soit on configure Network Manager, soit on se crée un script. +
- +
-  * **Configurer Network Manager**. +
- +
-En faisant :\\  +
--> Système -> Préférences -> Connexions réseau \\ +
-Puis il faut modifier toutes les connexions que vous avez dans tous les onglets (Filaire, Sans fil, etc…), en faisant, pour chacune d’entre-elles : +
- +
-  - Cliquez sur la connexion à modifier ; +
-  - Bouton "​Modifier"​ ; +
-  - Onglet "​Paramètres IPv4" (et aussi IPv6 si vous l’utilisez) ; +
-  - Méthode : Adresses automatiques uniquement (DHCP) ; +
-  - Serveurs DNS : 127.0.0.1  +
- +
-Puis appliquez les modifications. Si la connexion est partagée entre tous les utilisateurs,​ un mot de passe administrateur vous sera demandé. +
- +
-> On peut alors éditer le fichier **/​etc/​resolv.conf** afin qu'il ressemble à ceci : +
- +
-<​code>​domain mondomaine.hyp +
-search mondomaine.hyp +
-nameserver 127.0.0.1</​code>​ +
- +
- +
-  * **Script de démarrage pour effacer les modifications de Network Manager**. +
-On va modifier le fichier avec le script, en même temps que résoudre le problème "​Network Manager",​ donc inutile d'​éditer /​etc/​resolv.conf après l'​exécution du script. +
- +
-  * Création du script pour networkmanager : +
-<code root>cd /​etc/​NetworkManager/</​code>​ +
- +
-<code root>vim /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ +
-<​code>#​!/​bin/​sh +
-echo "​domain mondomaine.hyp"​ > /​etc/​resolv.conf +
-echo "​search mondomaine.hyp"​ >> /​etc/​resolv.conf +
-echo "​nameserver 192.168.0.14"​ >> /​etc/​resolv.conf +
-echo "#​nameserver 212.27.40.240"​ >> /​etc/​resolv.conf +
-echo "#​nameserver 212.27.40.241"​ >> /​etc/​resolv.conf +
-</​code>​ +
- +
-Et c'est tout, Bind sera le server DNS du système sur lequel il est installé.\\  +
-On peut simplement commenter les anciens paramètres du fichier afin d'​avoir sous la main les DNS de son FAI. +
- +
-<code root>​chmod 755 /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ +
- +
-  * Exécution du script : +
- +
-<code root>​bash /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ +
-<code root>​less /​etc/​resolv.conf</​code>​ +
-<​code>​domain mondomaine.hyp +
-search mondomaine.hyp +
-nameserver 192.168.0.14 +
-#nameserver 212.27.40.240 +
-#nameserver 212.27.40.241 +
-</​code>​ +
- +
-  * Redémarrer le réseau : +
- +
-<code root>/​etc/​init.d/​networking start</​code>​ +
- +
- +
-<note tip> +
-  * Au sujet de Network Manager:\\ [[https://​wiki.debian.org/​fr/​NetworkConfiguration#​Configuration_de_DNS_pour_network-manager]] +
- +
-  * Attention la suppression de networkmanager déstabilise le système : +
- +
-<code root>​apt-get remove --purge network-manager-gnome netwok-manager</​code>​ +
- +
-</​note>​ +
- +
- +
-=====Installer et configurer un serveur DNS ===== +
- +
-  +
-<​note>​Dans le cas où vous partagez votre connexion internet (modem cable, adsl, ou même simple modem) il est très utile d'​utiliser un serveur DNS cache. Par contre, pour que vos stations qui utilisent cette connexion partagée se servent de ce serveur cache DNS, n'​oubliez surtout pas de configurer toutes les stations pour qu'​elles utilisent comme serveur DNS votre serveur et pas un autre. Pour cela, donnez comme adresse de serveur DNS l'​adresse interne (côté LAN donc) de votre serveur. </​note>​ +
- +
-===Installation du paquetage=== +
-<code root> +
-apt-get update +
-</​code>​ +
- +
-<code root> +
-apt-get install bind9 +
-</​code>​ +
- +
-===Configuration de bind pour un serveur DNS maître local=== +
-<note tip> +
-__Quelques commandes utiles lors de la configuration de bind9__ : +
- +
-  * Si la configuration est difficile on peut chercher les erreurs avec les commandes suivantes : +
-<code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan</​code>​ +
-<code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan.inv</​code>​ +
-<code root>​named-checkconf /​etc/​bind/​named.conf</​code>​ +
-<code root>​named-checkconf /​etc/​bind/​named.conf.options</​code>​ +
- +
- +
-  *Voir aussi les logs : +
-<code root>​tail -30 /​var/​log/​syslog</​code>​ +
- +
-</​note>​ +
- +
-  *Le dossier **/​etc/​bind/​** : +
- +
-<code root>cd /etc/bind/ && ls</​code>​ +
- +
-<​code>​bind.keys ​ db.127 ​ db.empty ​ db.root named.conf.default-zones ​ named.conf.options ​ zones.rfc1918 +
-db.0    ​db.255 ​ db.local ​ named.conf ​ named.conf.local  ​  ​rndc.key +
-</​code>​ +
- +
-  * Créer le fichier "​**/​etc/​bind/​db.mondomaine.hyp**"​ : +
- +
-Prendre le fichier /​etc/​bind/​db.local pour modèle. +
- +
-<code root>cp /​etc/​bind/​db.local /​etc/​bind/​db.mondomaine.hyp</​code>​ +
- +
-Éditer "/​etc/​bind/​db.mondomaine.hyp"​ : +
- +
-<code root>vim /​etc/​bind/​db.mondomaine.hyp</​code>​ +
-<​code>​ +
-+
-; BIND data file for eth0 interface +
-+
-$TTL    604800 +
-@       ​IN ​     SOA     ​debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( +
-                              2         ; Serial +
-                         ​604800 ​        ; Refresh +
-                          86400         ; Retry +
-                        2419200 ​        ; Expire +
-                         ​604800 )       ; Negative Cache TTL +
-+
-@       ​IN ​     NS      debian-serveur.mondomaine.hyp. +
-debian-serveur ​ IN   ​A ​ 192.168.0.14 +
-</​code>​ +
- +
-  * Créer le fichier de recherche inverse "​**db.mondomaine.hyp.inv**"​ : +
- +
-Prendre pour modèle /​etc/​bind/​db.127 +
- +
-<code root>cp /​etc/​bind/​db.127 /​etc/​bind/​db.192</​code>​ +
- +
-Éditer "/​etc/​bind/​db.192"​ : +
- +
-<code root>vim /​etc/​bind/​db.192</​code>​ +
-<​code>​ +
-+
-; BIND reverse data file for eth0  interface +
-+
-$TTL    604800 +
-@       ​IN ​     SOA     ​debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( +
-                              1         ; Serial +
-                         ​604800 ​        ; Refresh +
-                          86400         ; Retry +
-                        2419200 ​        ; Expire +
-                         ​604800 )       ; Negative Cache TTL +
-+
-@       ​IN ​     NS      debian-serveur. +
-14      IN      PTR     ​debian-serveur.mondomaine.hyp. +
-</​code>​ +
- +
-  * Configurer le fichier "/​etc/​bind/​named.conf.local"​ : +
-<code root>vim /​etc/​bind/​named.conf.local</​code>​ +
-<​code>​ +
-// +
-// Do any local configuration here +
-// +
- +
-// Consider adding the 1918 zones here, if they are not used in your +
-// organization +
-//include "/​etc/​bind/​zones.rfc1918";​ +
-zone "​mondomaine.hyp" {+
         type master;         type master;
-        file "/​etc/​bind/​db.mondomaine.hyp"; +        file "/​etc/​bind/​db.mondomaine.net"; 
-        ​allow-query ​any; };        ​ +        ​forwarders ​{}; 
-}; +        allow-update ​key ns-mondomaine-net_rndc-key};
-zone "​0.168.192.in-addr.arpa" ​{ +
-        type master; +
-        file "/​etc/​bind/​db.192"​;+
 }; };
 </​code>​ </​code>​
  
-  * Configurer "/​etc/​bind/​named.conf.options" ​: +== Explication ​==
-<code root>vim /​etc/​bind/​named.conf.options</​code>​ +
-<​code>​ +
- ​options { +
-        directory "/​var/​cache/​bind";​+
  
-        // If there is a firewall between you and nameservers you want +  - zone mondomaine.net (serveur maitre sur la zone) 
-        // to talk to, you may need to fix the firewall to allow multiple +  - chemin du fichier de configuration de zone 
-        // ports to talk.  See http://​www.kb.cert.org/​vuls/​id/​800113+  ​- pas de forwarders 
 +  - update par les clients (dhcp) et 
 +  - nom de la clé
  
-        // If your ISP provided one or more IP addresses for stable +===== Pré-requis à l'installation d'un DNS Maître du réseau local =====
-        // nameservers,​ you probably want to use them as forwarders. +
-        // Uncomment the following block, and insert the addresses replacing +
-        // the all-0's placeholder.+
  
-         ​forwarders { 
-                192.168.0.14;​ 
-                8.8.8.8; 
-                8.8.4.4; 
-                // 212.27.40.240;​ 
-                // 212.27.40.241;​ 
-         }; 
- 
-        //​======================================================================== 
-        // If BIND logs error messages about the root key being expired, 
-        // you will need to update your keys.  See https://​www.isc.org/​bind-keys 
-        //​======================================================================== 
-        dnssec-validation auto; 
- 
-        auth-nxdomain no;    # conform to RFC1035 
-        version none; 
-        forward only; 
-//      listen-on-v6 { any; }; 
-}; 
- 
- 
-</​code>​ 
- 
-On peut mettre les forwarders qu'on souhaite, par exemple ici ceux de google ou/et ceux de "​boxmachin",​ fournisseur adsl. 
- 
-  * Redémarrer bind9 : 
- 
-<code root>​service bind9 restart</​code>​ 
- 
-ou 
- 
-<code root>/​etc/​init.d/​bind9 restart</​code>​ 
- 
-<​code>​ 
-[....] Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#​953:​ connection refused 
-. ok  
-[ ok ] Starting domain name service...: bind9. 
- 
-</​code>​ 
- 
- 
-====Configurer le serveur Bind au sujet des clients==== 
- 
-===Éditer le fichier /​etc/​bind/​db.mondomaine.hyp=== 
-<code root>vim /​etc/​bind/​db.mondomaine.hyp</​code>​ 
-<​code>;​ 
-; BIND data file for local loopback interface 
-; 
-$TTL    604800 
-@       ​IN ​     SOA     ​debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( 
-                              2         ; Serial 
-                         ​604800 ​        ; Refresh 
-                          86400         ; Retry 
-                        2419200 ​        ; Expire 
-                         ​604800 )       ; Negative Cache TTL 
-; 
-@       ​IN ​     NS      debian-serveur.mondomaine.hyp. 
-debian-serveur ​ IN   ​A ​ 192.168.0.14 
-debian-client1 ​ IN   ​A ​ 192.168.0.22 
-</​code>​ 
- 
-===Éditer le fichier /​etc/​bind/​db.192=== 
- 
-<code root>vim /​etc/​bind/​db.192</​code>​ 
-<​code>;​ 
-; BIND reverse data file for eth0  interface 
-; 
-$TTL    604800 
-@       ​IN ​     SOA     ​debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( 
-                              1         ; Serial 
-                         ​604800 ​        ; Refresh 
-                          86400         ; Retry 
-                        2419200 ​        ; Expire 
-                         ​604800 )       ; Negative Cache TTL 
-; 
-@       ​IN ​     NS      debian-serveur. 
-14      IN      PTR     ​debian-serveur.mondomaine.hyp. 
-22      IN      PTR     ​debian-client1. 
-</​code>​ 
- 
-On recharge bind : 
-<code root>/​etc/​init.d/​bind9 restart</​code>​ 
- 
-=====Configurer les clients du réseau===== 
-Sur chacun d'eux, il faut configurer les fichiers ci-dessous. 
-===Éditer le fichier /​etc/​host.conf=== 
-Afin que le serveur bind du réseau local soit interrogé par le client. 
- 
-<code root>vim /​etc/​host.conf</​code>​ 
-<​code>​ 
-order hosts,​bind ​ 
-multi on  
-nospoof on</​code>​ 
- 
-> **''​order''​** ​ : indique l'​ordre des requêtes : ici, d'​abord le fichier hosts, puis, en cas d'​échec,​ le serveur de noms qui sera le serveur Bind quand le fichier /​etc/​resolv.conf aura été modifier pour ce faire. 
-> **''​multi''​** ​ mis à **''​on''​** : plusieurs adresses IP peuvent être associées à un même nom.  
-> **''​nospoof''​** :  oblige, par sécurité, à vérifier la concordance entre adresse IP et nom lors de la résolution d'​adresses inverse. 
- 
- 
-<note tip>>​Le client va lire le fichier **hosts.conf** et rechercher l'​adresse correspondant au nom demandé d'​abord dans le fichier hosts local ; si la requête échoue, il va s'​adresser à Bind, le serveur DNS du réseau local, qui va lui-même demander à des forwarders s'il ne sait pas répondre. Pour qu'il trouve l'​adresse de ce serveur DNS, il consulte le fichier **/​etc/​resolv.conf** qu'il est donc nécessaire de modifier.</​note>​ 
- 
-===Editer le fichier /​etc/​resolv.conf=== 
-Deux solutions : 
- 
-  * Solution 1 : Installer un script client pour **/​etc/​resolv.conf** 
-  
-Ce qui permet là aussi de ne plus être embêté par [[atelier:​chantier:​dns-bind9-sur-wheezy?&#​declarer-un-nom-de-domaine-dans-etc-resolvconf|networkmanager]],​ mais cette fois il va permettre de renseigner le système client DNS par l'​adresse IP du serveur local bind.\\ ​ 
- 
-<code root>cd /​etc/​NetworkManager/</​code>​ 
- 
-<code root>vim /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ 
- 
-<​code>#​!/​bin/​sh 
-echo "​domain mondomaine.hyp"​ > /​etc/​resolv.conf 
-echo "​search mondomaine.hyp"​ >> /​etc/​resolv.conf 
-echo "​nameserver 192.168.0.14"​ >> /​etc/​resolv.conf</​code>​ 
- 
-  * Ondonne les droits d'​exécution : 
-<code root>​chmod 755 /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ 
- 
-  * On exécute le script: 
-<code root>​bash /​etc/​NetworkManager/​dispatcher.d/​99-dns</​code>​ 
- 
- 
-<code user>​less /​etc/​resolv.conf</​code>​ 
-<​code>​ 
-domain mondomaine.hyp 
-search mondomaine.hyp ​ 
-nameserver 192.168.0.14 
-</​code>​ 
- 
-On fait cela sur tous les systèmes clients du réseau local. ​ 
- 
-  * Solution 2 : **Configurer Network Manager** 
- 
-En faisant :\\  
--> Système -> Préférences -> Connexions réseau \\ 
-Puis il faut modifier toutes les connexions que vous avez dans tous les onglets (Filaire, Sans fil, etc…), en faisant, pour chacune d’entre-elles : 
- 
-  - Cliquez sur la connexion à modifier ; 
-  - Bouton "​Modifier"​ ; 
-  - Onglet "​Paramètres IPv4" (et aussi IPv6 si vous l’utilisez) ; 
-  - Méthode : Adresses automatiques uniquement (DHCP) ; 
-  - Serveurs DNS : //IP du serveur DNS local// ((Par exemple ici 192.168.0.14)) 
- 
-Puis appliquez les modifications. ​ 
- 
-> On peut alors éditer le fichier **/​etc/​resolv.conf** afin qu'il ressemble à ceci : 
- 
-<​code>​domain mondomaine.hyp 
-search mondomaine.hyp 
-nameserver 192.168.0.14 
-</​code>​ 
- 
-  * Puis recharger la configuration réseau : 
- 
-<code root>/​etc/​init.d/​networking start</​code>​ 
- 
- 
-=====Vérifier les relations DNS/clients ===== 
-====Vérifier que le serveur DNS se connaisse lui-même==== 
-Pour avoir le nom complet sur système avec Bind : 
-<code root>​hostname</​code>​ 
-<​code>​ 
-debian-serveur</​code>​ 
-===Avec nslookup === 
-  * Demander l'​adresse associée à un nom d'​hôte : 
- 
-<code root>​nslookup</​code>​ 
-<​code>>​ debian-serveur 
-Server:​ 127.0.0.1 
-Address:​ 127.0.0.1#​53 
- 
-Name:​ debian-serveur.mondomaine.hyp 
-Address: 192.168.0.14 
->​debian-serveur.mondomaine.hyp 
-Server:​ 127.0.0.1 
-Address:​ 127.0.0.1#​53 
- 
-Name:​ debian-serveur.mondomaine.hyp 
-Address: 192.168.0.14 
-> exit</​code>​ 
- 
-  * Idem pour la zone inverse, vérifier qu'IP correspond à un hôte: 
-<code root>​nslookup</​code>​ 
-<​code>>​ 192.168.0.14 
-Server:​ 127.0.0.1 
-Address:​ 127.0.0.1#​53 
- 
-14.0.168.192.in-addr.arpa name = debian-serveur.mondomaine.hyp. 
-> exit</​code>​ 
- 
-Il répond aux deux, donc tout va bien ! 
- 
-  * Avec dig : 
-<code root>dig debian-serveur</​code>​ 
- 
-<code root>dig mondomaine.hyp</​code>​ 
- 
-<code root>dig -x @192.168.0.14</​code>​ 
- 
-====Vérifier que le serveur DNS connaisse les clients==== 
-<code root>​nslookup</​code>​ 
- 
-<​code>​ 
-> debian-client1 
-Server:​ 127.0.0.1 
-Address:​ 127.0.0.1#​53 
- 
-Name:​ debian-client1.mondomaine.hyp 
-Address: 192.168.0.22 
-> 192.168.0.23 
-Server:​ 127.0.0.1 
-Address:​ 127.0.0.1#​53 
- 
-23.0.168.192.in-addr.arpa name = debian-hp.0.168.192.in-addr.arpa. 
-> exit</​code>​ 
- 
->Il connaît bien les deux clients, soit à partir d'un nom d'​hôte,​ soit à partir d'une adresse IP. 
- 
-====Vérifier que les clients interrogent le DNS local==== 
-===Avec la commande host === 
-<code user>​host -a debian-serveur</​code>​ 
-<​code>​ 
-Trying "​debian-serveur.mondomaine.hyp"​ 
-;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 10787 
-;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 
- 
-;; QUESTION SECTION: 
-;​debian-serveur.mondomaine.hyp. IN ANY 
- 
-;; ANSWER SECTION: 
-debian-serveur.mondomaine.hyp. 604800 IN A 192.168.0.14 
- 
-;; AUTHORITY SECTION: 
-mondomaine.hyp. 604800 IN NS debian-serveur.mondomaine.hyp. 
- 
-Received 77 bytes from 192.168.0.14#​53 in 0 ms</​code>​ 
- 
-===Avec la commande dig === 
- 
-<code user>dig mondomaine.hyp</​code>​ 
-<​code>​ 
- 
-; <<>>​ DiG 9.8.4-rpz2+rl005.12-P1 <<>>​ mondomaine.hyp 
-;; global options: +cmd 
-;; Got answer: 
-;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 12579 
-;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 
- 
-;; QUESTION SECTION: 
-;​mondomaine.hyp. IN A 
- 
-;; AUTHORITY SECTION: 
-mondomaine.hyp. 604800 IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. 2 604800 86400 2419200 604800 
- 
-;; Query time: 0 msec 
-;; SERVER: 192.168.0.14#​53(192.168.0.14) 
-;; WHEN: Sun Sep 14 09:00:08 2014 
-;; MSG SIZE  rcvd: 88</​code>​ 
- 
- 
-  * Avec la réserve : 
-<code user>dig -x 192.168.0.14</​code>​ 
-<​code>​ 
-; <<>>​ DiG 9.8.4-rpz2+rl005.12-P1 <<>>​ -x 192.168.0.14 
-;; global options: +cmd 
-;; Got answer: 
-;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 47078 
-;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 
- 
-;; QUESTION SECTION: 
-;​14.0.168.192.in-addr.arpa. IN PTR 
- 
-;; ANSWER SECTION: 
-14.0.168.192.in-addr.arpa. 604800 IN PTR debian-serveur.mondomaine.hyp. 
- 
-;; AUTHORITY SECTION: 
-0.168.192.in-addr.arpa. 604800 IN NS debian-serveur. 
- 
-;; Query time: 0 msec 
-;; SERVER: 192.168.0.14#​53(192.168.0.14) 
-;; WHEN: Sun Sep 14 09:03:29 2014 
-;; MSG SIZE  rcvd: 114</​code>​ 
- 
-Et voilà 8-) 
- 
-=====Générer une clé d'​authentification avec l'​utilitaire rndc===== 
- 
-Cet utilitaire permet d'​administrer notre serveur. Après l'​installation de Bind, la première chose à faire est de configurer rndc, ce qui consiste à configurer une clé d'​authentification relative à la configuration de son réseau local.\\ ​ 
- 
- BIND contient un utilitaire appelé rndc qui permet d'​utiliser des lignes de commande pour administrer le démon named à partir de l'​hôte local ou d'un hôte distant. 
- 
-Afin d'​empêcher l'​accès non-autorisé au démon named, BIND utilise une méthode d'​authentification à clé secrète partagée pour accorder des privilèges aux hôtes. Ainsi, une clé identique doit être présente aussi bien dans /​etc/​named.conf que dans le fichier de configuration de rndc, à savoir /​etc/​rndc.conf. 
- 
-<​note>​ 
-__Remarques sur la configuration de rndc.__\\ ​ 
- 
-Pour utiliser rmdc à distance mettre sur la machine qui génère rndc les info données en sortie par la commande rndc-confgen à mettre dans **rndc.conf** et sur le serveur distant les infos à mettre dans **named.conf**. 
- 
-</​note>​ 
- 
-  * Dans /etc/bind/ on voit le fichier rndc.key : 
- 
-<code root>ls /​etc/​bind/</​code>​ 
-<​code>​ 
-bind.keys ​ db.empty ​   named.conf.default-zones ​ zones.rfc1918 
-db.0    ​db.local ​   named.conf.local 
-db.127  ​  ​db.root ​    ​named.conf.options 
-db.255  ​  ​named.conf ​ rndc.key 
-</​code>​ 
- 
-<note warning> 
-**rndc.key ne s'​édite pas !** 
-</​note>​ 
- 
-  * Générer une clé : 
- 
-<code root>​rndc-confgen >/​etc/​bind/​rndc.key</​code>​ 
- 
-  * Indiquer le fichier rndc.key à la fin de /​etc/​bind/​named.conf : 
-<code root>​echo '​include "/​etc/​bind/​rndc.key";'​ >> /​etc/​bind/​named.conf</​code>​ 
- 
-  * Éditer /​etc/​bind/​rndc.key pour commenter toute la fin à partir de ''​options {''​ : 
-<code root>vim /​etc/​bind/​rndc.key</​code>​ 
-<​code>#​ Start of rndc.conf 
-key "​rndc-key"​ { 
-        algorithm hmac-md5; 
-        secret "​xxxxxxxxxxxxxxxxx";​ 
-}; 
- 
-#options { 
-#       ​default-key "​rndc-key";​ 
-#       ​default-server 127.0.0.1; 
-#       ​default-port 953; 
-#}; 
-# End of rndc.conf 
- 
-# Use with the following in named.conf, adjusting the allow list as needed: 
-# key "​rndc-key"​ { 
-#       ​algorithm hmac-md5; 
-#       ​secret "​xxxxxxxxxxxxxx";​ 
-# }; 
-# 
-# controls { 
-#       inet 127.0.0.1 port 953 
-#               allow { 127.0.0.1; } keys { "​rndc-key";​ }; 
-# }; 
-# End of named.conf 
-</​code>​ 
- 
-===Configurer les zones qui utilise la clé === 
- 
-  * Éditer /​etc/​bind/​named/​conf.local : 
- 
-<code root>vim /​etc/​bind/​named.conf.local</​code>​ 
-<​code>//​ 
-// Do any local configuration here 
-// 
- 
-// Consider adding the 1918 zones here, if they are not used in your 
-// organization 
-//include "/​etc/​bind/​zones.rfc1918";​ 
-zone "​mondomaine.hyp"​ { 
-        type master; 
-        file "/​etc/​bind/​db.mondomaine.hyp";​ 
-        allow-update {key rndc-key;}; 
-}; 
-zone "​0.168.192.in-addr.arpa"​ { 
-        type master; 
-        file "/​etc/​bind/​db.192";​ 
-        allow-update {key rndc-key;}; 
-}; 
-</​code>​ 
- 
-===Relancer bind9=== 
- 
-<code root>/​etc/​init.d/​bind9 restart</​code>​ 
- 
-<​code>​[....] Stopping domain name service...: bind9waiting for pid 5441 to die 
-. ok  
-[ ok ] Starting domain name service...: bind9.</​code>​ 
- 
- 
-=====Références==== 
- 
-Sur la commande dig : [[http://​www.system-linux.eu/​index.php?​post/​2009/​04/​23/​La-commande-dig]] 
- 
-Pour la configuration des clients Windows [[http://​valaurea.free.fr/​documents/​sig11_bind9_1.html]] 
- 
-Pour installer et configurer Bind sur une distribution linux à base de RPM [[http://​lea-linux.org/​documentations/​Reseau-name-dns1]] 
- 
-===== Introduction au DNS===== 
- 
-====Quelques bases sur les servers DNS ==== 
- 
-DNS permet une correspondance entre nom d'​hôte (FQDN) et adresse IP.\\  
-Principe de hiérarchie :\\  
-  *serveur racine (serveur DNS de plus haut niveau (.) 
- 
-  *serveur TLD : Top Level Domaine (com org net fr ...) 
- 
-  *Domaine (toto.fr) ​ 
- 
-  *hôte ​   (www)\\ Par exemple <​nowiki>​www.toto.com.</​nowiki>​\\ il peut y avoir des sous-domaines comme par exemple, <​nowiki>​www.domaine1.toto.com.</​nowiki>​.\\ 
- 
-Le point après ''​com''​ est sous-entendu pour l'​utilisation du côté client, mais pas dans la configuration du DNS. 
- 
-Tout cela compose le **FQDN** (fool domaine name). ​ 
- 
-  * Exemple : 
-Un client souhaite savoir à quel adresse IP correspond **<​nowiki>​www.toto.com</​nowiki>​**.\\ ​ 
- 
-Dans l'ordi de ce client on a configuré un ou plusieurs DNS dans le fichier **/​etc/​resolve.conf** dans lequel est indiqué l'​adresse IP de serveur local Bind comme server de référence.\\ ​ 
- 
-Cette ordi a donc l'​adresse IP d'un DNS est lui pose la question "donne moi l'IP de **<​nowiki>​www.toto.com</​nowiki>​**.\\ ​ 
- 
-Si le server sait répondre il lui donne l'IP, s'il ne sait pas il va interroger les serveurs DNS au dessus de lui, TLD, Racine...\\ Quand il a l'​adresse,​ il répond au client qui peut joindre l'ordi de toto.com\\ 
- 
-===Vocabulaire === 
-  *Zone : Ensemble des directives correspondantes à un Domaine. À chaque zone correspond un fichier. (Une zone n'est pas forcément un domaine).\\ ​ 
- 
-  * DNS récursif : DNS capable d'​interroger d'​autres servers DNS, lorsqu'​il ne parvient à trouver un serveur faisant autorité sur le nom de domaine recherché.\\ ​ 
- 
-  * Serveur "​primaire"​ ou "​maître"​ (d'une zone), en anglais serveur "​authoritive"​) : serveur qui a la configuration de sa zone grâce à un fichier. C'est le serveur principal d'une domaine.\\ ​ 
- 
-  * Serveur secondaire : serveur qui des informations sur une zone à partir d'un serveur primaire et non grâce à sa configuration.\\ ​ 
- 
-  * Faire autorité sur un domaine : C'est le fait pour un serveur DNS de répondre directement aux requêtes un domaine, sans passer par un autre serveur ou un cache. Le cache c'est le fichier dans lequel le serveur DNS récursif conserve l'​information qu'il a obtenu d'un autre serveur à la suite d'une requête qui lui a été faite par un client.\\ ​ 
- 
-Donc les serveur qui font autorité sur un domaine sont, soit des serveurs primaires, soit des serveurs secondaires s'ils ont une copie de ces informations.\\ ​ 
- 
-====Composants de bind 9 ==== 
-bind : Berkeley Internet Name Daemon 
- 
-Version 9 : stable, sécurisée est celle dont il s'agit . 
- 
-(Version 10 depuis 2013 intègre le DHCP.) 
- 
-===/​usr/​sbin/​named=== ​ 
-Le programme qui lance le serveur. 
- 
-===/​etc/​init.d/​bind9=== 
-Permet de gérer bind.\\ ​ 
- 
-  *En **root** : 
-    * **''/​etc/​init.d/​bind9 stop''​** : pour arrếter 
-    * **''/​etc/​init.d/​bind9 start''​** : pour rédémarrer 
-    * **''/​etc/​init.d/​bind9 restart''​** : pour redémarrer (si il était démarrer, avec restart, il est éteint, puis redémarrer avec un nouveau processus 
-    * **''/​etc/​init.d/​bind9 reload''​** : pour recharger la configuration (ne stoppe pas avant de recharger 
- 
-On peut aussi utiliser **''​service''​** avec chacune des commandes décrites pour init.d par exemple : 
-<code root>​service bind9 restart</​code>​ 
- 
-===L'​utilitaire rndc=== ​ 
-/​usr/​sbin/​rndc est le fichier binaire de l'​utilitaire de contrôle rndc.\\ ​ 
-Il permet de gérer Bind9 
- 
-<​code>​ 
-rndc [b source-adress] [-c config-file] [k key-file] [-s serveur] 
- [-p port] [-V] [-y key-id] {commande} 
-</​code>​ 
- 
-  * Après l'​installation de bind9, on peut utiliser les commandes rndc suivantes : 
-    * **''​reload''​** : pour recharger 
-    * **''​stop''​** : arrêter le serveur 
-    * **''​flush''​** : vider le cache 
-    * **''​status''​** : afficher l'​état du serveur 
-    * **aucune** : liste des commandes utilisables 
- 
- 
-=== /​etc/​bind/​named.conf=== ​ 
-C'est le fichier de configuration centrale de bind.\\ ​ 
-Il peut se trouver dans différents dossiers (sécurité,​ chroot) par exemple dans /​etc/​named.conf ou /etc/\\ 
- 
-On peut externaliser certaines points de configuration de ce fichier central dans des fichiers;\\ **/​etc/​bind/​named.conf.local**\\ **/​etc/​bind/​named.conf.options** 
- 
-===/​etc/​init.d/​bind=== 
-Ils 'agit d'un init script qui permet de redémarrer bind : 
- 
-<code root>/​etc/​init.d/​bind9 restart</​code>​ 
- 
- 
-=== /var/named/ === 
-Il s'agit d'un répertoire de travail. 
- 
-====Syntaxe des fichiers de configuration ​ ==== 
-(named.conf,​ named.conf.local,​ named.conf.options,​ etc.) 
- 
-  * Toujours un point virgule pour finir une instruction. 
- 
-  * __Instruction entre accolades :__ 
-On donne une "​intruction"​ (statements) 
- 
-<​code>​ 
-mot-clé { 
-             ... 
-}; 
-</​code>​ 
- 
-  * __Instruction simples entre guillemets doubles :__ 
-Par exemple dans /​etc/​bind/​named.conf : 
-<​code>​ 
-include "/​etc/​bind/​name.conf.options";​ 
-include "/​etc/​bind/​name.conf.local";​ 
-include "/​etc/​bind/​name.conf.default-zones";​ 
-include "/​etc/​bind/​name.conf.example-zones";​ 
-</​code>​ 
- 
-===Options de configuration du DNS=== 
- 
-//Souvent dans le fichier "​named.conf.options//​.\\ 
- 
-Dans l'​instruction "​option"​ du fichier named.conf.options,​ on peut donner les instructions suivantes: 
- 
-^Options ^significations ^exemples ^ 
-|directory | répertoire de travail |directory "/​var/​named";​ | 
-|forwarders | serveurs de référence (aucun par défaut) | forwarders {\\ adresses.IP.de.serveurs.de.référence;​\\ }\\ (sinon il interroge récursivement les autres serveurs DNS) | 
-|forward | comportement avec les forwarders (first : en prorité\\ only : uniquement) | forward only ;| 
-|version | version du serveur à afficher quand le serveur est interrogé| version none ; | 
- 
- 
-===L'​instruction zones=== 
- 
-Permet de définir les paramètres généraux d'une zone.\\ ​ 
-<​code>​ 
-zone "​nom-de-notre-zone"​ { 
-    type master; 
-    file "/​etc/​bind/​db.xxx";​ 
-} 
-</​code>​ 
- 
-  *Nom de la zone dans l'​entête ; 
-  *type (**master** pour primaire ou **slave** pour secondaire ou **int** pour Le programme qui lance le server : /​usr/​sbin/​nracine) ; 
-  *fichier chemin du fichier de configuration de zone 
-  *éventuellement des options 
- 
- 
-=====Pré-requis à la l'​installation d'un DNS Maître du réseau local===== 
 Il va s'agir de configurer un serveur DNS qui servira de serveur cache pour le système sur lequel Bind va être installé, et qui sera de serveur DNS maître pour les systèmes clients du réseau local. Il va s'agir de configurer un serveur DNS qui servira de serveur cache pour le système sur lequel Bind va être installé, et qui sera de serveur DNS maître pour les systèmes clients du réseau local.
- +  ​* Soit un server sous Debian ​Jessie ​nommé : "​debian-serveur"​
-  ​* Soit un server sous Debian ​Wheezy ​nommé : "​debian-serveur"​+
   * Adresse IP pour "eth0 " du serveur "​debian-serveur"​ : 192.168.0.14   * Adresse IP pour "eth0 " du serveur "​debian-serveur"​ : 192.168.0.14
-  * Soit un nom de domaine : "​mondomaine.hyp"​+  * Soit un nom de domaine : "​mondomaine.hyp" ​ 
 +  * (pour une utilisation locale , et pas le propriétaire d un domaine , 
 +  *  vérifier que le suffixe ne fait pas partie de la liste TLD ,  
 +  * le préfixe "​.local"​ est a proscrire .)
   * Soit un ordi client sur le réseau local : "​debian-client"​ avec l'IP 192.168.0.22   * Soit un ordi client sur le réseau local : "​debian-client"​ avec l'IP 192.168.0.22
   * Soit un autre ordi sur le réseau local : "​debian-hp"​ avec l'IP 192.168.0.23   * Soit un autre ordi sur le réseau local : "​debian-hp"​ avec l'IP 192.168.0.23
-Les IP des ordinateurs clients et du système sur lequel ​il va être installé Bind sont fixées par le serveur DHCP par exemple celui du modem fourni par son FAI((Se rendre sur le site de son FAI, et associer l'​adresse mac du serveur à l'IP dans les BAUX/DHCP.)), ou encore par un serveur DHCP installé entre le routeur et les clients du réseau local.+ 
 +Les IP des ordinateurs clients et du système((sur lequel va être installé Bind)) sont fixées par le serveur DHCP par exemple celui du modem fourni par son FAI((Se rendre sur le site de son FAI, et associer l'​adresse mac du serveur à l'IP dans les BAUX/​DHCP)),​ ou encore par un serveur DHCP installé entre le routeur et les clients du réseau local.
  
 ===Connaître le nom du système sur lequel on installera Bind === ===Connaître le nom du système sur lequel on installera Bind ===
Ligne 984: Ligne 219:
 <​code>​debian-serveur</​code>​ <​code>​debian-serveur</​code>​
  
-  * Si on veut le changer pour lui donner un nom plus significatif de sa fonction de server : +Si on veut le changer pour lui donner un nom plus significatif de sa fonction de server :
 <code root>vim /​etc/​hostname</​code>​ <code root>vim /​etc/​hostname</​code>​
 +Puis ré-initialiser :
 +<code root>/​etc/​init.d/​hostname.sh start</​code>​
  
-  * Puis ré-initialiser :+=== Compléter /​etc/​host.conf ===
  
-<code root>/​etc/​init.d/​hostname.sh start</​code>​ 
- 
-===Compléter /​etc/​host.conf=== 
 Il s'agit là de la partie cliente du système sur lequel va être installé Bind. Un même système peut être à la fois client et serveur, c'​est-à-dire,​ serveur DNS "pour lui-même"​. ​ Il s'agit là de la partie cliente du système sur lequel va être installé Bind. Un même système peut être à la fois client et serveur, c'​est-à-dire,​ serveur DNS "pour lui-même"​. ​
  
Ligne 1000: Ligne 233:
 </​code>​ </​code>​
  
-===Compléter /​etc/​hosts===+=== Compléter /etc/hosts === 
 Il s'agit là encore de l'​aspect client du système. On renseigne tous les clients du réseau local.\\ ​ Il s'agit là encore de l'​aspect client du système. On renseigne tous les clients du réseau local.\\ ​
 On renseigne aussi le nom de domaine de ce système en tant que client. On renseigne aussi le nom de domaine de ce système en tant que client.
- 
 <code root>vim /​etc/​hosts</​code>​ <code root>vim /​etc/​hosts</​code>​
- 
 <​code>​ <​code>​
 127.0.0.1 ​      ​localhost.mondomaine.hyp ​     localhost 127.0.0.1 ​      ​localhost.mondomaine.hyp ​     localhost
Ligne 1011: Ligne 243:
 192.168.0.22 ​   debian-client1 192.168.0.22 ​   debian-client1
 192.168.0.23 ​   debian-hp 192.168.0.23 ​   debian-hp
- 
  
  
Ligne 1018: Ligne 249:
 ff02::1 ip6-allnodes ff02::1 ip6-allnodes
 ff02::2 ip6-allrouters ff02::2 ip6-allrouters
- 
 </​code>​ </​code>​
  
-===Déclarer un nom de domaine dans /​etc/​resolv.conf===+=== Déclarer un nom de domaine dans /​etc/​resolv.conf ===
  
-If faut déclarer un nom de domaine dans /​etc/​resolv.conf.\\  +  - Il faut déclarer un nom de domaine dans /​etc/​resolv.conf ​et 
-Et retirer les DNS extérieurs,​ afin que Bind soit consulté.\\ +  ​- ​Et retirer les DNS extérieurs,​ afin que Bind soit consulté. ​
  
-Sur le système voué à servir de serveur DNS, s'il a été installé un environnement de bureau, lors du redémarrage du système, la nouvelle configuration du fichier **/​etc/​resolv.conf** sera effacée par Network Manager.\\ +<note important>​Sur le système voué à servir de serveur DNS, s'il a été installé un environnement de bureau, lors du redémarrage du système, la nouvelle configuration du fichier **/​etc/​resolv.conf** sera effacée par Network Manager.</​note>​
  
 Deux solutions pour résoudre ce problème : soit on configure Network Manager, soit on se crée un script. Deux solutions pour résoudre ce problème : soit on configure Network Manager, soit on se crée un script.
Ligne 1042: Ligne 272:
   - Serveurs DNS : 127.0.0.1 ​   - Serveurs DNS : 127.0.0.1 ​
  
-Puis appliquez les modifications. Si la connexion est partagée entre tous les utilisateurs,​ un mot de passe administrateur vous sera demandé. +Puis appliquez les modifications. Si la connexion est partagée entre tous les utilisateurs,​ un [[doc:​systeme:​superutilisateur|mot de passe administrateur]] vous sera demandé.
- +
-> On peut alors éditer le fichier **/​etc/​resolv.conf** afin qu'il ressemble à ceci :+
  
 +On peut alors éditer le fichier **/​etc/​resolv.conf** afin qu'il ressemble à ceci :
 <​code>​domain mondomaine.hyp <​code>​domain mondomaine.hyp
 search mondomaine.hyp search mondomaine.hyp
Ligne 1081: Ligne 310:
 #nameserver 212.27.40.241 #nameserver 212.27.40.241
 </​code>​ </​code>​
- +Redémarrer le réseau :
-  * Redémarrer le réseau : +
 <code root>/​etc/​init.d/​networking start</​code>​ <code root>/​etc/​init.d/​networking start</​code>​
 +Au sujet de Network Manager:\\ [[https://​wiki.debian.org/​fr/​NetworkConfiguration#​Configuration_de_DNS_pour_network-manager]]
 +<note important>​**Attention** la suppression de networkmanager déstabilise le système :<code root>​apt-get remove --purge network-manager-gnome netwok-manager</​code></​note>​
  
 +===== Installer et configurer un serveur DNS =====
  
-<note tip> 
-  * Au sujet de Network Manager:\\ [[https://​wiki.debian.org/​fr/​NetworkConfiguration#​Configuration_de_DNS_pour_network-manager]] 
- 
-  * Attention la suppression de networkmanager déstabilise le système : 
- 
-<code root>​apt-get remove --purge network-manager-gnome netwok-manager</​code>​ 
- 
-</​note>​ 
- 
- 
-=====Installer et configurer un serveur DNS ===== 
- 
-  
 <​note>​Dans le cas où vous partagez votre connexion internet (modem cable, adsl, ou même simple modem) il est très utile d'​utiliser un serveur DNS cache. Par contre, pour que vos stations qui utilisent cette connexion partagée se servent de ce serveur cache DNS, n'​oubliez surtout pas de configurer toutes les stations pour qu'​elles utilisent comme serveur DNS votre serveur et pas un autre. Pour cela, donnez comme adresse de serveur DNS l'​adresse interne (côté LAN donc) de votre serveur. </​note>​ <​note>​Dans le cas où vous partagez votre connexion internet (modem cable, adsl, ou même simple modem) il est très utile d'​utiliser un serveur DNS cache. Par contre, pour que vos stations qui utilisent cette connexion partagée se servent de ce serveur cache DNS, n'​oubliez surtout pas de configurer toutes les stations pour qu'​elles utilisent comme serveur DNS votre serveur et pas un autre. Pour cela, donnez comme adresse de serveur DNS l'​adresse interne (côté LAN donc) de votre serveur. </​note>​
  
-===Installation du paquetage=== +==== Installation du paquetage ====
-<code root> +
-apt-get update +
-</​code>​+
  
-<code root> +<code root>apt-get update</​code
-apt-get install bind9 +<code root>apt-get install bind9</​code>​
-</​code>​+
  
-===Configuration de bind pour un serveur DNS maître local=== +==== Configuration de bind pour un serveur DNS maître local ====
-<note tip> +
-__Quelques commandes utiles lors de la configuration de bind9__ :+
  
-  * Si la configuration est difficile on peut chercher les erreurs avec les commandes suivantes :+Si la configuration est difficile on peut chercher les erreurs avec les commandes suivantes :
 <code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan</​code>​ <code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan</​code>​
 <code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan.inv</​code>​ <code root>​named-checkzone webadonf.lan /​etc/​bind/​db.webadonf.lan.inv</​code>​
 <code root>​named-checkconf /​etc/​bind/​named.conf</​code>​ <code root>​named-checkconf /​etc/​bind/​named.conf</​code>​
 <code root>​named-checkconf /​etc/​bind/​named.conf.options</​code>​ <code root>​named-checkconf /​etc/​bind/​named.conf.options</​code>​
- +Voir aussi les logs :
- +
-  *Voir aussi les logs :+
 <code root>​tail -30 /​var/​log/​syslog</​code>​ <code root>​tail -30 /​var/​log/​syslog</​code>​
  
-</​note>​ +Le dossier **/​etc/​bind/​** :
- +
-  *Le dossier **/​etc/​bind/​** :+
  
 <code root>cd /etc/bind/ && ls</​code>​ <code root>cd /etc/bind/ && ls</​code>​
- 
 <​code>​bind.keys ​ db.127 ​ db.empty ​ db.root named.conf.default-zones ​ named.conf.options ​ zones.rfc1918 <​code>​bind.keys ​ db.127 ​ db.empty ​ db.root named.conf.default-zones ​ named.conf.options ​ zones.rfc1918
 db.0    ​db.255 ​ db.local ​ named.conf ​ named.conf.local  ​  ​rndc.key db.0    ​db.255 ​ db.local ​ named.conf ​ named.conf.local  ​  ​rndc.key
 </​code>​ </​code>​
  
-  * Créer le fichier "​**/​etc/​bind/​db.mondomaine.hyp**" ​+Créer le fichier "​**/​etc/​bind/​db.mondomaine.hyp**" ​\\ 
- +Prendre le fichier /​etc/​bind/​db.local pour modèle ​:
-Prendre le fichier /​etc/​bind/​db.local pour modèle+
 <code root>cp /​etc/​bind/​db.local /​etc/​bind/​db.mondomaine.hyp</​code>​ <code root>cp /​etc/​bind/​db.local /​etc/​bind/​db.mondomaine.hyp</​code>​
  
 Éditer "/​etc/​bind/​db.mondomaine.hyp"​ : Éditer "/​etc/​bind/​db.mondomaine.hyp"​ :
- 
 <code root>vim /​etc/​bind/​db.mondomaine.hyp</​code>​ <code root>vim /​etc/​bind/​db.mondomaine.hyp</​code>​
 <​code>​ <​code>​
Ligne 1160: Ligne 363:
 </​code>​ </​code>​
  
-  * Créer le fichier de recherche inverse "​**db.mondomaine.hyp.inv**"​ : +Créer le fichier de recherche inverse "​**db.mondomaine.hyp.inv**"​ : \\ 
- +Prendre pour modèle /​etc/​bind/​db.127 ​:
-Prendre pour modèle /​etc/​bind/​db.127 +
 <code root>cp /​etc/​bind/​db.127 /​etc/​bind/​db.192</​code>​ <code root>cp /​etc/​bind/​db.127 /​etc/​bind/​db.192</​code>​
  
 Éditer "/​etc/​bind/​db.192"​ : Éditer "/​etc/​bind/​db.192"​ :
- 
 <code root>vim /​etc/​bind/​db.192</​code>​ <code root>vim /​etc/​bind/​db.192</​code>​
 <​code>​ <​code>​
Ligne 1185: Ligne 385:
 </​code>​ </​code>​
  
-  * Configurer le fichier "/​etc/​bind/​named.conf.local"​ :+Configurer le fichier "/​etc/​bind/​named.conf.local"​ :
 <code root>vim /​etc/​bind/​named.conf.local</​code>​ <code root>vim /​etc/​bind/​named.conf.local</​code>​
 <​code>​ <​code>​
Ligne 1606: Ligne 806:
  
 =====Références==== =====Références====
 +préfixe DNS wikipédia : [[https://​fr.wikipedia.org/​wiki/​Liste_des_domaines_Internet_de_premier_niveau]]
 +
 +préfixes DNS utilisé : [[https://​wiki.mozilla.org/​TLD_List]]
 +
 +Sur Wikipédia ​ : [[https://​fr.wikipedia.org/​wiki/​BIND]]
  
 Sur la commande dig : [[http://​www.system-linux.eu/​index.php?​post/​2009/​04/​23/​La-commande-dig]] Sur la commande dig : [[http://​www.system-linux.eu/​index.php?​post/​2009/​04/​23/​La-commande-dig]]
doc/reseau/serveur/bind9.1484503381.txt.gz · Dernière modification: 15/01/2017 19:03 par robert2a

Pied de page des forums

Propulsé par FluxBB