Vous êtes sur la page 1sur 6

Master Réseaux informatiques et système embarqués

Cours Réseaux Informatique

TP n° 2
Mise en place d’un serveur DHCP

Objectifs :

L’objectif de ce TP est l’installation, configuration et test d’un serveur


DHCP sous Linux.

Pour ce faire, nous allons procéder aux étapes suivantes :

- Installer et configurer un serveur DHCP Linux sur un réseau Ethernet;


- Configurer des clients Windows et Linux sur ce réseau.
- Observer le fonctionnement du protocole DHCP à travers l’analyse des
captures de Wireshark;

ANNÉE UNIVERSITAIRE 2018/ 2019 -1-


Introduction

DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un


ordinateur d'obtenir dynamiquement (c'est-à-dire sans intervention particulière) sa
configuration (principalement, sa configuration réseau). Vous n'avez qu'à spécifier à
l'ordinateur de se trouver une adresse IP tout seul par DHCP. Le but principal étant la
simplification de l'administration d'un réseau.
Parmi les versions libres du serveur DHCP, on trouve celui d’ISC (Internet Software
Consortium)qui suit au mieux les RFCs et c’est celui que nous allons utiliser durant ce
TP.

Déroulement du TP

Durant ce TP nous allons avoir besoin de trois machines, une machine Linux pour le serveur DHCP
et les deux autres pour les clients : machine Linux (M1) et machine Windows (M2).

I. Configuration du fichier ‘dhcpd.conf’ :

1. Sur la machine du serveur DHCP,au niveau du fichier de configuration ‘dhcpd.conf’, nous


devons spécifier les éléments suivants, pour le faire fonctionner :

• Authoritative

• ddns-update-style none

• subnet
Subnetnumero_sous-reseaunetmasknetmask {
………………
……………...
}

• Range

ANNÉE UNIVERSITAIRE 2018/ 2019 -2-


1. Configuration du bail :

Il existe une subtile différence entre les directives max-lease-time et default-lease-time, la page
"man dhcpd.conf" vous indiquera quelle est cette différence.

Exemple de configuration:

default-lease-time 3600;
max-lease-time 7200;

2. Interaction avec un serveur DNS et une éventuelle passerelle :

Il existe des paramètres de configuration optionnels, mais très utiles dans la pratique. Ci-dessous
les plus importants:

• domain-name-servers : elle attribue aux hôtes une adresse de DNS. Dans l'exemple, notre
DNS à nous. Si nous n'en avons pas, il faudra ici mettre l'IP du DNS de notre fournisseur
d'accès. Eventuellement, nous pouvons spécifier plusieurs DNS.

Exemple:
option domain-name-servers 192.168.1.1;

• domain-name : est vraiment optionnel, ça permettra aux clients de savoir dans quel
domaine ils sont enregistrés

Exemple :
option domain-name ".example.com";

• routers : c'est la passerelle par défaut. Il pourrait y avoir plusieurs routeurs, mais tous les
systèmes ne savent pas gérer de façon efficace une information contenant plusieurs
passerelles.

Exemple :
optionrouters 192.168.1.10;
optionsubnet-mask 255.255.255.0;

3. Autres configurations :

• ignore client-updates : on ignore les mises à jour des clients

• allowunknown-clients : C'est en principe la configuration par défaut, mais autant le


spécifier. Ca veut dire que le DHCP acceptera tous les clients qui feront une requête DHCP.
Dans le cas contraire, le serveur ne répondrait qu'aux machines dont il connaît l'adresse
MAC.

Toutes les options qui figurent avant le paragraphe "subnet 192.168.0.0 netmask 255.255.255.0"
sont des options globales, il n'ya ici aucune option d'étendue (de sous-réseau) de définie.

ANNÉE UNIVERSITAIRE 2018/ 2019 -3-


II. Réalisation des Tests

a. Test 1 : Obtention et libération d’une adresse IP :

1. Après la configuration du serveur DHCP, il faudra le redémarrer pour prendre en considération


les changements effectués, grâce à la commande :

servicedhcpd restart

2. Au niveau de la machine cliente Linux (M1), assurez-vous que l’interface réseau est désactivée.

3. Lancez Wireshark sur la machine Windows.

4. Toujours au niveau de la machine cliente (M1), démarrez l’interface réseau de la machine M1 (#


ifup eth0), puis vérifiez l’adresse IP de la machine M1, qu’est ce que vous remarquez ?

5. Sur la machine cliente Linux(M1), faites ifdown eth0 puis réactivez l’interface avec ifup eth0.
Que constatez-vous à présent?

6. A présent, analysez le trafic DHCP capturé par Wireshark.

b. Test 2 : Changement du bail :

1. Changez le bail d’adresses dans le fichier ‘dhcp.conf’, en mettant une valeur assez petit (pour
atteindre rapidement l’expiration du bail).

2. Lancez la capture de wireshark.

3. Sur la machine M1, désactivez puis activez l’interface réseau pour qu’elle obtienne une
nouvelle adresse IP avec le nouveau bail.

4. Attendez que le bail expire, puis analysez les messages capturés par Wireshark. Qu’est ce que
vous observez ?

c. Test 3 : Fixer une adresse IP d’une machine cliente à partir du serveur DHCP
Dans ce test, nous voulons fixer une adresse IP pour le client windows M2, mais toujours à partir du
serveur DHCP.Pour cela nous allons effectuer les étapes suivantes :

1. Récupérer le nom de la machine client windows et son adresse MAC


2. Rajouter les lignes suivantes dans le fichier ‘dhcpd.conf’ :

Host M2 {
Hardware ethernet00 :0C :29 :AC :50 :15 ; # ici, indiquer l’@MAC de M2
Fixed-address 192.168.1.50 ;
}

3. Lancez wireshark sur M2, pour capturer le trafic entre le client M2 et le serveur DHCP.

4. Redémarrer le service dhcp et faites le test sur le client. Qu’est ce que vous remarquez ?

5. Sur la machine M2, faites ifdow eth0 puis réactivez l’interface avec ifup eth0. Que constatez-
vous à présent?
6. Observez et analysez le trafic DHCP capturé.

ANNÉE UNIVERSITAIRE 2018/ 2019 -4-


Annexe :
Fichier: /usr/share/doc/dhcp-4.1.0p1/dhcpd.conf.sample

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...


option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# Use this to enble / disable dynamic dns updates globally.


#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the


# DHCP server to understand the network topology.

subnet 10.152.187.0 netmask 255.255.255.0 {


}

# This is a very basic subnet declaration.

subnet 10.254.239.0 netmask 255.255.255.224 {


range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

# This declaration allows BOOTP clients to get dynamic addresses,


# which we don't really recommend.

subnet 10.254.239.32 netmask 255.255.255.224 {


range dynamic-bootp 10.254.239.40 10.254.239.60;
option broadcast-address 10.254.239.31; option
routers rtr-239-32-1.example.org;
}

# A slightly different configuration for an internal subnet.


subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";

ANNÉE UNIVERSITAIRE 2018/ 2019 -5-


option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}

# Hosts which require special configuration options can be listed in


# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

host passacaglia {
hardwareethernet 0:0:c0:5d:bd:95;
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";
}

# Fixed IP addresses can also be specified for hosts. These addresses


# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host fantasia {
hardwareethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}

# You can declare a class of clients and then do address allocation


# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

class "foo" {
match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}

shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of "foo";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "foo";
range 10.0.29.10 10.0.29.230;
}
}

ANNÉE UNIVERSITAIRE 2018/ 2019 -6-

Vous aimerez peut-être aussi