Set-OPS-Public/wiki/DNS-et-résolution.md
Daniel Allaire b342e5796b wiki : unités PKI, DNS, Sauvegardes (Fondations complètes + Données)
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>
2026-07-04 15:08:36 -04:00

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

  1. 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
    
  2. 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
    
  3. Vois les couches. Compare getent hosts (plancher) et dig (DNS) : deux chemins, même IP.
  4. Casse & répare. Sur un nœud sans client_unbound, vide /etc/hosts de ses entrées chezlepro (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_unbound est une liaison optionnelle (opt-in) — voir l'unité Liaisons.