This commit is contained in:
2025-12-10 01:26:13 +01:00
parent 2311cb07eb
commit 38d424e819
33 changed files with 5822 additions and 0 deletions

View File

@@ -0,0 +1,268 @@
## **0\. Topologie & prérequis**
Sur le schéma (page 3\) on a :
tp03.SCR.3.2
* **DHCPsrv** — `eth0` : `192.168.10.10/20`
* **GW**
* `eth0` : `192.168.10.254/20` (vers `switch1`)
* `eth1` : `172.16.2.254/24` (vers `switch2`)
* **pc1-1, pc1-2** : reliés à `switch1`, **sans IP** au départ (obtiendront une IP via DHCP)
* **pc2-1, pc2-2** : reliés à `switch2` (on les utilisera plus tard en partie II avec le relais)
Lidée de la partie I :
Serveur DHCP sur **DHCPsrv**, qui donne des adresses aux machines **du segment 192.168.10.0/20** (pc1-1, pc1-2) \+ leur route vers le reste.
Les contraintes DHCP :
tp03.SCR.3.2
1. Dernier octet (4ᵉ) des IPv4 allouées : **entre 20 et 40**.
2. 3ᵉ octet \= **10**.
3. Les nœuds du segment 192.168.10.0/20 doivent connaître la route vers lautre segment (172.16.2.0/24) → on va leur donner le **routeur par défaut GW (192.168.10.254)**.
Donc notre plage DHCP sera :
`192.168.10.20` à `192.168.10.40`.
---
## **1\. Construire la topo `dhcp-serv.imn`**
Dans IMUNES :
1. Crée un nouveau projet, ajoute :
* 1 routeur/host nommé **DHCPsrv**
* 1 routeur/host nommé **GW**
* 2 switches `switch1`, `switch2`
* 4 PCs : `pc1-1`, `pc1-2`, `pc2-1`, `pc2-2`
2. Câblage comme sur la *Figure 1 dhcp-serv.imn* (page 3).
tp03.SCR.3.2
3. Configure les **adresses statiques** suivantes :
* **DHCPsrv**
* `eth0` : `192.168.10.10/20`
* **GW**
* `eth0` : `192.168.10.254/20`
* `eth1` : `172.16.2.254/24`
* **pc1-1, pc1-2, pc2-1, pc2-2** : laisses **vide en IPv4** (ils auront une IPv6 link-local et éventuellement une fc00::20/64, comme dans lexemple de lénoncé).
tp03.SCR.3.2
Enregistre ça sous `dhcp-serv.imn`.
---
## **2\. Préparer le fichier `dhcpd.conf` (sur la machine host)**
Lénoncé demande de **copier** le `/etc/dhcp/dhcpd.conf` dun nœud virtuel vers lhost, de le modifier, puis de le recopier sur `DHCPsrv`.
tp03.SCR.3.2
### **2.1 Copier le modèle depuis un nœud virtuel**
Par exemple :
`# Depuis ta machine physique, dans ton répertoire IMUNES/SCR.3.2/TP03`
`mkdir -p IMUNES/SCR.3.2/TP03`
`# Copier le dhcpd.conf du nœud DHCPsrv vers lhost`
`sudo himage DHCPsrv cat /etc/dhcp/dhcpd.conf > IMUNES/SCR.3.2/TP03/dhcpd.conf`
Cest **ce** fichier `IMUNES/SCR.3.2/TP03/dhcpd.conf` quon va modifier.
tp03.SCR.3.2
### **2.2 Adapter `TP03/dhcpd.conf`**
Ouvre-le dans ton éditeur favori (`nano`, `vim`, …) et adapte pour obtenir quelque chose comme :
`# /etc/dhcp/dhcpd.conf - TP03`
`default-lease-time 600;`
`max-lease-time 7200;`
`authoritative;`
`# Sous-réseau 192.168.0.0/20`
`subnet 192.168.0.0 netmask 255.255.240.0 {`
`# (a) Plage dadresses : 192.168.10.20 - 192.168.10.40`
`range 192.168.10.20 192.168.10.40;`
`# (b) Route vers lautre segment via le routeur GW`
`option routers 192.168.10.254;`
`option subnet-mask 255.255.240.0;`
`option broadcast-address 192.168.15.255;`
`# DNS quelconque (par ex. Google)`
`option domain-name-servers 8.8.8.8;`
`}`
* Condition (a) respectée : dernier octet ∈ \[20, 40\], 3ᵉ octet \= 10\.
* Condition (b) : les clients recevront **une route par défaut** via `192.168.10.254`, qui leur permet datteindre aussi le réseau `172.16.2.0/24` (via GW).
---
## **3\. Re-copier `dhcpd.conf` sur DHCPsrv**
`# Copier le fichier configuré vers le node DHCPsrv`
`sudo himage DHCPsrv /bin/sh -c "cat > /etc/dhcp/dhcpd.conf" < IMUNES/SCR.3.2/TP03/dhcpd.conf`
Tu peux vérifier :
`sudo himage DHCPsrv cat /etc/dhcp/dhcpd.conf`
---
## **4\. Créer le fichier des baux côté serveur**
Le fichier des baux nexiste pas au départ ; il faut le créer manuellement.
tp03.SCR.3.2
`sudo himage DHCPsrv touch /var/lib/dhcp/dhcpd.leases`
---
## **5\. Limiter le serveur à IPv4 & interface `eth0`**
Dans `/etc/default/isc-dhcp-server` (sur **DHCPsrv**) :
tp03.SCR.3.2
1. Ouvrir le fichier :
`sudo himage DHCPsrv nano /etc/default/isc-dhcp-server`
2. Modifier :
**Commenter** la ligne `INTERFACESv6` :
`#INTERFACESv6="..."`
*
Mettre `INTERFACESv4` à `eth0` :
`INTERFACESv4="eth0"`
*
Sauvegarde, quitte.
---
## **6\. Démarrer le service DHCP**
Toujours sur ta machine physique :
`sudo himage DHCPsrv /etc/init.d/isc-dhcp-server start`
Sil ny a pas derreur de configuration, le service se lance.
Tu peux vérifier avec :
`sudo himage DHCPsrv ps aux | grep dhcpd`
Le PID est aussi enregistré dans un fichier (typiquement `/var/run/dhcpd.pid` ou similaire, voir `man dhcpd` pour le chemin exact).
tp03.SCR.3.2
---
## **7\. Well-known port « bootps » (question I.7)**
Dans `/etc/services`, le port **bootps** est le port **67/udp** (DHCP serveur).
tp03.SCR.3.2
Tu peux le vérifier :
`sudo himage DHCPsrv grep bootps /etc/services`
Vérifier quil est bien ouvert :
`# Avec ss`
`sudo himage DHCPsrv ss -lunp | grep 67`
`# ou avec netstat`
`sudo himage DHCPsrv netstat -anu | grep bootps`
Tu dois voir `udp 0 0 0.0.0.0:67` écouté par `dhcpd`.
---
## **8\. Vérifier pc1-1 avant DHCP (I.8)**
Avant de lancer `dhclient` :
`sudo himage pc1-1 ip addr show dev eth0`
`sudo himage pc1-1 ip route show`
Tu devrais voir seulement une adresse IPv6 (fc00::20/64 et fe80::...) comme dans lénoncé.
tp03.SCR.3.2
---
## **9\. Demander une adresse DHCP sur pc1-1 (I.9)**
Sur ta machine physique :
`sudo himage pc1-1 dhclient eth0`
Le client discute avec DHCPsrv, obtient une IP.
---
## **10\. Re-vérifier lIP & la table de routage (I.10 & I.11)**
`sudo himage pc1-1 ip addr show dev eth0`
`sudo himage pc1-1 ip route show`
Attendu :
* Une IPv4 dans la **plage** `192.168.10.20192.168.10.40`
Une route par défaut du type :
`default via 192.168.10.254 dev eth0`
*
**Réponse à la question I.11 :**
Oui, la route statique (route par défaut fournie par DHCP via `option routers 192.168.10.254;`) est fonctionnelle : pc1-1 enverra tout ce qui nest pas local vers GW, qui sait joindre lautre segment `172.16.2.0/24`.
tp03.SCR.3.2
Tu peux tester, par ex. ping vers GW :
`sudo himage pc1-1 ping -c 2 192.168.10.254`
---
## **11\. Voir les baux côté client (I.12)**
Sur pc1-1 :
`sudo himage pc1-1 cat /var/lib/dhcp/dhclient.leases`
Tu y verras lhistorique des baux obtenus / renouvelés.

