Introduction
Lorsque l’on utilise le protocole TCP/IP au sein d’un réseau de PME/PMI, il devient vite fastidieux de paramétrer manuellement la configuration réseau de chaque poste de travail.Il existe néanmoins une solution d’adressage dynamique qui peut largement faciliter la vie des administrateurs en centralisant et automatisant la configuration des paramètres réseaux nécessaires au bon fonctionnement des postes clients.
Ce protocole se nomme DHCP (Dynamic Host Configuration Protocol)
Un peu de théorie
Le DHCP permet de configurer tout ce qui concerne les paramètres réseau du poste client, c’est à dire son IP, son masque de sous réseau, la passerelle…DHCP est une extension du protocole BOOTP basé sur UDP (User Datagramme Protocol) c’est donc un
service « non connecté ». Le serveur DHCP attribut les informations pour une période limitée, un bail durant lequel le client aura une configuration valide qu’il devra libérer ou renouveler à la fin de ce dernier.
On peut schématiser le processus d’attribution comme suit:
Le client envoie une requête sur tout le réseau avec comme adresse de destination l’IP Broadcast 255.255.255.255. Le serveur reçoit la requête et répond à cette dernière, toujours à l’adresse de broadcast 255.255.255.255, sans vérifier que le client a bien reçu la réponse.
En pratique, l’attribution d’adresse est un petit peu plus compliquée que cela. En effet, le serveur et le client s’échangent plusieurs requêtes permettant le paramétrage de l’interface réseau : Voir Annexe N°1-1
DHCPDISCOVER : requête envoyée par le client (à l’adresse 255.255.255.255) dont le but est de localiser le ou les serveurs DHCP disponibles.
DHCPOFFER : réponse du ou des serveurs (à l'adresse 255.255.255.255) à une requête DHCPDISCOVER, elle contient les premiers paramètres.
DHCPREQUEST : requête diverse du client pour, par exemple, prolonger son bail.
DHCPACK : réponse du serveur qui contient des paramètres et l'adresse IP du client.
DHCPNAK : réponse du serveur pour signaler au client que son bail est échu ou si le client annonce une mauvaise configuration réseau.
DHCPDECLINE : le client annonce au serveur que l'adresse est déjà utilisée.
DHCPRELEASE : le client libère son adresse IP.
DHCPINFORM : le client demande des paramètres locaux, il a déjà son adresse IP.
1 - Installation et configuration du serveur
Les logiciels :
Nous allons utiliser les logiciels libres pour implémenter le service DHCP.Le serveur en lui-même est développé par l’Internet Software Consortium et va tourner sous un système Unix libre, FreeBSD.
ISC DHCPD version 3.0
FreeBSD 4.7
Le matériel :
A l’entreprise :Processeur Pentium 166 Mhz
RAM 32 Mo EDO
Disque dur 1Go
Une carte réseau 3com 3c509 10Mbps (reconnue sous FreeBSD)
Pour la démonstration :
Processeur Celeron 1 Ghz
RAM 128 Mo SDRAM
Disque dur 20 Go
Une carte réseau Sis 900 10/100Mbps (reconnue sous FreeBSD)
Cas pratique :
Les postes clients de notre réseau local devront être paramétrés comme suit : Réseau 192.168.0.0
Masque de sous réseau 255.255.255.0
Plage d’adresses 192.168.0.1 -> 192.168.0.254
IP réservées :
192.168.0.10 Serveur DHCP
192.168.0.11 Serveur FTP et HTTP
192.168.0.1 Passerelle
DNS primaire du FAI = 80.8.254.66
DNS secondaire du FAI = 193.252.19.3
Dessin du réseau : Voir Annexe N°1-2
Travaux réalisés :
Installation du serveur :
On récupère les sources du serveur sur le serveur FTP de l’ISCNotebook# ftp –a ftp://ftp.isc.org/isc/dhcp/dhcp-latest.tar.gz
Compilation des sources et installation
Notebook# tar xvzf dhcp-latest.tar.gz
Notebook# cd dhcp-3.0pl1/
Notebook# ./configure
Notebook# make
Notebook# make install
Configuration du serveur :
Tout d’abord, il faut copier le fichier de configuration dhcpd.conf dans le répertoire /etc Notebook# cp /etc/dhcp-3.0pl1/serveur/dhcpd.conf /etc/
Ensuite on l’édite
Notebook# vi /etc/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 { | #Définition du réseau et du sous réseau |
range 192.168.0.20 192.168.0.254; | #Plage d’adresses à distribuer |
option routers 192.168.0.1; | #IP de la passerelle |
default-lease-time 2419200; | #Bail par défaut en secondes |
max-lease-time 3000000; | #Bail maximum en secondes |
option domain-name "actionbat.com"; | #Domaine attribué au client |
option domain-name-servers 80.8.254.66, 193.252.19.3; | #IP des serveurs DNS |
} | |
ddns-update-style none; | #MAJ DDNS non implémentée |
Lancement du serveur
Il faut impérativement créer le fichier /var/db/dhcpd.leases avant de lancer le serveur (ce fichier contient les baux d’adresses) :Notebook# touch /var/db/dhcpd.leases
On peut ensuite lancer le serveur :
Notebook# /usr/sbin/dhcpd
Paramètres :
- -p {port} : Précise le port d’écoute (par défaut c’est le 67)
- -f : Démarrage du programme au premier plan et non pas en tant que démon.
- -q : Ne pas afficher les copyrights au démarrage.
- -t : vérification de la bonne syntaxe du fichier de configuration (dhcpd.conf).
- -T : vérification de l’intégrité du fichier de baux (dhcpd.leases).
- -cf {config_file} : Précise le fichier de configuration à utiliser (Par défaut : /etc/dhcpd.conf).
- -lf {leases_file} : Idem mais pour le fichier de baux (Par défaut : /var/db/dhcpd.leases).
- {interface [interface2]…} : Indique la ou les interfaces d’écoute. Le serveur DHCP répondra uniquement aux requêtes arrivant sur la ou les interfaces spécifiées. Par exemple, si nous avons plusieurs interfaces réseaux (if0, if1, if2) et que nous voulons seulement écouter sur if0 il suffit de faire : /usr/sbin/dhcpd if0
Notebook# echo “/usr/sbin/dhcpd” /etc/rc.local
2 - La configuration des postes clients
Windows 95/98/98SE/Me : Poste de travail / panneau de configuration / réseau / Sélectionner « Protocole Internet (TCP/IP) » / cliquer sur « Propriétés » / cocher « Obtenir une adresse IP automatiquement » et « Obtenir les adresses des serveurs DNS automatiquement »
Windows 2000/ XP :
Clique droit sur « Favoris Réseau » / cliquer sur « Propriétés » Dans « Connexions réseau et accès à distance » clique droit sur « Connexion au réseau local » / « Propriétés » / Sélectionner « Protocole Internet (TCP/IP) » / cliquer sur « Propriétés » / cocher « Obtenir une adresse IP automatiquement » et « Obtenir les adresses des serveurs DNS automatiquement »
Pour vérifier la bonne configuration de l’interface nous pouvons utiliser la commande IPCONFIG (il existe aussi winipcfg mais ce programme n’est plus disponible sous Windows 2000 / XP) Voir annexe N°1-3 et 2-1
Système *BSD et Unix-Like
Télécharger et installer, s’ il ne l’est pas déjà, le client DHCP de l’Internet Software Consortium : ftp://ftp.isc.org/isc/dhcp/dhcp-latest.tar.gz
Ensuite il suffit de taper : # dhclient if0 (Où if0 est l’interface réseau)
Le client DHCP s’occupe de créer le fichier resolv.conf dans /etc qui contient les IP des serveurs DNS et d’ajouter l’IP de la passerelle comme route par défaut ( route add default ip_de_la_passerelle ). Pour les options plus pointues : man dhclient et voir le fichier dhclient.conf . Il est recommandé de lancer la commande automatiquement au démarrage, pour cela il faut taper :
# echo «/sbin/dhclient if0» >> /etc/rc.local
Ensuite nous pouvons vérifier la configuration réseau en tapant : (Voir Annexe N°2-2)
# ifconfig if0 # route get default # cat /etc/resolv.conf
3 - Bilan
Une solution de ce type est assez simple à mettre en place. Nous n’avons rencontré aucun problème lors de la configuration du service DHCP. Toutefois, la configuration peut se révéler plus complexe lorsque l’on utilise la mise à jour dynamique des serveurs DNS et le protocole BOOTP (BOOTSTRAP Protocol). Le serveur de l’ISC permet aussi de réserver des adresses IP pour certains postes en fonction de leur adresse MAC. N’en ayant pas l’utilité, cette fonction n’a pas était testée.Ressources
http://www.guill.net http://gcu-squad.org
http://www.isc.org
http://www.freebsd-fr.org
Annexe N°1-1
Annexe N°1-2
Annexe N°1-3
Annexe N°2-1
Annexe N°2-2
0 commentaires:
Enregistrer un commentaire