Set-OPS-Public/roles/serveur_powerdns/meta/flux.yml
Daniel Allaire 25fd4fc6f1 flux : seulement_si non_vide ; forge 3000 et PowerDNS 5300 conditionnels
La forge du site sert son propre TLS (443) : le flux 3000 derriere un edge
ne vaut que si serveur_forgejo_tls est faux. L'AXFR 5300 ne vaut que la ou
l'instance publique existe (dns_public_site non vide) : pas au site.
Absente partout = vide ; une expression Jinja garde le statu quo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:01:46 -04:00

68 lines
3.1 KiB
YAML

---
# Flux réseau du DNS autoritatif interne (PowerDNS). Voir docs/flux-conception.md.
# LE PORT DE L'AUTORITATIF EST DÉRIVÉ DEPUIS LE 2026-08-24, et c'est pour ça qu'il est
# déclaré `derive` plutôt que `53` :
#
# seul sur son hôte -> 53 sur l'adresse du tenant
# partageant l'hôte avec le résolveur -> 5300 sur la loopback, derrière lui
#
# Le résolveur devient alors la seule porte, et personne n'interroge l'autoritatif
# directement. `verifier_ports` traite un port non numérique comme « pas une écoute fixe »
# — ce qui est exactement le cas : les deux services lient le port 53 mais sur des
# ADRESSES différentes, ce qu'une comparaison de ports seuls ne peut pas distinguer.
flux:
- sens: ingress
port: derive
protocole: udp
pair: flotte
chiffrement: clair
raison: "Zone souveraine. 53 seul sur son hôte, 5300 sur la loopback derrière le résolveur."
- sens: ingress
port: derive
protocole: tcp
pair: flotte
chiffrement: clair
raison: "Idem en TCP (réponses volumineuses, AXFR restreint par allow_axfr_ips)."
# L'autoritatif ne RÉCURSE pour personne — mais il doit résoudre POUR LUI-MÊME : `apt`,
# NTP, les certificats. Il est le seul hôte exempté de `client_resolveur` (PowerDNS occupe
# déjà son port 53), donc rien d'autre ne lui ouvre ce flux. Sans cette déclaration, la
# frontière jette ses requêtes et la machine ne peut même pas s'installer — mesuré le
# 2026-08-06, sur la VM qui devait justement servir de DNS au tenant.
- sens: egress
port: 53
protocole: udp
pair: externe
chiffrement: clair
raison: "Résolution sortante du serveur autoritatif POUR SES PROPRES besoins (apt, NTP) — il ne récurse pour aucun autre hôte."
- sens: egress
port: 53
protocole: tcp
pair: externe
chiffrement: clair
raison: "Repli TCP de la résolution sortante du serveur autoritatif (réponses dépassant la taille UDP)."
# LE SERVEUR PUBLIC DU SITE TIRE LES ZONES PUBLIQUES (2026-09-16).
#
# Sur l'instance `pdns@public` seulement, qui ne sert que les zones `primaire-cache`.
# UDP pour le SOA que le secondaire compare avant de tirer, TCP pour le transfert. La
# regle limite qui peut FRAPPER ; TSIG decide qui peut LIRE.
#
# SEULEMENT LA OU LE SITE A UN SERVEUR PUBLIC A SERVIR (2026-09-30) — la ou l'instance
# `pdns@public` existe (`zones-publiques.yml` ne se joue que sous la meme condition). Le
# PowerDNS du SITE n'en a pas : il ecoute sur la boucle locale, et la regle restait posee,
# coupee — la sonde `connectivite` le montrait chaque minute.
- sens: ingress
port: 5300
protocole: tcp
pair: dns_public_site
seulement_si: {variable: dns_public_site, non_vide: true}
chiffrement: clair
raison: "AXFR signe TSIG par le serveur DNS public du site, vers l'instance publique uniquement."
- sens: ingress
port: 5300
protocole: udp
pair: dns_public_site
seulement_si: {variable: dns_public_site, non_vide: true}
chiffrement: clair
raison: "Interrogation du SOA par le secondaire du site avant chaque transfert."