--- # LE SERVEUR DNS PUBLIC DU SITE — secondaire de toutes les zones publiques de ses locataires. # # Le locataire ECRIT sa zone (primaire cache, `autorite: primaire-cache`) ; le site la SERT. # Ce role ne porte donc aucune donnee a lui : il recoit des repliques, signees TSIG. serveur_dns_public_paquets: - pdns-server - pdns-backend-bind - dnsutils - dnsdist # LES RELATIONS AVEC LES LOCATAIRES — derivees, jamais ecrites. # # `scripts/site_inventaire.py` les calcule : il connait le plan du site ET le registre des # locataires. Ce role tourne sur une machine qui n'a aucune raison de lire la carte de # l'hebergeur. La derivation appartient a qui detient les deux sources. # # - ecosysteme: OPS-Chezlepro # cle_tsig: tsig-chezlepro # le NOM de la cle, identique des deux cotes # secret_var: vault_tsig_dns_public_chezlepro # la variable de voute qui porte le secret # primaire: 10.17.19.11 # l'adresse DERIVEE de son autoritatif # port: 5300 # zones: [chezlepro.ca] serveur_dns_public_relations: [] serveur_dns_public_ecoute: "{{ ansible_host | default('0.0.0.0') }}" serveur_dns_public_port: 53 # LE FRONTAL PUBLIC (dnsdist). L'Internet frappe ce port — la frontiere y redirige son 53 ; # le 53 de la machine reste a PowerDNS, pour les notifications des primaires et le site. serveur_dns_public_frontal_port: 1053 # Le debit par bloc d'adresses : au-dela, UDP tronque (le client repasse en TCP), TCP abandonne. # Eprouve : une rafale de 300 requetes depuis une adresse -> 74 reponses, 226 tronquees. serveur_dns_public_debit_udp: 20 serveur_dns_public_debit_tcp: 40 serveur_dns_public_debit_masque_v4: 24 serveur_dns_public_debit_masque_v6: 48 serveur_dns_public_zones_dir: /var/lib/powerdns/zones-secondaires serveur_dns_public_bind_config: /etc/powerdns/setops-dns-public-zones.conf # LA BASE QUI PORTE LES CLES TSIG. Le backend `bind` seul ne sait stocker aucune metadonnee : # sans elle, `AXFR-MASTER-TSIG` n'a nulle part ou vivre, et le transfert partirait NON # SIGNE. Eprouve le 2026-09-16 sur PowerDNS 4.9.17 : `create-bind-db` est bien pris en # charge par le paquet Debian, meme si `ldd` du module ne montre pas SQLite. serveur_dns_public_dnssec_db: /var/lib/powerdns/setops-public/dnssec.db # SONDE : le nombre de zones que ce serveur doit servir. Mise en defaut par parametre (un # seuil impossible), comme le veut le contrat des sondes. serveur_dns_public_sonde_attendu: >- {{ serveur_dns_public_relations | map(attribute='zones') | flatten | length }}