Vous êtes sur la page 1sur 6

Services réseau

Licence Professionnelle Réseaux


TP n˚2 - DHCP/DNS et Télécommunications
M. Hauspie
2008-2009

CORRECTION
Pour ce TP, nous allons configurer un serveur DHCP afin qu’il remplisse trois fonctions
• Attribuer des IP automatiquement ;
• Mettre à jour le serveur DNS configuré lors du TP n˚1 ;
• Permettre de booter une machine vierge sur l’installeur debian.

Exercice 1 : Configuration réseau de la machine virtuelle


Avant de commencer, nous allons devoir modifier la configuration de la machine virtuelle. Actuellement, la carte réseau
de la machine virtuelle est configurée de façon à ce qu’elle demande son adresse IP à un serveur DHCP. Comme nous
voulons être serveur DHCP, nous allons configurer l’adresse IP de manière statique.
Cette modification nous permet également d’être certain de l’adresse qu’aura la machine.
Sous debian, la configuration des cartes réseaux est contenue dans le fichier /etc/network/interfaces
Ouvrez ce fichier est recherchez la section qui concerne la carte réseau (interface eth0).
Vous devriez trouver la ligne suivante :
iface eth0 inet dhcp
Cette ligne précise que la carte eth0 doit obtenir une adresse de type internet par dhcp
Q 1. Remplacez cette ligne par :

iface eth0 inet static


address 192.168.119.131 # changer l’IP par celle que vmware vous attribue
netmask 255.255.255.0
gateway 192.168.119.2 # regarder avec route -n la passerelle

Ceci permet de configurer la carte eth0 avec l’adresse IP 192.168.119.131 et de préciser au système que le routeur par
défaut est 192.168.119.2 (c’est ce qui permettra à la machine virtuelle d’accéder à internet).
Réinitialisez maintenant la carte réseau à l’aide des commandes :
$ ifdown eth0
$ ifup eth0
ifdown permet d’arreter la carte réseau et ifup de la redémarrer avec les nouveaux paramètres. Vérifiez la configuration
à l’aide de la commande ifconfig. Vous devriez obtenir quelque chose qui ressemble à :

eth0 Link encap:Ethernet HWaddr 00:19:D2:4D:9B:BB


inet addr:192.168.119.131 Bcast:192.168.119.255 Mask:255.255.255.0
inet6 addr: fe80::219:d2ff:fe4d:9bbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:836 errors:9 dropped:218 overruns:0 frame:0
TX packets:737 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10171538 (9.7 MiB) TX bytes:3098852 (2.9 MiB)
Interrupt:17 Base address:0x4000 Memory:efdff000-efdfffff

Nous allons maintenant changer les paramètres de résolution dns. Nous voulons que la machine virtuelle n’utilise plus
vmware comme DNS mais le DNS que vous avez configuré. Pour cela, plusieurs étapes :
Q 2. Remplacez le contenu du fichier /etc/resolv.conf par ce qui suit :

search licence-rt.org
nameserver 192.168.119.131 # indiquez toujours la même IP que précédemment

Ceci permettra au système d’interroger directement votre serveur dns.


Q 3. Modifiez le fichier named.conf de façon à autoriser les requêtes récursives depuis les machines du réseau local
(192.168.119.0/24)
Q 4. Afin de répondre aux requêtes récursives correctement, ajoutez les lignes suivantes dans la section options du fichier
named.conf

forward only;
forwarders {192.168.119.2;};

Ces lignes vont permettre à votre DNS d’interroger le DNS de vmware pour les requêtes récursives.
Q 5. Pour vérifier que tout fonctionne bien, exécutez la commande :
$ ping www.lifl.fr

Si tout ce passe bien le résultat devrait être quelque chose comme :


PING louis.lifl.fr (134.206.11.101) 56(84) bytes of data.
64 bytes from louis.lifl.fr (134.206.11.101): icmp_seq=1 ttl=241 time=78.3 ms
64 bytes from louis.lifl.fr (134.206.11.101): icmp_seq=2 ttl=241 time=78.7 ms
64 bytes from louis.lifl.fr (134.206.11.101): icmp_seq=3 ttl=241 time=81.7 ms

On peut maintenant commencer les choses sérieuses.

Exercice 2 : Configuration du serveur DHCP


