Vous êtes sur la page 1sur 41

DHCP

(Dynamic Host Configuration Protocol)


M.OUBROU Aderrahmane

DHCP [RFC 2131 – 1997]


BUT
Permet à un ordinateur qui se connecte sur un
réseau local d'obtenir et de configurer
dynamiquement et automatiquement :
Son adresse IP
masque de son sous-réseau
passerelle par défaut
adresse IP du serveur DNS
nom de son domaine
Fonctionnement
Lorsque vous connectez un ordinateur sur le réseau
il n’a aucune connaissance de son adresse IP
Par contre il connait:
son adresse Mac
L’adresse de broadcast
Demande de bail/adresse IP
Le poste client vient de se connecter, il n’a pas @IP
En DHCP une adresse IP n’est fournit que pour un
temps donné : Le bail. C’est pourquoi on parle de
demande de bail plutôt que d’adresse IP

Un bail a une durée : lease-time


Demande de bail - UN serveur DHCP

time 1
DHCPDiscover
client
DHCPOffer
2 serveur
3 DHCPRequest

DHCPAck 4
t0
C’est SEULEMENT après t0 que le client peut utiliser
l’adresse IP communiquée par le serveur jusqu’à
t0 + lease-time
6
Trames DHCP
DHCPDISCOVER :Permet de trouver un
serveur DHCP. La trame est une trame de
« broadcast », elle est envoyée à l’adresse
255.255.255.255. Le client n’ayant pas d’adresse
prend l’adresse 0.0.0.0

DHCPOFFER : contient une proposition de


bail, l’adresse IP du serveur et l’adresse Mac du
client.
DHCPREQUEST : indique à tous les serveurs
quel bail il a accepté et/ou demande de
renouvellement de bail
DHCPACK : le serveur confirme le bail.
Renouvellement de bail
A la moitié du bail, le client demande le renouvellement
(prolongation de son bail), il n’y aura alors que les trames
DHCPREQUEST et DHCPACK qui seront échangées.
Si au bout des 7/8 du bail pas de réponse du serveur (ie
pas de DHCPACK) alors le client essayera de joindre un
serveur DHCP quelconque sur le réseau.

Lors du renouvellement, le client utilise l’adresse IP


donnée précédemment par le serveur

Un renouvellement est donc beaucoup plus simple


Demande de renouvellement de bail
time
client 3 DHCPRequest

serveur
DHCPAck
4
t1

Le client peut utiliser l’adresse IP communiquée


par le serveur jusqu’à t1+lease-time

9
Les paquets IP échangés Lors d’un
renouvellement de bail

Source Destination Protocol Info

192.168.0.9 192.168.0.253 DHCPRequest


192.168.0.253 192.168.0.9 DHCPAck

10
Message DHCP
Message DHCP
Envoyé par le Client
DHCPDISCOVER demande de localisation des
serveurs DHCP
DHCPREQUEST demande de bail
DHCPDECLINE refus d’adresse IP, elle est déjà
utilisée
DHCPRELEASE libération son bail
DHCPINFORM demande de paramètres locaux
(autre qu’une adresse IP)
Message DHCP
Envoyé par le Serveur
DHCPOFFER réponse à un DHCPDISCOVER
DHCPACK contient des paramètres et l'adresse IP
du client
DHCPNAK refus de bail
Problème de
l’œuf et de la poule
Encapsulation d’un message DHCP
Encapsulation d’un message DHCP

Trame contenant un BOOTP DHCP


message « DHCP »

UDP

IP Message
Eth UDP
DHCP
IP

par exemple
Ethernet
Trame contenant un message DHCP
Adresse physique de l’émetteur
Ethernet Adresse physique du destinataire de
la trame

Adresse IP source
IP
Adresse IP destinataire du paquet IP
Port source
UDP
Port destination du datagramme

Message DHCP
16
Niveau
Le Problème de l’oeuf et la poule
physique

A moment de la demande de bail,

Est-ce que le client connaît son adresse physique ?

Est-ce que le client connaît l’adresse physique du serveur


DHCP ?

QUE FAIRE ???


17
Niveau
Le Problème de l’oeuf et la poule
réseau
A moment de la demande de bail,
Est-ce que le client connaît l’adresse IP du serveur DHCP
?

Est-ce que le client connaît son adresse IP ?

Est-ce que le serveur DHCP connaît l’adresse


IP du client?

QUE FAIRE ???


DIFFUSION niveau physique

Diffusion (broadcast) distribution de la requête DHCP à


tous les postes connectés

Client
DHCP Adresse de
diffusion:
ff:ff:ff:ff:ff:ff

19
DIFFUSION niveau réseau

Diffusion (broadcast) distribution de la requête DHCP à


tous les postes connectés

Client Utilsation de
DHCP l’adresse IP de
diffusion générique
255.255.255.255

20
Niveau Transport - requêtes
Le client DHCP envoie la requête sur le port 67. Le
serveur DHCP écoute sur le port 67.

