# Underlay de SITE-Technolibre — l'infrastructure PHYSIQUE de l'hébergeur. # # UN SEUL NŒUD PROXMOX, en version 9. C'est la différence de fond avec le site de # Chezlepro : pas de Ceph, pas d'iSCSI, pas de migration, pas de fabric de stockage. # Le gabarit et ses clones vivent sur la même machine — le SPOF est total, et assumé. # # Dérivé du modèle `exemples/modeles/socle` (« un seul commutateur, pas de fabric de # stockage séparée — le point de départ honnête d'un petit hébergeur »), adapté. # # ⚠ TOUT CE QUI EST MARQUÉ <<…>> EST À RELEVER SUR PLACE. Voir COLLECTE.md. --- underlay: # Le locataire que ce site hébergera. Son index est déjà fédéré (23) et il ne # change pas : c'est lui qui porte l'adressage d'OPS-Technolibre, ses VLAN et ses VMID. # L'INDEX DU SITE LUI-MÊME. Déclaré ici, et pas seulement porté par les adresses : # c'est ce qui le rend visible à la garde des collisions (`make instances`). # Depuis le 2026-09-12, SITES et OPS partagent la classe A — deux écosystèmes ne # peuvent donc plus prendre le même nombre, quel que soit leur genre. index: 31 # Le locataire que ce site hébergera, avec SON index à lui. tenants: OPS-Technolibre: 23 # CE QUI ROUTE ENTRE LES ZONES D'UN LOCATAIRE — TRANCHÉ LE 2026-09-13. # # Deux modes existent : # `switch` : un commutateur porte les SVI et les ACL (mode par défaut du moteur) # `sdn` : EVPN sur le nœud, un VRF par locataire # # ICI IL N'Y A PAS DE COMMUTATEUR DE NIVEAU 3. Entre le nœud et l'OPNsense, il n'y a # qu'un lien. En mode `switch`, le seul équipement capable de porter les SVI serait # donc la frontière elle-même : il faudrait lui ajouter SIX interfaces VLAN de plus — # celles du locataire — en plus de ses six pattes de site, et vérifier à la main les # ACL entre elles. Douze interfaces sur une machine, pour un écosystème. # # En `sdn`, le routage ET le filtrage inter-zone du locataire vivent SUR LE NŒUD. # Aucun VLAN de locataire ne circule sur le fil, la frontière ne voit que le transit, # et le moteur sait déjà poser tout ça (`appliquer_sdn`). L'inter-locataire, lui, # sort du VRF et passe par la frontière, qui le police. # # L'OBJECTION — « EVPN sur un seul nœud, c'est un maillage sans pair » — est réelle # mais se retourne : un VTEP unique n'a AUCUNE session à établir, là où le mode # `switch` demanderait de configurer et d'éprouver douze interfaces routées. La # complexité qu'on croyait éviter était de l'autre côté. # # C'est aussi le mode qu'exerce Chezlepro : mêmes chemins de code, mêmes devis. routage_tenants: sdn # LA FRONTIÈRE ROUTE TOUT — il n'y a pas d'autre équipement de niveau 3 sur ce site. # Le champ accepte « le commutateur, ou la frontière si elle route tout » : c'est le # second cas. routeur: portail # Sans commutateur, le dialecte ne commande presque rien (le devis switch n'émet plus # ni VLAN de locataire, ni SVI, ni ACL en mode `sdn`). On garde celui de la flotte, # pour qu'un exploitant qui passe d'un site à l'autre lise la même forme. dialecte: binardat mtu_overlay: 1450 # UN SEUL LOCATAIRE, ET L'INTER-LOCATAIRE PASSE DÉJÀ PAR LA FRONTIÈRE. Rien à lier à # une interface de routage qui n'existe pas. À revoir le jour où un deuxième # écosystème s'installe ici — ce sera alors un geste, pas un effet de bord. acl_inter_tenant: false stp: mode: rstp topologie: etoile reseaux: # PLAN DE GESTION — la seule chose qui doit être unique entre deux sites. # `10..0.0/24`, index 31 : celui du SITE, distinct de celui de son # locataire (23). Décision du 2026-09-12 : SITES et OPS partagent la classe A, # chacun avec son propre index — le plan d'administration de l'hébergeur ne vit # plus dans le supernet d'un de ses locataires. - nom: management description: Gestion du nœud, OOB/IPMI, poste de l'exploitant vlan: null sous_reseau: 10.31.0.0/24 mtu: 1500 # LIEN VERS LA FRONTIÈRE. Sans lui, la flotte n'a ni sortie ni chemin de retour : # elle serait routée jusqu'à la bordure puis muette — très difficile à diagnostiquer. - nom: transit-frontiere description: Lien nœud Proxmox <-> OPNsense, et sortie par défaut des locataires vlan: 40 sous_reseau: 10.0.4.0/24 passerelle_sortie: 10.0.4.1 mtu: 1500 # LES SIX ZONES DU SITE. Une préoccupation par zone. # Même FORME que le site de Chezlepro — le 3e octet reste le numéro de VLAN. # Ce qui change : le 2e octet porte l'index du site (31) au lieu de 0. # Les deux sites peuvent donc être reliés (§8 du guide) sans renumérotage. - { nom: site-pilotage, description: Runner et pilotage, vlan: 31, sous_reseau: 10.31.31.0/24, pont: vmbr0, mtu: 1500 } - { nom: site-autorite, description: Autorité de certification, vlan: 32, sous_reseau: 10.31.32.0/24, pont: vmbr0, mtu: 1500 } - { nom: site-genome, description: Forge et cache de paquets, vlan: 33, sous_reseau: 10.31.33.0/24, pont: vmbr0, mtu: 1500 } - { nom: site-service, description: Noms (DNS autoritaire), vlan: 34, sous_reseau: 10.31.34.0/24, pont: vmbr0, mtu: 1500 } - { nom: site-sauvegarde, description: Dépôt de sauvegarde mutualisé, vlan: 35, sous_reseau: 10.31.35.0/24, pont: vmbr0, mtu: 1500 } - { nom: site-supervision, description: Supervision et observabilité, vlan: 36, sous_reseau: 10.31.36.0/24, pont: vmbr0, mtu: 1500 } hotes: # L'UNIQUE NŒUD. `via` = l'interface physique qui porte le trunk vers la frontière. - { nom: atelier, reseau: management, ip: 10.31.0.41, role: hyperviseur } - { nom: atelier, reseau: transit-frontiere, ip: 10.0.4.41, role: hyperviseur, via: <> } # LA FRONTIÈRE, patte par patte. Une ligne par zone qu'elle sert : c'est de là que # le devis dérive les interfaces d'arrivée des règles (D-61 raisonne en ARRIVÉE). - { nom: portail, reseau: management, ip: 10.31.0.1, role: frontiere } - { nom: portail, reseau: transit-frontiere, ip: 10.0.4.1, role: frontiere } - { nom: portail, reseau: site-pilotage, ip: 10.31.31.1, role: frontiere } - { nom: portail, reseau: site-autorite, ip: 10.31.32.1, role: frontiere } - { nom: portail, reseau: site-genome, ip: 10.31.33.1, role: frontiere } - { nom: portail, reseau: site-service, ip: 10.31.34.1, role: frontiere } - { nom: portail, reseau: site-sauvegarde, ip: 10.31.35.1, role: frontiere } - { nom: portail, reseau: site-supervision, ip: 10.31.36.1, role: frontiere } # LE GABARIT ET SON STOCKAGE. Sur un nœud unique, `clone_complet` est le choix sûr : # un clone lié dépend à vie du gabarit, et il n'y a pas d'autre nœud pour le porter. materialisation: # MÊME VMID QUE PARTOUT AILLEURS DANS LA FLOTTE. Le gabarit est le même actif d'un # site à l'autre ; lui donner un numéro par site obligerait à le chercher. vmid_modele: 99998 # `local-lvm` — le stockage que Proxmox pose à l'installation. Sur un nœud unique il # n'y a rien d'autre, et c'est honnête de le dire : quinze clones complets y tiennent # ou n'y tiennent pas, et c'est la première chose à mesurer sur place. stockage: local-lvm clone_complet: true