Q 1. Installez le paquetage dhcp3-server
Q 2. Modifiez le fichier /etc/dhcp3/dhcpd.conf et définissez le réseau 192.168.119.0/24. Le serveur dhcp devra attribuer
des adresses allant de 192.168.119.10 à 192.168.119.30 et leur fournir les paramètres suivants :
• Masque de sous réseau : 255.255.255.0 ;
• Routeur : 192.168.119.2 ;
• Serveur DNS : 192.168.119.131 ;
• Domaine : licence-rt.org.
Attention N’oubliez pas la directive server-identifier et authoritative, elle seront utiles pour plus tard.
Les commandes cat /var/log/daemon.log et cat /var/log/syslog vous afficheront les messages d’erreur (ou de
fonctionnement) du serveur.
Q 3. Pour tester votre serveur dhcp, nous allons lancer une deuxième machine virtuelle et observer le comportement du
serveur dhcp.
Dans la machine virtuelle, tapez la commande suivante :

$ tail -f /var/log/daemon.log & tail -f /var/log/syslog

Dans la machine physique, tapez la commande suivante :


$ vmware-rt Lenny &

Une deuxième machine virtuelle démarre. Le login est toujours root et le mot de passe root.
Observez la commande de la première machine virtuelle (celle sur laquelle tourne le serveur DHCP). Vous devriez voir
apparaître la requête de la seconde machine virtuelle sous une forme ressemblant à :

Sep 25 20:47:40 lprt dhcpd: DHCPDISCOVER from 00:19:d2:4d:9b:bb via eth0


Sep 25 20:47:41 lprt dhcpd: DHCPOFFER on 192.168.119.10 to 00:19:d2:4d:9b:bb via eth0
Sep 25 20:47:41 lprt dhcpd: DHCPREQUEST for 192.168.119.10 from 00:19:d2:4d:9b:bb via eth0
Sep 25 20:47:41 lprt dhcpd: DHCPACK on 192.168.119.10 to 00:19:d2:4d:9b:bb via eth0

Q 4. Dans la deuxième machine virtuelle, lancez un terminal et tapez la commande ifconfig qui devrait vous confirmer
l’adresse obtenue grâce à votre serveur dhcp. Si vous avez besoin de recommencer la requête DHCP, vous pouvez le faire
en arrêtant et en redémarrant la carte réseau grâce à :

$ ifdown eth0
$ ifup eth0

Vous pouvez également vérifier que les paramètres de DNS et de routeur sont corrects à l’aide des commandes :

$ cat /etc/resolv.conf
$ route -n

Exercice 3 : Vers une mise à jour automatique du DNS, configuration de rndc


Q 1. A l’aide de la commande rndc-confgen, créez le fichier /etc/bind/rndc.conf et modifiez le fichier named.conf en
conséquence.
Q 2. Vérifiez le bon fonctionnement de rndc par la commande

$ rndc status

Vous devriez normalement obtenir le statut du serveur DNS.


Exercice 4 : Mise à jour automatique de DNS
Q 1. Dans la deuxième machine virtuelle, modifiez le fichier /etc/dhcp3/dhclient.conf et insérez la ligne :

send host-name "lenny";

Cette modification forcera le client DNS à envoyer le nom de la machine lors d’une requête DNS ce qui permettra une
mise à jour automatique∗ .
Q 2. Modifiez le fichier dhcpd.conf et le fichier named.conf de façon à ce que le serveur DHCP mette à jour automa-
tiquement le serveur DNS.
Attention Il faut s’assurer que le serveur dns a les droits d’accès en écriture aux fichiers de descriptions de zone.
Pour cela, exécutez la commande :

$ chown root.bind /var/bind -R


$ chmod g+r+w /var/bind -R

