Set-OPS-Public/exemples/modeles/socle
Daniel Allaire 1bc516fd92 routage : plus aucun commutateur ne route, la frontière est le seul L3 (D-49 à D-51)
Aucun des trois SVI de sleipnir-01 n'avait de consommateur : les VTEP sont dans
le même sous-réseau, les nœuds de sortie sont adjacents à la frontière, et les
commutateurs peuvent sortir par l'OPNsense qui a déjà une patte sur le VLAN 10.

Deux décisions séparées avaient vidé ce rôle sans qu'on regarde leur effet
cumulé : le passage à l'EVPN a retiré les VLAN tenants du fil, puis la fusion du
lien de sortie dans le VLAN 40 a rendu les nœuds de sortie adjacents.

sleipnir-01 disparaît, pas seulement son rôle : en étoile, le centre est sur tous
les chemins, donc un point de panne unique du plan de données — ce qui vidait
aussi de son sens l'ajout d'une seconde carte à bond3. Deux switches L2 reliés,
bond3 répartis. D-51 ; D-05 renversée.

Le devis perd trois SVI, quatre routes, et surtout sa section 5 — celle qui
coupait l'accès d'administration au switch en cas d'erreur.

D-50 : `passerelle` signifiait « adresse du SVI du switch », une hypothèse
déguisée en donnée. Elle signifie maintenant « la passerelle de ce sous-réseau,
où qu'elle vive », et le devis dérive s'il doit émettre une interface routée —
uniquement si le porteur déclaré a le rôle switch. Le même moteur sert les deux
postures : le modèle public démontre celle où le switch route.

Deux gardes remplacées, pas affaiblies. À la place de « passerelle_sortie exige
passerelle » et « routeur.ip == passerelle », une règle plus forte : une
passerelle doit être l'adresse d'un hôte déclaré sur ce réseau. Elle attrape en
plus les passerelles fantômes. Éprouvée par trois sabotages, tous attrapés — et
elle a trouvé une sous-déclaration dans le modèle public.

Quatre trous corrigés, tous de la même famille (une liste figée finit par
mentir) : port de frontière figé sur le transit, trunk Proxmox excluant le
transit, switches d'accès sautant sa déclaration, et le switch de tête privé
d'adresse de gestion par la suppression du SVI.

D-03 renversée : le /29 élargi en /24 fait tomber l'exemption d'invariant, le .1
revient à la passerelle.

30 preuves OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 14:23:57 -04:00
..
inventories/production/group_vars/all Mise en conformité prouvable : registre d'affirmations + make prouver 2026-07-20 19:53:18 -04:00
plan intégrations : le rôle déclare sa politique ; le cluster passe à l'hébergeur 2026-08-03 14:09:22 -04:00
README.md modèles : l'underlay devient modélisable, et P17 le valide 2026-08-02 17:11:18 -04:00
underlay.yml routage : plus aucun commutateur ne route, la frontière est le seul L3 (D-49 à D-51) 2026-08-04 14:23:57 -04:00

Modèle : socle

Infrastructure de base souveraine — 4 VM : edge (nginx), DNS (PowerDNS), PKI (step-ca), magasin courriel (Dovecot). Le point de départ minimal, extensible vers un écosystème complet (voir modèle integral).

Zones : Frontière (VLAN 16) · Services-infra (VLAN 19). VMID ip-miroir 9 chiffres. Copier vers OPS-<tenant>, adapter index/domaine/intrants, puis make instancier.

Deux moitiés, deux propriétaires

Ce modèle en contient deux, qui ne vont pas au même endroit :

Fichiers Décrit Copier vers
plan/, inventories/ les services d'une organisation OPS-<tenant>
underlay.yml le matériel qui les porte OPS-<hébergeur>

Un tenant qui se fait héberger prend la première moitié seulement : l'underlay appartient à qui possède les commutateurs. Chez un hébergeur qui est aussi son propre tenant, les deux atterrissent dans le même dépôt — c'est un cas particulier, pas la règle.

L'underlay fourni est volontairement minimal : un seul commutateur, pas de fabric de stockage séparée. Tous les hébergeurs n'ont pas le même matériel ; les montages plus riches (étoile à trois commutateurs, paire en MLAG, stockage jumbo dédié) relèvent d'autres modèles.

Il est facultatif : un modèle sans underlay.yml reste valide. Présent, il est vérifié pour sa cohérence interne par la preuve P17, sans être confronté aux tenants réels — un modèle est un gabarit, pas un site déployé.