README reduit au role du projet et au demarrage rapide. docs/architecture.md (schemas
Mermaid), docs/setup.md, docs/usage.md (154 cibles en 13 familles), docs/README.md (index).
Documents ranges en conception/, exploitation/, hebergement/, projet/ ; 598 chemins suivis.
QUICKSTART.md, SOLUTION.md, architecture-set-ops.md et la carte fondus puis retires.
Preuves : P48 lit l'index et conception/mecanismes.md ; les gardes parcourent docs/ sous-
dossiers compris (_documents) ; usage.md suit le Makefile dans les deux sens.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le contrat du site porte dns_public_noms_pairs : nom et adresse publique du
serveur de chaque pair actif, lus dans son plan et sa carte de frontiere par
les memes fonctions que pour le site lui-meme. Le gabarit de zone ecrit un NS
par serveur ; la zone qui contient un de ces noms en porte le A, a l'adresse
de son site. Sans pair, le rendu est identique a l'ancien.
Garde au role (nom, adresse publique, jamais redeclare) ; la preuve du DNS
public refuse un pair actif sans dns_public_nom ; dns_bascule compte les
serveurs designes et sonde la colle de chacun.
Deploye chez les deux locataires : les deux serveurs publics servent
chezlepro.ca et technolibre.ca au meme serial, deux NS signes.
CHANGELOG 151.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- underlay.py : sites pairs lus dans leur depot frere (sites_pairs_actifs, sur_le_site,
dns_public_des_pairs).
- Contrat du site : dns_public_pairs ; serveur_powerdns notifie et admet le pair ;
resoudre_flux l'admet sur 5300.
- devis_opnsense : opnsense_liens_sites (regles et routes selon ou vit chaque locataire) ;
P24 juge les routes du lien a part ; noms d'alias < 32 caracteres gardes ; le refus du
groupe wireguard ne tranche plus (quick=0), et la garde le verifie.
- appliquer_opnsense : quick=0 transmis et dans l'identite d'une regle.
- proxmox_api : SETOPS_PROXMOX_API pour joindre l'API par un rebond.
Temoin depuis l'Internet : les deux zones repondent sur 51.79.45.193, signees.
95 preuves (make verifier), make test passe. CHANGELOG 149.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cle CSK ECDSA P-256 tiree dans la voute du locataire, importee par le role, DS calcule
sans la machine. Refus de changer la cle ou de retirer la signature tant qu'un DS est
publie. SOA-EDIT EPOCH : INCEPTION-EPOCH aurait laisse expirer les signatures du site.
CAA sur chezlepro.ca, sonde des signatures au site, P18 deplie vault_dnssec_<zone>.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Une zone publique ne portait que des A d'exposition ; basculer chezlepro.ca aurait coupe
son MX, son SPF et son DMARC. Les enregistrements se declarent au plan, valides et rendus ;
le serveur de noms porte le nom que le site declare (dns1.chezlepro.ca), parce que
ns1.chezlepro.ca existe deja en production. make dns-bascule-devis compare le plan au DNS
en service : 0 perdu sur les deux zones, deux prealables restants.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Applicateur de frontiere : ecrire n est pas charger, le chemin rien a faire charge
desormais. site-verifier compare enfin playbooks/site.yml, regenere avec le groupe.
Base TSIG dans un repertoire a pdns et pdnsutil en pdns (journal SQLite). Flux UDP 5300 :
le secondaire demande le SOA avant de transferer, garde dans P82. socket-dir de
pdns@public, et le failed_when qui taisait la notification est retire. Eprouve sur les
machines : 2 zones sur 2 tirees automatiquement, NOTIFY compte, zone interne refusee.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>