feat(topology) : la patte de services des nœuds de Roubaix #17

Merged
thystips merged 1 commit from feat/rbx-services-leg into main 2026-08-08 15:26:26 +02:00
Owner

Étape 0 du chantier des conteneurs de services : adresser la patte lan.services des deux nœuds de Roubaix, restée à null avec un TODO depuis l'origine.

Un seul /64 partagé — le services_vlan 2042 arrive sur vmbr1, un bridge local à l'hôte, et les deux VMs y sont — adresses dérivées de l'id, comme à Bordeaux.

Un défaut corrigé au passage : proxmox_lan_legs listait services avant private, or la liste est positionnelle sur la VM. La première patte de services adressée réécrivait la patte privée en place au lieu de s'ajouter. Vu dans le plan tofu avant d'appliquer.

Déployé et mesuré, un nœud à la fois : interface renommée par MAC, asservie à la VRF, route connectée en table 42, les deux /64 vus par les quatre nœuds, segment joignable depuis Bordeaux (13,8 ms) et voisinage L2 direct entre les deux nœuds de Roubaix. Second passage à changed=0. NetBox synchronisé, --check à zéro.

À savoir : recharger Bird après un changement de direct_dn42 recycle les sessions iBGP du nœud (Flush → hold timer 240 s → rétablissement), soit ~5 minutes. Sans conséquence en déroulant un nœud à la fois.

Étape 0 du chantier des conteneurs de services : adresser la patte `lan.services` des deux nœuds de Roubaix, restée à `null` avec un TODO depuis l'origine. Un seul /64 partagé — le services_vlan 2042 arrive sur vmbr1, un bridge local à l'hôte, et les deux VMs y sont — adresses dérivées de l'`id`, comme à Bordeaux. **Un défaut corrigé au passage** : `proxmox_lan_legs` listait `services` avant `private`, or la liste est positionnelle sur la VM. La première patte de services adressée réécrivait la patte privée en place au lieu de s'ajouter. Vu dans le plan tofu avant d'appliquer. **Déployé et mesuré**, un nœud à la fois : interface renommée par MAC, asservie à la VRF, route connectée en table 42, les deux /64 vus par les quatre nœuds, segment joignable depuis Bordeaux (13,8 ms) et voisinage L2 direct entre les deux nœuds de Roubaix. Second passage à `changed=0`. NetBox synchronisé, `--check` à zéro. **À savoir** : recharger Bird après un changement de `direct_dn42` recycle les sessions iBGP du nœud (Flush → hold timer 240 s → rétablissement), soit ~5 minutes. Sans conséquence en déroulant un nœud à la fois.
Les deux nœuds de Roubaix avaient `lan.services` à null depuis l'origine, avec un
TODO. Elle est adressée dans le premier /64 du services_prefix du site, adresse
dérivée de l'`id` — la convention de Bordeaux — et les deux nœuds partagent un seul
segment : le services_vlan 2042 arrive sur vmbr1, un bridge local à l'hôte, et les
deux VMs y sont.

C'est le préalable aux conteneurs de services : un conteneur posé sur ce segment
tient une vraie adresse DN42 et se joint de partout par simple routage, ce qui est
ce qui fera disparaître les contournements de VRF dont le tier d'ingress a besoin
aujourd'hui.

Un défaut trouvé en lisant le plan tofu, et corrigé ici : `proxmox_lan_legs` listait
`services` AVANT `private`, or cette liste est positionnelle sur la VM. La première
patte de services adressée réécrivait donc la patte privée en place — MAC et VLAN de
l'interface de management déplacés, puis la privée recréée derrière — au lieu de
s'ajouter. `private` est désormais listée en premier parce qu'elle a été attachée en
premier, et le fichier dit pourquoi l'ordre n'est pas cosmétique.

La matrice des flux gagne la distinction entre les deux sites : le rendu de nftables
change ici sans que le gabarit bouge. Dès qu'un nœud a une patte `lan-svc`, le BGP
entrant générique l'exclut par sa marque, parce qu'un segment partagé ne désigne pas
son pair. Bordeaux rattrape sa session avec `ghost` par une règle épinglée à son
adresse ; Roubaix n'a pas de routeur de site, donc le BGP y tombe sur `drop`, et
c'est le comportement voulu.

Mesuré après déploiement, un nœud à la fois : interface renommée par MAC, adressée,
asservie à la VRF, route connectée en table 42, les deux /64 de services vus par les
quatre nœuds, le segment joignable depuis Bordeaux (13,8 ms) et les deux nœuds de
Roubaix voisins directs en L2. Second passage à changed=0 sur les deux.

À savoir pour la suite : le rechargement de Bird qui suit un changement de
`direct_dn42` recycle les sessions iBGP du nœud. Elles passent en Flush, cessent
d'échanger des keepalives, expirent sur le hold timer de 240 s puis se rétablissent
seules — environ cinq minutes. Sans conséquence en déroulant un nœud à la fois, ce
qui est déjà la règle du dépôt, mais à ne pas prendre pour une panne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGwvXLVXJ2PrRFwJTB3Xp9
thystips deleted branch feat/rbx-services-leg 2026-08-08 15:26:26 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ThysTips_dn42/infra-dn42!17
No description provided.