Vous êtes sur la page 1sur 43

Université de Yaoundé 1

Faculté des Sciences


Département d’Informatique

INF3105 - Servies Réseaux :


Résolution des noms des machines

DOMGA KOMGUEM Rodrigue – rodrigue.domga-komguem@facsciences-uy1.cm


Agenda

1.Contexte
2.Problème
3.Une première solution
4.Fonctionnement du DNS
5.Déploiement d'un serveur BIND9
6.DNS Dynamique
2
Contexte

Les programmes se réfèrent aux applications réseaux au
moyens des adresses réseaux : @IP ou nom

Le DNS est souvent utilisé par d'autres protocoles niveau
applicatif : HTTP, FTP, MAIL

Exemple : recherche de l'URL www.info-l3-RS.com/index.html
– La machine cliente exécute un client DNS
– Le navigateur extrait le nom de machine www.info-l3-RS.com de
l'URL
– Le client DNS envoie une requête contenant le nom de la machine au
serveur DNS
– Le client DNS reçoit éventuellement une réponse qui contient l'adresse
IP du client
– Le navigateur peut alors initier une connexion TCP au serveur HTTP
qui écoute sur le port 80
3
Problème

Les machines en réseaux ne communiquent
qu'avec les adresses IP et non avec les noms

Si les programmes utilisateurs travaillent
uniquement avec des adresses IP, le changement
d'une adresse IP
– Informer tous les clients

Solution : « noms » lisible, facile à retenir, introduit
afin de dissocier le nom des machines de leur
adresse
– Exemple : www.info-l3-RS.com
– Question : Comment gérer ces noms de machine pour
faciliter la correspondance « @IP<=>Nom de machine »
4
Première solution

ARPAnet
– Un fichier « hosts.txt » répertoriait tout les noms
d'ordinateurs avec leur adresse IP
– Chaque nuit, tous les hôtes téléchargeaient le fichier
depuis le site ou il était conservé et géré
– Solution efficace pour un réseau de petite taille.

Avec la croissance du réseau ARPAnet, inefficace
pour au moins deux raisons :
– La taille du fichier : stockage, maintenance
– Des conflits sur les noms d'hôtes

DNS mis sur pied en 1988 pour résoudre ce
problème : RFC 1034, RFC 1035, RFC 2181
5
DNS : Espace de nom(1/4)

Une adresse dans le service postale est composée
de :
– Le nom du pays, de l’État ou de la province
– Le nom de la localité
– Son code postal
– Le nom et le numéro de la rue
– Numéro du bâtiment dans la rue
– Le nom du destinataire

Pas de confusion possible même si les
destinataires portent le même nom.
6
DNS : Espace de nom(2/4)

Le système DSN fonctionne de la même manière

Une base de données distribuée est maintenue et nom
un fichier « hosts.txt »

Une structure hiérarchique est utilisée, Chaque nœud de
la hiérarchie garde une partie des données.

Pour Internet :
– Le haut de la hiérarchie de nommage est géré par l'ICANN
(Internet Coorperation for Assigned Names and Numbers)
– 200 domaines de premier niveau TLD (Top Level Domain)
qui couvre chacun de nombreux hôtes.
– Chaque domaine est divisé en sous-domaines qui sont à leur
tour divisés en d'autre sous-domaines, et ainsi de suite.
7
DNS : Espace de nom(3/4)

8
DNS : Espace de nom(4/4)

Les feuilles de l'arbre représentent les domaines qui
ne comprennent pas de sous-domaines, mais des
machines

Un domaine feuille peut contenir un seul hôte, ou
représenter une société et contenir des milliers
d'hôtes.

Les domaines de premier niveau sont de deux types:
– Générique : com, org, edu, net,.....
– Nationaux : fr, us, cm, ci, .....

Les noms de domaines de premier ordre (génériques
et nationaux) sont gérés par des registraires nommés
par l'ICANN
9
DNS : Enregistrement de ressources
de domaines (1/3)