Binary file not shown.

View File

@@ -0,0 +1,238 @@
0. Topologie & prérequis
Sur le schéma (page 3) on a :
tp03.SCR.3.2
* DHCPsrv — eth0 : 192.168.10.10/20
* GW
* eth0 : 192.168.10.254/20 (vers switch1)
* eth1 : 172.16.2.254/24 (vers switch2)
* pc1-1, pc1-2 : reliés à switch1, sans IP au départ (obtiendront une IP via DHCP)
* pc2-1, pc2-2 : reliés à switch2 (on les utilisera plus tard en partie II avec le relais)
Lidée de la partie I :
Serveur DHCP sur DHCPsrv, qui donne des adresses aux machines du segment 192.168.10.0/20 (pc1-1, pc1-2) + leur route vers le reste.
Les contraintes DHCP :
tp03.SCR.3.2
1. Dernier octet (4ᵉ) des IPv4 allouées : entre 20 et 40.
2. 3ᵉ octet = 10.
3. Les nœuds du segment 192.168.10.0/20 doivent connaître la route vers lautre segment (172.16.2.0/24) → on va leur donner le routeur par défaut GW (192.168.10.254).
Donc notre plage DHCP sera :
192.168.10.20 à 192.168.10.40.
________________
1. Construire la topo dhcp-serv.imn
Dans IMUNES :
1. Crée un nouveau projet, ajoute :
* 1 routeur/host nommé DHCPsrv
* 1 routeur/host nommé GW
* 2 switches switch1, switch2
* 4 PCs : pc1-1, pc1-2, pc2-1, pc2-2
2. Câblage comme sur la Figure 1 dhcp-serv.imn (page 3).
tp03.SCR.3.2
3. Configure les adresses statiques suivantes :
* DHCPsrv
* eth0 : 192.168.10.10/20
* GW
* eth0 : 192.168.10.254/20
* eth1 : 172.16.2.254/24
* pc1-1, pc1-2, pc2-1, pc2-2 : laisses vide en IPv4 (ils auront une IPv6 link-local et éventuellement une fc00::20/64, comme dans lexemple de lénoncé).
tp03.SCR.3.2
Enregistre ça sous dhcp-serv.imn.
________________
2. Préparer le fichier dhcpd.conf (sur la machine host)
Lénoncé demande de copier le /etc/dhcp/dhcpd.conf dun nœud virtuel vers lhost, de le modifier, puis de le recopier sur DHCPsrv.
tp03.SCR.3.2
2.1 Copier le modèle depuis un nœud virtuel
Par exemple :
# Depuis ta machine physique, dans ton répertoire IMUNES/SCR.3.2/TP03
mkdir -p IMUNES/SCR.3.2/TP03
# Copier le dhcpd.conf du nœud DHCPsrv vers lhost
sudo himage DHCPsrv cat /etc/dhcp/dhcpd.conf > IMUNES/SCR.3.2/TP03/dhcpd.conf
Cest ce fichier IMUNES/SCR.3.2/TP03/dhcpd.conf quon va modifier.
tp03.SCR.3.2
2.2 Adapter TP03/dhcpd.conf
Ouvre-le dans ton éditeur favori (nano, vim, …) et adapte pour obtenir quelque chose comme :
# /etc/dhcp/dhcpd.conf - TP03
default-lease-time 600;
max-lease-time 7200;
authoritative;
# Sous-réseau 192.168.0.0/20
subnet 192.168.0.0 netmask 255.255.240.0 {
# (a) Plage dadresses : 192.168.10.20 - 192.168.10.40
range 192.168.10.20 192.168.10.40;
# (b) Route vers lautre segment via le routeur GW
option routers 192.168.10.254;
option subnet-mask 255.255.240.0;
option broadcast-address 192.168.15.255;
# DNS quelconque (par ex. Google)
option domain-name-servers 8.8.8.8;
}
* Condition (a) respectée : dernier octet ∈ [20, 40], 3ᵉ octet = 10.
* Condition (b) : les clients recevront une route par défaut via 192.168.10.254, qui leur permet datteindre aussi le réseau 172.16.2.0/24 (via GW).
________________
3. Re-copier dhcpd.conf sur DHCPsrv
# Copier le fichier configuré vers le node DHCPsrv
sudo himage DHCPsrv /bin/sh -c "cat > /etc/dhcp/dhcpd.conf" < IMUNES/SCR.3.2/TP03/dhcpd.conf
Tu peux vérifier :
sudo himage DHCPsrv cat /etc/dhcp/dhcpd.conf
________________
4. Créer le fichier des baux côté serveur
Le fichier des baux nexiste pas au départ ; il faut le créer manuellement.
tp03.SCR.3.2
sudo himage DHCPsrv touch /var/lib/dhcp/dhcpd.leases
________________
5. Limiter le serveur à IPv4 & interface eth0
Dans /etc/default/isc-dhcp-server (sur DHCPsrv) :
tp03.SCR.3.2
1. Ouvrir le fichier :
sudo himage DHCPsrv nano /etc/default/isc-dhcp-server
2. Modifier :
Commenter la ligne INTERFACESv6 :
#INTERFACESv6="..."
* Mettre INTERFACESv4 à eth0 :
INTERFACESv4="eth0"
* Sauvegarde, quitte.
________________
6. Démarrer le service DHCP
Toujours sur ta machine physique :
sudo himage DHCPsrv /etc/init.d/isc-dhcp-server start
Sil ny a pas derreur de configuration, le service se lance.
Tu peux vérifier avec :
sudo himage DHCPsrv ps aux | grep dhcpd
Le PID est aussi enregistré dans un fichier (typiquement /var/run/dhcpd.pid ou similaire, voir man dhcpd pour le chemin exact).
tp03.SCR.3.2
________________
7. Well-known port « bootps » (question I.7)
Dans /etc/services, le port bootps est le port 67/udp (DHCP serveur).
tp03.SCR.3.2
Tu peux le vérifier :
sudo himage DHCPsrv grep bootps /etc/services
Vérifier quil est bien ouvert :
# Avec ss
sudo himage DHCPsrv ss -lunp | grep 67
# ou avec netstat
sudo himage DHCPsrv netstat -anu | grep bootps
Tu dois voir udp 0 0 0.0.0.0:67 écouté par dhcpd.
________________
8. Vérifier pc1-1 avant DHCP (I.8)
Avant de lancer dhclient :
sudo himage pc1-1 ip addr show dev eth0
sudo himage pc1-1 ip route show
Tu devrais voir seulement une adresse IPv6 (fc00::20/64 et fe80::...) comme dans lénoncé.
tp03.SCR.3.2
________________
9. Demander une adresse DHCP sur pc1-1 (I.9)
Sur ta machine physique :
sudo himage pc1-1 dhclient eth0
Le client discute avec DHCPsrv, obtient une IP.
________________
10. Re-vérifier lIP & la table de routage (I.10 & I.11)
sudo himage pc1-1 ip addr show dev eth0
sudo himage pc1-1 ip route show
Attendu :
* Une IPv4 dans la plage 192.168.10.20192.168.10.40
Une route par défaut du type :
default via 192.168.10.254 dev eth0
* Réponse à la question I.11 :
Oui, la route statique (route par défaut fournie par DHCP via option routers 192.168.10.254;) est fonctionnelle : pc1-1 enverra tout ce qui nest pas local vers GW, qui sait joindre lautre segment 172.16.2.0/24.
tp03.SCR.3.2
Tu peux tester, par ex. ping vers GW :
sudo himage pc1-1 ping -c 2 192.168.10.254
________________
11. Voir les baux côté client (I.12)
Sur pc1-1 :
sudo himage pc1-1 cat /var/lib/dhcp/dhclient.leases
Tu y verras lhistorique des baux obtenus / renouvelés.

