Vous êtes sur la page 1sur 4

Dynamic Host Configuration

http://www.misfu.com/creer-configurer-installer-serveur-client-dhcp-li...

- Aide gratuite Accueil A A ide informatique

- Informatique T lcharger des cours C ours dbutant P rogrammation G estion de projet U ML & Merise B ase de donnes P2 C ours rseaux P2 P3 S ystme d'exploitation C ours linux S curit informatique S curit internet T ravaux informatique P2 A utres cours A rticles informatique
Annonces Google

Accueil > Cours Linux > crer un serveur DHCP

Installer un serveur DHCP sous Linux Gnralits


DHCP (Dynamic Host Configuration Protocol) est le protocole de configuration dynamique d'htes. DHCP permet des htes appartenant un rseau TCP/IP de demander et d'obtenir l'affectation d'adresse IP, mais aussi de dcouvrir certaines informations relatives au rseau auquel ils sont rattachs. DHCP maintient une compatibilit ascendante avec BOOTP. Pour plus d'informations se rfrer entre autres la RFC (Request For Comment) 2131 (anciennement la RFC 1541). La mise en oeuvre de DHCP ncessite l'installation et la configuration de clients d'une part, et de l'autre, l'installation et la configuration d'un serveur.

Initiation Linux
Philosophie Linux Caractristiques Interfaces graphiques Utiliser KDE Gestion des fichiers Pr-requis installation Installer Linux Outils multimdia Linux & internet

Administration Linux
Configurer Lilo Gestion utilisateur Packages sous Linux Daemons et Linux Routage IP Commandes rseaux Poste en rseau Scurit et Linux Systme NFS Planification des tches Compilation noyau Linux SAMBA et Linux Utiliser le DNS Rcuprer mdp root Utiliser Grep Recherche et archivage DHCP et Linux

Matelas Matelas En Latex

Configuration des clients


La plupart des distributions fournissent au moins un paquetage pour le client dhcp, dhcpcd prcompil. On peut distinguer quatre clients DHCP principaux sous Linux : - Pump est un client combin BOOTP et DHCP qui permet votre machine de recuprer les informations de configuration rseau depuis un serveur. Vous devriez installer le package correspondant si vous tes sur un rseau qui utilise BOOTP ou DHCP. - dhcp-client est le client DHCP dvelopp par l'Internet Software Consortium. Il est important de noter que le man de dhcp-client sous Linux Mandriva indique clairement que si on veut l'utiliser, il faut modifier le fichier /sbin/ifup. Il indique aussi la modification oprer. Par ailleurs, dhcp-client constitue le client DHCP qui est install par dfaut sur la Mandriva. - dhcpxd et dhcpcd constituent les autres clients DHCP qui mritent d'tre signals ici.

- Bureautique B ureautique P2 C ours Excel C ours Word C ours PowerPoint O penOffice (Texte) O penOffice (Tableur)

Matelas Et Sommier

Autres cours
C ours mathmatiques C ours statistiques C ours primaire C ours ergonomie C ours cryptographie I ntelligence artificielle

Divers Les cdroms de Linux Mandriva comportent tous ces clients au format rpm. Donc on peut les installer en utilisant la commande rpm ou pour aller encore plus vite, la commande urpmi. En cas de problme, se Midnight-Commander reporter sans hsiter aux mini-howtos indiqus en fin du dossier dans la rubrique bibliographie et aux (MC) autres rfrences indiques. Equivalence logiciel
Linux/Windows Editeur de texte VI Crer un RPM Commandes Linux Bref l'installation ne pose aucun problme. Mais il faut viter d'installer simultanment plusieurs clients Commandes Unix DHCP sur une mme machine. Commandes Bash

Pour les besoins du prsent dossier, nous avons test le client dhcpcd.

