IUT d'Orsay
réseaux
DHCP
Dynamic Host Configuration Protocol
DHCP [RFC 2131 - 1997 ]
1
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
2
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
3
Demande d’adresse IP
4
Demande de bail/adresse IP
• Le poste client vient de se connecter, il n’a pas
d’adresse 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
5
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 [Link]. Le client n’ayant pas d’adresse
prend l’adresse [Link]
• 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.
7
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
8
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
[Link] [Link] DHCPRequest
[Link] [Link] DHCPAck
10
Message DHCP
11
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)
12
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
13
Problème de
l’œuf et de la poule
Encapsulation d’un message
DHCP
14
Encapsulation d’un message DHCP
Trame contenant un BOOTP DHCP
message « DHCP »
UDP
IP Message
Eth UDP
DHCP
IP
par exemple
Ethernet
15
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
Le Problème de l’oeuf et Niveau
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
Le Problème de l’oeuf et Niveau
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 ???
18
DIFFUSION niveau
physique
• Diffusion (broadcast) distribution de la requête
DHCP à tous les postes connectés
Client
DHCP Adresse de
diffusion:
[Link]
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
[Link]
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 - 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
22
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
23
Trame contenant un DHCPDiscover
00:20.[Link]
Ethernet [Link]
[Link]
IP
[Link]
68
UDP 67
Message DHCPDiscover 24
Adresse Trame contenant
physique du DHCPDiscover
client DHCP
00:20.[Link]
adresse
[Link] physique de
Adresse diffusion
IP [Link]
« neutre »
Adresse IP
[Link]
de
68 diffusion
générique
Port 67
source
datagamm Message
e DHCPDiscover 25
Trame contenant un DHCPOffer
00.00.[Link]
Ethernet 00:20.[Link]
[Link]
IP
67
UDP 68
Message DHCPDiscover
26
Adresse DHCPOffer adresse
physique du
physique
serveur DHCP 00.00.[Link] du client
00:20.[Link]
Adresse
IP serveur [Link]
DHCP
67
68
Port
source Message DHCPDiscover
datagamm
27
e
Trame contenant un DHCPRequest
00:20.[Link]
Ethernet [Link]
[Link]
IP
[Link]
68
UDP 67
Message DHCPRequest 28
Demande de baux
DES serveurs DHCP
serveur client serveur
DHCPDiscover DHCPDiscover
DHCPOffer
DHCPOffer
DHCPRequest
DHCPRequest
Le client refuse DHCPAck
mon offre
time
29
Bilan des échanges lors
d’une demande de bail
30
Les paquets IP échangés
Source Destination Protocol Info
[Link] [Link] DHCPDiscover
# le serveur DHCP vérifie que l’adresse IP qu’il veut offrir
n’est pas utilisée
Serveur DHCP Broadcast ARP [Link]?
[Link] DHCPOffer
[Link] [Link] DHCPRequest
[Link] [Link] DHCPACK
# le client vérifie via ARP que personne n’utilisa sa nouvelle
adresse
Client DHCP Broadcast ARP [Link]?
31
Format d’un message DHCP
32
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
33
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 34
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 35
Sous Unix/Linux
36
Sous Unix/Linux
• Client DHCP : dhclient
• Serveur DHCP : dhcpd
• Fichier de configuration du serveur :
/etc/[Link]
37
Exemple de fichier [Link]
# option definitions common to all supported networks...
option domain-name "[Link]";
option domain-name-servers [Link], [Link];
option option-150 code 150 = ip-address;
option option-150 [Link];
default-lease-time 600;
max-lease-time 7200;
subnet [Link] netmask [Link] {
#VOIP IPN bat 106 - vlan 1201
range [Link] [Link];
option routers [Link];
}
subnet [Link] netmask [Link] {
#VOIP CSNSM bat 104 - vlan 1204
range [Link] [Link];
option routers [Link];
38
}
Remerciement
• [Link]
• [Link]
• RFC en Français : [Link]
• Manuel de dhcpd, de dhclient, et de
[Link]
39