[logoP5] [logoCDC]





Des questions, des incertitudes. Voici des éléments de réponse pour :


2. Le service dhcp

Article écrit par : Thierry Raedersdorff

DHCP : Dynamic Host Configuration Protocol

Introduction

Le service DHCP fournit des paramètres de configuration à des machines désirant se connecter à un réseau local. Il est décrit par la RFC 2131 et utilise les ports 67 et 68.

Le service DHCP se compose de deux parties :

-  Une méthode d’attribution de numéro IP à la machine cliente.
-  Un protocole permettant la transmission de paramètres de configuration complémentaires.

Le service DHCP est construit sur un modèle Client/Serveur.

-  Serveur qui fournit des paramètres d’initialisation réseau.
-  Client qui demande l’obtention de paramètres d’initialisation pour s’intégrer au réseau local.

Le service DHCP fournit un cadre pour transmettre des informations de configuration à des machines d’un réseau TCP/IP. Ce service est basé sur le Bootstrap protocol, il peut donc jouer le rôle d’un serveur BOOTP, en ajoutant la possibilité d’attribuer automatiquement des adresses réseaux réutilisables pour une durée limitée (bail) ainsi que des options de configurations complémentaires. Après obtention des paramètres fournis par un serveur DHCP, un client doit être capable d’échanger des informations avec n’importe quelle machine de l’internet.

Site de référence www.isc.org/products/DHCP

— -

Les objectifs détaillés du service DHCP

-  Le protocole doit permettre à l’administrateur d’imposer les paramètres de configuration désirés.

-  Aucune configuration manuelle ne doit être nécessaire au niveau du client (hormis celle de lui indiquer d’utiliser DHCP).

-  Le protocole doit donner la possibilité d’intégrer un client sans modification manuelle de la configuration du réseau.

-  Un client DHCP doit prévoir qu’il peut recevoir des réponses multiples à une requête. Il peut y avoir plusieurs serveurs DHCP actifs simultanément pour assurer une redondance du service et optimiser les performances d’accès.

-  Le protocole DHCP doit coexister avec des machines configurer statiquement.

-  Le protocole doit garantir l’unicité d’une adresse IP dans le réseau.

-  Un client DHCP doit conserver sa configuration lors du renouvellement de son bail.

-  Le protocole doit maintenir la configuration des clients DHCP lors du redémarrage du serveur DHCP.

-  Le protocole doit supporter l’allocation de paramètres fixes et permanents pour certains clients.

-  Le protocole doit fournir les services nécessaires aux clients BOOTP.

-  Il ne doit pas être indispensable de disposer d’un serveur DHCP pour chaque sous réseau. DHCP doit fonctionner à travers des routeurs en utilisant des agents de relais BOOTP.

Modes d’attribution d’adresses IP

Le service DHCP supporte deux modes d’attribution d’adresses IP :

-  Dynamique  : attribution automatique d’adresses IP pour une période limitée ou jusqu’à l’abandon de l’adresse par le client. -

-  Fixe  : l’adresse IP du client est définie par l’administrateur réseau.

Ces modes ne sont pas exclusifs l’un de l’autre.

L’attribution dynamique est le seul mode qui autorise la réattribution d’une adresse qui n’est plus utilisée par le client auquel elle avait été préalablement attribuée. Le serveur DHCP dispose d’une plage de numéros IP qu’il peut attribuer dynamiquement. Si un client demande une adresse pour la première fois le serveur cherche à lui fournir une adresse de cette plage qu’il n’a pas encore attribuée. Dans l’hypothèse où toutes les adresses ont été attribuées le serveur réattribuera l’adresse dynamique d’un client qui n’est plus connecté au réseau. Par défaut si un client a déjà obtenu dynamiquement une adresse IP lors d’une connexion antérieure le serveur tente de lui fournir la même adresse. La réattribution d’une adresse ne s’avère nécessaire qu’en cas de pénurie, c’est à dire si le nombre de clients configurés dynamiquement est supérieur au nombre de numéros IP disponibles dans la plage.

En conséquence l’attribution dynamique est particulièrement utile

Pour assurer la connexion temporaire d’un client au réseau

Pour permettre à un groupe de clients qui n’a pas besoin d’adresses IP permanentes de partager un groupe limité d’adresses IP.

En conclusion elle facilite l’intégration de nouvelles machines en simplifiant la tâche de l’administrateur réseau, elle permet de gérer une situation de pénurie concernant l’adressage par contre elle ne garantit pas l’invariabilité de l’adressage. Cette méthode ne convient donc pas pour définir l’adressage de machines, par exemple des serveurs, qui ont besoin d’une adresse fixe, elle peut rendre plus complexe l’analyse du réseau en cas de disfonctionnement et elle permet à tout utilisateur de portable de se connecter au réseau local l’autorisant ainsi à écouter le réseau.

