DHCP
Aymen Ayari
Email : [email protected]
ISI du KEF
AU 2020-2021
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
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.
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
192.168.0.9 192.168.0.253 DHCPRequest
192.168.0.253 192.168.0.9 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 la Niveau
poule physique
Au 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 la Niveau
poule réseau
Au 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:
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 - 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.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 24
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 25
e DHCPDiscover
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
26
Adresse DHCPOffer adresse
physique du physique
serveur DHCP 00.00.b4:bb:7d:ee du client
00:20.8f:b9:49:37
Adresse
IP 192.168.0.253
serveur
DHCP
67
68
Port
source Message DHCPDiscover
datagamm 27
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 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
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
31
Client DHCP Broadcast ARP 192.168.0.9?
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/dhcpd.conf
37
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;
38
}
Références
• 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
39