On associe à chaque domaine un ensemble
d'enregistrement de ressources (Ressources Records: RR)

Cet ensemble constitue la base de données DNS

Dans le cas d'un hôte, cet enregistrement peut être
simplement une adresse IP

Les RR se composent de 05 éléments :
– Nom_de_domaine Durée_de_vie Classe Type Valeur
– Nom de domaine: Domaine auquel s'applique l'enregistrement.
C'est la clé de recherche principale pour satisfaire les requêtes.
– Durée de vie: Information sur la stabilité de l'enregistrement.
– Classe: Concernant l'Internet, sa valeur est toujours IN.
– Type: Type d'enregistrement (SOA, A, AAAAA, NS, MX, CNAME,
PTR, SPF, SRV, TX)
10
DNS : Enregistrement de ressources
de domaines (2/3)

Un enregistrement SOA (Start of Authority) contient le
nom du serveur primaire pour la zone, l'adresse
électronique administrateur, numéro de série de la zone
(unique), et divers fanions et temporisateurs.

Un enregistrement de type A contient l'adresse IP sur 32
bits (IPv4). AAAA est pour la version 6 d'IP.

MX indique le nom de l'hôte qui gère le courrier
électronique dans le domaine

NS spécifie un serveur de nom pour le domaine

CNAME (Canonical Name) permet de créer des alias.

PTR est généralement utilisé pour retrouver le nom à
partir de l'adresse IP
11
DNS : Enregistrement de ressources
de domaines (3/3)

Exemple
cs.vu.nl 86400 IN SOA star bass (9527,720,....)
cs.vu.nl 86400 IN MX '11 zephir'
cs.vu.nl 86400 IN MX '2 top'
cs.vu.nl 86400 IN NS 'star'
star 86400 IN A 192.168.120.1
zephir 86400 IN A 192.168.120.2
top 86400 IN A 192.168.120.3
www 86400 IN CNAME star.cs.vu.nl
ftp 86400 IN CNAME zephir.cs.vu.nl

12
DNS : Notion de zone(1/2)

13
DNS : Notion de zone (2/2)

L'espace de nom DSN est divisé en zones distinctes.

Il incombe à l'administrateur de chaque zone de définir
les limites en fonction du nombre de serveur de nom
souhaité et de leur emplacement

Chaque zone est associée à un ou plusieurs serveurs
de nom

Il existe également les hôtes chargés de stocker la BD
pour chaque zone

On peut avoir un serveur de nom primaire qui obtient
ses informations à partir de son disque dur et d'un ou
plusieurs serveurs de nom secondaires qui obtiennent
leurs informations à partir du serveur primaire
14
DNS : Résolution de nom


Lorsque S ne peut pas répondre directement à flits.cs.vu.nl, il se
charge de la requête jusqu'à obtention d'un résultat définitif : requête
récursive

S reçoit des réponses potentielles des serveurs intermédiaire et fait
plusieurs requêtes : requêtes itératives
15
Les types de serveurs DNS

Primaire :
– Garde les informations sur l'ensemble des domaines sur lesquels
il a autorité
– Sauvegarde également dans son cache les informations sur les
domaines précédemment interrogés

Secondaire :
– Télécharge les données d'une zone à partir d'un serveur de nom
primaire en utilisant un processus appelé « transfert de zones»
– TCP pour le transfert de zones (UDP pour les requêtes DNS)

Cache
– Serveurs non autoritaires qui ont des caches permettant de
stocker les informations de zones les plus sollicitées
– Utile pour le traitement rapide des requêtes
16
DNS : Principe de configuration

Au niveau du serveur
– Le nom de domaine
– Les serveurs DNS maîtres
– La base de données, le système de cache