L’attribution fixe est particulièrement utile

Pour garantir un adressage fixe aux clients.

Pour éviter les intrusions dans le réseau (à condition que l’attribution fixe soit le seul mode géré par le serveur).

Elle a pour inconvénient d’alourdir le travail de l’administrateur et ne permet pas de gérer une éventuelle pénurie concernant l’adressage.

Quel que soit le mode d’attribution le service DHCP est particulièrement utile.

Pour éviter les erreurs liées à la configuration manuelle des clients.

Pour permettre de cloner des ordinateurs qui n’ont pour seule différence que leur configuration réseau.

Pour faciliter les modifications de configuration réseau comme le changement d’adresse d’un routeur ou d’un serveur de noms.

-

Le protocole Client/Serveur

Le protocole utilise le protocole de transport UDP.

Le serveur DHCP utilise le port 67.

Le client DHCP utilise le port 68.

Un message DHCP commence par le champ op.

Si le message est émis du client->le serveur, il a pour valeur BOOTREQUEST

Si le message est émis du serveur->le client, il a pour valeur BOOTREPLY

Le message contient le type du message DHCP et une clé d’identification (l’adresse ethernet de la carte du client) .

Les types de messages sont :

-

DHCPDISCOVER : Message de diffusion du client pour localiser les serveurs disponibles. -

DHCPOFFER : Réponse du serveur au message DHCPDISCOVER du client. Cette réponse propose une adresse IP au client et identifie le serveur. -

DHCPREQUEST : Message de diffusion du client en réponse au(x) message(s) DHCPOFFER émis par le(s) serveur(s) . Ce message indique le serveur DHCP choisi, la confirmation de l’adresse reçue et éventuellement la durée du bail désirée par le client. -

DHCPACK : Réponse du serveur au message DHCPREQUEST du client. Cette réponse fournit l’ensemble des paramètres de configuration au client. -

DHCPNAK : Message émanant du serveur qui indique au client qu’il a eu une mauvaise compréhension de l’adresse proposée. -

DHCPDECLINE : Message émanant du client qui indique au serveur que l’adresse proposée est déjà en service. -

DHCPRELEASE : Le client annonce au serveur l’abandon de l’adresse. -

DHCPINFORM : Message émanant d’un client qui possède déjà une adresse et qui fait une demande de configuration complémentaire.

-

Etapes d’acquisition d’une adresse

-

Le client diffuse un message DHCPDISCOVER sur le réseau. Le client n’ayant aucune connaissance du réseau, le message est émis en utilisant comme adresse de destinataire une adresse de diffusion (communication multicast), il s’agit de l’adresse 255.255.255.255. Ce message concerne l’ensemble des machines présentent sur le réseau local. On peut distinguer deux cas :

-

LAN (Local Area Network) : le réseau local est défini par la topologie physique du réseau, il regroupe l’ensemble des machines qui peuvent communiquer entre elles sans franchir de routeur et qui partage le même numéro de sous réseau. C’est le cas des réseaux en ethernet fin ou en gros ethernet et le cas des réseaux étoilés dont le coeur d’étoile est un répéteur. -

VLAN (Virtual Local Area Network) : Le réseau local regroupe l’ensemble des machines appartenant au même VLAN. Dans ce cas le réseau est un réseau étoilé dont le c½ur d’étoile est un commutateur. Celui-ci associe chacun de ses ports à un VLAN. Le client est raccordé au réseau par l’un des ports du commutateur il appartiendra donc au VLAN qui lui est associé. Le VLAN représente le domaine de diffusion. -

Un agent de relais BOOTP présent dans le domaine de diffusion peut transmettre le message à un serveur DHCP présent en dehors du domaine de diffusion. -

Chaque serveur peut répondre avec un message DHCPOFFER qui propose au client une adresse de réseau dans le champ yiaddr (Your IP address) du message. Le serveur répondra s’il trouve dans sa configuration une adresse associée manuellement à l’adresse ethernet du client ou sinon s’il est configuré dynamiquement. Le serveur peut éventuellement répondre via un agent de relais BOOTP si le client ne fait pas parti de son domaine de diffusion. -

Le client reçoit autant de messages DHCPOFFER qu’il n’y a de serveurs DHCP susceptibles de lui répondre. Le client choisit un serveur pour obtenir sa configuration. Il émet un message de diffusion DHCPREQUEST qui indique le serveur choisi, l’adresse IP proposée par DHCPOFFER et éventuellement la durée du bail désirée. -

Les serveurs reçoivent le message DHCPREQUEST. Pour les serveurs DHCP non sélectionnés le message indique que le client décline l’offre. Le serveur choisi vérifie que l’adresse proposée est toujours disponible en utilisant ICMP Echo Request.

-

