What it does

  • Difesa extra contro loop L2: blocca una porta se smette inaspettatamente di ricevere BPDUs.

  • Problema tipico: link unidirezionale (spesso fibra) → un blocking/non-designated smette di ricevere BPDUs e, senza protezione, potrebbe diventare designated/forwarding ⇒ loop.

Trigger & State

  • Se una porta con Loop Guard non riceve BPDUs e il Max Age scade (default ~ 20s):

    • entra in Broken (BKN) / Loop Inconsistent (LOOP_Inc)

    • la porta resta up/up ma STP la blocca (non forwarda data frames).

When to use (regola pratica)

  • Su porte che devono ricevere BPDUs:

    • Root Ports e Non-Designated (Blocking)
  • Non è pensato per designated verso host; è per link tra switch dove ti aspetti BPDUs in ingresso.

Config

Per-interfaccia

  • spanning-tree guard loop

Globale (default su tutte le porte)

  • spanning-tree loopguard default

Disabilitare su una porta specifica (se globale attivo)

  • spanning-tree guard none

Recovery behavior

  • Auto-recovery: appena la porta riprende a ricevere BPDUs, esce da LOOP_Inc senza intervento manuale.

Verify

  • show spanning-tree → stato BKN + motivo LOOP_Inc

  • show spanning-tree interface <int> detail → conferma loop guard (anche “by default” se globale)

Relazione con Root Guard (mutually exclusive) ⚠️

  • Non possono coesistere sulla stessa porta.

    • Root Guard: evita che una designated diventi root port (blocca su superior BPDUs).

    • Loop Guard: evita che una root/non-designated diventi designated (blocca quando mancano BPDUs).

  • Configurare uno rimpiazza l’altro sulla porta.

Core mental model

  • Loop Guard = “se questa porta dovrebbe sentire BPDUs e non li sente, non fidarti: blocca.”

Mini-aggiunta “Common Mistakes” (1 riga) 🧷

  • Confondere LOOP_Inc (mancano BPDUs) con ROOT_Inc (arrivano superior BPDUs).