La configuration de dhcpcd peut se faire de plusieurs manires : 1) Par le centre de contrle Mandriva. Il va sans dire que ceci n'est valable que sur la distribution du mme nom. On peut lancer le centre de contrle Mandriva en le slectionnant dans les sous-menus du lanceur d'application. Puis : . Slectionner Rseau et Internet . Cliquer sur Connexion . Cliquer sur le bouton Assistant . Cocher la case "utiliser la dtection automatique" et ensuite cliquer sur le bouton suivant. . Cocher la case "Connexion travers un rseau local (LAN) - carte(s) ethernet dtecte(s)" . Cocher "Attribution automatique de l'adresse IP" (dans la fentre Network & Internet Configuration) Enfin cliquer sur OK autant de fois que ncessaire pour sortir du centre de contrle. 2) On peut aller directement sur le module Rseau et Internet du centre de contrle Mandriva en tapant la commande suivante , partir de la console :
# draknet

3) Linuxconf et webmin sont aussi deux outils intressants et efficaces de configuration du client DHCP. 4) Par l'dition du fichier /etc/sysconfig/network-scripts/ifcfg-ethx, o x dsigne le rang de l'interface qui sera utilise par la machine en question pour solliciter les informations rseau (0, 1, 2, etc). Voici deux exemples de ce fichier, le premier correspondant une affectation dynamique d'adresse IP (par DHCP), le second correspondant une affectation statique par DNS ou par le fichier /etc/hosts :
# Fichier / etc/sysconfig/network-scripts/ifcfg-eth0 pour client dhcp DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes ===================================== # Fichier / etc/sysconfig/network-scripts/ifcfg-eth0 pour machine avec adresse statique. DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.0.254 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 ONBOOT=yes

Il

est

par

ailleurs

vivement

recommend

de

savoir

maintenir

la

cohrence

entre

le

fichier

1 sur 4

29/01/2012 21:37

Dynamic Host Configuration

http://www.misfu.com/creer-configurer-installer-serveur-client-dhcp-li...

/etc/sysconfig/network et les fichiers /etc/sysconfig/network-scripts/ifcfg-ethx. A titre indicatif, nous donnons deux versions de fichier /etc/sysconfig/network correspondant respectivement aux deux cas ci-dessus :
#Fichier /etc/sysconfig/network pour client dhcp NETWORKING=yes FORWARD_IPV4=false DOMAINNAME=anfalab.org ================================================== #Fichier /etc/sysconfig/network pour client non dhcp NETWORKING=yes FORWARD_IPV4=false HOSTNAME=ramses.anfalab.org DOMAINNAME=anfalab.org #Si la machine concerne n'est pas une passerelle, ajouter les lignes qui suivent GATEWAY=192.168.0.1 GATEWAYDEV=eth0

Smile Hosting
Dcouvrez l'offre d'infogrance et d'hbergement open source de SMILE
www.smile.fr/services/

Aprs les modifications et contrles des fichiers de configuration il suffit maintenant de redmarrer votre machine ou de taper ce qui suit en s'assurant que le serveur dhcp et le rseau physique sont bien oprationnels :
# /sbin/ifup ethx

