Serveur DHCP
05 Jul. 2006
- Auteur : Jul
- Responsable : Jul
- Score ( voter ) :



- Connexes : Même auteur | Même responsable | Historique
1. Notions - Généralités :
Avoir deux PC en réseaux c'est bien, mais lorsqu'on en a 200 la configuration du réseau devient vite fastidieuse. Comment faire ? Grâce au serveur DHCP on va pouvoir gérer les paramètres réseaux et pouvoir ainsi attribuer aux nouveaux PC du réseaux des paramètres automatiquement. DHCP signifie Dynamique Host Configuration Control. Clairement, une fois le (ou les) PC démarré, le client obtient directement les paramètres réseaux dont il a besoin auprès du serveur lui-même. Je me base ici sur mon expèrience, à savoir sur une Slackware 9.0 et à partir des sources.2. Installation :
Pré-requis : il faut que le serveur DHCP réponde aux appels DHCP du réseau. Pour cela dans un terminal tapez :
$ route add -host 255.255.255.255 dev eth0
Ensuite, il faut procéder à l'installation du serveur dhcp.
-
Pour Mandriva :
# urpmi dhcp3-server
-
Pour Debian/Ubuntu :
# apt-get install dhcp3-server
-
A partir des sources :
On peut trouver les source ici : http://www.isc.org/products/DHCP/.
On décompresse l'archive :
$ tar zxvf dhcp-x.xxx.tar.gzOn compile alors les sources du serveur DHCP :$ cd dhcp-3.0 $ ./configure $ make # make install # touch /var/state/dhcp/dhcpd.leases
3. Configuration du serveur :
La configuration du serveur DHCP se fait simplement a l'aide de deux fichiers :- Le premier c'est "/etc/dhcpd.conf" : ce fichier sert à la configuration même du serveur.
- Le second, c'est "/var/state/dhcp/dhcpd.leases" : ce fichier va servir à l'inscription des clients. Cela permet le suivi, les statistiques... de l'activité du serveur.
- Soit configurer d'une manière simple le serveur
- Soit régler plus finement le serveur via l'adresse MAC des cartes réseaux des machines clientes
3.1 Configuration simple :
Le serveur va attribuer sauf erreur de ma part des IP dynamiques aux clients, dont voici un exemple :# Exemple de configuration /etc/dhcpd.conf
# On donne le nom du domaine
option domain-name "nom_choisi";
#On défini le masque réseau
option subnet-mask 255.255.255.0;
# Ici c'est le serveur de nom, le serveur privé,
# il faut aussi mettre le/les DNS donnés par votre provider.
option domain-name-servers 192.168.1.2 , 192.168.1.3;
ddns-update-style ad-hoc;
# Les clients auront cette adresse comme passerelle par défaut
option routers 192.168.1.1;
#Le bail a une durée de 86400 s par défaut, soit 24 h
# On peut configurer les clients pour qu'ils puissent demander une durée de bail spécifique
default-lease-time 86400;
#On le laisse avec un maximum de 7 jours
max-lease-time 604800;
# Définition du réseau : 192.168.1.0 et de son masque
subnet 192.168.1.0 netmask 255.255.255.0 {
#La plage d'adresses disponibles pour les clients
range 192.168.1.4 192.168.1.253;
# Et l'adresse utilisée pour la diffusion
option broadcast-address 192.168.1.255;
}
Comment vérifier la connexion d'un client ? Grâce au fichier dhcpd.leases.
3.2 Configuration unitaire par client :
On peut allouer plus précisemment une adresse IP pour un client spécifique.Cela peut être très interessant pour définir de manière "définitive" l'ensemble des adresses IP d'un réseau, et donc ainsi empécher toutes nouvelles machines de prendre une adresse IP libre. Ceci peut être une première étape pour sécuriser votre réseau. Comment avoir l'adresse MAC de votre carte réseaux sous linux ? Dans un terminal taper :
ifconfig
Vous aurez quelque chose comme :
eth0 Link encap:Ethernet HWaddr 00:00:4C:71:46:68 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:99256956 errors:0 dropped:0 overruns:0 frame:0 TX packets:99670920 errors:0 dropped:0 overruns:11 carrier:66090 collisions:0 Interrupt:18 Base address:0x3800Ici, l'adresse MAC est donc : 00:00:4C:71:46:68. Sous windows deux cas :
- pour ceux qui ont Win 9x c'est : winipcfg
- pour ceux qui ont un windows à base de NT c'est : ipconfig /all
# Définition de notre machine PC-1
host PC-1 {
hardware ethernet 00:00:4C:71:46:68;
fixed-address 192.168.1.5;
}
Biensûr, on peut cumuler les 2 types de configuration. Une configuration normale pour l'ensemble du réseau, plus une configuration plus fine pour quelques ordinateurs du réseau.
3.3 Ajouter des nouvelles options au serveur DHCP
Par défaut, le serveur DHCP ne permet pas d'utiliser toutes les options DHCP (voir les RFC à ce sujet). On peut facilement rajouter de nouvelles options au serveur, en les définissant au début du fichier. Ici, on ajoutera par exemple l'option 121 (classless-static-routes, RFC 3442), en définissant l'option classless-static-routes comme tableau d'entier, conforme à l'envoi des paquets# RFC3442 routes: overrides routers option option classless-static-routes code 121 = array of integer 8;On utilisera ensuite cette option correctement dans la partie subnet souhaitée dans le fichier de config. Par exemple, on définit que la route pour aller ver le sous réseau 192.168.2.0 utilisera la passerelle 192.168.1.1 :
#definition du routeur oblige option routers 192.168.1.1; option classless-static-routes 24, 192, 168, 2, 192, 168, 1, 1, 192, 168, 1, 1 ;Voila, le serveur est configurer. Il reste a mettre dans votre fichier /etc/rc.d/rc.local la ligne suivante :
/usr/sbin/dhcpd eth0
eth0 désigne la carte réseaux mais ca peut être aussi eth1, eth2 .... selon les cas.
Redémarrez et normallement le serveur DHCP est bon.
4. Configuration des clients :
4.1 Configuration des clients linux :
Pour utiliser dhcp en tant que client il suffit d'installer le paquet dhcpcd sur votre machine. Une fois installé, il vous suffit de taper dans un terminal :
dhcpd -d eth0
Avec eth0 le nom de votre carte ethernet. Vérifiez que tout fonctionne en, tapant simplement dans un terminal :
# /sbin/ifconfig
N'oubliez pas d'automatiser l'attribution de l'adresse IP au démarrage, en modifiant le fichier :
# /etc/sysconfig/network-scripts/ifcfg-eth0 pour Mandriva et RedHat
/etc/network/interfaces Pour debian
/etc/rc.d/rc.inet1 Pour Slackware
Vous aurez plus de détail sur la configuration de ce fichier, dans la section Distribution Si ce fichier n'existe pas, créez-le avec l'outil de votre distribution.
Là encore, il existe une methode générique pour faire cela, elle consiste à rajouter la ligne qui suivra à la fin de votre fichier /etc/rc.d/rc.local :
dhcpd -d eth0
4.2 Configuration des clients windows :
Ici deux cas existent : les windows NT et les windows 9.x.- Pour les Windows NT : Cliquer sur démarrer puis sur Panneau de Configuration. Dans la fenêtre qui s'ouvre chercher une icône avec le nom de réseau. Cliquer ou double cliquer dessus selon votre cas. Une nouvelle fêntre s'ouvre avec normalement deux icones la premiere si vous avez une connexion internet l'autre qui doit se nommer "connexion au reseau local". Double Cliquer droit sur cette icône puis cliquer sur propriété. Une fenêtre doit s'ouvrir. Vérifiez que vous êtes bien sur l'onglet général puis cliquer sur la ligne "Protocole (TCP/IP)", puis sur "propriétés". Une fenêtre s'ouvre il ne vous reste plus qu'à mettre dans l'onglet général "Obtenir une adresse IP automatiquement" et "Obtenir l'adresses du serveur DNS automatiquement" Validez les changement et les clients (ou le client) sont prêts.
- Pour les Windows 9.x : Effectuez un clique droit sur l'icône du favoris réseau ou retrouvez dans le panneau de configuration l'icone du réseau. À partir de là la procédure est identique a celle du dessus en principe