Si l’adresse est toujours disponible il émet un message DHCPACK qui contient la configuration complète du client. Le client reçoit le message DHCPACK. Il réalise un dernier test avec le protocole arp pour valider l’adresse. Si l’adresse est disponible il réalise sa configuration, sinon il émet un message DHCPDECLINE qui indique au serveur qu’il refuse sa configuration et recommence le processus. -

Sinon il émet un message DHCPNACK qui indique au client que l’adresse proposée ne peut être utilisée. Le client qui reçoit ce message recommence le processus. -

Quand le client abandonne son adresse, il émet le message DHCPRELEASE.

— -

Protocoles apparentés

Il existe plusieurs protocoles Internet et mécanismes apparentés qui jouent un rôle dans le problème de la configuration dynamique des machines sur le réseau. -

Le protocole TFTP (Trivial File Tranfert Protocol) permet le transfert d’une image de boot à partir d’un serveur. -

Le protocole BOOTP traite du problème de l’adressage statique de clients à intégrer dans un réseau local et permet d’indiquer à une machine sans disque, par exemple un terminal X, la marche à suivre pour télécharger son système d’exploitation à partir du réseau via le protocole TFTP. -

Le protocole ICMP (Internet Control Message Protocol) -

permet d’informer des machines de la présence de routeurs complémentaires (ICMP redirect) -

permet de fournir des informations concernant les masques de sous-réseaux (ICMP mask request) -

permet aux clients de découvrir des routeurs (ICMP discovery mechanism) -

permet de tester la présence d’une machine (ICMP echo request et ICMP echo reply)

Pour de plus amples informations

Sur les RFC consultez le site www.freesoft.org/CIE .

Sur les services et protocoles réseaux consultez la RFC 1700 .

— -

Configuration d’un serveur DHCP

Le fichier de configuration du serveur DHCP est /etc/dhcpd.conf. Il se compose de déclarations et de paramètres. -

Déclarations

Le fichier peut commencer par des paramètres globaux qui s’appliqueront à tout client desservi.

Paramètres globaux

La déclaration host permet de définir les caractéristiques d’une machine dont l’adresse est définie manuellement. Les paramètres fourniront au minimum l’adresse ethernet de la machine et l’adresse IP associée.

host Nom1 { Paramètres spécifiques de la machine }

La déclaration group permet de grouper des machines définies manuellement afin de pouvoir leur appliquer des paramètres particuliers valables pour tout le groupe. Notez que le groupe n’a pas de nom, il agit comme un délimiteur.

group {

Paramètres spécifiques du groupe

host Nom2 { Paramètres spécifiques de la machine }

host Nom3 { Paramètres spécifiques de la machine }

}

La déclaration subnet permet de définir un sous réseau et une plage d’adressage dynamique. Dans l’exemple le sous réseau représente la totalité de la classe C 193.49.116. La plage dynamique définie par la déclaration range peut se composer d’une seule adresse, hormis ce cas particulier on définira ici un intervalle d’adresses attribuées dynamiquement.

subnet 193.49.116.0 netmask 255.255.255.0{

Paramètres spécifiques du sous réseau

range 193.49.116.240 193.49.116.254

}

La déclaration shared-network permet de définir un groupe de sous réseaux afin d’appliquer des caractéristiques communes. Dans l’exemple, le premier sous réseau permet d’utiliser les adresses allant de 193.49.116.1 à 193.49.116.126 avec l’adresse de diffusion 193.49.116.127, le second sous réseau permet d’utiliser les adresses allant de 193.49.116.128 à 193.49.116.254 avec l’adresse de diffusion 193.49.116.255, La plage dynamique définie par la déclaration range doit être naturellement incluse dans le sous réseau.

shared-network Nom du réseau{

Paramètres spécifiques du réseau partagé

subnet 193.49.116.0 netmask 255.255.255.128 {

Paramètres spécifiques du sous réseau

range 193.49.116.118 193.49.116.126

}

subnet 193.49.116.128 netmask 255.255.255.128 {

Paramètres spécifiques du sous réseau

range 193.49.116.240 193.49.116.254

}

}

Ces différentes déclarations sont analysées dans l’ordre suivant :

host -> group -> subnet -> shared-network

Paramètres :

Activation / Désactivation :

allow | deny unknown-clients ; Autorisation ou interdiction d’adressage dynamique pour les clients inconnus. Cet adressage est autorisé par défaut.

allow | deny bootp ; Autoriser le serveur à avoir le comportement d’un serveur bootp, ceci est autorisé par défaut. Le serveur pourra dans ce cas gérer les requêtes des clients bootp comme certaines imprimantes ou certains terminaux X.

allow | deny booting ; Permet d’interdire le démarrage d’un client défini dans une déclaration host.

Durée de vie de l’adressage :

