Set-OPS-Public/roles/serveur_dns_public/templates/setops-dns-public.conf.j2
Daniel Allaire 788c5073dc DNS public, phase 1 : le locataire ecrit, le site sert
Role serveur_dns_public (secondaire public, transfert signe TSIG, aucune zone interne) ;
serveur_powerdns exerce enfin autorite primaire-cache dans une instance pdns@public a part,
pour que le site ne puisse jamais interroger la zone .internal. Relations derivees des plans
des locataires, mots de flux dns_public_site et primaires_dns_locataires. Eprouve avant
d ecrire : allow-axfr-ips et TSIG sont alternatifs, le primaire notifie aussi ses NS, le
serial fige aurait gele le secondaire. P82 refuse l exposition sans DNSSEC.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 18:08:20 -04:00

34 lines
1.7 KiB
Django/Jinja

# GENERE par Set-OPS (role serveur_dns_public). Ne pas editer a la main.
#
# LE SERVEUR DNS PUBLIC DU SITE — secondaire de toutes les zones publiques des locataires.
#
# `launch=bind` est deja declare par le paquet (pdns.d/bind.conf) : ne pas le redeclarer,
# PowerDNS refuserait « multiple backends 'bind' ». Ce fichier est lu APRES lui (ordre
# alphabetique), et son `bind-config` l'emporte.
bind-config={{ serveur_dns_public_bind_config }}
bind-dnssec-db={{ serveur_dns_public_dnssec_db }}
local-address={{ serveur_dns_public_ecoute }}
local-port={{ serveur_dns_public_port }}
# SECONDAIRE, ET RIEN D'AUTRE. Il recoit des repliques ; il n'est primaire de rien.
secondary=yes
primary=no
# IL NE REDONNE LES ZONES A PERSONNE. Le transfert sortant servira la replication vers le
# site pair, par le tunnel WireGuard — une phase ulterieure. D'ici la, fermé.
disable-axfr=yes
# LES NOTIFICATIONS NE VIENNENT QUE DES PRIMAIRES DECLARES. Un NOTIFY accepte de n'importe
# qui ferait tirer ce serveur vers le primaire a la demande de n'importe qui.
{% set _primaires = serveur_dns_public_relations | map(attribute='primaire') | unique | list %}
allow-notify-from={{ (_primaires | map('regex_replace', '$', '/32') | list | join(',')) if _primaires else '127.0.0.1/32' }}
# Ne rien dire de ce qui tourne ici. La version exacte est la premiere chose qu'un
# balayage demande.
version-string=anonymous
# AUCUN APPEL VERS LES SERVEURS DE L'EDITEUR. Par defaut, PowerDNS interroge un domaine de
# PowerDNS.COM pour savoir s'il a une mise a jour de securite : un serveur souverain qui
# appellerait un tiers a chaque demarrage. Les mises a jour viennent du cache du site.
security-poll-suffix=