| ]



























¤ Configuration du serveur La configuration consiste à créer 2 fichiers :
/etc/dhcp3/dhcpd.conf, ce fichier sert à la configuration même du serveur (plage d'adresses, paramètres distribués),

/var/lib/dhcp3/dhcpd.leases, ce fichier va servir à l'inscription des clients. Chaque client DHCP, génère l'écriture d'un enregistrement dans ce fichier. Cela permet le suivi, les statistiques de l'activité du serveur.

Le fichier de configuration dhcpd.conf

# ici il s'agit du réseau 192.168.0.0
subnet 192.168.0.0 netmask 255.255.255.0 {
#La plage d'adresse disponible pour les clients
range 192.168.0.10 192.168.0.20;
# Les clients auront cette adresse comme passerelle par défaut
option routers    192.168.0.254;
# Ici c'est le serveur de noms, on peut en mettre plusieurs
option domain-name-servers   192.168.0.1;
# Enfin on leur donne le nom du domaine
option domain-name   "freeduc-sup.org";
# Et l'adresse utilisée pour la diffusion
option broadcast-address 192.168.0.255;
# Le bail à 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;

#Ici on désire réserver des adresses à des machines
group {
#use-host-decl-names indique que toutes les machines dans l'instruction « group »
# auront comme nom, celui déclaré dans l'instruction host.
use-host-decl-names true ;
# ici définir les machines
host m1 {
hardware ethernet 00:80:23:a8:a7:24;
fixed-address 192.168.0.125;
} # End m1
host m2 {
hardware ethernet a0:81:24:a8:e8:3b;
fixed-address 192.168.0.126;
} # End m2
    } # End Group
}     # End dhcp.conf

Création d'un fichier d'inscription

Ce fichier doit parfois être créé, sans quoi le serveur DHCP ne pourra pas démarrer. Il suffit de créer un fichier vide. Pour cela, saisissez la commande touch /var/lib/dhcp3/dhcpd.leases. Le fichier est créé. Voici ce qu'il peut contenir après l'inscription du premier client :
[root@master /etc]# more  /var/lib/dhcp3/dhcpd.leases
lease 192.168.0.10 {
 starts 1 2002/12/14 18:33:45;
 ends 1 2002/12/14 18:34:22;
 hardware ethernet 00:40:33:2d:b5:dd;
 uid 01:00:40:33:2d:b5:dd;
 client-hostname "CHA100";
}
On distingue les informations suivantes : Début du bail, Fin du bail, adresse MAC du client, le nom d'hôte du client. Attention ce nom est différent du nom Netbios utilisé sur les réseaux Microsoft.

Activation du serveur

Le serveur est configuré, il n'y a plus qu'à le mettre en route. Utilisez la commande suivante pour arrêter ou activer le service : /etc/init.d/dhcpd3 start | stop.
Le script lance le serveur en mode daemon. Vous pouvez le lancer en avant plan avec la commande dhcpd3 -d. Cela permet de voir les messages et déterminer s'il y a des dysfonctionnement éventuels.
root@master:/etc/dhcp3# dhcpd3 -d
Internet Software Consortium DHCP Server V3.0.1rc9
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Wrote 1 leases to leases file.
Listening on LPF/eth0/00:d0:59:82:2b:86/192.168.0.0/24
Sending on   LPF/eth0/00:d0:59:82:2b:86/192.168.0.0/24
Sending on   Socket/fallback/fallback-net
CTRL C pour arrêter.

¤ Installation des clients
Le client sous Windows

L'installation est assez simple si vous avez déjà une carte réseau et le protocole TCP/IP installé. Utilisez les commandes suivantes: Panneau de configuration/Réseau/Protocole TCP IP/Propriétés/Onglet "adresse ip"/ Cochez Obtenir automatiquement une adresse IP
La configuration est terminée, vous pouvez relancer la machine. Le client interrogera un serveur DHCP pour qu'il lui délivre un bail (sorte d'autorisation de séjour sur le réseau) contenant au minimum une adresse Ip et le masque correspondant .

Le client sous Linux

Vous allez réaliser une configuration manuelle
Allez dans le répertoire /etc/network, ouvrez le fichier interfaces. C'est ici qu'est la configuration des cartes installées sur la machine. Remplacez static par dhcp dans la configuration de l'interface eth0. Mettez tous les paramètres de cette interface (address, netmask, network....) en commentaire.
La configuration de la carte est terminée, vous pouvez tester en relançant le service réseau.
Vous pouvez egalement tester dynamiquement en ligne de commande:
root@m1:# dhclient eth0

¤ Procédure de test

Sur Windows vous allez pouvoir utiliser (selon les versions) les commandes IPCONFIG et Winipcfg.
Utilisez ipconfig /? pour voir comment utiliser la commande
Vous pouvez utiliser l'interface graphique winipcfg sous Windows xp uniquement. Allez dans Démarrer puis Exécuter et saisissez winipcfg. Une fois la fenêtre activée vous pouvez utiliser les fonctions de libération et de renouvellement de bail. Si vous avez plusieurs cartes sur la station, la liste déroulante “ Cartes Ethernet Informations ” vous permet d'en sélectionner une.

