52 lines
2.5 KiB
Django/Jinja
52 lines
2.5 KiB
Django/Jinja
# GENERE par Set-OPS (role serveur_powerdns). Ne pas editer a la main.
|
|
#
|
|
# L'INSTANCE PUBLIQUE DU LOCATAIRE — `pdns@public`, primaire cache de ses zones publiques.
|
|
#
|
|
# Elle ne sert QUE les zones `autorite: primaire-cache`. La zone `.internal` reste a
|
|
# l'instance principale, sur la boucle locale : le serveur public du site peut interroger
|
|
# celle-ci, jamais celle-la.
|
|
#
|
|
# Une instance nommee ne lit pas `pdns.d/` : tout ce dont elle a besoin est dit ici.
|
|
launch=bind
|
|
bind-config={{ serveur_powerdns_public_bind_config }}
|
|
bind-dnssec-db={{ serveur_powerdns_public_dnssec_db }}
|
|
|
|
# LE SOCKET DE CONTROLE VIT OU L'UNITE LE MET (mesure le 2026-09-16, en production).
|
|
#
|
|
# `pdns@.service` cree `RuntimeDirectory=pdns-%i`, soit `/run/pdns-public`. Sans ce reglage,
|
|
# `pdns_control --config-name=public` cherchait `/var/run/pdns/pdns-public.controlsocket`,
|
|
# ne le trouvait pas — et la notification du site echouait. Le handler l'avalait en silence.
|
|
socket-dir=/run/pdns-public
|
|
|
|
# LA SEULE INSTANCE QUI ECOUTE L'ADRESSE DE L'HOTE. Le pare-feu de la machine ne laisse
|
|
# frapper que le serveur public du site (flux `dns_public_site`).
|
|
local-address={{ ansible_host }}
|
|
local-port={{ serveur_powerdns_public_port }}
|
|
|
|
primary=yes
|
|
secondary=no
|
|
|
|
# LE TRANSFERT S'OUVRE A LA CLE, PAS A L'ADRESSE (eprouve le 2026-09-16).
|
|
#
|
|
# `allow-axfr-ips` et TSIG sont ALTERNATIFS : une adresse listee obtient la zone sans
|
|
# signature. Seule la boucle locale y figure — le serveur public du site n'y est jamais,
|
|
# et ne recoit la zone que signee par `TSIG-ALLOW-AXFR`.
|
|
#
|
|
# MESURE EN PRODUCTION (2026-09-17) : une fois `TSIG-ALLOW-AXFR` pose sur la zone, meme la
|
|
# boucle locale est refusee (« Transfer failed »). Pour imprimer la zone depuis la machine,
|
|
# signer la demande avec la cle en place :
|
|
# K=$(sudo -u pdns pdnsutil --config-name=public list-tsig-keys | awk '/^tsig-/{sub(/\.$/,"",$1); print $1":"$3; exit}')
|
|
# dig -y "hmac-sha256:$K" @{{ ansible_host }} -p {{ serveur_powerdns_public_port }} <zone> AXFR
|
|
disable-axfr=no
|
|
allow-axfr-ips=127.0.0.1/32
|
|
|
|
# NOTIFIER LE SEUL SERVEUR PUBLIC DU SITE (decouvert le 2026-09-16, dans les journaux).
|
|
#
|
|
# Par defaut, un primaire notifie AUSSI les adresses de ses enregistrements NS. Ici, ce
|
|
# sont les adresses PUBLIQUES des serveurs de noms : le primaire enverrait des
|
|
# notifications vers Internet depuis l'interieur du locataire. `only-notify` les borne.
|
|
only-notify={{ serveur_powerdns_dns_public_site }}/32
|
|
also-notify={{ serveur_powerdns_dns_public_site }}
|
|
|
|
version-string=anonymous
|
|
security-poll-suffix=
|