diff --git a/CHANGELOG.md b/CHANGELOG.md index b1e7795..7c24253 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,11 @@ taire : Conséquence directe : la question du spanning-tree ne se pose que sur la fabric principale — trois switches — et pas sur le stockage, dont les deux switches forment un domaine séparé. +Le roster d'hôtes de la section 0 est filtré de la même façon : un équipement d'une autre +fabric n'apparaît pas, même en commentaire. Un devis est une configuration qu'on applique, +pas un inventaire. Vérifié en déclarant un hôte de la fabric stockage — il reste absent, et +la sortie du jour est inchangée. + Les `deny` de l'ACL couvrent en revanche **toutes** les fabrics, y compris celles hors périmètre : la règle porte sur l'adresse de destination, pas sur le câblage. Si un chemin s'ouvre un jour vers le stockage, il est déjà fermé. diff --git a/scripts/devis_reseau.py b/scripts/devis_reseau.py index 9b7122a..88f2cd6 100644 --- a/scripts/devis_reseau.py +++ b/scripts/devis_reseau.py @@ -82,8 +82,13 @@ def section_underlay(underlay: dict | None) -> list[str]: out.append(f" description underlay {r['nom']}") out.append(f" ip address {r['passerelle']} {net.netmask}") out.append(" no shutdown") + # Roster : seuls les hotes de CETTE fabric. Un equipement d'une autre fabric + # (switches de stockage, par exemple) n'a rien a faire dans ce devis, meme en + # commentaire — c'est une configuration qu'on applique, pas un inventaire. + noms_reseaux = {r["nom"] for r in reseaux} for h in underlay_mod.hotes(underlay): - out.append(f"! {h.get('nom','?')} = {h.get('ip','?')} ({h.get('reseau','?')})") + if h.get("reseau") in noms_reseaux: + out.append(f"! {h.get('nom','?')} = {h.get('ip','?')} ({h.get('reseau','?')})") # Ce que ce devis NE couvre PAS : les fabrics portees par d'autres switches. for autre in underlay_mod.fabriques(underlay): if autre == fabric: