Introduction
Maple Yard prépare un événement de week-end. Le poste de référence reçoit déjà automatiquement ses paramètres réseau. Deux nouveaux appareils invités ont besoin du même service, sans prendre les adresses réservées au routeur ou aux postes fixes.
Vous configurerez une petite plage DHCP, ferez obtenir de vrais baux aux deux clients et téléchargerez le programme grâce à la passerelle et au DNS reçus. Seules la saisie élémentaire dans un terminal et la navigation entre onglets nommés sont supposées acquises. Aucune programmation ni expérience d’administration DHCP n’est nécessaire.
Utilisez Network Desk pour modifier le serveur, Guest A et Guest B pour les commandes clientes, et Network Map pour observer les nœuds actifs. Ce sont des nœuds réseau Linux isolés partageant un noyau. Leurs répertoires et états réseau sont séparés. Ouvrir ou reconnecter un onglet ne réinitialise pas le cours.
Faire de la place aux nouveaux appareils
Vous allez choisir une plage dynamique sûre et la faire proposer par le serveur DHCP. Commencez dans Network Map. Repérez la carte reference et sélectionnez Request programme. Le programme de Maple Yard doit apparaître. Il s’agit d’un exemple fonctionnel existant, pas encore de votre nouveau résultat.
Une adresse IPv4 identifie un appareil sur ce réseau. Le /24 dans 10.77.0.10/24 signifie que les adresses commençant par 10.77.0 appartiennent à ce sous-réseau local. La passerelle achemine le trafic vers le serveur du programme situé sur un autre sous-réseau. DNS traduit un nom comme programme.event.test en adresse. Recevoir une adresse ne prouve pas que les autres paramètres sont utiles.
Passez à Network Desk. Ce terminal démarre dans /home/labex/project/event-network. pwd affiche le répertoire courant ; cat affiche un fichier texte :
pwd
cat devices.tsv
L’adresse MAC est l’identité de liaison de l’appareil dans ce réseau préparé. Elle diffère de son adresse IPv4 et du nom convivial de son onglet. Le poste de référence utilise 10.77.0.10 ; le routeur et DNS utilisent 10.77.0.1. Ne changez pas ces adresses fixes. La plage des invités va de 10.77.0.100 à 10.77.0.109, bornes incluses, avec le masque 255.255.255.0, équivalent à /24.
Lisez le fichier serveur modifiable :
cat dhcp.conf
Sa ligne conf-file inclut le service de référence préparé. Conservez-la. dhcp-range définit la première adresse, la dernière, le masque et la durée du bail. Un bail est une attribution temporaire ; 2h signifie deux heures, pas une propriété permanente.
Le here-document suivant écrit le petit fichier complet. > remplace son contenu précédent. Les guillemets de 'CONF' préservent le texte littéral ; le CONF final doit être seul au début de sa ligne. Copiez tout le bloc :
cat > dhcp.conf <<'CONF'
conf-file=/opt/labex/event-network/server-base.conf
dhcp-range=10.77.0.100,10.77.0.109,255.255.255.0,2h
CONF
--test vérifie la syntaxe sans démarrer un autre serveur. --conf-file sélectionne votre fichier :
dnsmasq --test --conf-file=dhcp.conf
Vous devez voir dnsmasq: syntax check OK.. En cas d’erreur, lisez le fichier enregistré avec cat, rétablissez le bloc indiqué puis testez à nouveau. Ne redémarrez pas un service fonctionnel avec une erreur de syntaxe connue.
sudo exécute cette commande administrative unique. systemctl restart charge la configuration modifiée dans le service du cours, nommé event-dhcp :
sudo systemctl restart event-dhcp
Un redémarrage réussi n’affiche généralement rien. Il ne demande aucun bail pour les invités. Vous avez préparé ce que le serveur peut offrir ; les clients doivent encore le demander. Dans ce premier laboratoire, dnsmasq annonce son adresse locale préparée comme passerelle et DNS par défaut. Le laboratoire suivant explique comment des options serveur explicites contrôlent ces valeurs.
Laisser chaque invité demander un bail
Vous allez connecter les deux nouveaux clients par de vraies requêtes DHCP. Passez à Guest A. C’est le shell administrateur de ce client isolé, déjà dans son propre espace de travail. Son eth0 est le lien du cours, pas l’interface de la plateforme. N’exécutez pas ces commandes dans Network Desk.
dhclient est le client ISC DHCP fourni. Le cours utilise une copie locale inchangée et un hook préparé qui applique uniquement les options reçues à ce nœud isolé. Il n’invente aucune adresse et ne modifie pas le résolveur de la plateforme. -4 sélectionne IPv4, -v affiche l’échange et -1 termine cette tentative d’acquisition si aucun serveur ne répond. -cf client.conf choisit les paramètres fournis ; -pf client.pid et -lf client.leases conservent l’état du processus et des baux de ce client dans son répertoire. Le fichier de baux préparé est initialement vide ; le client y écrit son vrai bail reçu. Conservez ces fichiers préparés.
Exécutez la commande sur une seule ligne :
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
Repérez DHCPDISCOVER, DHCPOFFER, DHCPREQUEST et DHCPACK. Lors du premier échange, le client cherche un serveur, reçoit une offre, la demande puis reçoit sa confirmation. Un bail existant peut raccourcir un échange ultérieur. Le message final bound to 10.77.0... indique l’adresse attribuée. L’adresse exacte et le délai de renouvellement peuvent varier dans la plage.
ip -4 addr show affiche les adresses IPv4 de l’interface sélectionnée :
ip -4 addr show dev eth0
Vous devez obtenir une adresse de 10.77.0.100–10.77.0.109 avec /24.
Passez à Guest B, qui possède son propre répertoire et état client. Exécutez-y aussi la commande complète :
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip -4 addr show dev eth0
Les deux adresses doivent appartenir à la plage et être différentes. Si vous voyez No DHCPOFFERS received, vérifiez d’abord l’onglet, puis revenez à Network Desk pour lire dhcp.conf, tester sa syntaxe et redémarrer event-dhcp. Réessayez l’acquisition uniquement sur le client qui attend encore. Ne supprimez pas les fichiers de baux et ne réinitialisez pas la VM pour une faute de frappe.
Dans Network Map, rechargez la page. Les cartes des deux invités doivent maintenant afficher leurs vraies adresses. Cette observation ne demande ni ne répare aucun bail.
Utiliser les paramètres pour obtenir le programme
Vous allez prouver que chaque client peut utiliser sa configuration reçue, puis conserver un vrai fichier du programme. Commencez dans Guest A.
ip route show default affiche la passerelle utilisée pour les destinations extérieures au sous-réseau local. /etc/resolv.conf indique le résolveur DNS de ce client :
ip route show default
cat /etc/resolv.conf
La passerelle doit être 10.77.0.1 sur eth0, avec nameserver 10.77.0.1. Le routeur préparé fournit aussi DNS. Le programme se trouve sur un autre sous-réseau : la requête a donc besoin des deux paramètres.
curl demande une ressource HTTP. --noproxy '*' évite tout proxy externe pour cet exercice local ; les guillemets rendent * littéral. -f traite les erreurs HTTP comme des échecs, -s masque la progression et -S affiche quand même les erreurs. --max-time 5 limite l’attente à cinq secondes. -o programme.txt enregistre les octets de la réponse dans le répertoire client courant :
curl --noproxy '*' -fsS --max-time 5 -o programme.txt http://programme.event.test:8080/programme.txt
cat programme.txt
Résultat attendu :
MAPLE YARD | Weekend programme
10:00 Welcome desk opens
11:00 Bicycle repair
13:00 Seed exchange
15:00 Community workshop
Passez à Guest B et inspectez ses paramètres reçus indépendamment :
ip route show default
cat /etc/resolv.conf
Téléchargez et lisez aussi le programme sur ce client :
curl --noproxy '*' -fsS --max-time 5 -o programme.txt http://programme.event.test:8080/programme.txt
cat programme.txt
Could not resolve host signale un problème de résolution de noms ; un délai de connexion dépassé peut indiquer un problème de chemin ou de passerelle ; Connection refused signifie qu’aucun service du destinataire sélectionné n’accepte les connexions sur ce port. Une réponse HTTP réussie peut contenir la mauvaise ressource : lisez toutes les entrées du programme.
Si une adresse existe mais que la requête échoue, comparez la passerelle et DNS aux valeurs ci-dessus. Revenez au bon fichier serveur plutôt que d’attribuer manuellement les paramètres clients. Pour libérer puis redemander un bail, -r libère le bail actuel de ce client et termine son ancien processus :
dhclient -4 -v -r -cf client.conf -pf client.pid -lf client.leases eth0
Utilisez ensuite la commande d’acquisition déjà apprise et recommencez le téléchargement. Exécutez ces actions de récupération uniquement dans l’onglet de l’invité concerné.
Enfin, rechargez Network Map. Sélectionnez Request programme sur les deux invités et le poste de référence. Les trois doivent renvoyer le programme complet. Vos fichiers enregistrés et les requêtes réelles démontrent une configuration utilisable, au-delà d’un fichier serveur qui semble correct.

Comparez l’adresse IPv4, la passerelle et DNS sur chaque carte, puis lisez la réponse du programme sous son bouton. Les adresses attribuées aux invités peuvent différer de cet exemple.
Résumé
Vous avez choisi une plage excluant les appareils fixes, obtenu de vrais baux DHCP distincts, lu la passerelle et DNS appliqués et téléchargé le programme complet depuis les deux clients. Vous avez aussi préservé le poste de référence.
Ces paramètres sont temporaires dans la VM de formation actuelle. Ils ne garantissent ni persistance après redémarrage, ni accès public à Internet, ni compatibilité avec tous les clients DHCP. Le laboratoire guidé suivant prépare indépendamment un nouvel environnement pour la réservation d’un appareil et la récupération de la configuration.



