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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
atelier:chantier:dns-bind9-sur-wheezy [14/09/2014 09:34] Hypathie [Côté client] |
atelier:chantier:dns-bind9-sur-wheezy [20/06/2020 13:59] (Version actuelle) tuFek [Introduction au DNS] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
* Objet : Installer un server DNS maître en local | * Objet : Installer un server DNS maître en local | ||
* Niveau requis : {{tag> avisé}} | * Niveau requis : {{tag> avisé}} | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Suivi : {{tag>tester}} |
- | * Suivi : {{tag>tester à-placer}} - Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Création par [[user>Hypathie]] le 01/09/2014 |
- | * Création par [[user>Hypathie]] 01/09/2014 | + | * Testé par ... le ... |
- | * Testé par <...> le <...> | + | |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=97375#p97375 | 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 : [[https://debian-facile.org/viewtopic.php?pid=97375#p97375 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 31: | Ligne 30: | ||
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/resolve.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/resolv.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>**.\\ | 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>**.\\ | ||
Ligne 58: | Ligne 57: | ||
===/usr/sbin/named=== | ===/usr/sbin/named=== | ||
- | Le programme qui lance le server. | + | Le programme qui lance le serveur. |
- | === /usr/sbin/rndc=== | + | ===/etc/init.d/bind9=== |
- | rndc est un utilitaire de contrôle. | + | 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> | <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] |
[-p port] [-V] [-y key-id] {commande} | [-p port] [-V] [-y key-id] {commande} | ||
</code> | </code> | ||
- | -> commandes : | ||
- | **''reload''** : pour recharger\\ | + | * Après l'installation de bind9, on peut utiliser les commandes rndc suivantes : |
- | **''stop''** : arrêter le serveur\\ | + | * **''reload''** : pour recharger |
- | **''flush''** : vider le cache\\ | + | * **''stop''** : arrêter le serveur |
- | **''status''** : afficher l'état du serveur\\ | + | * **''flush''** : vider le cache |
- | **aucune** : liste des commandes utilisables | + | * **''status''** : afficher l'état du serveur |
+ | * **aucune** : liste des commandes utilisables | ||
Ligne 143: | Ligne 155: | ||
- | =====Configurer un server DNS Maître en local sous wheezy===== | + | =====Pré-requis à la l'installation d'un DNS Maître du réseau local===== |
- | Il s'agit d'un serveur qui ne fera autorité que sur le réseau local et sur aucune autre zone.\\ | + | 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'occuper d'aller chercher les infos sur des forwarders ou des serveurs racine ... et de les stoker dans son cache. | + | |
- | *Soit un server sous Debian Wheezy 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" |
- | *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 |
- | ====Pré-requis==== | + | * Soit un autre ordi sur le réseau local : "debian-hp" avec l'IP 192.168.0.23 |
- | ===IP statique=== | + | 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. |
- | * Configurer une IP statique pour le serveur sur lequel on installe bind9. | + | |
- | Se rendre sur le site de son FAI, et associer l'adresse mac du serveur à l'IP dans les BAUX/DHCP. | + | |
- | ===Compléter /etc/hostname === | + | ===Connaître le nom du système sur lequel on installera Bind === |
- | <code root>vim /etc/hostname </code> | + | <code user>hostname </code> |
<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 : | ||
+ | |||
+ | <code root>vim /etc/hostname</code> | ||
+ | |||
+ | * Puis ré-initialiser : | ||
<code root>/etc/init.d/hostname.sh start</code> | <code root>/etc/init.d/hostname.sh start</code> | ||
===Compléter /etc/host.conf=== | ===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 root>vim /etc/host.conf </code> | ||
Ligne 171: | Ligne 187: | ||
===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.\\ | ||
+ | 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.localdomain localhost | + | 127.0.0.1 localhost.mondomaine.hyp localhost |
+ | 192.168.0.14 debian-serveur.mondomaine.hyp debian-serveur | ||
+ | 192.168.0.22 debian-client1 | ||
+ | 192.168.0.23 debian-hp | ||
- | 192.168.0.14 serveur-debian.mondomaine.hyp serveur-debian | ||
- | 192.168.0.22 debian.mondomaine.hyp debian | ||
- | |||
- | 192.168.0.1 gateway.modomaine.hyp gateway | ||
Ligne 187: | Ligne 204: | ||
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.\\ | If faut déclarer un nom de domaine dans /etc/resolv.conf.\\ | ||
- | Au passage on peut indiquer d'autre DNS extérieurs que ceux du FAI.\\ | + | Et retirer les DNS extérieurs, afin que Bind soit consulté.\\ |
- | Il faut pour que la nouvelle configuration du fichier /etc/resolv.conf ne soit par effacer lors d'un redémarrage, par networmanager créer un script.\\ | + | |
- | <note tip> | + | |
- | * Voir : [[https://wiki.debian.org/fr/NetworkConfiguration#Configuration_de_DNS_pour_network-manager]] | + | |
- | * Attention la suppression de networkmanager déstabilise le système : | + | 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.\\ |
- | <code root>apt-get remove --purge network-manager-gnome netwok-manager</code> | + | 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> | ||
- | </note> | ||
- | On peut soit éditer le fichier **/etc/resolv.conf**, mais comme le script suivant est nécessaire pour ne pas être embêté par networmanager, on va modifier le fichier avec le script. | + | * **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 : | * Création du script pour networkmanager : | ||
<code root>cd /etc/NetworkManager/</code> | <code root>cd /etc/NetworkManager/</code> | ||
- | |||
- | <code root>touch /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
<code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | <code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
Ligne 213: | Ligne 247: | ||
echo "domain mondomaine.hyp" > /etc/resolv.conf | echo "domain mondomaine.hyp" > /etc/resolv.conf | ||
echo "search mondomaine.hyp" >> /etc/resolv.conf | echo "search mondomaine.hyp" >> /etc/resolv.conf | ||
- | echo "nameserver 127.0.0.1" >> /etc/resolv.conf | ||
echo "nameserver 192.168.0.14" >> /etc/resolv.conf | echo "nameserver 192.168.0.14" >> /etc/resolv.conf | ||
- | echo "nameserver 8.8.8.8" >> /etc/resolv.conf | + | echo "#nameserver 212.27.40.240" >> /etc/resolv.conf |
- | cho "nameserver 8.8.4.4" >> /etc/resolv.conf</code> | + | echo "#nameserver 212.27.40.241" >> /etc/resolv.conf |
- | >Adapter le contenu selon le choix de votre forwarder, ici 8.8.8.8 et 8.8.4.4 sont les DNS de Google. | + | </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> | <code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
Ligne 227: | Ligne 263: | ||
<code>domain mondomaine.hyp | <code>domain mondomaine.hyp | ||
search mondomaine.hyp | search mondomaine.hyp | ||
- | nameserver 127.0.0.1 | ||
nameserver 192.168.0.14 | nameserver 192.168.0.14 | ||
- | nameserver 8.8.8.8 | + | #nameserver 212.27.40.240 |
- | nameserver 8.8.4.4 | + | #nameserver 212.27.40.241 |
</code> | </code> | ||
- | |||
* Redémarrer le réseau : | * Redémarrer le réseau : | ||
Ligne 238: | Ligne 272: | ||
<code root>/etc/init.d/networking start</code> | <code root>/etc/init.d/networking start</code> | ||
- | ====Installer et configurer bind ==== | + | |
- | ===installation du paquetage=== | + | <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> | <code root> | ||
apt-get update | apt-get update | ||
Ligne 283: | Ligne 332: | ||
<code> | <code> | ||
; | ; | ||
- | ; BIND data file for local loopback interface | + | ; BIND data file for eth0 interface |
; | ; | ||
$TTL 604800 | $TTL 604800 | ||
Ligne 295: | Ligne 344: | ||
@ IN NS debian-serveur.mondomaine.hyp. | @ IN NS debian-serveur.mondomaine.hyp. | ||
debian-serveur IN A 192.168.0.14 | debian-serveur IN A 192.168.0.14 | ||
- | |||
</code> | </code> | ||
Ligne 321: | Ligne 369: | ||
@ IN NS debian-serveur. | @ IN NS debian-serveur. | ||
14 IN PTR debian-serveur.mondomaine.hyp. | 14 IN PTR debian-serveur.mondomaine.hyp. | ||
- | |||
</code> | </code> | ||
Ligne 337: | Ligne 384: | ||
type master; | type master; | ||
file "/etc/bind/db.mondomaine.hyp"; | file "/etc/bind/db.mondomaine.hyp"; | ||
+ | allow-query { any; }; | ||
}; | }; | ||
zone "0.168.192.in-addr.arpa" { | zone "0.168.192.in-addr.arpa" { | ||
Ligne 342: | Ligne 390: | ||
file "/etc/bind/db.192"; | file "/etc/bind/db.192"; | ||
}; | }; | ||
- | |||
</code> | </code> | ||
Ligne 361: | Ligne 408: | ||
forwarders { | forwarders { | ||
- | 192.168.0.1; | + | 192.168.0.14; |
8.8.8.8; | 8.8.8.8; | ||
8.8.4.4; | 8.8.4.4; | ||
Ligne 400: | Ligne 447: | ||
</code> | </code> | ||
- | ==== Vérifier le DNS==== | ||
- | Pour avoir le nom complet : | ||
- | <code root>hostname</code> | ||
- | <code> | ||
- | debian-serveur</code> | ||
- | * Avec nslookup : | + | ====Configurer le serveur Bind au sujet des clients==== |
- | <code root>nslookup</code> | + | |
- | <code>> 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 : | + | |
- | <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> | + | |
- | ====Interroger le server DNS local au sujet d'un client du réseau ==== | + | ===Éditer le fichier /etc/bind/db.mondomaine.hyp=== |
- | ===Configuration === | + | |
<code root>vim /etc/bind/db.mondomaine.hyp</code> | <code root>vim /etc/bind/db.mondomaine.hyp</code> | ||
<code>; | <code>; | ||
Ligne 453: | Ligne 468: | ||
</code> | </code> | ||
- | Et pour la réserve inverse : | + | ===Éditer le fichier /etc/bind/db.192=== |
<code root>vim /etc/bind/db.192</code> | <code root>vim /etc/bind/db.192</code> | ||
Ligne 475: | Ligne 490: | ||
<code root>/etc/init.d/bind9 restart</code> | <code root>/etc/init.d/bind9 restart</code> | ||
- | ===Vérification=== | + | =====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 root>nslookup</code> | ||
Ligne 485: | Ligne 618: | ||
Name: debian-client1.mondomaine.hyp | Name: debian-client1.mondomaine.hyp | ||
Address: 192.168.0.22 | Address: 192.168.0.22 | ||
- | > 192.168.0.22 | + | > 192.168.0.23 |
Server: 127.0.0.1 | Server: 127.0.0.1 | ||
Address: 127.0.0.1#53 | Address: 127.0.0.1#53 | ||
- | 22.0.168.192.in-addr.arpa name = debian-client1. | + | 23.0.168.192.in-addr.arpa name = debian-hp.0.168.192.in-addr.arpa. |
> exit</code> | > 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===== | =====Générer une clé d'authentification avec l'utilitaire rndc===== | ||
Ligne 588: | Ligne 790: | ||
[ ok ] Starting domain name service...: bind9.</code> | [ ok ] Starting domain name service...: bind9.</code> | ||
- | =====Côté client ===== | ||
- | * Éditer /etc/hosts.conf : | + | =====Références==== |
- | Afin que le serveur bind du réseau local soit interrogé par le client. | + | |
- | <code root>vim /etc/host.conf</code> | + | Sur la commande dig : [[http://www.system-linux.eu/index.php?post/2009/04/23/La-commande-dig]] |
- | <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 | + | |
- | > **''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. | + | |
- | + | ||
- | * Installer un script client pour **/etc/resolv.conf** : | + | |
- | Là aussi pour ne plus être embêté par [[atelier:chantier:dns-bind9-sur-wheezy?&#declarer-un-nom-de-domaine-dans-etc-resolvconf|networkmanager]], on peut éditer un script avec l'adresse IP du serveur local bind mais sans forwarder.\\ | + | |
- | + | ||
- | <code root>cd /etc/NetworkManager/</code> | + | |
- | + | ||
- | <code root>touch /etc/NetworkManager/dispatcher.d/99-dns</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> | + | |
- | + | ||
- | <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> | + | |
- | >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. Pour qu'il trouve l'adresse de ce serveur DNS, un deuxième fichier est nécessaire, **/etc/resolv.conf**. | + | Pour la configuration des clients Windows [[http://valaurea.free.fr/documents/sig11_bind9_1.html]] |
- | + | ||
- | * Puis recharger la configuration réseau : | + | |
- | + | ||
- | <code root>/etc/init.d/networking start</code> | + | |
- | + | ||
- | * Vérifier que le client interroge le DNS local : | + | |
- | + | ||
- | <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> | + | |
- | + | ||
- | * Ou avec 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> | + | |
- | + | ||
- | + | ||
- | Sur la commande dig : [[http://www.system-linux.eu/index.php?post/2009/04/23/La-commande-dig]] | + | |
+ | Pour installer et configurer Bind sur une distribution linux à base de RPM [[http://lea-linux.org/documentations/Reseau-name-dns1]] | ||