--- # BASCULER LA FLOTTE SUR SON PROPRE RESOLVEUR. # # Jusqu'ici, les hotes de patient 0 interrogeaient Quad9 (9.9.9.9) — alors que # `infra-dns-01` fait tourner un PowerDNS AUTORITATIF pour `genese.internal` que personne # ne consultait. Trois consequences, dont la troisieme est la pire : # # 1. la resolution interne ne reposait que sur le plancher /etc/hosts, qui ne connait # que ce que l'inventaire declare ; # 2. chaque requete DNS de l'ecosysteme sortait chez un tiers — une fuite au niveau le # plus fondamental de la pile, pour une plateforme dont le principe est la # souverainete ; # 3. la zone pouvait etre FAUSSE sans que rien ne le signale. Elle l'etait : au moment # d'armer cette bascule, `forge.genese.internal` — le nom que l'ecosysteme PUBLIE — # n'existait pas dans PowerDNS, et `ops-01` non plus. Un service qui repond a des # questions que personne ne pose n'est pas surveille, il est simplement muet. # # POURQUOI LES DEUX DRAPEAUX SONT ICI, ET PAS EN LIGNE DE COMMANDE. Le role refuse # `apply` sans `confirm` : declarer l'un sans l'autre ferait echouer TOUT deploiement # ulterieur. Les deux vont donc ensemble, et leur place est le plan — c'est la que les # decisions de cet ecosysteme sont ecrites, relues et versionnees. # # CE QUE LA GARDE FAIT ENCORE, a chaque passage : avant de toucher /etc/resolv.conf, le # role exige qu'Unbound reponde DEJA sur 127.0.0.1, pour la zone interne ET pour un nom # de l'Internet. Si l'un des deux manque, il echoue AVANT d'avoir rien casse. client_unbound_apply: true client_unbound_confirm: true # `infra-dns-01` n'est pas dans ce groupe : l'autoritatif ne se resout pas aupres de # lui-meme par un recurseur local. Il garde sa resolution amont.