Au niveau du client
– Le nom de domaine
– L'adresse IP du serveur DNS
– Pour un client Linux, il suffit d'éditer le fichier
/etc/resolv.conf.
– Et pour un client Windows, la configuration se fait au
niveau du panneau de configuration (icône « Réseau »).
17
Installation de BIND9

Paquets à installer :
– Pour installer le serveur BIND9, il suffit d'installer le
paquet bind9
– Le paquet dnsutils fournit des outils très pratiques pour
tester et débugger le service DNS
– La documentation BIND9 peut également être trouvée
dans le paquet bind9-doc

La commande d'installation est donc :
– sudo apt-get install bind9 dnsutils bind9-doc

18
Configuration de BIND9

Trois options de configuration de BIND9
– Serveur cache : Les réponses aux requêtes sont
cherchées auprès des DNS du FAI.
– Serveur maître : BIND9 lit les données d'une zone à
partir d'un fichier sur son hôte et fait autorité pour cette
zone
– Serveur secondaire : BIND9 obtient les données de la
zone d'un autre serveur de noms faisant autorité pour la
zone

Les fichiers de configuration de BIND9 sont stockés
dans le répertoire /etc/bind/ ; le principal étant
/etc/bind/named.conf
19
BIND9 comme serveur cache

C'est la configuration par défaut.

Il faut juste éliminer les commentaires et modifier les
lignes ci-dessous du fichier
/etc/bind/named.conf.options
forwarders {
X.XX.X;
8.8.8.8;
};


X.X.X.X et 8.8.8.8 sont à remplacer par les adresses
des serveurs DNS de votre système.

Redémarrer ensuite le serveur BIND9 pour prendre en
compte la nouvelle configuration.

Tester
20
BIND9 comme serveur maître

On considère le réseau 192.168.120.0/24.

Le nom de zone info-l3-RS.com

Créations des zones pour les résolutions directes et
inverse

Configuration de la base de données pour les
résolutions directes et inverses.

21
BIND9 comme serveur maître :
résolution directe (1/3)

Définition de la zone info-l3-RS.com dans le fichier
/etc/bind/named.conf.local
zone "info-l3-RS.com" {
type master;
file "/etc/bind/db.info-l3-RS.com";
};


Le mot clé type permet de préciser le type de zone

file permet de préciser le fichier qui va stocker les
informations pour cette zone.

22
BIND9 comme serveur maître :
résolution directe (2/3)

Base de données (/etc/bind/db.info-l3-RS.com) pour la
zone info-l3-RS.com

Construite à partir du fichier /etc/bind/db.local
– sudo cp db.local db.info-l3-RS.com

Dans le fichier /etc/bind/db.info-l3-RS.com
– Remplacer « localhost. » par le nom de domaine « info-l3-
RS.com. »
– Remplacer « 127.0.0.1 » par l'adresse IP de votre serveur BIND9
– Remplacer « root.localhost. » par une adresse émail valide.
Dans cette adresse, remplacer le « @ » par le point « . »
– Créer un enregistrement de type A pour le nom « ns.info-l3-
RS.com »
– Modifier également le commentaire pour indiquer qu'il s'agit du
fichier pour la zone « info-l3-RS.com » 23
BIND9 comme serveur maître :
;
résolution directe (3/3)
; BIND data file for l3di-fs-uy1
;
$TTL 604800
@ IN SOA ns.info-l3-RS.com. admin.info-l3-RS.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
info-l3-RS.com. IN NS ns.info-l3-RS.com.
info-l3-RS.com. IN A 192.168.120.1
info-l3-RS.com. IN MX 10 mail.info-l3-RS.com.
ns IN A 192.168.120.1
www IN CNAME ns.info-l3-RS.com.
server1 IN A 192.168.120.2
ftp IN CNAME server1.info-l3-RS.com.
mail IN A 192.168.120.5


Incrémenter le numéro de série chaque fois que ce fichier est
modifié

Redémarrer pour prendre en compte les changements.
24
BIND9 comme serveur maître :
résolution inverse (1/2)

