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.