31 lines
1.7 KiB
YAML
31 lines
1.7 KiB
YAML
|
|
---
|
||
|
|
# 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.
|