Vous êtes sur la page 1sur 11

Le systme GNU/Linux

DHCP
By ShareVB
Table des matires
I.Principe..............................................................................................................................................1
1.Dfinition du terme DHCP...........................................................................................................1
2.Fonctionnement de BOOTP..........................................................................................................2
3.Fonctionnement du protocole DHCP............................................................................................2
4.Les baux d'attribution d'adresses IP..............................................................................................3
5.Relai DHCP..................................................................................................................................3
6.Se procurer un serveur DHCP......................................................................................................4
II.Configurer DHCPD..........................................................................................................................4
1.Servir une plage d'IP.....................................................................................................................4
2.Terminal client et dmarrage rseau.............................................................................................5
3.Relai DHCP..................................................................................................................................6
a)Prsentation de DHCRELAY..................................................................................................6
b)Configurer dhcrelay.................................................................................................................7
c)Configurer dhcpd.....................................................................................................................7
4.Configuration de la mise jour dynamique du DNS....................................................................8
a)Dans Bind.................................................................................................................................8
b)Dand Dhcpd.............................................................................................................................8
c)Vrifications de la configuration.............................................................................................9
d)Mise en garde pour les clients DHCP......................................................................................9
5.Le fichier de logs de Baux............................................................................................................9
6.Lancement de DHCPD...............................................................................................................10
III.Configuration des clients...............................................................................................................10
1.Windows 95/98...........................................................................................................................10
2.Windows NT4/2000/XP.............................................................................................................10
3.Debian.........................................................................................................................................10
4.Fedora.........................................................................................................................................10
IV.Et iptables dans tout a..................................................................................................................11
V.Bibliographie..................................................................................................................................11
I. Principe
1. Dfinition du terme DHCP
DHCP signifie Dynamic Host Configuration Protocol. Ce protocole permet un ordinateur qui se
connecte sur un rseau local d'obtenir automatiquement sa configuration (principalement rseau). Il
suffit juste de dire votre ordinateur qu'il doit utiliser DHCP. Le but principal tant la
simplification de l'administration d'un rseau.
Le protocole DHCP sert principalement distribuer des adresses IP sur un rseau, mais il a t
conu au dpart comme complment au protocole BOOTP (Bootstrap Protocol) qui est utilis pour
lancer une installation ou un OS par le rseau en tlchargeant par TFTP les fichier ncessaires. Un
serveur DHCP peut donc renvoyer des paramtres BOOTP ou de configuration propres un hte
donn.
2. Fonctionnement de BOOTP
Un serveur BOOTP permet de transmettre simplement une adresse IP pour le client demandeur
ainsi qu'un nom de fichier et l'adresse d'un serveur sur lequel il pourra aller chercher ce fichier. Ce
fichier contient le systme d'exploitation que le client devra excuter.
schma
3. Fonctionnement du protocole DHCP
Le serveur DHCP permet la base de fournir de adresses IP. Il doit donc avoir une adresse IP fixe.
Il n'est pas ncessaire pour un client de connatre cette IP car le client va broadcaster sa demande.
Le mcanisme de base de la communication est BOOTP (avec trame UDP). Quand une machine est
dmarre, elle n'a aucune information sur sa configuration rseau etl'utilisateur n'a rien faire de
particulier pour trouver son adresse IP. Dans cette situation, la technique utilise est le broadcast :
pour trouver et dialoguer avec un serveur DHCP, la machine va simplement mettre un paquet de
broadcast sur 255.255.255.255 sur le rseau local. Lorsque le serveur DHCP recevra le paquet de
broadcast, il renverra un autre paquet de broadcast (ben, oui, le client n'a toujours pas d'IP)
contenant toutes les informations pour la configuration du client. Ce broadcast utilise donc les
adresses MAC (par exemple d'Ethernet).
Bien que le mcanisme semble simple, il existe plusieurs type de paquets :
DHCPDISCOVER : pour connatre les serveurs DHCP disponibles
DHCPOFFER : en rponse (du serveur) un paquet DHCPDISCOVER contenant les
paramtres vitaux (IP, masque...).
DHCPREQUEST : requte du client
DHCPACK rponse positive au client
DHCPNAK rponse ngative au client
DHCPDECLINE : le client signale au serveur que l'adresse IP fournie est dj utilise
DHCPRELEASE : le client n'a plus besoin de son IP
DHCPINFORM : le client demande d'autres infos une fois qu'il a son IP
Le processus est le suivant :
Le premier paquet mis par le client est un paquet de type DHCPDISCOVER. (broadcast).
Il contient au moins l'adresse MAC du client. Il est mis en UDP port destination 67.
Chaque serveur DHCP rpond par un paquet DHCPOFFER (broadcast UDP port destination
68) contenant l'adresse MAC du client, l'IP et le masque de sous rseau proposs au client
ainsi que l'IP du serveur faisant l'offre.
Le client ne conserve que la premire offre qu'il reoit. Il renvoie (broadcast) un
DHCPREQUEST pour valider sa demande (ce datagramme inclus l'IP du serveur DHCP
choisi).
Le serveur rpond simplement par un DHCPACK pour confirmer l'IP attribue.
4. Les !u" d#!ttriution d#!dresses IP
Pour viter que des machines qui se trouvent sur un rseau pour peu de temps ne fassent perdre une
adresse IP sur le rseau une fois partis, un mcanisme de limitation de l'attribution d'IP dans le
temps a t mis en place pour DHCP. SI le serveur remarque un dpassement de la dure d'une
attribution, il envoie un paquet DHCPNAK. Si le client tient compte de la limitation temporelle, il
envoie un paquet DHCPREQUEST pour redemander la prolongation de la dure de l'attribution.
$. %el!i DHCP
Le problme du DHCP est qu'il faut un serveur par sous rseau car les broadcasts prcdents ne
passent pas travers des routeurs. Ainsi, si l'on veut avoir un seul serveur DHCP pour plusieurs
sous rseaux, il est ncessaire de mettre, sur chaque sous rseaux, un agent de relai DHCP. Celui-ci
va se charger de relayer les requtes de broadcast (DHCPDISCOVER et DHCPREQUEST) des
clients en les renvoyant en unicast au serveur DHCP qu'ils connaissent (de leur configuration) :
schma
&. 'e procurer un ser(eur DHCP
C'est l'Internet Software Consortium qui dveloppe le serveur DHCP du monde du logiciel libre. La
version 3.0 permet de mettre jour dynamiquement un serveur DNS. Ce serveur est encore en
version beta et subit des corrections rgulires. Microsoft a bien entendu son propre serveur DHCP
pour NT/2K/XP/2K3.
II. Confi)urer DHCPD
DHCPD permet aussi bien de fournir des IP des machines Ethernet qu' des machines sans fils.
Le fichier de configuration de DHCPD est /etc/dhcpd.conf . Toute ligne qui commence par
# est un commentaire.
1. 'er(ir une pl!)e d#IP
C'est le rle classique d'un serveur DHCP :
servir une plage d'adresse IP pour les clients
dfinir des couples adresses MAC/adresses IP pour, par exemple, toujours attribuer les
mmes IP aux serveurs
Important : l'adresse de sous -rseau fournir subnet doit absolument tre l'adresse d'un
sous rseaux sur lequel se trouve le serveur DHCP, autrement dit l'adresse de sous rseau
d'une de ses interfaces. Sinon le serveur DHCP ne dmarre pas. Cela peut aussi tre utilis
pour pouvoir servir des plages IP diffrentes sur les diffrentes interfaces du serveur.
# Sample /etc/dhcpd.conf
# Permet de dfinir l'interface de rponse aux requtes DHCP
DHCPDA!S"<interface>#
# dfinit le t$pe de mise % &our des D'S ( aucune
ddns)update)st$le none#
# dfinit la dure de *alidit des adresses +P attri,ues en
secondes
default)lease)time -..#
# dfinit la dure de *alidit maximum des adresses +P attri,ues
en secondes
max)lease)time /0..#
# dfinit le masque de sous rseaux des adresses +P attri,ua,les
option su,net)mas1 <masque IP>#
# dfinit l'adresse de ,roadcast du sous rseau
option ,roadcast)address <adresse IP broadcast>#
# dfinit la 2ou les " liste % *ir3ule4 passerelles du sous
rseau
option routers <IP passerelle>#
# dfinit l'adresse +P du 2ou des " liste % *ir3ule4 ser*eurs D'S
du sous rseau
#ou du moins % dfinir pour les clients
option domain)name)ser*ers <IP DNS>#
# dfinit le nom de domaine par dfaut des clients du sous rseau
option domain)name 5nom de domaine5#
#alloue un sous rseau pour les clients
su,net <adresse sous rseau> netmas1 <masque de sous rseau> 6
ran3e <IP dbut sous rseau> <IP fin sous rseau>#
#si *ous a*e7 des clients ha,ituels ou ser*eur statiques
host <nom client> 6
#adresse 8AC du client
hard9are ethernet XX(XX(XX(XX(XX(XX#
#lui donner une adresse fixe
fixed)address <IP ou nom DNS client>#
:
#on peut rpter autant de directi*e host que l'on *eut
:
2. Termin!l client et dm!rr!)e rse!u
Voil encore une utilisation intressante : lancer un OS ou une installation depuis le rseau...
Le fichier de config est le suivant:
# dure de session d'une adresse +P
default)lease)time -..#
# dure maximum de session d'une +P
max)lease)time /0..#
# ser*eur principal
authoritati*e#
#ne pas rpondre aux clients inconnus
den$ un1no9n)clients#
#nom de domaine des clients
option domain)name "nom de domaine";
#ser*eur D'S pour les clients
option domain)name)ser*ers <IP DNS>#
#passerelle pour les clients
option routers <IP passerelle>#
#alloue un sous rseau pour les clients
su,net <adresse sous rseau> netmas1 <masque sous rseau> 6
#utiliser le nom d'h;te spcifi apr<s host
use)host)decl)names on#
#masque du sous rseau
option su,net)mas1 <masque sous rseau>#
#adresse de diffusion du sous rseau
option ,roadcast)address <adresse broadcast sous rseau>#