default-lease-time time  ; Définit la durée de vie par défaut d’une adresse. Cette durée est exprimée en secondes. (Le client peut demander une durée supérieure)

max-lease-time time ; Définit la durée de vie maximum d’une adresse.

Adressage fixe :

hardware hardware-type hardware-address ; Ce paramètre est indispensable pour définir un client manuellement.

hardware-type prendra pour valeur ethernet, token-ring ou fddi.

hardware-address correspondra à l’adresse ethernet de la carte du client.

fixed-address address[,address..] ; Permet d’attribuer une ou plusieurs adresses IP fixes.

Exemple :

host pc1{
 hardware ethernet 00:80:20:fa:1b:a0;
 fixed-address 193.49.116.11;
}

Paramètres nécessaires aux clients bootp :

next-server server-name ; définit le nom du serveur de boot.

filename file-name  ; définit le nom du fichier de boot du client.

Paramètres d’intégration à Internet :

option routers ip-address[,ip-address...] ; Définit les adresses de routeurs par ordre de préférence.

option domain-name string ; Définit le nom de domaine.

option domain-name-servers ip-address[,ip-address...] ; Définit les adresses de serveurs de noms par ordre de préférence.

De nombreuses options complémentaires existent et n’ont d’intérêt que si le client DHCP les intègre dans sa configuration. Reportez-vous au manuel en ligne concernant dhcpd.conf et dhcpd-options pour en avoir une présentation exhaustive.

Mise en service d’un serveur DHCP

Site de référence

http://www.isc.org/products/DHCP

Installation d’un serveur

rpm -Uvh dhcp-3.0-2.rpm

Configuration du serveur

Exemple de fichier /etc/dhcpd.conf

subnet 193.49.116.0 netmask 255.255.255.0 {

option routers 193.49.116.1;
option domain-name "ens.math-info.univ-paris5.fr";
option domain-name-servers 193.49.116.4,193.48.200.24,193.48.200.4;

# deny unknown-clients;
range dynamic-bootp 193.49.116.250 193.49.116.254;

default-lease-time 21600;
max-lease-time 43200;

host host1{
hardware ethernet 00:60:b0:2e:25:c9;
fixed-address 193.49.116.2;
}

# Client hors réseau : suite à un piratage par exemple

host host2{
deny booting ;  
hardware ethernet 0:60:8:9:9b:f7;
fixed-address 193.49.116.3;
}

}

Démarrage du serveur

Si le serveur gère dynamiquement des adresses, créez, avant le premier démarrage du serveur, le fichier dhcpd.leases dans le répertoire /var/lib/dhcp/ à l’aide de la commande

touch /var/lib/dhcp/dhcpd.leases

Le serveur enregistrera dans ce fichier les informations concernant les adressages dynamiques -

Démarrage manuel : /etc/rc.d/init.d/dhcpd start

En cas de modification de la configuration du serveur faire un stop puis un start. -

Démarrage automatique :

chkconfig --level 3 dhcpd on

chkconfig --level 5 dhcpd on

- Clients DHCP

- Client permettant de tester dhcp sous Linux

- pump

status : pump -s

renouveler l’interface : pump -R

abandonner l’adresse : pump -r

configurer l’interface : pump -i eth0

configurer l’interface en demandant une durée de validité de l’adresse de 10 heures : pump -i eth0 -lease=10 -

dhcpcd

abandonner l’adresse : dhcpcd -k

configurer l’interface : dhcpcd eth0

configurer l’interface en demandant une durée de validité de l’adresse de 24 heures : dhcpcd -l 86400 eth0

- Windows NT

-

ipconfig

status : ipconfig /all

renouveler : ipconfig /renew

libérer l’adresse : ipconfig /release

-

Windows 98

-

winipcfg










Cours Linux :

Introduction à GNU Linux

1.Introduction à LINUX
2.Configuration multi-systèmes
3.Environnement graphique GNOME
4.Gestion de fichiers
5.Le gestionnaire de fichiers nautilus
6.Gestion de processus
7.Les applications réseaux
8.Le shell

Services réseau

1. Le démarrage des services réseau sous Gnu/Linux
2. Le service dhcp
3. DNS
4. Le service httpd et apache
5. Samba
6. Le service de messagerie
7. Les services cryptés



Autres Rubriques :

.Accueil
.Le Centre de Calcul
.Réseau de l’UFR
.Linux
.Windows

Liens dans l’UFR :

.Licence Professionnelle
.UFR de Mathématique et Informatique
.Connexions (SSH) et Messageries (IMP ou TWIG) sécurisées

Liens Internet :

.Linux France
.Da Linux French Page
.Léa-Linux(pour débutants)
.Distribution RedHat
.Distribution Mandrake














Site réalisé par Thierry LECHIEN avec SPIP logiciel libre sous licence GNU/GPL. Hébergement à Paris5