Spanning Tree Loop – Spanning Tree Loop with BPDU Filter on Access Port

ciscoieee-802.1wspanning treetrunk

┌─────┐      ┌─────┐
|  A  ┼------┼  B  |
└─────┘      └┬───┬┘
              └---┘   <-- loop

behold the above drawing. this is a test setup connectin switch A and B, and a test loop

A: cisco switch with rstp

GLOBAL CONFIG

spanning-tree mode rapid-pvst
spanning-tree portfast default
spanning-tree portfast bpduguard default

PORT CONFIG

switchport mode access
udld port aggressive

B: alcatel lucent omniswitch

  • as dumb as possible
  • passes all traffic
  • no stp
  • filters bpdu (default setting, not kidding)

when i create the loop on B, the whole system just drowns in a broadcast strom (because switch B filters the bpdu).

but when I change the port setting on A to a trunk (no other changes), stp does kick in.

switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate

why? i don't understand, can somebody pleas explain this to me?
and can I protect my network against this 'feature' of alcatel lucent? (besides putting all my port's in trunk)

Best Answer

While switch A is running STP, switch B is not. STP detects local loops and loops between STP devices but it cannot detect loops on devices (or ports) not using STP (edit: unless they forward BPDUs as well).

Therefore, A cannot detect the (remote) loop - broadcasts will circle around, reflect back and suffocate the network. From A's point of view, B is a high-bandwidth broadcasting source - A cannot tell that it's a storm nor that it's reflecting broadcasts.

In addition to the broadcast storm, A's and B's MAC tables will become unstable due to reflected broadcasts coming from the wrong port. So, if the A-B link's bandwidth is lower than the rest of A's ports and the broadcast storm doesn't suffocate the other links you'll experience problems due to misforwarded frames.

RPVST works by sending STP BPDUs on each VLAN - tagged. When BPDUs are tagged (not 802.1-compliant), it seems the Omniswitch doesn't recognize them as such any more and passes them to the loop, reflecting them back to the Cisco which is then detecting a local loop, blocking the link.

If you use RSTP or MSTP instead of RPVST the Omniswitch likely recognizes those untagged BPDUs and continues to filter them.

Imho, if the Omniswitch doesn't support a reasonable STP variant you should replace it.