Définition de la zone : éditez le fichier
/etc/bind/named.conf.local comme suit :
zone "120.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};


120.168.192 ici représente les trois premiers octets
de l'adresse du réseau configuré.

La base de données.
– À partir du fichier /etc/bind/db.127 :
– sudo cp db.127 db.192

25
BIND9 comme serveur maître :
résolution inverse (2/2)
;
; BBIND reverse data file for local 192.168.120.XXX net
;
$TTL 604800
@ IN SOA ns.info-l3-RS.com. admin.info-l3-RS.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
1 IN PTR ns.info-l3-RS.com.
2 IN PTR server1.info-l3-RS.com.
5 IN PTR mail.info-l3-RS.com.

26
BIND9 comme serveur maître : Tests

Toujours redémarrer après avoir modifier les
configurations :
– sudo service bind9 restart
– ping info-l3-RS.com
– named-checkzone info-l3-RS.com /etc/bind/db.info-l3-RS.com
– named-checkzone 120.168.192.in-addr.arpa /etc/bind/db.192
– dig info-l3-RS.com

27
BIND9 comme serveur secondaire
(1/2)

Configurer BIND9 comme serveur secondaire
suppose qu'il existe déjà un serveur BIND primaire

Au niveau du serveur maître,
– Les transferts de zone doivent être autorisés
zone "info-l3-RS.com" {
type master;
file "/etc/bind/db.info-l3-RS.com";
allow-transfer { 192.168.120.2; }
};

zone "120.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
allow-transfer { 192.168.120.2; }
};


192.168.120.2 est l'adresse IP du serveur secondaire
28
BIND9 comme serveur secondaire
(2/2)

Au niveau du serveur secondaire,
– Installer BIND9 comme dans le cas d'un serveur
primaire
– Modifier par la suite le fichier
/etc/bind/named.conf.local en ajoutant les déclarations
suivantes :
zone "info-l3-RS.com" {
type slave;
file "/etc/bind/db.info-l3-RS.com";
masters { 192.168.120.1; }
};

zone "120.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/db.192";
masters { 192.168.120.1; }
};
29
Les LOG de bind9 (1)

Création des fichiers de log
✔ mkdir /var/log/bind9
✔ touch /var/log/bind9/bind9.log
✔ touch /var/log/bind9/update_debug.log
✔ touch /var/log/bind9/security_info.log

✔ chown -R bind:bind /var/bind9

30
Les LOG de bind9 (2)

Edition du fichier /etc/bind/named.conf.options

Créer un bloc logging {….} ; et dans ce bloc
insérer :
channel update_debug {
file "/var/log/bind9/update_debug.log"
versions 3 size 100k;
severity debug;
print-severity yes;
print-time yes;
print-category yes;
};
31
Les LOG de bind9 (3)

Edition du fichier /etc/bind/named.conf.options

Créer un bloc logging {….} ; et dans ce bloc
insérer :
channel security_info {
file "/var/log/bind9/security_info.log"
versions 1 size 100k;
severity info;
print-severity yes;
print-time yes;
print-category yes;
};
32
Les LOG de bind9 (4)

Edition du fichier /etc/bind/named.conf.options

