Service DHCP sous Linux

Posted by IT NISRO 0 commentaires

1.      Introduction

DHCP (Dynamic Host Configuration Protocol) est un protocole réseau permettant d'assigner automatiquement des informations TCP/IP aux ordinateurs clients. Chaque client DHCP se connecte au serveur central DHCP, lequel renvoie la configuration réseau du client, y compris l'adresse IP, le masque de sous réseau, les adresses de la passerelle et des serveurs DNS…
Ce service permet de s'affranchir des reconfigurations manuelles des postes, suite à des déménagements ou des modifications d'architecture.
Les nœuds critiques du réseau (serveur de nom primaire et secondaire, passerelle par défaut) doivent avoir des adresses IP statiques.
Avantage:
·         il n'y a pas à gérer poste par poste les adresses dans le réseau. Chaque nœud vient chercher une adresse quand il en a besoin. Il libère cette adresse quand la session se termine.
·         si un paramètre change au niveau du réseau, comme, par exemple l'adresse de la passerelle par défaut, il suffit de changer la valeur du paramètre au niveau du serveur DHCP.
·         cela permet, dans certains cas de pouvoir adresser plus de postes qu'il n'y a d'adresses IP disponibles (cas d’un Provider)
Inconvénient:
·         Le client utilise des trames de diffusion pour rechercher un serveur DHCP sur le réseau. cela charge le réseau. Si vous avez une entreprise avec plusieurs centaines de personnes qui ouvrent leur session le matin à 8h, il peut s'en suivre de graves goulets d'étranglement sur le réseau.

2.      Fonctionnement du protocole DHCP

