DHCP

Contributeurs

(SIO1-2017) Simon Lemelletier, Adrien Tanner
(SIO2-2019) Antoine Reux, Jessy Tranchant

PRINCIPE

Le rôle du service DHCP (Dynamic Host Configuration Protocol) est de centraliser et gérer l'allocation des informations de configuration du protocole TCP/IP en affectant automatiquement des adresses IP aux ordinateurs clients du réseau.
Le protocole DHCP est une extension du protocole BOOTP (Bootstrap Protocol) basé sur le protocole UDP/IP. BOOTP permet à un hôte de s’auto-configurer dynamiquement.
L'affectation d'une adresse IP peut être faite de deux manières différentes, manuellement ou automatiquement.

Configuration manuelle

L'administrateur du réseau affecte, à chaque machine cliente, une adresse IP différente, un masque de sous-réseau et une passerelle par défaut. Ces informations doivent être gérées de manière stricte afin d'éviter les erreurs ou les doublons.
De même, tout ordinateur déplacé doit avoir ses paramètres de configuration IP mis à jour, ce qui induit une surcharge de travail pour l'administrateur.

Configuration automatique à l'aide de DHCP

Toutes les informations de configuration d'adresse IP sont automatiquement gérées par le serveur DHCP, évitant ainsi les conflits réseau.
Les avantages pour l'Administrateur réseau sont multiples :

  • Diminution voire suppression du risque de conflits d'adresses IP,
  • Meilleure rentabilité de travail,
  • Grande facilité de modification de la politique d'adressage globale,
  • Possibilité de combiner les deux types de configuration dans le même réseau.

Mise en œuvre de DHCP

