On branche et tout marche
Un nouveau salarié branche son portable sur la prise murale et ouvre l'intranet. Personne n'a tapé d'adresse. Personne n'a choisi de serveur.
Deux petits services ont fait cela en moins d'une seconde. L'un prête une adresse au portable. L'autre transforme un nom en nombre.
Cette leçon ouvre les deux.
À la fin de cette leçon
Remarque
Je peux expliquer comment un poste obtient une adresse et un nom.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| DHCP | le service qui prête des adresses aux appareils qui en demandent | |
| Bail | une adresse prêtée pour une durée fixée | 12 heures |
| Plage | les adresses qu'un serveur DHCP a le droit de prêter | 10.0.10.100 à 10.0.10.150 |
| Réservation | une adresse fixe donnée toujours au même appareil, reconnu à son adresse matérielle | |
| DNS | le service qui transforme un nom en adresse | |
| Enregistrement | une information qu'un serveur DNS détient sur un nom |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un appareil sans adresse en demande une
Un appareil neuf n'a pas encore d'adresse, et il ne sait pas où se trouve le serveur. Il envoie donc son premier message à tous les appareils du lien : c'est une diffusion.
Un serveur DHCP répond. Les deux échangent en quatre étapes, que l'on retient par Discover, Offer, Request et Acknowledge.
Exemple : les quatre étapes
| Étape | Envoyée par | Ce qu'elle dit |
|---|---|---|
| Discover | L'appareil | Y a-t-il un serveur DHCP ici ? |
| Offer | Le serveur | Vous pouvez avoir cette adresse |
| Request | L'appareil | Je voudrais cette adresse, s'il vous plaît |
| Acknowledge | Le serveur | Elle est à vous jusqu'à cette heure |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Rencontrer le serveur et deux clients
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.
Faire demander une adresse à pc1
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.
Ce que disent les réponses
Le premier Run montre que server a une adresse et que pc1 et pc2 n'en ont pas.
Le second Run attend environ trois secondes. Il affiche alors pc1 was given nothing: no DHCPOFFER came back. Le Discover est parti, et aucun Offer n'est revenu.
Une adresse est prêtée, pas donnée
Un bail dure un temps fixé. L'appareil doit demander son renouvellement avant la fin. S'il disparaît, l'adresse retourne dans la réserve.
La plage est la réserve où le serveur peut puiser. Une réservation lie une adresse fixe à une adresse matérielle : une imprimante reçoit toujours la même.
Exemple : une ligne du fichier de baux
| Champ | Exemple | Sens |
|---|---|---|
| Expiration | 1761300000 | La fin du bail, en secondes depuis 1970. Zéro veut dire jamais |
| Adresse matérielle | 02:00:00:00:00:0a | Qui détient le bail |
| Adresse | 10.0.10.101 | Ce qui a été prêté |
| Nom | caisse1 | Le nom donné par l'appareil, ou une étoile |
| Identifiant client | 01:02:00:00:00:00:0a | Une seconde étiquette, ou une étoile |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Lire l'adresse matérielle d'un client
sudo ip netns exec pc1 ip -o link show eth0Affiché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.
Lire le fichier de configuration du serveur
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.
Pourquoi le serveur ne prête rien
Le premier Run affiche une ligne qui contient link/ether 02:00:00:00:00:01. Cette adresse matérielle permet au serveur de distinguer pc1 de pc2.
Le second Run affiche trois lignes de commentaires et rien d'autre. Sans plage, dnsmasq n'a aucune adresse à prêter.
Le DNS transforme un nom en adresse
Les gens retiennent des noms. Les routeurs ont besoin de nombres. Un serveur DNS détient des enregistrements qui relient les deux.
Un appareil interroge son serveur DNS. Le serveur répond avec ses enregistrements, ou interroge un autre serveur et garde la réponse un moment.
C'est le DHCP qui dit à l'appareil quel serveur DNS utiliser.
Exemple : les types d'enregistrement courants
| Type | Il répond à | Exemple |
|---|---|---|
| A | Quelle adresse IPv4 porte ce nom ? | fichiers.lab vaut 10.0.10.20 |
| AAAA | Quelle adresse IPv6 porte ce nom ? | fichiers.lab vaut un long nombre hexadécimal |
| CNAME | Ce nom est-il un autre nom ? | www est le même que boutique |
| MX | Quel serveur reçoit le courrier de ce domaine ? | courrier.exemple.org |
| PTR | Quel nom porte cette adresse ? | 10.0.10.20 est fichiers.lab |
| TXT | Quelle note est jointe ? | Un court texte |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demander un nom au serveur
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.
Lire la liste des DNS de pc1
cat /etc/netns/pc1/resolv.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.
Une erreur fréquente
Attention
On croit souvent que DHCP et DNS sont un seul service. Ils font deux métiers. Le DHCP prête des adresses aux appareils. Le DNS répond à des questions sur des noms. Un même programme peut faire les deux, comme dnsmasq ici, et cela reste deux métiers.
Pour aller plus loin : un bail renouvelé
Une fois votre configuration validée dans le labo, lancez sudo dnslab renew pc1 deux fois, à une minute d'intervalle.
À chaque fois, lisez le fichier de baux du serveur avec sudo cat /run/dnslab/dnsmasq.leases. pc1 reçoit-il la même adresse ? Qu'est-ce qui a changé dans sa ligne, et pourquoi ? Passez le fichier à votre baux_actifs pour vérifier.