Chaque fois qu’un client DHCP démarre, il demande une adresse IP au serveur DHCP. Lorsque celui-ci reçoit la demande, il sélectionne une adresse IP dans une plage d’adressage définie dans sa base de données. Le serveur DHCP propose cette adresse au client DHCP. Si le client accepte l’adresse, le serveur DHCP loue l’adresse IP au client pour une période donnée. La durée par défaut d’un bail d’adresse est de huit jours, mais sa durée peut être configurée. Le client utilise ensuite cette adresse pour accéder au réseau.
à  Procédure de création de bail DHCP
L e protocole DHCP utilise un processus en quatre étapes pour louer des informations d’adressage IP aux clients DHCP : Demande de bail IP, proposition de bail IP, choix du bail IP et accusé de réception du bail IP.
·         Demande de bail IP
Le processus de création de bail commence lorsqu’un ordinateur client démarre ou initialise le protocole TC/IP pour la première fois. Il commence également lorsqu’un ordinateur client tente de renouveler son bail et est rejeté  (déplacement d’un client vers un autre sous réseaux).
Le client diffuse un message DHCPDISCOVER pour les informations d’adressage IP. Le client ne dispose pas encore d’adresse IP, Il utilise donc 0.0.0.0 comme adresse source. Étant donné que le client ne connaît pas l’adresse IP du serveur DHCP, il utilise  255.255.255.255 comme adresse de destination. Le massage est diffusé à l’ensemble des sous réseaux.
Le message de demande contient également l’adresse MAC et le nom de l’ordinateur client pour que les serveurs DHCP puissent déterminer le client qui a envoyé la demande.
·         Proposition de bail IP
Tous les serveurs DHCP qui disposent d’une adresse IP valide pour le segment de réseau auquel le client est connecté répondent avec un message DHCPOFFER, qui contient les informations suivantes :
ü L’adresse matérielle du client
ü Une adresse IP proposée
ü Un masque de sous réseau
ü La durée du bail
ü l’adresse IP du serveur DHCP qui fait la proposition
Chaque serveur DHCP qui répond réserve l’adresse IP proposée pour ne pas la proposer à un autre client avant l’acceptation par le client ayant fait la demande.
Le client DHCP attend l’offre pendant une seconde. S’il ne la reçoit pas, il rediffuse la demande quatre fois selon des intervalles de 2,4,8 et 16 secondes, plus une durée aléatoire comprise entre 0 et 1000 millisecondes.
Si le client ne reçoit pas d’offre après les quatre demandes, il utilise une adresse IP de la plage réservée comprise entre 169.254.0.1 et 169.254.255.254. Le client DHCP continue à rechercher un serveur DHCP toutes les cinq minutes.
Lorsqu’un serveur DHCP  est enfin disponible, les clients reçoivent des adresses IP valides. Ce qui leur permet de communiquer avec des hôtes internes et externes.
·          Choix du bail IP
Le client DHCP répond à la première offre qu’il reçoit en diffusant un message DHCPREQUEST pour l’accepter. Celui-ci contient l’identification du serveur dont il a accepté l’offre. Tous les autres serveurs DHCP retirent alors leur offre et conservent leurs adresses IP pour d’autres demandes de bail IP. 
·           Accusé de réception du bail IP
Le serveur DHCP qui émet l’acceptation de l’offre envoie un message d’accusé de réception DHCPACK pour notifier le bail. Ce massage contient un bail valide pour l’adresse IP et d’autres informations de configuration (passerelle par défaut, serveur DNS …..).
à Procédure de renouvellement du bail
A intervalles fixes, un client DHCP tente de renouveler son bail afin de s’assurer que se informations de configuration sont à jour.
Renouvellement automatique d’un bail
Lorsqu'un client redémarre, il tente d'obtenir un bail pour la même adresse avec le serveur DHCP d'origine, en émettant un DHCPREQUEST. Si la tentative se solde par un échec, le client continue à utiliser la même adresse IP s'il lui reste du temps sur son bail.
Un client DHCP tente automatiquement de renouveler son bail lorsque  50% sa durée a expiré. Pour renouveler un bail, le client DHCP envoie un message DHCPREQUEST directement au serveur DHCP duquel il a obtenu ce bail. Si le serveur DHCP est disponible il envoie un DHCPACK avec la nouvelle durée et éventuellement les mises à jour des paramètres de configuration.
Si le serveur DHCP n’est pas disponible, le client continue à utiliser ses paramètres de configuration actuels. Il diffuse ensuite un message DHCPDISCOVER pour mettre à jour le bail de son adresse lorsque 87,5% de la durée a expiré. A ce stade, le client DHCP accepte un bail émis par importe quel serveur DHCP.
Si  le bail expire, le client doit immédiatement cesser d'utiliser l'adresse IP en cours. Le client DHCP commence alors le processus de création d’un bail DHCP en vue d’obtenir une nouvelle adresse IP.
Renouvellement  manuel d’un bail
Vous pouvez renouveler manuellement un bail IP si vous devez mettre à jour immédiatement les informations de configuration DHCP. Par exemple, si vous souhaitez que les clients DHCP obtiennent immédiatement d’un serveur DHCP l’adresse d’un nouveau routeur, renouvelez le bail à partir du client pour changer cette configuration.
Pour renouveler le bail manuellement, utilisez les commandes :
# dhclient -r eth0
Demande au client DHCP d'abandonner l'adresse IP utilisée par l'interface réseau. (Sous Windows utilisez la commande ipconfig  /release)
# dhclient eth0
Provoque l'émission d'une demande de renouvellement du bail par le client DHCP. (Sous Windows utilisez la commande ipconfig  /renew).
à Configuration du service DHCP sur un réseau routé
Les trames arp, bootp ne traversent pas les routeurs. Sur un réseau segmenté par des routeurs il est donc impossible de servir tous les segments avec le même serveur DHCP. Pour configurer les fonctionnalités DHCP dans un environnement de réseau routé, vous avez les trois possibilités suivantes :
·         Mettre un serveur DHCP sur chaque segment. Cette méthode fournit les fonctionnalités DHCP à chaque sous réseau. Cependant, elle requiert de nombreuses tâches administratives liées au matériel supplémentaire. De plus, vous devez configurer au moins deux serveurs DHCP pour chaque segment pour la tolérance de pannes.
·         Configurer un routeur conforme à la RFC 1542 pour l’envoi des messages DHCP entre les sous-réseaux. Dans ce cas le retour transmet d’une manière sélective les diffusions DHCP à un autre sous-réseau, mais il n’envoie pas les autres messages de diffusion. Cette méthode est préférable par rapport à la première toute fois elle peut compliquer la configuration du routeur, et la communication DHCP entre plusieurs sous-réseaux est lente.
·         Configurer d’un agent de relais DHCP sur chaque sous-réseau. Un agent relais DHCP relaie les messages DHCP échangés entre un client et un serveur DHCP situés sur des sous-réseaux différents. L'agent relais doit connaître l'adresse du serveur DHCP mais ne peut pas être lui-même client DHCP. La configuration d’un agent de relais est plus facile que la configuration des autres options, et limite la diffusion au sous-réseau ou il est installé.
         Le serveur DHCP et l’agent de relais DHCP doivent avoir des adresses IP statiques. Le dialogue traverse le routeur et se fait en unicast.

Dialogue client DHCP, agent de relai DHCP et serveur DHCP
Après avoir envoyé une trame de broadcast, le client DHCP dialogue avec l'agent de relai DHCP en unicast (1). L'agent demande une adresse au serveur DHCP dont il connaît l'adresse (2). Le serveur retourne à l'agent une adresse (3) qui est donnée au client DHCP par l'agent (4).

3.      Mise en place d’un serveur DHCP

