Installation

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.