Set-OPS-Public/underlay.yml.example
Daniel Allaire 7e852b5eef underlay : le routeur porte le SVI, et le transit sort de la partie B
Deux incohérences visibles à la relecture du devis complet.

`bifrost-01` portait le SVI Vlan10 -> 10.0.0.1 et était déclaré dans
`underlay.hotes` à 10.0.0.2. Une interface VLAN n'a qu'une adresse primaire :
les deux ne pouvaient pas être vraies. L'entrée datait d'avant la désignation
du routeur, quand 10.0.0.1 était une passerelle abstraite. Le routeur est
déclaré à l'adresse du SVI qu'il porte, et `make underlay` refuse désormais
la divergence.

La partie B créait `vlan 40` alors que son trunk ne le transporte pas — le
transit ne relie que le routeur à la frontière. VLAN exclu de la partie B,
comme il l'est déjà des trunks généraux.

Preuves : 24 OK, 0 échec ; garde de cohérence exercée.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 20:10:42 -04:00

67 lines
3.2 KiB
Text

# Underlay — la fabric physique partagee par les instances federees.
#
# Cluster-global : ces reseaux portent TOUTE la flotte, ils n'appartiennent a aucun
# tenant et ne derivent d'aucun `index`. Ils vivent dans le *sous-sol* du modele.
#
# Copier vers `underlay.yml` (a la racine du moteur ; gitignore) et adapter a ta fabric.
# Surchargeable par SETOPS_UNDERLAY=/chemin/underlay.yml. Absent => le devis switch
# omet simplement la section underlay (retro-compatible).
#
# Regles (prouvees par P23 / `make underlay`) :
# - VLAN < 1000 : franchement SOUS la plage tenant (VLAN tenant = 1000+index*10+zone).
# - sous_reseau : ne chevauche aucun supernet tenant (10.(10+index).0.0/16, index >= 1).
# => la plage 10.0.0.0/16 .. 10.10.0.0/16 est libre pour l'underlay.
# - passerelle : OPTIONNELLE. Presente => un SVI est genere (routage inter-VLAN).
# Storage/Ceph restent en general L2 pur (pas de passerelle).
---
underlay:
# Switch qui porte le routage : SVI de zone, ACL d'isolation, routes. Sans MLAG,
# UN SEUL switch route ; les autres restent en L2 pur et reçoivent la partie B du
# devis. Dupliquer les SVI sur plusieurs switches creerait autant de conflits
# d'adresses qu'il y a de zones. Doit nommer un hote declare dans `hotes:`.
routeur: switch-01
reseaux:
- nom: management
description: Switches, mgmt Proxmox, OOB/IPMI
vlan: 10
sous_reseau: 10.0.0.0/24
passerelle: 10.0.0.1 # SVI (retirer pour du L2 pur)
mtu: 1500
- nom: stockage-iscsi
description: iSCSI MPIO
vlan: 20
sous_reseau: 10.0.1.0/24
mtu: 9000 # jumbo
- nom: ceph-public
description: Clients <-> MON/OSD
vlan: 30
sous_reseau: 10.0.2.0/24
mtu: 9000
- nom: ceph-cluster
description: OSD <-> OSD (replication, backfill, recovery)
vlan: 31
sous_reseau: 10.0.3.0/24
mtu: 9000
# Transit vers la frontiere nord/sud (pare-feu de bordure). OPTIONNEL, mais sans lui
# la flotte n'a ni sortie ni chemin de retour vers l'administration.
# Il vit dans l'underlay parce qu'il est PARTAGE : la frontiere route vers TOUS les
# supernets tenants par ce meme saut — il ne peut donc deriver d'aucun `index`.
# `passerelle_sortie` = adresse du pare-feu sur le lien ; c'est elle qui fait emettre
# la route par defaut et les routes de retour (section 5 de `make devis-reseau`).
# Prevoir large : /29 laisse la place aux deux pare-feux pendant une transition.
- nom: transit-frontiere
description: Lien routeur est-ouest (switches L3) <-> frontiere nord/sud
vlan: 40
sous_reseau: 10.0.4.0/29
passerelle: 10.0.4.1 # SVI du switch L3
passerelle_sortie: 10.0.4.2 # pare-feu de bordure = sortie par defaut de la flotte
mtu: 1500
# Hotes fixes documentes (optionnel) : IP hors DHCP, verifiees dans leur reseau.
hotes:
# Le switch designe `routeur` porte le SVI de management : son adresse de gestion
# EST la passerelle du reseau. `make underlay` refuse les deux valeurs divergentes.
- { nom: switch-01, reseau: management, ip: 10.0.0.1 }
- { nom: switch-02, reseau: management, ip: 10.0.0.3 }
- { nom: switch-03, reseau: management, ip: 10.0.0.4 }