#dfinit un client % ser*ir
host <nom client> 6
#adresse 8AC du client
hard9are ethernet XX(XX(XX(XX(XX(XX#
#lui donner une adresse fixe
fixed)address <IP ou nom DNS client>#
#ser*eur % contacter pour d'autres informations
next)ser*er <IP serveur NFS>#
#lancer le client depuis le parta3e '=S >IP serveur NFS>(/dis1less
option root)path 5<serveur NFS>(/dis1less5#
#lancer le fichier 1ernel sur le client
filename 5/dis1less/1ernel5#
:
:
Pour ce qui est du partage NFS, il suffit de mettre dans un dossier /dis1less, le contenu adquat
d'un noyau bootable par le rseau, d'une installation rseau ou de n'importe quel programme, OS
bootable par le rseau. Et dans /etc/exports :
#autorise tout le monde % monter ce dossier
/dis1less 2ro4
3. %el!i DHCP
a) Prsentation de DHCRELAY
L'agent de relai DHCP (dhcrela$) vous permet de relayer les requtes DHCP et BOOTP depuis
un sous rseaux ne comportant pas de serveurs DHCP, un serveur DHCP situ sur un autre sous
rseau.
Quand dhcrela$ reoit une requte DHCP de broadcast, il l'envoie en unicast aux serveurs
DHCP contenus dans sa configuration et rception de la rponse unicast de ce dernier serveur, il
renvoit la rponse en broadcast au client.
dhcrela$ possde les options de ligne de commande suivante :
Argument Description
-i nom_interface Dfinit une interface sur lequel couter les requtes ou sur toutes les
interfaces si au moins une option -i n'est pas prsente.
-p port Dfinit le port sur lequel le serveur coute les requtes des clients et les
retransmet. Il renvoie la rponse au client sur port+1.
-d Forcer excuter au premier plan
-q Ne pas afficher la configuration aux dmarrage
b) Configurer dhcrelay
Pour que le relayage puisse se faire, il faut configurer :
la ou les adresses des serveurs DHCP auxquels on relaient
la ou les interfaces depuis lesquelles dhcrelay doit couter et transmettre les requtes
Sous Fedora/RedHat/Mandriva, on modifiera le fichier /etc/s$sconfi3/dhcrela$ :
#dfinit la liste espace du ou des ser*eurs *ers/depuis lesquels dhcrela$
# doit transmettre les requtes DHCP des clients 2locaux % l'a3ent de relai4
# obligatoire
S?@?S"AIPduoudesserveursD!"PB
#dfinit d'autres options pour dhcrela$
# et principalement l'option )q
# pour ne pas afficher la confi3uration au dmarra3e du dmon dhcrela$
# et une ou plusieurs fois l'option )i nominterface#
# pour couter seulement sur une ou plusieurs interfaces
CPD+C'S"A)q )i nominterfacecouteB
Sous Debian, on modifiera le fichier /etc/default/dhcp)rela$ :
#dfinit la liste espace du ou des ser*eurs *ers/depuis lesquels dhcrela$
# doit transmettre les requtes DHCP des clients 2locaux % l'a3ent de relai4
# obligatoire
DHCPES?@?S"AIPduoudesserveursD!"PB
#dfinit la liste de la ou des interfaces sur lesquelles dhcrela$
# doit couter espace les requtes DHCP des clients
# obligatoire
+'D?=AC?S"AlisteinterfacescouteB
#dfinit d'autres options pour dhcrela$
# principalement l'option )q
# pour ne pas afficher la confi3uration au dmarra3e du dmon dhcrela$
CPD+C'S"A$qB
c) Configurer dhcpd
Pour que le serveur DHCP puisse dmarrer et servir des adresses IP par le biais des relais DHCP
c'est dire par des requtes unicast, il faut indiquer dans le subnet
TODO
4. Confi)ur!tion de l! mise * +our d,n!mi-ue du D.'
Quoi de plus intressant pour un administrateur rseau que de n'avoir inscrire la liste de ces
clients et de leurs noms DNS qu'une seule fois dans un systme et de pouvoir rsoudre des noms
DNS de client itinrants. Pour cela, il faut utiliser la capacit de dhcpd a modifier dynamiquement
les zones DNS.
Pour cela, il est ncessaire que dhcpd et named tournent ensemble sur le mme serveur.
a) Dans Bind
Dans le fichier /etc/named.conf, pour votre zone DNS et sa zone inverse, ajouter les
directives zone correspondant : ceci autorise la mise jour du DNS par le DHCPD tournant sur
l'hte local
allo9)update 6
F0/.....F#
:
De plus, si certains htes grs par le DNS ont un nom fixe dans les zones DNS, il est prfrable de
les supprimer de ces zones pour laisser dhcpd mettre jour le DNS.
Enfin, il faudra surement donner les droits 770 (et la proprit root:named) aux dossier contenant
les fichiers de zones sujets mise jour. Par exemple, /*ar/named ou
/*ar/named/chroot/*ar/named ou encore /*ar/li,/named/*ar/li,/named (et
sous dossiers).
b) Dand Dhcpd
Dans le fichier /etc/dhcpd.conf de la manire suivante :
# mthode de mise % &our du D'S (
ddns)update)st$le interim#
# mise % &our autorise
ddns)updates on#
# iciG on force la mise % &our par le ser*eur DHCP
i3nore client)updates#
# on force 3alement la mise % &our des +P fixes
update)static)leases on#
7one <nom %one DNS> 6
primar$ F0/.....F#
:
7one <nom %one DNS inverse> 6
primar$ F0/.....F#
:
Note :
<nom %one DNS> doit absolument tre un nom de domaine allant jusqu' la racine DNS
c'est--dire se terminant par un point, par exemple sharevb.net. .
<nom %one DNS inverse> doit aussi absolument tre une zone inverse in-
addr.arpa. , par exemple pour une classe C, 67.45.193 .in-addr.arpa. .
Note 2 : relancer le service dhcpd et named aprs cela...et tout devrait tre OK pour un test.
c) Vrifications de la configuration
Dans /*ar/named, la premire attribution d'une IP, deux nouveaux fichiers de zone doivent
apparatre, avec le mme nom que les zones de votre domaine, mais avec un suffixe .jnl. Si ces
fichiers journaux binaires apparaissent c'est que tout fonctionne. Les fichiers de zone sont eux aussi
modifis mais longtemps aprs. Dans ces fichiers, de nouveaux enregistrements A sont apparus,
suivis d'un enregistrement TXT qui permettent d'indiquer que le champ prcdent est issu d'une
mise jour dynamique et il ne faut surtout pas le retirer.
d) Mise en garde pour les clients DHCP
La mise jour dynamique de DNS ncessite de connatre le nom de l'hte qui vient d'obtenir une
IP, surtout si vous voulez conserver une cohrence entre les noms d'htes attribus localement et les
noms DNS.
Le client DHCP de Windows envoie le nom d'hte lors de la requte DHCP
Par contre, les clients Linux comme dhclient et mme dhcpcd ne le font pas par dfaut. Si vous n'y
prenez garde, vos machines recevront bien leur configuration, mais la mise jour DNS ne
s'effectuera pas.
Avec dhclient, il faut crer un fichier /etc/dhclient.conf qui contiendra au moins la
ligne :
send host)name 5nom DNS &'te5 #
$. Le fic/ier de lo)s de B!u"
On the DHCP server, the file /*ar/li,/dhcp/dhcpd.leases stores the DHCP client lease
database. This file should not be modified by hand. DHCP lease information for each recently
assigned IP address is automatically stored in the lease database. The information includes the
length of the lease, to whom the IP address has been assigned, the start and end dates for the lease,
and the MAC address of the network interface card that was used to retrieve the lease.
All times in the lease database are in Greenwich Mean Time (GMT), not local time.
The lease database is recreated from time to time so that it is not too large. First, all known leases
are saved in a temporary lease database. The dhcpd.leases file is renamed dhcpd.leasesH,
and the temporary lease database is written to dhcpd.leases.
The DHCP daemon could be killed or the system could crash after the lease database has been
renamed to the backup file but before the new file has been written. If this happens, there is no
dhcpd.leases file that is required to start the service. Do not create a new lease file if this
occurs. If you do, all the old leases will be lost and cause many problems. The correct solution is to
rename the dhcpd.leasesH backup file to dhcpd.leases and then start the daemon.
Lease-file-name chemin_et_nom_fichier_lease ;
&. L!ncement de DHCPD
IrootJ# /etc/init.d/dhcpd start
Startin3 dhcpd I CK J
Si un message d'erreur apparat c'est que vous avez fait une erreur de syntaxe.
III. Confi)ur!tion des clients
Il n'y a rien faire de plus que de dire que l'on veut une configuration dynamique.
1. 0indo1s 2$324
Par le panneau de configuration, icne "rseau", cliquez sur "TCP/IP -> <votre carte rseau>.
L'adresse IP doit tre configure dynamiquement, c'est d'ailleurs le choix par dfaut l'installation.
Pour vrifier, utiliser winipcfg.
2. 0indo1s .T43255536P
La configuration se fait dans le panneau de configuration, icne "rseau", onglet "protocoles", puis
"proprits" de TCP/IP. L, vous avez indiqu que la carte doit recevoir une adresse IP
dynamiquement.
Pour vrifier, utiliser ipconfig. La commande "ipconfig" permet galement:
De rsilier le bail: "ipconfig /release"
De renouveler le bail: "ipconfig /renew"
3. Dei!n
Dans le fichier /etc/net9or1/interfaces pour chaque interface ncessitant (
#interface a*ec DHCP
ifce nominterface inet dhcp
4. Fedor!
Il existe divers clients : dhcpcd, dhclient, pump, dhcpxd mais le plus courant est dhclient de l'ISC.
Dans /etc/sysconfig/network-scripts, il y a des fichiers intitul : ifcfg-interface. Ils doivent contenir
au moins ces lignes :
D?@+C?"5interface5
LCCDPCDC"5dhcp5
+PADD"55
'?D8ASK"55
C'LCCD"5$es5
I7. 8t ipt!les d!ns tout 9!
Le serveur DHCP utilise le port UDP 67 pour couter les requtes des clients. Le client DHCP
utilise le port UDP 68 pour recevoir la rponse des serveurs DHCP :
sur le serveur :
ipta,les )A +'PMD )p udp ))dport -/ )& ACC?PD
ipta,les )A CMDPMD )p udp ))sport -/ )& ACC?PD
sur le client
ipta,les )A +'PMD )p udp ))dport -N )& ACC?PD
ipta,les )A CMDPMD )p udp ))sport -N )& ACC?PD
7. Bilio)r!p/ie
La principale documentation sur le DHCP est constitue par les incontournables RFCs :
RFC 821 - BOOTP (BootStrap Protocol)
RFC 1542 - Clarifications and Extensions for the Bootstrap Protocol (Interactions entre
BOOTP et DHCP)
RFC 2131 - DHCP
RFC 2132 - DHCP Options and BOOTP Vendor Extensions
Et puis :
Dynamic Host Configuration Protocol - Wikipdia
DHCP c'est quoi?
dhcp .org - Resources for DHCP