3 unités au moule à 4 temps : PKI & confiance (step-ca, chaîne, ACME, mTLS), DNS & résolution (les 3 couches, le plancher), Sauvegardes (3-2-1, restaurer-pour-prouver). Fondations = Identité + PKI + DNS complètes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.6 KiB
DNS & résolution de noms
Unité d'apprentissage. Moule : ① concept → ② Set-OPS → ③ transférable → ④ à toi de jouer.
① Le concept (générique)
Les machines se parlent par adresses IP ; les humains (et les configs) utilisent des noms.
La résolution de noms fait le pont : keycloak.lab… → 192.168.15.21.
Plusieurs couches, de la plus locale à la plus globale :
- Fichier hosts (
/etc/hosts) : une table statique, locale, consultée en premier, sans aucun réseau. Increvable, mais manuelle. - DNS autoritatif : le serveur qui détient la vérité d'une zone (ex.
lab.chezlepro.internal) et répond pour ses noms (enregistrements A, SOA…). - DNS récursif (résolveur) : celui que tes machines interrogent ; il cherche pour toi (cache local, puis interne, puis Internet).
Distinction-clé souvent floue : autoritatif (« je possède ce nom ») ≠ récursif (« je vais chercher la réponse pour toi »).
② Comment Set-OPS le fait — trois couches
| Couche | Pièce | Propriété |
|---|---|---|
| 1. Le plancher | hosts_statiques (socle) → /etc/hosts sur chaque nœud |
résout même DNS éteint, dès le bootstrap. Le filet en dessous de tout. |
| 2. Autoritatif | serveur_powerdns (PowerDNS) |
la zone interne, les enregistrements A. |
| 3. Récursif local | client_unbound (opt-in) |
résolveur local : stub-zone → PowerDNS pour l'interne, récursion pour le reste. |
Le plancher est le cœur pédagogique : parce que chaque nœud connaît tout l'écosystème par
/etc/hosts, rien ne dépend du DNS pour démarrer — PowerDNS devient une commodité, pas un
point de défaillance unique. On construit la robustesse de bas en haut.
C'est aussi ce que tu utilises depuis ta machine : mettre 192.168.15.21 keycloak.lab… dans
ton /etc/hosts, c'est exactement le même « plancher ».
③ Pourquoi c'est transférable
| Set-OPS | Équivalents ailleurs |
|---|---|
/etc/hosts |
identique sur tout OS (Linux, macOS, Windows) |
| PowerDNS autoritatif | BIND · Knot · NSD · Route 53 / Cloud DNS (autoritatifs) |
| Unbound récursif | systemd-resolved · dnsmasq · le résolveur de ton FAI · 1.1.1.1 |
Tu as appris la hiérarchie de résolution (hosts → récursif → autoritatif) et la distinction autoritatif/récursif — pas « PowerDNS ». Ça vaut partout.
④ À toi de jouer
- Le plancher, sans DNS. Sur un nœud :
getent hosts keycloak.lab.chezlepro.internal # répond via /etc/hosts, zéro DNS grep chezlepro /etc/hosts | head - Interroge l'autoritatif. Demande à PowerDNS directement :
dig @infra-dns-01.lab.chezlepro.internal keycloak.lab.chezlepro.internal A +short dig @infra-dns-01.lab.chezlepro.internal lab.chezlepro.internal SOA +short - Vois les couches. Compare
getent hosts(plancher) etdig(DNS) : deux chemins, même IP. - Casse & répare. Sur un nœud sans
client_unbound, vide/etc/hostsde ses entréeschezlepro(garde une sauvegarde !) et coupe l'accès au DNS : la résolution interne échoue. Restaure/etc/hosts: ça remarche sans DNS. Tu viens de sentir pourquoi le plancher est le filet de sécurité.
Pour aller plus loin (dépôt)
- Rôles :
roles/hosts_statiques(le plancher),roles/serveur_powerdns,roles/client_unbound. - Conception des 3 couches + frontière publique :
docs/dns-interne.md. - Note :
client_unboundest une liaison optionnelle (opt-in) — voir l'unité Liaisons.