sur la ligne de commande ou (surtout en cas de plusieurs interfaces rseau :


# service network restart

Aprs la rinitialisation de la machine, votre interface rseau devrait tre configure. Pour le vrifier, taper:
# ifconfig -a

On devrait obtenir quelque chose comme a :


lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:302 errors:0 dropped:0 overruns:0 frame:0 TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0 eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45 inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0 ^^^^^^^^^^^^^^^^^^^^^^^ UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24783 errors:1 dropped:1 overruns:0 frame:1 TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96 Interrupt:10 Base address:0x300

Si vous avez un nombre l'air normal dans "inet addr", c'est bon. Si vous voyez 0.0.0.0, c'est peut-tre un rsultat temporaire, en attendant que dhcpcd obtienne l'adresse IP. dhcpcd est un dmon qui continuera tourner tant que votre machine restera allume. Par dfaut, il contactera le serveur DHCP toutes les trois heures pour renouveler l'attribution de l'adresse IP. Il consignera tous les messages dans le journal du systme (/var/log/syslog/ sur Red Hat ou Mandriva). Vous devez prciser vos serveurs de noms. Il existe deux faons de le faire. Vous pouvez demander les adresses de ses serveurs de noms votre fournisseur d'accs ou l'administrateur de votre rseau et les mettre dans /etc/resolv.conf. Vous pouvez aussi laisser dhcpcd obtenir la liste des serveurs de noms depuis le serveur DHCP et le laisser crer un resolv.conf adapt dans /etc/dhcpc/. Si vous voulez laisser dhcpd crer resolv.conf, procder comme ceci : Sauvegardez votre ancien /etc/resolv.conf :
mv /etc/resolv.conf /etc/resolv.conf.OLD

Si le rpertoire /etc/dhcpc/ n'existe pas, crez le


mkdir /etc/dhcpc

Faites un lien de /etc/dhcpc/resolv.conf vers /etc/resolv.conf


ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf

Dans /etc/sysconfig/network-scripts/ifup, effectuer malheureuse bidouille, mais qui marche : Changer :

le

changement

suivant, qui

n'est

qu'une

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Using DHCP for ${DEVICE}... " /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE} echo "echo $$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^ echo "failed." exit 1

en :
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Using DHCP for ${DEVICE}... " /sbin/dhcpcd echo "echo $$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^^^ echo "failed." exit 1

Remarquez le point d'exclamation dans if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];. Autre solution si votre client dhcpd ne cre pas de fichier resolv.conf : Enlever l'adresse ip statique ainsi que le nom de la machine dans le fichier /etc/resolv.conf. laisser la ligne search ainsi que mes deux lignes nameserver. Si vous n'avez besoin de votre connexion qu'occasionnellement, vous pouvez dmarrer dhcpcd depuis la ligne de commandes ( condition d'tre root) en tapant : # /usr/sbin/dhcpcd Quand vous voulez couper la connexion, tapez : # /usr/sbin/dhcpcd -k Note importante 1 : L'affectation dynamique d'adresse par DHCP n'est pas compatible avec l'utilisation du fichier /etc/hosts, tant entendu que par dfinition, l'adresse IP du poste est susceptible de changer chaque redmarrage du poste.

2 sur 4

29/01/2012 21:37

Dynamic Host Configuration

http://www.misfu.com/creer-configurer-installer-serveur-client-dhcp-li...

Installation et configuration du serveur DHCP Installation du serveur DHCP


Il existe plusieurs serveurs DHCP pour les systmes d'exploitation " la UN*X", aussi bien commerciaux que libres. L'un des plus populaires est le DHCPd de Paul Vixie et de l'Internet Software Consortium (ISC). On peut l'obtenir depuis ftp://ftp.isc.org/isc/dhcp/. La plupart des distributions fournissent un paquetage dhcpd prcompil. Sous la Mandriva, le paquetage correspondant est : dhcp-server. Mais il ncessite pour tre install, que le paquetage dhcp-common le soit dj.

Prliminaires pour la configuration


Vrification du support de multicast dans le noyau : Une fois le serveur install, il faut vrifier que le noyau de votre systme Linux a t bien compil avec le support multicast. Cette vrification se fait en tapant la commande ifconfig -a. Vous devriez obtenir quelque chose comme ceci :
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62 inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2875542 errors:0 dropped:0 overruns:0 TX packets:218647 errors:0 dropped:0 overruns:0 Interrupt:11 Base address:0x210

Si le mot MULTICAST n'apparat pas, vous devez recompiler votre noyau avec le support multicast. Sur la plupart des systmes y compris Mandriva, a ne devrait pas tre ncessaire. Ajout d'une route pour 255.255.255.255 Ensuite, ajoutez une route pour 255.255.255.255. D'aprs le fichier README du DHCPd : .. Pour que dhcpd fonctionne correctement avec des clients DHCP pointilleux (comme les anciens Windows), il doit pouvoir envoyer des paquets IP avec une adresse de destination de 255.255.255.255. Malheureusement, Linux insiste pour changer 255.255.255.255 en l'adresse de diffusion du rseau (ici 192.5.5.223). Ceci constitue une violation du protocole DHCP et, alors que beaucoup de clients DHCP ignorent ce problme, certains (par exemple tous ceux de Microsoft) le remarquent. Les clients qui ont ce problme sembleront ne pas voir les messages DHCPOFFER du serveur. Voil pourquoi, il est ncessaire d'ajouter une route pour 255.255.255.255 pour avoir une configuration pouvant faire face cette situation aussi. Pour cela, il suffit de taper :
# route add -host 255.255.255.255 dev eth0

Si un message d'erreur comme celle qui suit apparat :


"255.255.255.255: Unknown host" il est alors ncessaire d'ajouter la ligne suivante votre fichier /etc/hosts : 255.255.255.255 tout-le-monde

Et ensuite, essayer :
route add -host tout-le-monde dev eth0

ou
route add 255.255.255.0 dev eth0

eth0 dsigne bien sr l'interface rseau que vous utilisez. Si vous en utilisez une autre, faites les changements ncessaires.

Configuration de DHCPd
Le fichier de configuration de DHCPd est /etc/dhcpd.conf. Pour configurer DHCPd, il faut crer ou diter ce fichier. Il existe une interface graphique pour configurer /etc/dhcpd.conf sous KDE appele kcmdhcpd. Si vous prfrez configurer dhcpd la main, suivez les instructions ci-dessous. La plupart du temps, vous voudrez assigner des adresses IP alatoirement. Cela peut se faire de la faon suivante :
# Exemple de /etc/dhcpd.conf # (Ajoutez vos commentaires ici) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "anfalab.org"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }

Le serveur DHCP distribuera aux clients des adresses IP dans les intervalles 192.168.1.10-192.168.1.100 et 192.168.1.150-192.168.1.200. L'attribution de l'adresse IP se fera pour une dure de 600 secondes si le client ne demande pas une dure diffrente, la dure maximale du bail tant de 7200 secondes. Le serveur va galement "conseiller" au client d'utiliser le masque de sous-rseau 255.255.255.0, l'adresse de diffusion 192.168.1.255, 192.168.1.254 comme routeur/passerelle et 192.168.1.1 et 192.168.1.2 comme serveurs DNS. Si vous devez spcifier un serveur WINS pour vos clients Windows, vous devrez inclure l'option netbios-name-servers :
option netbios-name-servers 192.168.1.1; option netbios-dd-server 192.168.1.1; option netbios-node-type 8;

On peut aussi assigner un nom spcifique en utilisant le nom du client :


host { hardware ethernet 08:00:2b:4c:59:23; fixed-address haagen.anfalab.org ; }

Attention : Si vous n'avez pas de DNS, il faut avoir un fichier dhcpd.conf utilisant les adresses IP et non les noms des machines puisque le lien, sans DNS, n'est pas possible. Ainsi on peut aussi assigner des adresses IP spcifiques en utilisant l'adresse ethernet du client :
host haagen { hardware ethernet 08:00:2b:4c:59:23;

3 sur 4

29/01/2012 21:37

Dynamic Host Configuration

http://www.misfu.com/creer-configurer-installer-serveur-client-dhcp-li...

fixed-address 192.168.1.222; }

Cela assignera l'adresse IP 192.168.1.222 un client dont l'adresse ethernet est 08:00:2b:4c:59:23. Vous pouvez aussi mlanger ces diffrentes possibilits, par exemple si vous voulez donner des adresses IP statiques certains clients (les serveurs, par exemple) et des adresses IP dynamiques d'autres (par exemple les ordinateurs portables de certains utilisateurs). Il existe de nombreuses autres options: adresse du serveur NIS, du serveur d'horloge... Pour en savoir plus sur ces options, lire la page de manuel de dhcpd.conf. Note importante 2 : Aprs l'installation du serveur DHCP sous Linux Mandriva et aprs la mise en place du fichier de configuration /etc/dhcpd.conf, il faut ncessairement exccuter le script perl /usr/sbin/update_dhcp.pl. Dans le cas contraire, le dmarrage du serveur DHCP chouera et vous aurez systmatiquement un message d'erreur concernant une instruction de type ddns-update-style en tentant de le lancer en mode dboguage par la commande :
# /usr/sbin/dhcpd -f -d

Il faut noter que le script perl /usr/sbin/update_dhcp.pl ne fait qu'ajouter une ligne au dbut du fichier de configuration /etc/dhcpd.conf, ligne qui se prsente comme ceci :
ddns-update-style none ;

Vous pouvez procder vous-mme cette modification et ne pas avoir lancer ledit script. Note importante 3: Nous attirons votre attention sur un cas d'cole qui nous a donn quelques soucis. Il s'agit d'une machine qui est sur un rseau local et qui joue aussi le rle de passerelle vers Internet. Il est connect internet par son interface eth0 et une connexion ADSL, en tant que client dhcp. Il est connect au rseau local par son interface eth1. Sur le rseau local, il est serveur DHCP. Dans ces conditions, si rien n'est fait, le dmarrage du serveur DHCP (service dhcpd start) choue systmatiquement, de mme que la demande de statut du daemon (service dhcpd status). Aucun message n'est affich. La raison c'est que le daemon dhcpd est prvu pour travailler sur l'interface eth0 par dfaut. La solution consiste modifier le script d'excution du daemon (/etc/rc.d/init.d/dhcpd). Il faut y positionner la variable INTERFACES "eth1" tout en la dcommentant.

La base de donnes des concessions du client DHCP


Le serveur DHCP de l'Internet Software Consortium conserve une base de donne persistante des concessions attribues. Cette base de donnes est un fichier texte ASCII sans contrainte de forme, contenant une srie de dclarations de concessions. Chaque fois qu'une concession est attribue, renouvele ou libre, sa nouvelle valeur est enregistre la fin du fichier des concessions. Aussi si plus d'une valeur apparat pour une concession donne, la dernire valeur du fichier est la valeur courante. Il porte le nom dhcpd.leases et est stock dans les versions rcentes de dhcpd dans le rpertoire /var/lib/dhcp. Quand dhcpd est install pour la premire fois, il n'y a pas de base de donnes de concessions. Or dhcpd requiert une base de donnes de concessions pour dmarrer. C'est pourquoi il est vivement conseill de crer le fichier correspondant sur la ligne de commandes :
# touch /var/lib/dhcp/dhcpd.leases

Cela va crer un fichier vide (de taille nulle). Certaines vieilles versions de dhcpd 2.0 plaaient ce fichier en /etc/dhcpd.leases. Il est fortement conseill de ne rien changer dans le fichier; c'est dhcpd qui le manipulera lui-mme. Si vous voyez un message d'erreur disant que le fichier n'existe pas, ignorez le et passez l'tape suivante.

Dmarrage du serveur
Vous pouvez maintenant invoquer le serveur DHCP en vous contentant de taper (ou de rajouter dans les scripts de dmarrage) :
# /usr/sbin/dhcpd

Cette commande invoquera dhcpd sur l'interface eth0. Pour l'utiliser sur une autre interface, prcisez-le simplement sur la ligne de commande, par exemple :
# /usr/sbin/dhcpd eth1

Pour vrifier que tout fonctionne correctement, vous devriez d'abord activer le mode de dbogage et mettre le serveur en avant-plan. Vous pouvez le faire en tapant :
# /usr/sbin/dhcpd -d -f

Ensuite, allumez un de vos clients et regardez la console de votre serveur. Vous verrez apparaitre un certain nombre de messages de dbogage. Si tout se passe bien, quittez dhcpd et relancez-le sans les options -d -f. Le fichier qui excute le daemon au dmarrage (lorsque cela est configur) est : /etc/rc.d/init.d /dhcpd.

Par l'quipe technique A.N.F.A

Vous pouvez galement faire hberger vos tutoriaux sur le site Misfu, il vous suffit de nous les envoyer

Matelas bio latex naturel Promo -30% jusqu'au 31 janv. Ds 473,90 - Livraison gratuite www.matelas-bio-latex.com/promo Offre Metz -70% Bnficiez d'Offres Incroyables Du Jamais Vu Metz www.GROUPON.fr/Metz Formation Unix 5 jours de formation, service de coaching & cours offert ! www.egilia.com/Unix

Partenaires : Magazine du stockage

Optimiser Windows

Communaut informatique

Lettre de rsiliation

Optimiser Vista

Publiez vos articles, et cours - Nous contacter WDMdia hbergement hbergeur de Misfu Copyright 2005-2012 www.misfu.com C'est quoi l'informatique ?

4 sur 4

29/01/2012 21:37