Créer un bloc logging {….} ; et dans ce bloc
insérer :
channel warning_log {
file "/var/log/bind9/bind9.log" versions 3
size 1m;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
33
Les LOG de bind9 (5)

Edition du fichier /etc/bind/named.conf.options

Créer un bloc logging {….} ; et dans ce bloc
insérer :
category default { warning_log; };
category update_debug { update_debug; };
category security_info { security_info; };

34
Les LOG de bind9 (6)

channel : Un channel regroupe les instructions  permettant à
bind de constituer ses logs

file :Adresse du fichier de log.

version :Le nombre de fichiers de log à conserver sur le
serveur.

size :La taille maximum du fichier de log.

severity :Le niveau minimum des erreurs à relever

print-time :Inscrit l’heure lors de l’enregistrement des logs.

print-severity :Inscrit le niveau de sécurité (client,  config,
network, security, default…) dans les logs.

print category : ajoute la catégorie des messages dans les logs

category default {} : Les messages de la catégorie default
seront gérés par le channel default_log
35
Couplage DHCP et DNS

Comment permettre au DHCP de mettre à jour
automatiquement les clients au niveau de la base
de données DNS ?

Le serveur DHCP à besoin du nom du client
– Les clients Windows envoient par défaut leur nom dans
les requêtes DHCP, ce n'est pas le cas pour les clients
linux
– Sous Linux

Créer le fichier /etc/dhcp3/dhclient.conf

Ajouter la ligne : send host-name "nomdelamachine" ;

36
DHCP-DNS : Modifications à
apporter au serveur DHCP (1)

Au niveau du serveur DHCP
server-identifier 192.168.120.7;
ddns-updateson;
ddns-update-style interim;
ddns-domainname "info-l3-RS.com.";
ddns-rev-domainname "120.168.192.in-
addr.arpa.";
allow unknown-clients;
ignore client-updates; 37
DHCP-DNS : Modifications à
apporter au serveur DHCP (2)

Au niveau du serveur DHCP
include "/etc/bind/rndc.key";
#Les zones qui seront mis à jour automatiquement
zone info-l3-RS.com. {
primary 192.168.120.7;
key "rndc-key";
}
Zone 120.168.192.in-addr.arpa. {
primary 192.168.120.7;
key "rndc-key";
} 38
DHCP-DNS : Modifications à
apporter au serveur DHCP (3)

Si jamais vous obtenez une erreur du genre
impossible de lire le fichier /etc/bind/rndc.key
– Ouvrer ce fichier
– Remplacer include "/etc/bind/rndc.key" par le
bloc suivant que vous avez copié dans ce fichier
key "rndc-key" {
algorithm hmac-md5;
secret "xxxxxxxxxxxxxxx";
}
– Ou configurer correctement le service APPARMOR
39
DHCP-DNS : Modifications à
apporter BIND9 (1)

Modifier la définition des zones dans le fichier /etc/bind/named.conf.local
pour que ça ressemble à ce qui est ci-dessous
zone "info-l3-RS.com" in {
type master;
file "/etc/bind/db.info-l3-RS.com";
allow-update { key "rndc-key"; };
notify yes;
};
zone "120.168.192.in-addr.arpa" in {
type master;
file "/etc/bind/db.192";
allow-update { key "rndc-key"; };
notify yes;
};
40
include "/etc/bind/rndc.key";
DHCP-DNS : Modifications à
apporter BIND9 (2)

Modifier la définition des zones dans le fichier
/etc/bind/named.conf.options pour que ça
ressemble à ce qui est ci-dessous
….............
controls {
inet 127.0.0.1 allow { localhost; } keys { "rndc-
key"; };
};

41
DHCP-DNS : Autres paramétrage

Assignation des droits
– sudo chmod g+w /etc/bind
– sudo chmod +r /etc/bind/rndc.key


Apparmor
– Soit vous le désactiver
– Sinon :

Ouvrez le fichier /etc/apparmor.d/usr.sbin.dhcpd

Ajouter les lignes suivantes avant le caractére « } »
/var/lib/bind/** rw,
/var/lib/bind/ rw,

Modifier le fichier /etc/apparmor.d/usr.sbin.named et
ajouter la ligne /etc/bind/** rw 42
Tests

Redémarrer les services
– sudo /etc/init.d/apparmor restart
– sudo /etc/init.d/isc-dhcp-server restart
– sudo /etc/init.d/bind9 restart

Renouveller l'adresse d'un client et consulter les
logs, la base de données DNS pour vérifier

43

Vous aimerez peut-être aussi