# Underlay — infrastructure PHYSIQUE du site de TechnoLibre (noeud maurice). # # SITE DE REPRISE : il n'heberge aucune production. Chezlepro et TechnoLibre tournent au site # de Chezlepro ; ce site-ci existe pour les REPRENDRE (exercice ou sinistre). C'est pourquoi # il declare les deux index de locataires. # # UN SEUL NOEUD : pas de Ceph, pas d'iSCSI, pas de migration. Le gabarit et ses clones vivent # sur la meme machine — le point unique de panne est total, et assume pour un site de reprise. # # Refait le 2026-10-12 sur le modele de SITE-Chezlepro (memes cles, memes zones, memes noms de # VM) : le depot de septembre ne suivait plus les methodes du moteur. Les valeurs que seul le # materiel peut dire restent marquees `<<...>>` — voir COLLECTE.md. # # Le moteur la monte par symlink (Set-OPS-public/underlay.yml -> ce fichier), ou la lit par # `SETOPS_UNDERLAY` sans toucher au symlink. Validee par `make underlay` / preuve P23. --- underlay: # L'index du site lui-meme : 10.31.0.0/16. Les sites et les locataires se partagent la # classe A, chacun avec SON index (Chezlepro : site 37, locataires 17 et 23). index: 31 # Les locataires que ce site peut REPRENDRE, avec l'index qu'ils ont deja. Une reprise ne # renumerote rien : le plan du locataire ne change pas, seul change le site qu'il habite. tenants: OPS-Chezlepro: 17 OPS-Technolibre: 23 # Le commutateur entre la frontiere et le noeud (confirme sur place le 2026-10-13) : # 4 ports 2,5G et 4 SFP+, couche 2 seulement — ni routage ni filtrage. La carte 10G du # noeud (2 SFP+) et un SFP+ du QOTOM y sont branches ; c'est la racine du spanning-tree. routeur: caillou # UN SEUL NOEUD : le routage des locataires vit dans l'EVPN du noeud (controleur EVPN0031, # ASN 65031 — proxmox-hebergeur.yml). Sans commutateur L3, le mode `switch` obligerait la # frontiere a porter une interface routee par zone de locataire. routage_tenants: sdn mtu_overlay: 1450 acl_inter_tenant: false dialecte: binardat stp: mode: rstp topologie: etoile reseaux: # LE PLAN D'ADMINISTRATION : un port physique de la frontiere (la LAN du QOTOM), non # etiquete. C'est la que vivent le poste de l'exploitant (10.31.0.101), la frontiere (.1) # et l'interface d'administration du noeud (.11). Aucune VM n'y nait. - nom: management nature: fabric description: Equipements, frontiere, administration du noeud, poste de l'exploitant segment_physique: true sous_reseau: 10.31.0.0/24 passerelle: 10.31.0.1 mtu: 1500 # --- LES ZONES DU SITE — les memes qu'au site de Chezlepro -------------------------- # Une zone par nature d'autorite ; chacune est un VLAN sur `vmbr1` — le pont des VM, sur # la carte 10G (`nic2`), separe de l'administration (`vmbr0` sur `nic0`, decision de # Daniel le 2026-10-13) — avec sa patte `.1` sur la frontiere, qui police tout passage # d'une zone a l'autre. # L'adresse se derive de l'index et du VLAN : 10.31..0/24. - nom: site-pilotage nature: site description: Le runner du SITE — voute de l'underlay, API Proxmox et OPNsense vlan: 31 pont: vmbr1 mtu: 1500 - nom: site-autorite nature: site description: La racine de confiance — step-ca. Compromise, elle forge tout nom. vlan: 32 pont: vmbr1 mtu: 1500 - nom: site-genome nature: site description: La forge et le cache — le code et les binaires dont tout descend vlan: 33 pont: vmbr1 mtu: 1500 - nom: site-service nature: site description: La resolution — ce que toutes les zones interrogent vlan: 34 pont: vmbr1 mtu: 1500 - nom: site-sauvegarde nature: site description: L'etat de TOUS les locataires — la zone la plus concentree du site vlan: 35 pont: vmbr1 mtu: 1500 - nom: site-supervision nature: site description: Le temoin — ce qui sait quand les autres se taisent vlan: 36 pont: vmbr1 mtu: 1500 - nom: site-publication nature: site description: L'edge du SITE et son DNS public — les seules machines faites pour etre JOINTES vlan: 37 pont: vmbr1 mtu: 1500 - nom: transit-frontiere nature: fabric description: Frontiere nord/sud — lien du noeud ET chemin de sortie des locataires vlan: 40 sous_reseau: 10.0.4.0/24 passerelle_sortie: 10.0.4.1 mtu: 1500 # Le transport VXLAN : une seule VTEP aujourd'hui, mais l'EVPN en exige une adresse, et # un second noeud n'aura qu'a s'y ajouter. - nom: underlay-vxlan nature: fabric description: Transport VXLAN entre VTEP — aucun trafic de gestion vlan: 50 sous_reseau: 10.31.50.0/24 mtu: 1500 # LA FACE PUBLIQUE DU SITE (2026-10-13). Le site n'a qu'une adresse DHCP ; ses trois # adresses fixes sont louees sur un VPS d'OVH (le relais) et lui arrivent par ce tunnel, # INITIE PAR LA FRONTIERE. Le relais repond a l'ARP d'OVH pour elles et les route en /32 # dans le tunnel, sans traduction : elles arrivent intactes sur `requin`, qui les porte. # Ni VLAN ni port : un tunnel ne traverse aucun commutateur. - nom: relais nature: fabric fabric: relais description: Tunnel WireGuard vers le relais OVH — par ou arrivent les adresses publiques tunnel: wireguard sous_reseau: 10.31.60.0/30 mtu: 1420 # LE LIEN ENTRE LES SITES (2026-10-13) — le tunnel WireGuard entre `bifrost-1` (site de # Chezlepro, adresse fixe) et `requin` (site de TechnoLibre, DHCP derriere une traduction # d'adresse : c'est LUI qui l'initie). Declare A L'IDENTIQUE dans les deux cartes. Il porte # ce que les deux sites se doivent : la replication du DNS public et les sauvegardes # croisees — rien d'autre, et rien tant que le devis ne l'a pas declare. - nom: inter-sites nature: fabric fabric: inter-sites description: Tunnel WireGuard entre les sites de Chezlepro et de TechnoLibre tunnel: wireguard sous_reseau: 172.31.0.0/30 mtu: 1412 hotes: # Le lien entre les sites — voir le reseau `inter-sites`. - { nom: requin, reseau: inter-sites, ip: 172.31.0.1, role: frontiere, cle_publique: W3T5BG2exQqLWk19p6GDSu0xY4fSH8jtcRTr8P/xgFA= } - { nom: bifrost-1, reseau: inter-sites, ip: 172.31.0.2, role: frontiere_pair, site: SITE-Chezlepro, point_arrivee: "69.70.26.62:51820", cle_publique: lc440DWd+BZaHrLOobUaZ3OZ1el3ggxnlpelYowQ2mc= } - { nom: caillou, role: switch, reseau: management, ip: 10.31.0.111 } # La frontiere (QOTOM) — hors flotte Ansible. `.1` partout : c'est l'invariant dont le # devis derive les regles. - { nom: requin, reseau: management, ip: 10.31.0.1, role: frontiere } - { nom: requin, reseau: transit-frontiere, ip: 10.0.4.1, role: frontiere } - { nom: requin, reseau: site-pilotage, ip: 10.31.31.1, role: frontiere } - { nom: requin, reseau: site-autorite, ip: 10.31.32.1, role: frontiere } - { nom: requin, reseau: site-genome, ip: 10.31.33.1, role: frontiere } - { nom: requin, reseau: site-service, ip: 10.31.34.1, role: frontiere } - { nom: requin, reseau: site-sauvegarde, ip: 10.31.35.1, role: frontiere } - { nom: requin, reseau: site-supervision, ip: 10.31.36.1, role: frontiere } - { nom: requin, reseau: site-publication, ip: 10.31.37.1, role: frontiere } # Les CLES PUBLIQUES du tunnel ne sont pas des secrets : chaque bout a besoin de celle de # l'autre. Les cles privees restent, l'une dans OPNsense, l'autre dans la voute du site # (`vault_relais_wg_cle_privee`), pour que le relais se reconstruise sans changer de cle. - { nom: requin, reseau: relais, ip: 10.31.60.2, role: frontiere, cle_publique: mScwuAKruvArh8+WQuCO7I/sad26BBqyUTxjQ2I+/mM= } # Le relais — VPS OVH, Debian 13, administre par Set-OPS (role `serveur_relais`). Sa # console SSH reste sur son adresse propre ; les trois adresses relayees n'y sont pas # attribuees (proxy ARP). Son port d'ecoute derive de l'index : 51800 + 31. - { nom: relais, reseau: relais, ip: 10.31.60.1, role: relais, console: 15.235.101.239, cle_publique: CC6qpkjcMAemkvZkD9URE8IO7CH3VFqGcXkU2rwvkRU= } # Le noeud — ASUS Z10PE-D16 WS, deux processeurs, 2 x 128 Go. Deux cartes, deux roles # (releve du 2026-10-13) : `nic0` (1G) porte `vmbr0`, l'administration seule ; `nic2` # (10G) porte `vmbr1`, VLAN-aware et sans adresse, ou vivent les VLAN des VM. - { nom: maurice, reseau: management, ip: 10.31.0.11, role: hyperviseur, via: vmbr0 } - { nom: maurice, reseau: underlay-vxlan, ip: 10.31.50.11, role: hyperviseur, via: vmbr1 } - { nom: maurice, reseau: transit-frontiere, ip: 10.0.4.11, role: hyperviseur, via: vmbr1 } # Les machines du site naissent du gabarit du PLAN DU SITE (plan/10-intrants.yml), en # clones complets, sur le NVMe du noeud (`nvme`, LVM-thin, ~460 Go) — decision de Daniel le # 2026-10-13. `local-lvm` (130 Go, sur le SSD du systeme) ne les aurait pas tenues. # `site-backup-01` deroge : il vit sur `miroir` (ZFS, 2 x 12 To) — plan/serveurs.yml. materialisation: stockage: nvme clone_complet: true