Ce que tu vas faire
Quand un ordinateur rejoint un réseau, il lui faut une adresse, et un moyen de transformer un nom comme files.lab en adresse. Souvent, un seul petit programme fait les deux : DHCP distribue les adresses et DNS répond aux noms. Ici, ce programme est dnsmasq, et il tourne sur un serveur sans aucun réglage. Tu vas lui demander une adresse et un nom, et le voir refuser. Tu ne répares rien : la configuration est la tâche du lab.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de la leçon. Ce lab est une machine Ubuntu complète, rien que pour toi, avec un petit réseau construit dedans. Elle met donc un peu plus de temps à démarrer qu'un conteneur. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de la machine, l'une après l'autre. Si l'un d'eux dit que la machine démarre encore, attends quelques secondes et appuie de nouveau. Pour suivre les commandes ou taper les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
1. Découvre les machines
Tout est construit dans ta seule machine Ubuntu : chaque ordinateur est un espace de noms réseau (network namespace) séparé, c'est-à-dire une boîte isolée qui a ses propres adresses. dnslab status les liste. Le server a l'adresse 10.0.10.1, et pc1 et pc2 n'en ont aucune : rien n'est listé sous eux. La commande dit aussi que dnsmasq tourne.
dnslab statusAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
2. Demande une adresse
Un ordinateur sans adresse en demande une à tout le réseau, et un serveur DHCP répond. dnslab renew fait demander une adresse à pc1, et la commande attend environ trois secondes. La réponse : pc1 n'a rien reçu. Personne n'a répondu, car on n'a pas dit à dnsmasq d'en distribuer.
sudo dnslab renew pc1Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
3. Demande un nom
dig demande un nom à un serveur DNS, ici celui du serveur, 10.0.10.1. Tu demandes depuis le serveur lui-même, car pc1 n'a pas d'adresse pour le faire. L'en-tête dit status: REFUSED et ANSWER: 0 : dnsmasq ne sait rien de files.lab et n'a nulle part où chercher.
sudo ip netns exec server dig +noall +comments @10.0.10.1 files.labAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
4. Lis la configuration
dnsmasq lit ses réglages dans les fichiers de /etc/dnsmasq.d. Le lab t'en a laissé un, lab.conf. Il contient trois lignes de commentaires et rien d'autre. C'est pour cela qu'il ne distribue rien.
cat /etc/dnsmasq.d/lab.confAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Maintenant, fais le lab
Astuce
Tu as vu ce qui manque : des adresses à distribuer et des noms auxquels répondre. Faire en sorte que le serveur fasse les deux est la tâche de ce lab : ouvre README.md dans ton dossier personnel avec cat README.md dans le terminal. Il explique quoi faire, sans donner les réponses.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie de chaque élève. Elle se travaille dans un lab VM : chaque élève a sa propre machine Ubuntu avec un serveur et deux clients dedans, et un bouton Exécuter tape dans son terminal et montre ce qui s'est affiché. Le lab a lui-même une vérification qui relance dnsmasq à partir du fichier enregistré et fait redemander leur adresse et leur nom aux clients. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.