Le système nécessite au moins un ordinateur serveur DHCP dans le réseau (cela sous-entend qu'il peut y avoir plusieurs serveurs DHCP).

Principe de fonctionnement

Au démarrage, un client DHCP s’adresse au serveur DHCP afin d’obtenir une adresse ou un bail DHCP. Le processus s’effectue en quatre étapes :

1 - Demande de bail IP (DHCPDISCOVER) : le client initialise une version limitée du protocole TCP/IP et émet une demande d'adresse IP à l’encontre d’un serveur DHCP ; la communication s'effectue par le port UDP 67 du client vers le port UDP 68 du serveur. Le client ne connaissant pas l’adresse du ou des serveurs DHCP, il utilise 0.0.0.0. comme adresse source et 255.255.255.255 (broadcast) comme adresse de destination. Le message DHCPDISCOVER contenant l’adresse matérielle (MAC) et le nom de l’ordinateur demandeur, tout serveur DHCP peut identifier la machine à l’origine de la requête.

2 - Offre de bail (DHCPOFFER) : tous les serveurs DHCP possédant des adresses valides envoient une offre au client (message par diffusion) ; ce message, émis à partir du port UDP 67 du serveur vers le port UDP 68 du client, contient :

  • l’adresse matérielle du client,
  • une proposition d’adresse IP,
  • un masque de sous-réseau,
  • la durée du bail,
  • l’adresse IP du serveur DHCP à l’origine de l’offre.


3 - Sélection du bail IP (DHCPREQUEST) : le client sélectionne l'adresse IP de la première offre qu'il reçoit et émet un message indiquant, à tous les serveurs DHCP, l’adresse du serveur sélectionné.

4 - Accusé de réception du bail IP (DHCPACK) : le serveur DHCP sélectionné répond au message par un accusé de réception et affecte les informations d'adressage au client.

Un ordinateur possédant plusieurs cartes réseau se verra attribuer une adresse IP unique pour chaque carte.

DHCPNACK : c’est un accusé de réception négatif émis par un serveur DHCP à un message DHCPREQUEST. Cela intervient lorsqu’un client tente d’obtenir le bail de son ancienne adresse IP et celle-ci n’est plus disponible ou lorsque l’ordinateur a été déplacé vers un autre sous-réseau.

Définition d'une étendue DHCP

Une fois le service Serveur DHCP installé et démarré sur un serveur, il est nécessaire d'indiquer l'étendue des adresses IP pouvant être affectées à des ordinateurs clients. Un serveur DHCP ne pourra affecter plus d'adresses que le nombre d'adresses comprises dans l'étendue déclarée.
Si plusieurs serveurs DHCP sont configurés sur un même réseau, les étendues d'adresses doivent être différentes afin qu'une même adresse ne puisse être affectée deux fois à deux ordinateurs différents et ainsi occasionner des conflits d'adressage.
Les différents paramètres inhérents à l'étendue sont disponibles dans les Propriétés de celle-ci.

Notion de bail

Le bail est la durée pour laquelle une adresse IP est réservée pour un client.
Cette durée peut être limitée (exprimée en jours/heures/minutes) ou illimitée.
Lorsque la moitié du temps du bail est écoulée, tout client tente de renouveler son bail au moyen du message DHCPREQUEST adressé au serveur DHCP.
En cas de réponse favorable (DHCPACK), le serveur renouvelle le bail pour une nouvelle durée.
Si le serveur ne répond pas, le client garde la même adresse et attend que 87.5% de la durée du bail soit écoulée pour diffuser un nouveau message DHCPREQUEST auprès de tout serveur DHCP. Le client peut se voir renouveler son bail par un autre serveur ou recevoir un DHCPNACK l’obligeant à réinitialiser sa configuration.
A chaque fin de bail ou réception d’un DHCPNACK, le client doit libérer son adresse et recommencer un processus de bail.
A chaque redémarrage, un client tente de renouveler le bail de son adresse IP. Si la fin de son bail n'est pas atteinte, il reprend alors le processus à l'étape 3 (DHCPREQUEST) pour garder la même adresse et obtenir ainsi un DHCPACK de la part du serveur.

Lors de l'arrêt de sa machine, un client ne libère pas son adresse, son bail est donc réservé pendant toute sa durée.

Options

Les options DHCP viennent compléter le paramétrage d'une étendue ; il est ainsi possible d'indiquer l'adresse d'un routeur, l'adresse d'un serveur DNS…
Chaque option est reconnue par un code, un type de donnée et une valeur. La longueur du message est fixe ou variable et sa valeur est indiquée dans ce message.

Nom de l'option Code Message
PAD 0 Tous les messages
Masque de sous-réseau 1 Tous les messages
Routeur 3 Demandé par le client
Serveur DNS 6 Demandé par le client
Nom de l'hôte 12 Tous les messages
Nom de domaine DNS 15 Demandé par le client
Découvrir les routeurs 31 Demandé par le client
Option d'itinéraire statique 33 Demandé par le client
Informations spécifiques au fournisseur 43 Tous les messages
Nom du serveur WINS 44 Demandé par le client
Type de nœud pour la résolution de nom Netbios 46 Demandé par le client
ID de l'étendue Netbios 47 Demandé par le client
Adresse demandée 50 Tous les messages
Durée du bail 51 Tous les messages
Type de message DHCP 53 Tous les messages
Identificateur du serveur 54 Tous les messages
Liste des paramètres demandés 55 Tous les messages
Durée T1 58 Tous les messages
Durée T2 59 Tous les messages
Identificateur client 61 Tous les messages
Mise à jour DNS dynamique 81 Tous les messages
Itinéraires statiques sans classe 121 Demandé par le client
Itinéraires statiques sans classe 249 Demandé par le client
Fin 255 Tous les messages

Liaison avec DNS

DNS est statique, c'est-à-dire que toute modification apportée au domaine doit être répercutée manuellement dans le fichier de base de données de la zone sur le serveur de noms principal.
DDNS est le système Dynamique de DNS où les serveurs de noms et les clients mettent à jour automatiquement les fichiers de base de données de la zone.
DDNS agit en relation avec DHCP. A chaque nouvelle affectation d'adresse, le service DHCP en informe le serveur de noms DNS. De même, lors de l'expiration d'un bail, la référence de l'adresse libérée est supprimée de la base de données de la zone DNS.
La mise à jour de DNS par DHCP est paramétrable dans les Propriétés de l'étendue.

Réservation d'adresse

Certains matériels nécessitent une adresse fixe. Pour cela, la réservation d'adresse permet d'assigner une adresse IP fixe à un matériel en fonction de son adresse physique (MAC).

Relai

Par défaut, le serveur DHCP et les clients doivent se trouver dans le même réseau ; cela s'explique par le fait qu'un routeur bloque les messages de diffusion.
Néanmoins, il peut être nécessaire pour un client d'accéder à un serveur DHCP ne se trouvant pas dans le même réseau, cela évite ainsi de multiplier les serveurs.
La solution la plus directe est d'activer le routage des messages de diffusion de type BOOTP (UDP 67 et 68) sur le routeur reliant les réseaux du client et du serveur.
Le problème est que certains routeurs ne sont pas compatibles avec cette solution ; il est donc nécessaire de passer par un agent relai DHCP.
Cet agent agit comme un proxy entre le client et le serveur ; il intercepte toutes les demandes DHCP émises en diffusion et les transmet au serveur en monodiffusion.

INSTALLATION WINDOWS

Le paramétrage d'un serveur DHCP est possible aussi bien au travers de l'interface graphique que par commandes clavier.
Il suffit d'utiliser un éditeur de scripts (netsh par exemple).

  • Création d'une étendue

netsh dhcp server <adresseserveur> add scope <adresseréseau> <masque> <nométendue>

netsh dhcp server 172.16.10.1 add scope 172.16.10.0 255.255.255.0 Toutissus


  • Définition des adresses de l'étendue

netsh dhcp server <adresseserveur> scope <adresseréseau> add iprange <adressedébut> <adressefin>

netsh dhcp server 172.16.10.1 scope 172.16.10.0 add iprange 172.16.10.30 172.16.10.50


  • Définition du bail

netsh dhcp server <adresseserveur> scope <adresseréseau> optionvalue <codeoption> dword <valeur>

netsh dhcp server 172.16.10.1 scope 172.16.10.0 optionvalue 051 dword "3600"


Lorque un problème survient sur le réseau, il arrive que la réponse du serveur dhcp soit trop longue ; dans ce cas, le protocole APIPA (Automatic Private Internet Protocol Addressing) prend le relai sur la machine cliente pour attribuer localement une adresse de type 169.254.x.x

Commandes

  • à partir du client, libère l'adresse IP
Ipconfig /release 
  • à partir du client, demande une adresse IP au serveur
Ipconfig /renew


INSTALLATION LINUX

Installation du service DHCP sur Debian :

apt-get install isc-dhcp-server

Le code d'erreur qui s'affiche à la fin d'installation est normal car le service n'est pas encore configuré.

Configuration

La configuration se passe dans le fichier /etc/dhcp/dhcpd.conf.

On pourra alors configurer :

  1. la plage
  2. la passerelle distribuée
  3. les serveurs DNS
  4. de multiples autres options

Exemple

Voici un passage du fichier :

subnet 172.27.0.0 netmask 255.255.0.0 { #l'adresse réseau et son masque
	option routers 172.27.0.254; #l'adresse du routeur
	range 172.27.0.1 172.27.0.127; #la plage d'adresse que le DHCP distribue
	option domain-name-servers 172.20.0.6, 172.20.0.5; #l'adresse des serveurs DNS
}

Une fois la configuration terminée, il faut redémarrer le service DHCP avec la commande service isc-dhcp-server status.

Si le statut est “Failed”, il faut supprimer le fichier “dhcpd.pid” à l'arborescence /etc/default/. Refaire la démarche de test (redémarrer, vérifier le statut…).

UPDATES

We've started shipping!

Posted 2 days ago

Suspendisse luctus at massa sit amet bibendum. Cras commodo congue urna, vel dictum velit bibendum eget. Vestibulum quis risus euismod, facilisis lorem nec, dapibus leo. Quisque sodales eget dolor iaculis dapibus. Vivamus sit amet lacus ipsum. Nullam varius lobortis neque, et efficitur lacus. Quisque dictum tellus nec mi luctus imperdiet. Morbi vel aliquet velit, accumsan dapibus urna. Cras ligula orci, suscipit id eros non, rhoncus efficitur nisi.

Launch begins manufacturing

Posted 9 days ago

Suspendisse luctus at massa sit amet bibendum. Cras commodo congue urna, vel dictum velit bibendum eget. Vestibulum quis risus euismod, facilisis lorem nec, dapibus leo. Quisque sodales eget dolor iaculis dapibus. Vivamus sit amet lacus ipsum. Nullam varius lobortis neque, et efficitur lacus. Quisque dictum tellus nec mi luctus imperdiet. Morbi vel aliquet velit, accumsan dapibus urna. Cras ligula orci, suscipit id eros non, rhoncus efficitur nisi.

Designs have now been finalized

Posted 17 days ago

Suspendisse luctus at massa sit amet bibendum. Cras commodo congue urna, vel dictum velit bibendum eget. Vestibulum quis risus euismod, facilisis lorem nec, dapibus leo. Quisque sodales eget dolor iaculis dapibus. Vivamus sit amet lacus ipsum. Nullam varius lobortis neque, et efficitur lacus. Quisque dictum tellus nec mi luctus imperdiet. Morbi vel aliquet velit, accumsan dapibus urna. Cras ligula orci, suscipit id eros non, rhoncus efficitur nisi.