Cette séquence de commande suppose que vos fichiers de zone se trouvent dans le répertoire /var/bind comme
demandé dans le TP précédent† .
Q 3. Vérifiez le fonctionnement en observant le contenu de /var/log/daemon.log tout en reconfigurant la carte réseau de
la deuxième machine virtuelle (tail -f /var/log/daemon.log sur la première machine virtuelle, ifdown eth0 ; ifup
eth0 sur la deuxième machine virtuelle).
Le résultat devrait ressembler à :
dhcpd: DHCPDISCOVER from 00:19:d2:4d:9b:bb via eth0
dhcpd: DHCPOFFER on 192.168.119.10 to 00:19:d2:4d:9b:bb (kwak) via eth0
named[4338]: client 192.168.119.131#47348: updating zone ’licence-rt.org/IN’: adding an RR at ’kwak.licence-
named[4338]: client 192.168.119.131#47348: updating zone ’licence-rt.org/IN’: adding an RR at ’kwak.licence-
dhcpd: Added new forward map from kwak.licence-rt.org to 192.168.119.10
named[4338]: client 192.168.119.131#47348: updating zone ’119.168.192.in-addr.arpa/IN’: deleting rrset at ’1
named[4338]: client 192.168.119.131#47348: updating zone ’119.168.192.in-addr.arpa/IN’: adding an RR at ’10.
dhcpd: added reverse map from 10.119.168.192.in-addr.arpa. to kwak.licence-rt.org
dhcpd: DHCPREQUEST for 192.168.119.110 (192.168.119.131) from 00:19:d2:4d:9b:bb (kwak) via eth0
dhcpd: DHCPACK on 192.168.119.110 to 00:19:d2:4d:9b:bb (kwak) via eth0
Vous pouvez maintenant couper la deuxième machine virtuelle.

Exercice 5 : Boot réseau grâce à DHCP


Le but est maintenant de configurer votre serveur DHCP pour qu’une machine vierge puisse lancer l’installation de la
debian grâce à votre machine virtuelle en bootant sur le réseau.
Q 1. Lisez la documentation à l’adresse : http ://www.debian.org/releases/stable/i386/ch04s06.html.en
Nous allons utiliser la méthode PXE booting.
Q 2. Téléchargez le nécessaire à l’installation réseau grâce à la commande suivante (à exécuter dans la machine virtuelle,
dans le répertoire HOME du root, tapez cd avant si vous n’êtes pas sur d’y être)

$ wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images \
/netboot/netboot.tar.gz

Q 3. Installez le paquetage tftpd-hpa et modifiez le fichier /etc/default/tftpd-hpa de la façon suivante :

#Defaults for tftpd-hpa


RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

Q 4. S’il n’existe pas déjà, créez le répertoire /var/lib/tftpboot et placez vous dans ce répertoire (cd /var/lib/tftpboot
Q 5. Décompressez le fichier netboot.tar.gz à l’aide de la commande :

$ tar zxvf ~/netboot.tar.gz

Q 6. Modifiez le fichier dhcpd.conf de façon à demander à un client qui boot par le réseau de télécharger le fichier
pxelinux.0 sur le serveur 192.168.119.131
Q 7. Démarrez une nouvelle machine virtuelle grâce à la commande :

$ vmware-rt Install

Dès que vmware démarre, appuyez sur F2 pour accéder au paramètres de boot et faites booter la machine virtuelle
par le réseau. Si tout ce passe bien, l’installation de debian doit commencer. Félicitations, le TP est terminé !
∗ Notez que sous Windows, le client DHCP envoi par défaut le nom de la machine
† Pour l’explication de cette commande, voire le cours de système unix/linux
Correction

Fichier named.conf

On ne montre ici que les ajouts ou modifications par rapport au fichier du tp n˚1

1 /*
2 ...
3 */
4
5 // Première modification, la définition de la clé servant à authentifier les
6 // connexions sur le port de contrôle du serveur DNS
7 // Les deux sections suivantes sont générée grâce à la commande
8 // rndc-confgen > /etc/bind/rndc.conf
9
10 key "rndc-key" {
11 algorithm hmac-md5;
12 secret "rl5PKn38zEkMpL08A6KxDg==";
13 };
14
15 controls {
16 inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };
17 // On rajoute cette ligne à la main pour autoriser également la
18 // connexion sur l’adresse de la carte réseau mais uniquement pour la
19 // machine qui héberge le serveur. Si le serveur DHCP était hébergé sur
20 // une autre machine, son adresse IP serait précisée dans le premier
21 // jeu d’accolades (après le allow)
22 inet 192.168.119.131 port 953 allow { 192.168.119.131; } keys { "rndc-key"; };
23 };
24
25
26 options {
27 /*
28 ...
29 */
30
31 // On ajoute ici la recursion depuis le réseau local pour servir les
32 // machines du réseau
33 allow-recursion { machine-locale; reseau-local;};
34
35 // On ajoute le DNS simulé par la machine virtuelle dans les forwarders
36 forward only; // on retransmet la requète et si on a pas de réponse on
37 // n’essaye pas de répondre
38 forwarders { 192.168.119.2; }
39 };
40
41 /* Définition de la zone licence-rt.org
42 C’est une zone pour laquelle le serveur est maitre
43 */
44 zone "licence-rt.org" {
45 type master;
46 file "licence-rt.org";
47 // On ajoute l’autorisation de mise à jour utilisant la clé commune au dns
48 // et au dhcp
49 allow-update {key "rndc-key";};
50 };
51
52 /* Définition de la zone de résolution inverse pour le réseau 192.168.119.0/24
53 Adresse du réseau à l’envers suivie de in-addr.arpa (norme dns, cf. rfc)
54 */
55 zone "119.168.192.in-addr.arpa" {
56 type master; // serveur maitre pour cette zone
57 file "licence-rt.org.rev"; // fichier de description de résolution inverse
58 allow-query {reseau-local;}; // on autorise l’interrogation de cette zone
59 // que depuis le réseau local
60
61 // On ajoute l’autorisation de mise à jour utilisant la clé commune au dns
62 // et au dhcp. Il faut bien penser à renseigner aussi cette zone inverse !
63 allow-update {key "rndc-key";};
64 };
65

