Files
BUT2/TP_SCR3.2/revision_scr3.2/TP3/Part1/TP03-1 .md
T
2025-12-10 01:26:13 +01:00

269 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## **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)
L’idé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 l’autre 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 l’exemple 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` d’un nœud virtuel vers l’host, 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 l’host`
`sudo himage DHCPsrv cat /etc/dhcp/dhcpd.conf > IMUNES/SCR.3.2/TP03/dhcpd.conf`
C’est **ce** fichier `IMUNES/SCR.3.2/TP03/dhcpd.conf` qu’on 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 d’adresses : 192.168.10.20 - 192.168.10.40`
`range 192.168.10.20 192.168.10.40;`
`# (b) Route vers l’autre 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 d’atteindre 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 n’existe 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`
S’il n’y a pas d’erreur 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 qu’il 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 l’IP & 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.20–192.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 n’est pas local vers GW, qui sait joindre l’autre 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 l’historique des baux obtenus / renouvelés.