SITE-TechnoLibre/underlay.yml
Daniel Allaire 2e223f135a Le site de reprise refait sur le modele de SITE-Chezlepro, et sa face publique par relais
- Carte au schema actuel (index 31, zones derivees, publication VLAN 37), equipements reels :
  frontiere requin, noeud maurice, commutateur caillou.
- Neuf machines, memes noms et VMID qu'au site de Chezlepro ; runner des deux locataires.
- maurice : vmbr0 administration (nic0), vmbr1 VLAN-aware pour les VM (nic2) ; stockages nvme
  et miroir (ZFS 2 x 12 To, site-backup-01).
- opnsense.yml : optN mesures (opt1 transit, opt2..opt8 zones, opt9 RELAIS) ; face publique par
  le relais (opt9, RELAIS_GW), adresse du site et pool des locataires ; silence du relais.
- underlay.yml : reseau `relais` (tunnel WireGuard 10.31.60.0/30), hote relais (VPS OVH) et
  cles publiques des deux bouts.
- plan/domaines.yml et plan/mainteneurs.yml ; documentation (README, PREMIERE-HEURE,
  COLLECTE) a jour du releve sur place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:20:04 -04:00

174 lines
8.1 KiB
YAML

# 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.<vlan>.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
hotes:
- { 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