resolveur : patient 0 ne pose plus ses questions a personne
Some checks are pending
verifier / verifier (push) Waiting to run
Some checks are pending
verifier / verifier (push) Waiting to run
Les hotes interrogeaient Quad9 alors que l'ecosysteme fait tourner son propre autoritatif. Le mecanisme n'etait pas absent -- client_unbound etait desarme. En l'armant, la zone s'est revelee FAUSSE : ni ops-01, ni forge.genese.internal, le nom que l'ecosysteme publie. Meme cause que le vhost nginx et le plancher : setops_plan_dir pointait le mauvais plan. Un service que personne n'interroge n'est pas surveille, il est muet. Quatre hotes bascules, forward-addr = 0 : Unbound recurse depuis la racine, il ne renvoie a aucun tiers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
3ec3768799
commit
a3f496a496
1 changed files with 58 additions and 0 deletions
58
CHANGELOG.md
58
CHANGELOG.md
|
|
@ -1,5 +1,63 @@
|
|||
# CHANGELOG — Set-OPS
|
||||
|
||||
## 2026-08-23 — Le résolveur : un service qui répondait à des questions que personne ne posait
|
||||
|
||||
Les hôtes de patient 0 interrogeaient **Quad9**, alors que `infra-dns-01` fait tourner un
|
||||
PowerDNS autoritatif pour `genese.internal`. Chaque requête DNS de l'écosystème sortait
|
||||
chez un tiers — une fuite au niveau le plus fondamental de la pile, pour une plateforme
|
||||
dont le principe est la souveraineté.
|
||||
|
||||
Le mécanisme n'était pas absent : `client_unbound` était **désarmé**, deux booléens à
|
||||
`false`, avec une garde qui refuse la bascule sans confirmation et valide qu'Unbound
|
||||
répond *déjà* — zone interne **et** Internet — avant de toucher `/etc/resolv.conf`.
|
||||
|
||||
### La zone était fausse, et rien ne le disait
|
||||
|
||||
C'est le troisième effet, et le pire. En armant la bascule, la zone servie contenait :
|
||||
|
||||
```
|
||||
genese.internal SOA/NS/ns1 · dns CNAME
|
||||
forge-01 · infra-dns-01 · infra-edge-01 · infra-pki-01
|
||||
```
|
||||
|
||||
Manquaient **`ops-01`** — la machine créée le matin même — et surtout
|
||||
**`forge.genese.internal`**, le nom que l'écosystème *publie*. Un service que personne
|
||||
n'interroge n'est pas surveillé : il est muet. La zone aurait pu être fausse pendant des
|
||||
mois sans qu'aucun vert ne vacille.
|
||||
|
||||
La cause est la même que celle du vhost nginx et du plancher `/etc/hosts` : le rôle
|
||||
dérive ses enregistrements de `setops_plan_dir`, qui pointait le mauvais plan. Un
|
||||
redéploiement avec la variable corrigée a suffi :
|
||||
|
||||
```
|
||||
forge.genese.internal A 10.29.16.11 ← l'edge qui le sert
|
||||
ops-01.genese.internal A 10.29.19.41
|
||||
```
|
||||
|
||||
### La bascule
|
||||
|
||||
Quatre hôtes — `infra-dns-01` reste hors du groupe, un autoritatif ne se résout pas
|
||||
auprès de lui-même par un récurseur local. Vérifié après coup :
|
||||
|
||||
```
|
||||
resolv.conf search genese.internal · nameserver 127.0.0.1
|
||||
interne forge.genese.internal -> 10.29.16.11 ops-01 -> 10.29.19.41
|
||||
internet deb.debian.org -> 151.101.138.132
|
||||
apt update ok
|
||||
fetch du génome depuis sa forge, par le poste : ok
|
||||
```
|
||||
|
||||
Et le point qui décide si le gain est réel ou cosmétique : **`forward-addr` = 0**. Unbound
|
||||
récurse depuis les serveurs racine, il ne renvoie à aucun tiers. Patient 0 est le premier
|
||||
écosystème de la flotte à ne plus poser ses questions à personne.
|
||||
|
||||
### Une note d'outillage
|
||||
|
||||
`grep -c` rend un code de sortie **1** quand il compte zéro. Ma sonde a donc affiché
|
||||
`FAILED` sur les quatre hôtes alors que tout livrait — le zéro était précisément le
|
||||
résultat cherché. Un instrument qui crie à l'échec quand il constate le succès attendu
|
||||
vaut la peine d'être relu avant d'être cru.
|
||||
|
||||
## 2026-08-23 — `serveur_ops` : la différence entre une archive et une matrice
|
||||
|
||||
Un écosystème pouvait **détenir** son génome sans savoir l'exécuter. Les cinq dépôts
|
||||
|
|
|
|||
Loading…
Reference in a new issue