User Tools

Site Tools


coursieps:20051014

Aujourd'hui: DNS et BIND9

FQDN: fully qualified domain name

DNS: Domain Name Service: IP ↔ nom

Resolution de nom

Locale

linux@403-15:~$ hostname
403-15
linux@403-15:~$ hostname --fqdn
403-15.deblab.org

Dans /etc/hosts, il faut que le FQDN soit le premier nom après l'adresse IP:

127.0.0.1       403-15.deblab.org       localhost       403-15

Les suivants sont des alias.

/etc/nsswitch.conf

La ligne:

hosts:          files dns

Lorsque le système doit résoudre un nom, il va d'abord aller voir dans le fichier /etc/hosts pour la résolution d'un nom; s'il ne trouve pas, il va faire une requête DNS (va voir dans /etc/resolv.conf, qui est un fichier soit rempli manuellement, soit par DHCP).

Dans /etc/resolv.conf, si la première ligne ressemble à

search mondomaine.com

Cela signifie que s'il faut résoudre le nom d'une machine dont le domaine n'est pas fourni, il faut utiliser mondomaine.com.

Via un serveur DNS

Dans un nom, l'échellon le plus haut est la racine (root), représenté par un point (.).

Une requête de résolution de nom (ex: www.deblab.org):

  • regarde dans /etc/nsswitch.conf
  • regarde dans /etc/hosts
  • regarde dans /etc/resolv.conf
  • contacte le premier serveur de la liste dans /etc/resolv.conf
  • si le serveur n'a pas l'information, il va demander à un des 13 root servers quel est le serveur ayant autorité sur les .org
  • il va demander au serveur gérant les .org qui a autorité sur deblab.org
  • ensuite, il va demander à ce serveur quelle est l'IP de la machine www.deblab.org
  • finalement, le serveur DNS renseigné dans /etc/resolv.conf donne la réponse (l'adresse IP) a la machine

BIND

Berkeley Internet Name Domain. C'est le serveur de nom que nous allons utiliser, en version 9: bind9.

aptitude install bind9

DNS primaire: responsable pour un domaine DNS secondaire: backup du primaire

Configuration

Fichier principal: /etc/bind/named.conf Pour ajouter un domaine

  • modifier /etc/bind/named.conf.local (plus propre).
  • ajouter le fichier de zone: /var/cache/bind/truc.be.zone.conf (on y met à quelle IP correspond www.truc.be, ftp.truc.be, etc.)

Exercice: mettre la machine de son voisin comme résolveur

changer /etc/resolv.conf, en ne laissant plus que la ligne:

nameserver 192.168.2.199

Essayer de résoudre une nom de domaine:

ping www.toto.com

On voit que ça fonctionne.

Ensuite, interroger le serveur du voisin avec la commande dig (dans le package dnsutils):

dig www.google.com

; <<>> DiG 9.2.4 <<>> www.google.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20807
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         900     IN      CNAME   www.l.google.com.
www.l.google.com.       300     IN      A       66.249.93.99
www.l.google.com.       300     IN      A       66.249.93.104

;; AUTHORITY SECTION:
l.google.com.           86400   IN      NS      e.l.google.com.
l.google.com.           86400   IN      NS      a.l.google.com.
l.google.com.           86400   IN      NS      b.l.google.com.
l.google.com.           86400   IN      NS      c.l.google.com.
l.google.com.           86400   IN      NS      d.l.google.com.

;; Query time: 311 msec
;; SERVER: 192.168.2.199#53(192.168.2.199)
;; WHEN: Fri Oct 14 14:43:59 2005
;; MSG SIZE  rcvd: 164

L'antépenultième ligne confirme qu'on utilise bien le serveur du voisin.

Ajout d'une zone

Dans /etc/bind/named.conf.local, ajouter ce qui suit pour le domaine truc3.be:

zone "truc3.be" {
        type master;
        file "truc3.zone";
};

Cela signifie que le serveur est DNS primaire et que les informations concernant le domaine se trouve dans /var/cache/bind/truc3.zone.

Vérifier qu'il n'y a pas d'erreur de syntaxe:

named-checkconf

Ensuite, rapatrier en ftp le fichier mondomaine.org.zone

Nous allons le modifier pour que le serveur puisse gérer le domaine truc3.be

; ENREGISTREMENT "SOA" (Start Of a zone of Authority).
@       IN      SOA     dns.truc3.be.   root.dns.truc.be. (

le serveur de nom est dns.truc3.be et l'adresse de contact est root@dns.truc.be

        2005101401

Date de mise à jour yyyymmddxx où xx est la xième mise à jour du jour.

; ENREGISTREMENTS "NS"
truc3.be.               IN      NS      dns
truc3.be.               IN      NS      dns2

Les nameservers sont dns.truc3.be comme DNS primaire et dns2.truc3.be comme DNS secondaire.

; ENREGISTREMENTS "A"
dns             IN      A       192.168.2.118
403-10        IN      A       192.168.2.118

Ce sont les records les plus importants.

; ENREGISTREMENTS "CNAME"
www             IN      CNAME   403-10

Définit un alias www → 403-10

Vérifier la syntaxe du fichier:

named-checkzone truc3.be /var/cache/bind/truc3.be.zone

Pour redémarrer le service:

/etc/init.d/bind9 restart

si on veut vider le cache

/etc/init.d/bind9 reload

si on ne veut pas vider le cache.

DNS secondaire pour un domaine

Pour faire un DNS secondaire, dans le fichier /etc/bind/named.conf.local, il faut mettre ceci:

zone "rafael.com" {
        type slave;
        file "rafael.com.zone";
        masters { 192.168.2.199; };
};

Ensuite, lorsqu'on redémarre le service, il va chercher le fichier de la zone sur le serveur primaire (pour cette zone).

C'est un trou de sécurité: restreindre l'accès.

Pour essayer: sur le DNS primaire, couper le service:

/etc/init.d/bind9 stop

Sur le secondaire, faire une résolution de nom après s'être assuré qu'on a bien mis le secondaire dans /etc/resolv.conf.

Cache DNS

Configuration dans /etc/bind/named.conf.options Ajouter:

forwarder {
     212.68.193.32;
     212.68.193.30;
     };

où 212.68.193.32 et 212.68.193.30 sont 2 serveurs DNS (ex: ceux de Brutele ici)

et redémarrer le service.

coursieps/20051014.txt · Last modified: 2013/01/30 17:50 (external edit)