Client
Serveur DHCP
DHCP 67

21
Niveau Transport - requêtes
Le client DHCP envoie la requête sur le port 67. Le
serveur DHCP écoute sur le port 67.

Client
Serveur DHCP
DHCP 67

22
Niveau Transport - réponses

Le serveur DHCP envoie la requête sur le port 68. Le


client DHCP écoute sur le port 68.

Client
Serveur DHCP
DHCP 68

23
DHCP : le client utilise un port réservé

Port serveur DHCP 67


Port Client DHCP 68

Client Serveur
DHCP DHCP
65 65
66 66
67 67
68 68
69 69
24
Trame contenant un DHCPDiscover

00:20.8f:b9:49:37

Ethernet ff:ff:ff:ff:ff:ff

0.0.0.0
IP
255.255.255.255

68
UDP 67

Message DHCPDiscover
25
Adresse Trame contenant
physique du DHCPDiscover
client DHCP
00:20.8f:b9:49:37
adresse
ff:ff:ff:ff:ff:ff physique de
Adresse diffusion
IP 0.0.0.0
« neutre »
Adresse IP
255.255.255.255
de
68 diffusion
générique
Port 67
source
datagamm Message
e DHCPDiscover 26
Trame contenant un DHCPOffer

00.00.b4:bb:7d:ee

Ethernet 00:20.8f:b9:49:37

192.168.0.253
IP

67
UDP 68

Message DHCPDiscover
27
adresse
Adresse DHCPOffer
physique du
physique
serveur DHCP 00.00.b4:bb:7d:ee du client

00:20.8f:b9:49:37

Adresse
IP serveur 192.168.0.253
DHCP

67
68
Port
source Message DHCPDiscover
datagamm
28
e
Trame contenant un DHCPRequest

00:20.8f:b9:49:37

Ethernet ff:ff:ff:ff:ff:ff

0.0.0.0
IP
255.255.255.255

68
UDP 67

Message DHCPRequest29
Demande de baux
DES serveurs DHCP

serveur client serveur


DHCPDiscover DHCPDiscover
DHCPOffer
DHCPOffer

DHCPRequest
DHCPRequest

Le client refuse DHCPAck


mon offre
time
30
Bilan des échanges lors d’une
demande de bail
Les paquets IP échangés
Source Destination Protocol Info
0.0.0.0 255.255.255.255 DHCPDiscover

# le serveur DHCP vérifie que l’adresse IP qu’il veut offrir


n’est pas utilisée
Serveur DHCP Broadcast ARP
192.168.0.9?
192.168.0.253 DHCPOffer
0.0.0.0 255.255.255.255 DHCPRequest
192.168.0.253 192.168.0.9 DHCPACK

# le client vérifie via ARP que personne n’utilisa sa nouvelle


adresse
Client DHCP Broadcast ARP
192.168.0.9?
Format d’un message DHCP
Dynamic Host Configuration Protocol
DHCP a été conçu comme complément de
BOOTP- Bootstrap Protocol –

BOOTP: [RFC 951 - 1985]

Protocole de démarrage
Une station récupère les informations pour
s’amorcer (« booter ») sur un serveur
« d’amorçage » distant
Format d’un message BOOTP
OP HTYPE HLEN HOPS
identifiant session
secs flags
adresse IP client (écrit par le client)
adresse IP client (proposée par le serveur)
serveur adresse IP
gaterway adresse IP
adresse physique du client
nom du serveur
Fichier d’amorçage
OPTION 35
Format d’un message DHCP
OP HTYPE HLEN HOPS
identifiant session
secs flags
adresse IP client (écrit par le client)
adresse IP client (proposée par le serveur)
serveur adresse IP
gaterway adresse IP
adresse physique du client
nom du serveur
Fichier d’amorçage
OPTIONS définies dans DHCP 36
Sous Unix/Linux
Sous Unix/Linux
Client DHCP : dhclient
Serveur DHCP : dhcpd
Fichier de configuration du serveur : /etc/dhcpd.conf
Exemple de fichier dhcpd.conf
# option definitions common to all supported networks...
option domain-name "voip.u-psud.fr";
option domain-name-servers 129.175.34.35, 129.175.36.37;
option option-150 code 150 = ip-address;
option option-150 192.168.200.10;

default-lease-time 600;
max-lease-time 7200;
subnet 172.16.2.0 netmask 255.255.255.128 {
#VOIP IPN bat 106 - vlan 1201
range 172.16.2.4 172.16.2.126;
option routers 172.16.2.1;
}

subnet 172.16.2.128 netmask 255.255.255.128 {


#VOIP CSNSM bat 104 - vlan 1204
range 172.16.2.132 172.16.2.254;
option routers 172.16.2.129;
}

39
Documentation
http://christian.caleca.free.fr/dhcp/

http://www.frameip.com/dhcp/

RFC en Français : http://abcdrfc.free.fr/

Manuel de dhcpd, de dhclient, et de dhcpd.conf

Vous aimerez peut-être aussi