SITE-TechnoLibre/underlay.yml
Daniel Allaire b5d68fe0c5 Le lien entre les sites : tunnel WireGuard requin <-> bifrost-1
- underlay.yml : reseau inter-sites (172.31.0.0/30), requin (frontiere) et bifrost-1
  (frontiere_pair, site SITE-Chezlepro) avec leurs cles publiques.
- flux-genere/site-mon-01.nft : la patte du relais n'est plus une source de journaux.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:38:40 -04:00

194 lines
9.2 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
# 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