Fichier rndc.conf

1 # Start of rndc.conf
2 # Ce fichier est complétement généré par rndc-confgen
3 # rien de particulier à dire
4 key "rndc-key" {
5 algorithm hmac-md5;
6 secret "rl5PKn38zEkMpL08A6KxDg==";
7 };
8
9 options {
10 default-key "rndc-key";
11 default-server 127.0.0.1;
12 default-port 953;
13 };
14 # End of rndc.conf

Fichier dhcpd.conf

1 # Ce fichier de configuration suppose que l’adresse IP de votre machine


2 # virtuelle est 192.168.119.131 et donc que le réseau vmware est
3 # 192.168.119.0/24. Modifiez tous les paramètres IP et réseau partout où cela
4 # est nécessaire si votre réseau vmware est différent
5 # Rappel: si le réseau vmware est 192.168.119.0/24, alors:
6 # - 192.168.119.1 représente votre machine physique
7 # - 192.168.119.2 représente l’émulation DNS et routeur de vmware
8
9
10 # Identifiant du serveur
11 # C’est cet identifiant qui va être utilisé pour
12 # repérer les modifications dans les fichiers de zone du DNS
13 server-identifier 192.168.119.131;
14
15 # Mise à jour automatique du serveur DNS
16 ddns-update-style interim;
17
18 # Le serveur fait authorité
19 authoritative;
20
21 # La définition de la clé permettant de se connecter sur le port de contrôle du
22 # serveur DNS
23 # Cette clé est la même que celle du fichier named.conf
24 key "rndc-key" {
25 algorithm hmac-md5;
26 secret "rl5PKn38zEkMpL08A6KxDg==";
27 };
28
29 # On défini le serveur DNS et la clé à utiliser pour le mettre à jour
30 # pour la zone licence-rt.org
31 zone licence-rt.org. {
32 primary 192.168.119.131;
33 key "rndc-key";
34 }
35
36 # Idem pour la zone inverse
37 zone 100.168.192.in-addr.arpa. {
38 primary 192.168.119.131;
39 key "rndc-key";
40 }
41
42
43 # Définition du réseau déservi par ce serveur DHCP
44 subnet 192.168.119.0 netmask 255.255.255.0 {
45 # La passerelle par défaut (routeur)
46 option routers 192.168.119.2;
47
48 # Le masque du réseau
49 option subnet-mask 255.255.255.0;
50
51 # Les paramêtres DNS
52 # Nom de domaine
53 option domain-name "licence-rt.org";
54
55 # IP du serveur DNS
56 option domain-name-servers 192.168.119.131;
57
58 # On définit une plage qui sera attribuée par le serveur DHCP
59 # de 192.168.119.10 à 192.168.119.30
60 range dynamic-bootp 192.168.119.10 192.168.119.30;
61
62 # Ces variables permettent de communiquer le nom du fichier
63 # et l’adresse IP du serveur sur lequel aller le chercher dans le cas d’un boot réseau
64 filename "pxelinux.0";
65 next-server 192.168.119.131;
66 }

Vous aimerez peut-être aussi