¤ Installation d'un agent relais DHCP
Sous Linux il existe un agent relais DHCP (dhcprelay). Ce produit de l'ISC (Internet Software Consortium) permet de router des requêtes BOOTP et DHCP provenant de clients d'un réseau sur lequel il n'y a pas de serveur DHCP vers un autre segment sur lequel un serveur pourra répondre.

Mode de fonctionnement :

L'agent relais DHCP écoute les requêtes et les réponses BOOTP et DHCP. Quand une requête arrive, l'agent route la requête vers la liste de serveurs spécifiée sur la ligne de commande. Quand une réponse arrive d'un serveur, l'agent transmet la réponse (broadcast ou unicast cela dépend de la réponse) sur le segment d'où provenait la requête (broadcast) ou directement vers le client (unicast).

Ligne de commande :
dhcrelay3 [-p port] [-d] [-q] [-i if0 [... -i ifN ] ]server0 [ ...serverN ]
L'agent :
- écoute  sur  toutes  les  interfaces  à  moins que certaines
  soient spécifiées   avec l'option -i,
- utilise, comme le  protocole  Bootp, le port 67 par défaut
  (voir /etc/services ) modifiable avec l'option -p,
- fonctionne  en avant-plan avec l'option -d (option debug),
  sinon en arrière-plan,
- n'affiche pas les informations de démarrage avec l'option -q,
- utilise  les  serveurs  spécifiés sur la ligne de commande
  server0, ...serveurN.

Vous allez installer le service serveur DHCP.
Inspirez vous de l'exemple ci-dessous :
ddns-update-style none;
authoritative;
log-facility local7;
subnet 172.16.11.0 netmask 255.255.255.0 {
 range 172.16.11.2 172.16.11.253;
 option routers 172.16.11.254;
 #option domain-name-servers 192.168.90.77;
 #option domain-name "pat107.org";
  option broadcast-address 172.16.11.255;
 default-lease-time 1200;
 max-lease-time 2400;
}
subnet 172.16.12.0 netmask 255.255.255.0 {
 range 172.16.12.2 172.16.12.253;
 option routers 172.16.12.254;
 option broadcast-address 172.16.12.255;
 default-lease-time 1200;
 max-lease-time 2400;
}

Vous adapterez le fichier de configuration du serveur afin qu'il puisse délivrer des adresses pour les deux étendues d'adresses. Chaque segment représentant une étendue.
Vérifiez que le serveur démarre sans erreurs ni warning avec l'option "-d" (debug). Ne le lancez pas en mode daemon.

roo:~# dhcpd3 -d
Internet Systems Consortium DHCP Server V3.0.1rc14
Copyright 2004 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 1 leases to leases file.
Listening on LPF/eth0/00:08:c7:19:25:75/172.16.11.0/24
Sending on   LPF/eth0/00:08:c7:19:25:75/172.16.11.0/24
Sending on   Socket/fallback/fallback-net

Vérifiez égalemement que le service est actif et que le port est bien ouvert avec la commande netstat :
Proto Recv-Q Send-Q Adresse locale Adresse distante  Etat        PID/Program name
udp    64232      0 0.0.0.0:67     0.0.0.0:*                     2093/dhcpd3
Installer l'agent relais DHCP et activer le service, toujours en mode debug. La commande "dpkg-reconfigure " peut également vous permettre de configurer l'agent et indiquer à quel serveur l'agent doit passer les requêtes.
Sur la ligne de commande, on indique à quel serveur doit s'adresser l'agent :
root@PAT109:~# dhcrelay3 172.16.11.1 -d
Internet Systems Consortium DHCP Relay Agent V3.0.1rc14
Copyright 2004 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:03:0d:08:63:bf
Sending on   LPF/eth0/00:03:0d:08:63:bf
Sending on   Socket/fallback

regardez, avec la commande netstat sur quel port par défaut l'agent attend les requêtes.
Démarrez le poste client et regardez le dialogue sur les consoles du serveur et de l'agent. Le client doit obtenir une adresse ip.
Voici un extrait du dialogue sur l'agent :
# Transmission de la requête cliente au serveur
forwarded BOOTREQUEST for 00:0a:e4:4e:64:4e to 172.16.11.1
# Transmission de l'adresse reçu du serveur au client
forwarded BOOTREPLY for 00:0a:e4:4e:64:4e to 172.16.12.10
Voici un extrait du dialogue sur le serveur :
# Le serveur reçoit une requête de l'agent
DHCPREQUEST for 172.16.12.10 from 00:0a:e4:4e:64:4e via 172.16.12.1
# Il fournit une adresse ip et la valide
DHCPACK on 172.16.12.10 to 00:0a:e4:4e:64:4e via 172.16.12.1