View File

@@ -0,0 +1,176 @@
# **TP03 \- Partie II : Configuration du service DHCP Relay**
## **Configuration du fichier dhcpd.conf sur DHCPsrv**
### **Ce qui doit être ajouté/modifié :**
*\# Fichier : /etc/dhcp/dhcpd.conf*
*\# Déclaration des adresses fixes pour GW (Question II.1)*
host GW-eth0 {
hardware ethernet 42:00:aa:00:00:02; *\# MAC de eth0 de GW*
fixed-address 172.16.2.254; *\# IP fixe pour eth0 sur réseau 172.16.2.0/24*
}
host GW-eth1 {
hardware ethernet 42:00:aa:00:00:04; *\# MAC de eth1 de GW*
fixed-address 192.168.10.254; *\# IP fixe pour eth1 sur réseau 192.168.10.0/20*
}
*\# Configuration pour le réseau 192.168.10.0/20 (déjà présent)*
subnet 192.168.10.0 netmask 255.255.240.0 {
range 192.168.10.20 192.168.10.40; *\# Plage d'adresses (II.2.a)*
option subnet-mask 255.255.240.0;
option rfc-3442-classless-static-routes 24,172,16,2,192,168,10,254;
}
*\# AJOUTER : Configuration pour le réseau 172.16.2.0/24 (Question II.2)*
subnet 172.16.2.0 netmask 255.255.255.0 {
range 172.16.2.1 172.16.2.254; *\# Plage large*
option subnet-mask 255.255.255.0;
}
\#option rfc-3442.... : ladresse' 172.16.2.?/24 dmnd a 192.168.10.254 pour que les noeud 192 connaisse les autres route.
Explication :
* hardware ethernet : l'adresse MAC de l'interface
* fixed-address : IP fixe attribuée (réservation DHCP)
* range : plage d'adresses dynamiques
* option routers : route par défaut pour les clients
## **2\. Mise en place du DHCP Relay sur GW**
## **Commande à exécuter sur GW :**
*\# Sur le nœud GW dans IMUNES*
root@GW:/*\# dhcrelay \-d 192.168.10.10*
Options :
* \-d : mode debug (affiche l'activité à l'écran)
* 192.168.10.10 : adresse du serveur DHCP (DHCPsrv)
Sortie attendue :
Internet Systems Consortium DHCP Relay Agent 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth1/42:00:aa:00:00:04
Sending on LPF/eth1/42:00:aa:00:00:04
Listening on LPF/eth0/42:00:aa:00:00:02
Sending on LPF/eth0/42:00:aa:00:00:02
Sending on Socket/fallback
## **3\. Test avec un client (pc2-2)**
### **Commandes sur pc2-2 :**
*\# Libérer l'adresse actuelle (si existante)*
root@pc2-2:/*\# dhclient \-r eth0*
*\# Demander une nouvelle adresse*
root@pc2-2:/*\# dhclient eth0*
### **Observations sur GW (relais) :**
Forwarded BOOTREQUEST for 42:00:aa:00:00:06 to 192.168.10.10
### **Questions II.4 :**
a) Quelle est l'adresse MAC indiquée ?
→ 42:00:aa:00:00:06 (c'est l'adresse MAC de pc2-2)
b) Quelle est l'adresse de l'interface relais ?
→ 172.16.2.254 (c'est l'IP de eth0 de GW sur le réseau 172.16.2.0/24)
**4\. Problème des doublons (Questions II.5-6)**
### **Pourquoi des doublons ?**
Les requêtes DHCP sont des broadcasts. Le relais GW a deux interfaces sur le même réseau broadcast (eth0 et eth1 sur le même segment logique). Quand il reçoit un broadcast DHCP sur une interface, il le relaie vers le serveur, mais l'autre interface reçoit aussi ce même broadcast et le relaie à nouveau.
Explication :
1. pc2-2 envoie DHCPDISCOVER en broadcast
2. GW reçoit sur eth0 → relaie vers DHCPsrv
3. GW reçoit SUR eth1 (même broadcast) → relaie À NOUVEAU vers DHCPsrv
4. Résultat : DHCPsrv reçoit 2 fois chaque message
### **Messages dupliqués (II.6) :**
* DHCPDISCOVER (message de découverte)
* DHCPREQUEST (message de requête)
**5\. Solution pour éviter les doublons (Question II.7)**
### **Commande corrigée :**
*\# Sur GW*
root@GW:/*\# dhcrelay \-i discard 192.168.10.10*
Option :
* \-i discard : demande au relais de ne pas traiter les messages déjà vus (discard duplicates)
Alternative (selon version) :
dhcrelay \-m discard 192.168.10.10
*\# ou*
dhcrelay \--no-ping 192.168.10.10
Explication : L'option discard fait que le relais ignore les messages DHCP qu'il a déjà traités, évitant ainsi les doublons.
**6\. Vérification finale (Question II.8)**
### **Après correction :**
*\# Sur GW*
root@GW:/*\# dhcrelay \-i discard 192.168.10.10*
*\# Sur pc2-2*
root@pc2-2:/*\# dhclient \-r eth0*
root@pc2-2:/*\# dhclient eth0*
Observations :
* Plus de doublons côté serveur DHCP
* Un seul DHCPDISCOVER et un seul DHCPREQUEST
* Attribution d'adresse normale
Conclusion : L'option \-i discard (ou \-m discard) résout le problème des doublons en faisant ignorer au relais les messages qu'il a déjà traités.
---
**Résumé des commandes importantes**
| Étape | Machine | Commande | But |
| :---- | :---- | :---- | :---- |
| 1 | DHCPsrv | nano /etc/dhcp/dhcpd.conf | Configurer les sous-réseaux et réservations |
| 2 | DHCPsrv | /etc/init.d/isc-dhcp-server restart | Redémarrer le serveur DHCP |
| 3 | GW | dhcrelay \-i discard 192.168.10.10 | Lancer le relais sans doublons |
| 4 | Client | dhclient \-r eth0 && dhclient eth0 | Renouveler l'adresse IP |
**Points de vérification**
1. Vérifier que le serveur DHCP écoute bien :
2. sudo himage DHCPsrv netstat \-tulpn | grep :67
3. Vérifier les baux attribués :
4. sudo himage DHCPsrv cat /var/lib/dhcp/dhcpd.leases
5. Vérifier la configuration réseau du client :
sudo himage pc2-2 ip addr show dev eth0
6. sudo himage pc2-2 ip route show

View File

@@ -0,0 +1,149 @@
TP03 - Partie II : Configuration du service DHCP Relay
Configuration du fichier dhcpd.conf sur DHCPsrv
Ce qui doit être ajouté/modifié :
# Fichier : /etc/dhcp/dhcpd.conf
# Déclaration des adresses fixes pour GW (Question II.1)
host GW-eth0 {
hardware ethernet 42:00:aa:00:00:02; # MAC de eth0 de GW
fixed-address 172.16.2.254; # IP fixe pour eth0 sur réseau 172.16.2.0/24
}
host GW-eth1 {
hardware ethernet 42:00:aa:00:00:04; # MAC de eth1 de GW
fixed-address 192.168.10.254; # IP fixe pour eth1 sur réseau 192.168.10.0/20
}
# Configuration pour le réseau 192.168.10.0/20 (déjà présent)
subnet 192.168.10.0 netmask 255.255.240.0 {
range 192.168.10.20 192.168.10.40; # Plage d'adresses (II.2.a)
option subnet-mask 255.255.240.0;
option rfc-3442-classless-static-routes 24,172,16,2,192,168,10,254;
}
# AJOUTER : Configuration pour le réseau 172.16.2.0/24 (Question II.2)
subnet 172.16.2.0 netmask 255.255.255.0 {
range 172.16.2.1 172.16.2.254; # Plage large
option subnet-mask 255.255.255.0;
}
#option rfc-3442.... : ladresse' 172.16.2.?/24 dmnd a 192.168.10.254 pour que les noeud 192 connaisse les autres route.
Explication :
* hardware ethernet : l'adresse MAC de l'interface
* fixed-address : IP fixe attribuée (réservation DHCP)
* range : plage d'adresses dynamiques
* option routers : route par défaut pour les clients
2. Mise en place du DHCP Relay sur GW
Commande à exécuter sur GW :
# Sur le nœud GW dans IMUNES
root@GW:/# dhcrelay -d 192.168.10.10
Options :
* -d : mode debug (affiche l'activité à l'écran)
* 192.168.10.10 : adresse du serveur DHCP (DHCPsrv)
Sortie attendue :
Internet Systems Consortium DHCP Relay Agent 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth1/42:00:aa:00:00:04
Sending on LPF/eth1/42:00:aa:00:00:04
Listening on LPF/eth0/42:00:aa:00:00:02
Sending on LPF/eth0/42:00:aa:00:00:02
Sending on Socket/fallback
3. Test avec un client (pc2-2)
Commandes sur pc2-2 :
# Libérer l'adresse actuelle (si existante)
root@pc2-2:/# dhclient -r eth0
# Demander une nouvelle adresse
root@pc2-2:/# dhclient eth0
Observations sur GW (relais) :
Forwarded BOOTREQUEST for 42:00:aa:00:00:06 to 192.168.10.10
Questions II.4 :
a) Quelle est l'adresse MAC indiquée ?
→ 42:00:aa:00:00:06 (c'est l'adresse MAC de pc2-2)
b) Quelle est l'adresse de l'interface relais ?
→ 172.16.2.254 (c'est l'IP de eth0 de GW sur le réseau 172.16.2.0/24)
4. Problème des doublons (Questions II.5-6)
Pourquoi des doublons ?
Les requêtes DHCP sont des broadcasts. Le relais GW a deux interfaces sur le même réseau broadcast (eth0 et eth1 sur le même segment logique). Quand il reçoit un broadcast DHCP sur une interface, il le relaie vers le serveur, mais l'autre interface reçoit aussi ce même broadcast et le relaie à nouveau.
Explication :
1. pc2-2 envoie DHCPDISCOVER en broadcast
2. GW reçoit sur eth0 → relaie vers DHCPsrv
3. GW reçoit SUR eth1 (même broadcast) → relaie À NOUVEAU vers DHCPsrv
4. Résultat : DHCPsrv reçoit 2 fois chaque message
Messages dupliqués (II.6) :
* DHCPDISCOVER (message de découverte)
* DHCPREQUEST (message de requête)
5. Solution pour éviter les doublons (Question II.7)
Commande corrigée :
# Sur GW
root@GW:/# dhcrelay -i discard 192.168.10.10
Option :
* -i discard : demande au relais de ne pas traiter les messages déjà vus (discard duplicates)
Alternative (selon version) :
dhcrelay -m discard 192.168.10.10
# ou
dhcrelay --no-ping 192.168.10.10
Explication : L'option discard fait que le relais ignore les messages DHCP qu'il a déjà traités, évitant ainsi les doublons.
6. Vérification finale (Question II.8)
Après correction :
# Sur GW
root@GW:/# dhcrelay -i discard 192.168.10.10
# Sur pc2-2
root@pc2-2:/# dhclient -r eth0
root@pc2-2:/# dhclient eth0
Observations :
* Plus de doublons côté serveur DHCP
* Un seul DHCPDISCOVER et un seul DHCPREQUEST
* Attribution d'adresse normale
Conclusion : L'option -i discard (ou -m discard) résout le problème des doublons en faisant ignorer au relais les messages qu'il a déjà traités.
________________
Résumé des commandes importantes
Étape
Machine
Commande
But
1
DHCPsrv
nano /etc/dhcp/dhcpd.conf
Configurer les sous-réseaux et réservations
2
DHCPsrv
/etc/init.d/isc-dhcp-server restart
Redémarrer le serveur DHCP
3
GW
dhcrelay -i discard 192.168.10.10
Lancer le relais sans doublons
4
Client
dhclient -r eth0 && dhclient eth0
Renouveler l'adresse IP
Points de vérification
1. Vérifier que le serveur DHCP écoute bien :
2. sudo himage DHCPsrv netstat -tulpn | grep :67
3. Vérifier les baux attribués :
4. sudo himage DHCPsrv cat /var/lib/dhcp/dhcpd.leases
5. Vérifier la configuration réseau du client :
sudo himage pc2-2 ip addr show dev eth0
6. sudo himage pc2-2 ip route show