Les packages : vous avez normalement les paquets sur la distribution Linux (client, serveur et agent de relais) :
Vous allez devoir installer ces produits pour les configurer et disposer de la documentation de ces produits.
Description:
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
Réalisez une capture de trame du dialogue agent/serveur sur le routeur.
Analysez la capture
Entre le relais DHCP et le serveur DHCP a-t-on utilisé des adresses de diffusion MAC ?
Comment le serveur DHCP sait-il dans quelle plage d'adresse (étendue) il doit puiser l'adresse ?
Fixez un bail à 1 mn et étudiez le mécanisme de renouvellement automatique en examinant une capture de 3 minutes.
Modifiez la configuration du serveur afin de faire de la réservation d'adresse pour le client. Vérifiez le fonctionnement.
Une fois que tout fonctionne, activez tous les services en mode daemon et vérifiez le fonctionnement de la maquette.