devis switch : le trunk ne restreignait rien
`switchport trunk allowed vlan ?` sur le matériel confirme la syntaxe et révèle un défaut : `add` ajoute à la liste courante, la forme sans mot-clé la définit. Le devis émettait `add`. Or un port trunk neuf autorise tous les VLAN — dans une config réelle, les ports n'ont aucune ligne `allowed vlan`, ce qui signifie exactement cela. Y ajouter la liste voulue n'en retranchait aucun : le trunk continuait de tout transporter, et le devis donnait l'illusion de restreindre. Le pire genre de défaut — ça a l'air juste, ça s'applique sans erreur, et ça ne fait pas ce que ça annonce. La forme sans mot-clé est aussi atomique : `none` puis `add` couperait le trunk entre les deux commandes, ce qui suffit à perdre la session si on l'applique sur le port de gestion. Preuves : 24 OK, 0 échec. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
24959359e2
commit
34e65259ac
3 changed files with 30 additions and 4 deletions
17
CHANGELOG.md
17
CHANGELOG.md
|
|
@ -1,5 +1,22 @@
|
|||
# CHANGELOG — Set-OPS
|
||||
|
||||
## 2026-08-02 (suite 13) — le trunk ne restreignait rien
|
||||
|
||||
`switchport trunk allowed vlan ?` sur le matériel réel confirme la syntaxe **et** révèle un
|
||||
défaut : `add` *ajoute* à la liste courante, la forme sans mot-clé la *définit*.
|
||||
|
||||
Le devis émettait `add`. Or un port trunk neuf autorise **tous** les VLAN — dans une
|
||||
configuration réelle, les ports n'avaient aucune ligne `allowed vlan`, ce qui signifie
|
||||
exactement cela. Y ajouter la liste des VLAN voulus n'en retranchait aucun : le trunk
|
||||
continuait de tout transporter, et le devis donnait **l'illusion de restreindre**.
|
||||
|
||||
C'est le pire genre de défaut — une configuration qui a l'air juste, s'applique sans erreur,
|
||||
et ne fait pas ce qu'elle annonce.
|
||||
|
||||
La forme sans mot-clé est retenue, et elle est aussi **atomique** : `none` puis `add` aurait
|
||||
coupé le trunk entre les deux commandes, ce qui suffit à perdre la session si on l'applique
|
||||
sur le port de gestion.
|
||||
|
||||
## 2026-08-02 (suite 12) — la syntaxe des routes, vérifiée sur le matériel
|
||||
|
||||
Un `show running-config` du commutateur Binardat tranche la question restée ouverte : la
|
||||
|
|
|
|||
|
|
@ -295,9 +295,12 @@ ansible-vault edit instance/inventories/principal/group_vars/all/vault.yml
|
|||
- ~~La syntaxe des routes~~ — **réglé le 2026-08-02**, confronté à un `show running-config`
|
||||
Binardat : la plateforme écrit `ip route 0.0.0.0/0 <saut>` en notation CIDR. Le générateur
|
||||
suit le dialecte.
|
||||
- **Restent non vérifiés sur Binardat** : la syntaxe des ACL (`ip access-list extended`), celle
|
||||
de `switchport trunk allowed vlan add`, et le **spanning-tree** — totalement absent du
|
||||
`show running-config`, ce qui suggère qu'il est désactivé par défaut sur cette plateforme.
|
||||
- ~~La syntaxe des trunks~~ — **réglé le 2026-08-02** par `switchport trunk allowed vlan ?`.
|
||||
Le devis émet la forme **sans mot-clé**, qui *définit* la liste : `add` l'*ajoute* à
|
||||
l'existante, et sur un port trunk neuf — qui autorise tous les VLAN — n'aurait rien
|
||||
retranché. Le devis aurait donné l'illusion de restreindre.
|
||||
- **Restent non vérifiés sur Binardat** : la syntaxe des ACL (`ip access-list extended`) et
|
||||
celle du **spanning-tree**.
|
||||
- **Les ports physiques restent à nommer** — `<PORT-VERS-PROXMOX>`, `<PORT-VERS-FRONTIERE>`
|
||||
et `<PORT-TRUNK>` ; rien dans le modèle ne peut les deviner.
|
||||
- ~~**La sortie générale** n'est pas déclarée~~ — **réglé le 2026-08-02.** Elle est
|
||||
|
|
|
|||
|
|
@ -137,7 +137,13 @@ def bloc_trunk(port: str, vlans: str, description: str = "", bord: bool = False)
|
|||
out = [f"interface {port}"]
|
||||
if description:
|
||||
out.append(f" description {description}")
|
||||
out += [" switchport mode trunk", f" switchport trunk allowed vlan add {vlans}"]
|
||||
# `allowed vlan <liste>` DEFINIT la liste ; `allowed vlan add <liste>` l'AJOUTE a
|
||||
# l'existante. Un port trunk neuf autorise tous les VLAN : `add` n'y retrancherait
|
||||
# rien et le devis donnerait l'illusion de restreindre. La forme sans mot-cle est
|
||||
# aussi atomique — `none` puis `add` couperait le trunk entre les deux commandes,
|
||||
# ce qui suffit a perdre la session si on l'applique sur le port de gestion.
|
||||
# Formes confirmees par `switchport trunk allowed vlan ?` (Binardat, 2026-08-02).
|
||||
out += [" switchport mode trunk", f" switchport trunk allowed vlan {vlans}"]
|
||||
if bord:
|
||||
out.append(" spanning-tree portfast trunk")
|
||||
return out
|
||||
|
|
|
|||
Loading…
Reference in a new issue