# **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

