La lecture en ligne est gratuite
Télécharger

Publications similaires

TCP/IP- routage

de dorsons2006

DHCP - Etude et mise en place DHCP 4.0.0 et Gentoo Aurélien BONNARDON 07/04/2008
Etude du DHCP et installation d’un serveur sous Gentoo ainsi que d’un client sur différentes plateformes.
Introduction
Ce document décrit les étapes pour installer un serveur DHCP sur une machine utilisant Linux Gentoo. DHCP est un protocole permettant d’assigner dynamiquement des adresses IP aux stations du réseau dans lequel il se trouve.
Les logiciels (client et serveur) sont développés par l’ISC. L'Internet Systems Consortium, abrégé 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 indépendante, les développeurs y participant créent et maintiennent notamment des logiciels comme une distribution DHCP (serveur et client), BIND (serveur DNS) ou encore d'InterNetNews (INN). L'ISC héberge également un des 13 serveurs racines du DNS (F) ainsi que des archives Usenet. L'ISC a été crée en 1994 sous le nom d'Internet Software Consortium pour permettre le développement de BIND jusque-là développé par l'Université de Berkeley et Vixie Enterprise. L'ISC change de nom (mais pas de sigle, par rétroacronymie) pour Internet Systems Consortium en 2004.
Le protocole DHCP
Présentation Dynamic Host Configuration Protocol (DHCP) est un terme anglais désignant un protocole réseau dont le rôle est d'assurer la configuration automatique des paramètres IP d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous-réseau. DHCP peut aussi configurer l'adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft).
La conception initiale d'IP supposait la pré-configuration de chaque ordinateur connecté au réseau avec les paramètres TCP/IP adéquats : c'est l'adressage statique. Sur des réseaux 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 assignées ne peuvent être utilisées même si l'ordinateur qui la détient n'est pas en service : un cas typique où ceci pose problème est celui des fournisseurs d'accès à internet (FAI ou ISP en anglais), qui ont en général plus de clients que d'adresses IP à leur disposition, mais dont tous les clients ne sont jamais connectés en même temps.
DHCP apporte une solution à ces deux inconvénients :
·Seuls les ordinateurs en service utilisent une adresse de l'espace d'adressage; ·Toute modification des paramètres (adresse de la passerelle, des serveurs de noms) est répercutée sur les stations lors du redémarrage; ·La modification de ces paramètres est centralisée sur les serveurs DHCP.
Le protocole a été présenté pour la première fois en octobre 1993 et est défini par la RFC1531, modifiée et complétée 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-configurées sans DHCP.
Un serveur DHCP doit être sur le même réseau que les machines qui l’utilise, sinon il faut utiliser un proxy DHCP.
Fonctionnement ·L'ordinateur réclament une adresse IP envoie en Broadcast une trameDHCP DISCOVER(TCP/IP) qui s'adresse au port 67. Cette trame contient l’adresse MAC du client. ·Le serveur DHCP, ayant reçu cette trame, envoie une trameDHCP OFFER à destination de l’adresse MAC du client et du port 68. Elle contient l'adresse IP du serveur, l'adresse IP et le masque de sous-réseau proposé au client. ·Le client diffuse sur le réseau une trameDHCP 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 d’envoyer éventuel des paramètres. ·Le serveur DHCP envoie alors une trameDHCP ACKqui assigne au client l'adresse IP et son masque de sous-réseau. Cette trame comporte également la durée du bail de cette adresse, deux valeurs T1 et T2 qui déterminent le comportement du client en fin de bail, et éventuellement d'autres paramètres : adresse IP de la passerelle par défaut o adresses IP des serveurs DNS o adresses IP des serveurs NBNS (WINS) o
Si plusieurs serveurs DHCP répondent à la requête DHCP DISCOVER, le client répondra à la première réponse DHCP OFFER arrivée. La trame DHCP REQUEST du client à pour but de prévenir les autres serveurs que leurs demandes sont rejetées.
Il existe 4 autres trames dans le protocole DHCP :
·DHCP DECLINE: Trame émise par le client pour informer le serveur que l’adresse proposée est déjà utilisée. ·DHCP NAK: Trame émise par le serveur pour rejeter les paramètres demandés par le client ou pour l’informer que son bail est terminé. ·DHCP RELEASE: Trame émise par le client pour libérer son adresse IP. ·DHCP INFORM: Trame émise par le client lorsqu’il possède son adresse IP pour demander les paramètres locaux au serveur (passerelle par défaut, serveurs DNS, …).
Installation d’un serveur DHCP sous Gentoo
Téléchargement et installation Il faut commencer par télécharger les sources sur le site de l’ISC, à l’adresse suivante : ftp://ftp.isc.org/isc/dhcp/
Ensuite, il faut extraire l’archive 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 exécuter la série de commande suivante :
./configure make make install
Configuration de la machine Un certain nombre de paramètres doivent être fixés pour que le serveur DHCP fonctionne correctement. En particulier, le noyau doit supporter le MULTICAST. Pour voir si c’est le cas, il suffit de taper la commande ifconfig et de regarder si l’option apparait :
tryx ~ # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:50:FC:E7:62:F3  inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1  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 n’est pas le cas, il va falloir recompiler le noyau pour qu’il supporte cela. Vous trouverez l’option dans Networking options -> IP: multicasting.
Il faut également ajouter une route vers 255.255.255.255 (adresse de Broadcast) car certains clients DHCP nécessite cela, en particulier ceux de Microsoft. Il suffit d’exécuter la commande suivante :
route add -host 255.255.255.255 eth0
Pour finir, il faut s’assurer que votre noyau intègre IPv6. Pour cela, il faut vérifier que le fichier /proc/net/if_inet6 existe. Si ce n’est pas le cas, exécuter 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 créer après l’installation. Il est mis à jour en temps réel, 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 d’un client :
946750530 00:18:f3:a3:24:a4 192.168.0.190 skeltryx 01:00:18:f3:a3:24:a4
Le premier paramètre est un nombre aléatoire choisi par le serveur et qui est utilisé pour reconnaître ème le client. Le 2 est l’adresse MAC du client, suivi de son nom. Le dernier est l’adresse MAC de l’interface sur laquelle il est connecté.
/etc/dhcpd.conf Il s’agit du fichier de configuration du serveur. Il contiendra les directives pour l’assignation des adresses IP. En fait, il existe 2 manières d’assigner des adresses IP, soit de manière aléatoire, soit en fonction des adresses MAC des clients.
Voici un exemple de fichier avec les commentaires des différentes lignes. Il faut noter que les paramètres globaux peuvent être définit dans le champ subnet.
### Configuration des baux # Durée du bail par défaut, en seconde default-lease-time 86400; # Durée maximum d’un bail, en seconde max-lease-time 172800; ## Configuration du réseau # Nom du domaine option domain-name "myworld"; # Masque du réseau option subnet-mask 255.255.255.0; # Adresse de broadcast du réseau option broadcast-address 192.168.1.255; # Passerelle par défaut option routers 192.168.1.254; # Serveurs DNS option domain-name-servers 192.168.1.1, 192.168.1.2; # Configuration du réseau et de son masque subnet 192.168.1.0 netmask 255.255.255.0 { # Plage d’adresses 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 intéressante, refuser les requêtes des clients non déclarés :
deny unknown-clients
Lancement du serveur Le lancement du serveur se fait grâce à la commande dhcpd. Il faut préciser certaines l’options, en particulier l’emplacement des 2 fichiers cités précédemment et la ou les interfaces où le démon devra se mettre à l’écoute.
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 c’est que vous n’avez pas installé le support IPv6 dans votre noyau.
Installation et configuration du client
Linux Gentoo Pour installer un client DHCP, nous n’allons pas y aller pas 4 chemins, il suffit d’utiliser 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" Redémarrez ensuite le service avec la commande : /etc/init.d/net.eth0 restart
Windows XP  Par défaut, 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 Réseaux puis clic droit sur la carte et propriétés. Dans la liste, sélectionnez « Protocole Internet (TCP/IP) » et cliquez sur Propriétés. Ensuite, mettez les valeurs par défaut 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