La configuration d’un serveur DHCP consiste à créer 2 fichiers:
·         /etc/dhcpd.conf, ce fichier sert à la configuration du serveur (plage d'adresses, paramètres à distribuer …)
·         /var/lib/dhcpd/dhcpd.leases, ce fichier va servir à l'inscription des clients. Chaque client DHCP, génère l'écriture d'un enregistrement dans ce fichier. Cela permet le suivi (et les statistiques) de l'activité du serveur.
3.1  Arrêt et démarrage de DHCP
Après configuration du serveur DHCP il est nécessaire de redémarrer le démon dhcpd pour qu’il prenne en compte toutes les modifications qu’on a faites au niveau du fichier dhcpd.conf :
# service dhcpd  stop|start| restart
3.2  Le fichier /etc/dhcpd.conf 
Dans un fichier /etc/dhcpd.conf simple, il y a des options globales pour tous les clients et une plage d’adresse IP qui leur est réservée.
·         Exemple de fichier /etc/dhcpd.conf :



  • Attribution statique des adresses IP
Il est nécessaire, parfois, d’attribué toujours la même adresse IP à certains équipements réseau, comme par exemple des serveurs de fichiers ou des imprimantes. L’extrait suivant du fichier /etc/dhcpd.conf, présente un exemple d’attribution d’adresse statique.
  • Mise à jour du DNS
Deux schémas de mise à jour du DNS sont actuellement mis en place :
·          le mode de mise à jour DNS ad-hoc
·          le mode de mise à jour rapide interaction DHCP-DNS par intérim.
Le serveur DHCP doit être configuré de façon à utiliser l'un de ces deux schémas. La version 3.0b2pl11 et la version précédente utilisaient le mode ad-hoc, qui a cependant été abandonné. Si vous souhaitez conserver le même comportement, ajoutez la ligne suivante en haut du fichier de configuration:
ddns-update-style ad-hoc;
Pour utiliser le deuxième mode, ajoutez la ligne suivante en haut du fichier de configuration:
ddns-update-style interim;
Consultez la page de manuel relative à /etc/dhcpd.conf pour obtenir de plus détails sur les différents modes.
  • Groupe
Comme l'illustre l’exemple suivant, l’utilisation de groupe permet d’appliquer des paramètres globaux à un groupe de déclarations.
3.3  Le fichier /var/lib/dhcpd/dhcpd.leases
Le fichier /var/lib/dhcpd/dhcpd.leases, qui ce trouve sur le serveur DHCP stocke les adresses IP attribuer aux clients DHCP. Les informations contenues dans ce fichier sont : la durée de l'attribution, le destinataire de l'attribution d'adresse IP, les dates de début et de fin pour l'attribution et l'adresse MAC de la carte d'interface réseau qui a été utilisée pour l'attribution.

Toutes les heures que l’on retrouve dans ce fichier sont des heures (GMT), et non pas des heures locales.
# more /var/lib/dhcpd/dhcpd.leases
lease        192.168.1.10 {
starts       1             2008/11/14             18:33:45;
ends        1             2008/11/14             18:34:22;
hardware ethernet                  00:40:33:2d:b5:dd;
uid          01:00:40:33:2d:b5:dd;
client-hostname "CHA100";
}
On distingue les informations suivantes (Début du bail, Fin du bail, adresse MAC du client, le nom d'hôte du client. Attention ce nom est différent du nom netbios utilisé sur les réseaux Microsoft.

4.      Configuration des clients DHCP

4.1  Configuration du client sous Windows
Pour configurer un client Windows  cliquez avec le bouton droit sur «  favoris réseau », puis avec le bouton droit sur  « connexion au réseau local » puis cliquez sur «  Protocole Internet (TCP/IP) » et on coche « Obtenir une adresse IP automatiquement».

4.2   Configuration du client sous Linux
Pour configurer manuellement un client DHCP, vous devez modifier le fichier /etc/sysconfig/network afin d'activer la mise en réseau. Ce fichier doit contenir la ligne suivante:
NETWORKING=yes
Les fichiers paramétrant les périphériques réseau doivent aussi être modifiés. Par exemple pour activer le client DHCP de l’interface eth0, le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 doit contenir les lignes ci-dessous:

La configuration de la carte est terminée, vous pouvez tester en relançant le service réseau :
# service network restart

5.       Test du fonctionnement du serveur DHCP

Le test du bon fonctionnement du serveur DHCP consiste à vérifier si les clients arrivent à communiquer avec le serveur et à obtenir des adresses IP de la plage que celui ci fournie.
5.1  Test au niveau du client Linux
  Après toute configuration faite au niveau du serveur et du client Linux, lancez la commande ifconfig.

5.2  Test au niveau du client sous Windows
Pour vérifier si le client Windows a récupéré une adresse IP du serveur DHCP lancez la commande ipconfig /all à partir de l’invite de commandes.


Membres

Formulaire de contact

Nom

E-mail *

Message *