Vous êtes sur la page 1sur 10

DHCP - Etude et mise en place

DHCP 4.0.0 et Gentoo


Aurlien BONNARDON 07/04/2008

Etude du DHCP et installation dun serveur sous Gentoo ainsi que dun client sur diffrentes plateformes.

Introduction
Ce document dcrit les tapes pour installer un serveur DHCP sur une machine utilisant Linux Gentoo. DHCP est un protocole permettant dassigner dynamiquement des adresses IP aux stations du rseau dans lequel il se trouve. Les logiciels (client et serveur) sont dvelopps par lISC. L'Internet Systems Consortium, abrg par le sigle ISC, est un consortium public but non lucratif dont le but est d'aider la mise en uvre d'un Internet universel auto-organis . Il s'agit d'une structure indpendante, les dveloppeurs y participant crent et maintiennent notamment des logiciels comme une distribution DHCP (serveur et client), BIND (serveur DNS) ou encore d'InterNetNews (INN). L'ISC hberge galement un des 13 serveurs racines du DNS (F) ainsi que des archives Usenet. L'ISC a t cre en 1994 sous le nom d'Internet Software Consortium pour permettre le dveloppement de BIND jusquel dvelopp par l'Universit de Berkeley et Vixie Enterprise. L'ISC change de nom (mais pas de sigle, par rtroacronymie) pour Internet Systems Consortium en 2004.

Le protocole DHCP
Prsentation
Dynamic Host Configuration Protocol (DHCP) est un terme anglais dsignant un protocole rseau dont le rle est d'assurer la configuration automatique des paramtres IP d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous-rseau. DHCP peut aussi configurer l'adresse de la passerelle par dfaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les rseaux de la socit Microsoft). La conception initiale d'IP supposait la pr-configuration de chaque ordinateur connect au rseau avec les paramtres TCP/IP adquats : c'est l'adressage statique. Sur des rseaux de grandes dimensions ou tendues, o des modifications interviennent souvent, l'adressage statique engendre une lourde charge de maintenance et des risques d'erreurs. En outre les adresses assignes ne peuvent tre utilises mme si l'ordinateur qui la dtient n'est pas en service : un cas typique o ceci pose problme est celui des fournisseurs d'accs internet (FAI ou ISP en anglais), qui ont en gnral plus de clients que d'adresses IP leur disposition, mais dont tous les clients ne sont jamais connects en mme temps. DHCP apporte une solution ces deux inconvnients : Seuls les ordinateurs en service utilisent une adresse de l'espace d'adressage; Toute modification des paramtres (adresse de la passerelle, des serveurs de noms) est rpercute sur les stations lors du redmarrage; La modification de ces paramtres est centralise sur les serveurs DHCP.

Le protocole a t prsent pour la premire fois en octobre 1993 et est dfini par la RFC1531, modifie et complte par les RFC 1534, RFC 2131 et RFC 2132. Initialement, on utilisait les protocoles BOOTP ou RARP. Ce protocole peut fonctionner avec IPv4; il fonctionne aussi avec IPv6 (DHCPv6), toutefois en IPv6, les adresses peuvent tre auto-configures sans DHCP. Un serveur DHCP doit tre sur le mme rseau que les machines qui lutilise, sinon il faut utiliser un proxy DHCP.

Fonctionnement
L'ordinateur rclament une adresse IP envoie en Broadcast une trame DHCP DISCOVER (TCP/IP) qui s'adresse au port 67. Cette trame contient ladresse MAC du client. Le serveur DHCP, ayant reu cette trame, envoie une trame DHCP OFFER destination de ladresse MAC du client et du port 68. Elle contient l'adresse IP du serveur, l'adresse IP et le masque de sous-rseau propos au client. Le client diffuse sur le rseau une trame DHCP REQUEST. Elle comporte l'adresse IP du serveur et celle que le client vient de recevoir et accepte. Elle a pour effet de demander au serveur l'assignation de cette adresse et denvoyer ventuel des paramtres. Le serveur DHCP envoie alors une trame DHCP ACK qui assigne au client l'adresse IP et son masque de sous-rseau. Cette trame comporte galement la dure du bail de cette adresse, deux valeurs T1 et T2 qui dterminent le comportement du client en fin de bail, et ventuellement d'autres paramtres : o adresse IP de la passerelle par dfaut o adresses IP des serveurs DNS o adresses IP des serveurs NBNS (WINS)

Si plusieurs serveurs DHCP rpondent la requte DHCP DISCOVER, le client rpondra la premire rponse DHCP OFFER arrive. La trame DHCP REQUEST du client pour but de prvenir les autres serveurs que leurs demandes sont rejetes. Il existe 4 autres trames dans le protocole DHCP : DHCP DECLINE : Trame mise par le client pour informer le serveur que ladresse propose est dj utilise. DHCP NAK : Trame mise par le serveur pour rejeter les paramtres demands par le client ou pour linformer que son bail est termin. DHCP RELEASE : Trame mise par le client pour librer son adresse IP. DHCP INFORM : Trame mise par le client lorsquil possde son adresse IP pour demander les paramtres locaux au serveur (passerelle par dfaut, serveurs DNS, ).

Installation dun serveur DHCP sous Gentoo


Tlchargement et installation
Il faut commencer par tlcharger les sources sur le site de lISC, ladresse suivante : ftp://ftp.isc.org/isc/dhcp/ Ensuite, il faut extraire larchive avec les commandes suivantes :
gzip -d dhcp-4.0.0.tar.gz tar -xvf dhcp-4.0.0.tar

Pour configurer, compiler et installer le programme, il faut excuter la srie de commande suivante :
./configure make make install

