Cisco: блокировка порта по STP, 0 packets input

Обнаружился специфический случай, при котором может блокироваться порт. Вот debug с Cisco 2811:

Sep 16 12:34:32.535: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/3/3 VLAN4.
Sep 16 12:34:32.535: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/3/3 on VLAN4. Inconsistent port type.PVST+: restarted the forward delay timer for FastEthernet0/3/3

Порт не транковый, приходит что-то транковое. Порт блокируется, при этом (после clear counters) наблюдается некоторый исходящий трафик на интерфейсе и ноль входящего (0 packets input).

Решилось отключением STP в данном VLAN:

#no spanning-tree vlan 4

Первое, что нужно сделать при подозрении на заблокированные порты — это посмотреть, есть ли они. Ситуация может выглядеть, например, так:

#show spanning-tree blockedports

Name                 Blocked Interfaces List
-------------------- ------------------------------------
VLAN10               Fa1

Number of blocked ports (segments) in the system : 1

Конечно, нужно еще подумать, стоит ли отключать STP, все-таки протокол придуман не просто так. Но если на другом конце стоит что-то сомнительное, способное прислать такой интересный пакет, как в начале, то смысл в этом есть — с внезапно заблокированным портом жить как-то хуже.

Ссылка на цискино евангелие.

  • megabitik

    Если к порту подключено «что-то сомнительное», то лучше на этом порту указать «spanning-tree bpdufilter enable». После этого коммутатор будет отбрасывать все BPDU-фреймы, и порт блокироваться не будет. Хотя, действительно, если коммутатор получает BPDU на аксессном порту, то это как минимум странно, и очень желательно всё же с этим разобраться.

  • http://ogarkov.com/ Дмитрий Огарков

    Согласен, это правильно, но в моем случае в IOS этой команды нет (C2800NM-ADVSECURITYK9-M 12.4 (23)). Подключено оборудование провайдера, который утверждает, что STP у него везде выключен. Остается разве что отловить пакет и предъявить ему.