Configuration de la machine
Un certain nombre de paramtres doivent tre fixs pour que le serveur DHCP fonctionne correctement. En particulier, le noyau doit supporter le MULTICAST. Pour voir si cest le cas, il suffit de taper la commande ifconfig et de regarder si loption apparait :
tryx ~ # ifconfig -a eth0 Link encap:Ethernet inet addr:192.168.0.2 HWaddr 00:50:FC:E7:62:F3 Bcast:192.168.0.255 MTU:1500 Mask:255.255.255.0 Metric:1

UP BROADCAST RUNNING MULTICAST

RX packets:1988 errors:0 dropped:0 overruns:0 frame:0 TX packets:1863 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1197180 (1.1 Mb) TX bytes:254275 (248.3 Kb) Interrupt:20 Base address:0x6800

Si ce nest pas le cas, il va falloir recompiler le noyau pour quil supporte cela. Vous trouverez loption dans Networking options -> IP: multicasting. Il faut galement ajouter une route vers 255.255.255.255 (adresse de Broadcast) car certains clients DHCP ncessite cela, en particulier ceux de Microsoft. Il suffit dexcuter la commande suivante :
route add -host 255.255.255.255 eth0

Pour finir, il faut sassurer que votre noyau intgre IPv6. Pour cela, il faut vrifier que le fichier /proc/net/if_inet6 existe. Si ce nest pas le cas, excuter la commande :
modprobe ipv6

Configuration du serveur
Il y a deux fichiers essentiels au fonctionnement du serveur : /etc/dhcpd.conf et /var/state/dhcp/dhcps.leases.

/var/state/dhcp/dhcps.leases
Ce fichier contient les informations sur les demandes des clients. Il faut le crer aprs linstallation. Il est mis jour en temps rel, il est donc possible de suivre son volution avec la commande :
tail -f /var/state/dhcp/dhcp.leases

Voici une ligne de ce fichier correspondant la connexion dun client :


946750530 00:18:f3:a3:24:a4 192.168.0.190 skeltryx 01:00:18:f3:a3:24:a4

Le premier paramtre est un nombre alatoire choisi par le serveur et qui est utilis pour reconnatre le client. Le 2me est ladresse MAC du client, suivi de son nom. Le dernier est ladresse MAC de linterface sur laquelle il est connect.

/etc/dhcpd.conf
Il sagit du fichier de configuration du serveur. Il contiendra les directives pour lassignation des adresses IP. En fait, il existe 2 manires dassigner des adresses IP, soit de manire alatoire, soit en fonction des adresses MAC des clients.

Voici un exemple de fichier avec les commentaires des diffrentes lignes. Il faut noter que les paramtres globaux peuvent tre dfinit dans le champ subnet.
### Configuration des baux # Dure du bail par dfaut, en seconde default-lease-time 86400; # Dure maximum dun bail, en seconde max-lease-time 172800; ## Configuration du rseau # Nom du domaine option domain-name "myworld"; # Masque du rseau option subnet-mask 255.255.255.0; # Adresse de broadcast du rseau option broadcast-address 192.168.1.255; # Passerelle par dfaut option routers 192.168.1.254; # Serveurs DNS option domain-name-servers 192.168.1.1, 192.168.1.2; # Configuration du rseau et de son masque subnet 192.168.1.0 netmask 255.255.255.0 { # Plage dadresses disponible pour les clients range 192.168.1.10 192.168.1.100; } # Pour fixer une adresse un client en fonction de son adresse MAC host NOM_MACHINE { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; }

Voici une autre option qui peut tre intressante, refuser les requtes des clients non dclars :
deny unknown-clients

Lancement du serveur
Le lancement du serveur se fait grce la commande dhcpd. Il faut prciser certaines loptions, en particulier lemplacement des 2 fichiers cits prcdemment et la ou les interfaces o le dmon devra se mettre lcoute.
dhcpd -cf /etc/dhcpd.conf -lf /var/state/dhcp/dhcpd.leases eth0 dhcpd -cf /etc/dhcpd.conf -lf /var/state/dhcp/dhcpd.leases eth0 eth1

Si vous obtenez une erreur du type :


Internet Systems Consortium DHCP Server 4.0.0 Copyright 2004-2007 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Wrote 0 leases to leases file. Error opening '/proc/net/if_inet6' to list IPv6 interfaces; No such file or directory Can't get list of interfaces.

Alors cest que vous navez pas install le support IPv6 dans votre noyau.

Installation et configuration du client


Linux Gentoo
Pour installer un client DHCP, nous nallons pas y aller pas 4 chemins, il suffit dutiliser la commande suivante :
emerge dhcpcd

Ensuite, il faut diter le fichier /etc/conf.d/net et remplacer la configuration actuelle de la carte par :
config_eth0=( "dhcp" ) dhcp_eth0="nonis"

Redmarrez ensuite le service avec la commande :


/etc/init.d/net.eth0 restart

Windows XP
Par dfaut, le DHCP est configur que Windows XP. Si les valeurs ont t modifi, il vous suffit de les remettre en passant par Panneau de configuration -> Connexions Rseaux puis clic droit sur la carte et proprits. Dans la liste, slectionnez Protocole Internet (TCP/IP) et cliquez sur Proprits. Ensuite, mettez les valeurs par dfaut comme sur la figure suivante :

Source
Dynamic Host Configuration Protocol, http://fr.wikipedia.org/wiki/DHCP Serveur DHCP, http://www.trustonme.net/didactels/242.html DHCP (Dynamic Host Configuration Protocol), http://www.misfu.com/cours-fonctionnement-dhcp.html Configurer un serveur DHCP, http://jp.barralis.com/howto/linux/DHCP/DHCP-4.php

Vous aimerez peut-être aussi