Cisco + D-Link: ошибки Received 802.1Q BPDU on non trunk

»»»

Cisco + D-Link: ошибки Received 802.1Q BPDU on non trunk

Потребовалось немного изменить конфигурацию сети. Основная часть коммутаторов задействованных в текущей топологии это Cisco Catalyst. Подходящего под новые требования коммутатора Cisco не оказалось "под рукой" и в схему был введен коммутатор D-Link, который вполне удачно решал поставленные задачи (наличие портов, типы портов, форм-фактор и др.).
Неожиданно появилась проблема на портах коммутаторов Cisco, соединенных с D-Link.

Коммутаторы Cisco Catalyst WS-C3550-48 и WS-C2950G-24 подключены медными портами к коммутатору D-Link DGS-3100-24TG. Порты с обоих сторон в режиме Access. На физическом уровне порты поднялись, но на Cisco порты перешли в состояние "ошибка".

Записи в логах коммутаторов Cisco содержали такие строки

%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/24 VLAN100.
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/24 on VLAN0100. Inconsistent port type.

На коммутаторе D-Link подобных записей нет.

Как выяснилось, это достаточно распространенная проблема при соединении коммутаторов Cisco с коммутаторами других вендоров. Суть проблемы заключается в не полной совместимости или особенностей реализации протокола STP 802.1D. В частности, коммутатор Cisco, при получении пакета BPDU на порту находящемся в режиме access, считает это ошибкой и выключает порт из обмена для предотвращения возникновения петель. Что вполне логично. Теоретически пакеты BPDU не должны появляться на access портах, но D-Link их успешно пропускает и принимает на портах untagged.

Существует несколько решений этой проблемы. Первое решение - не соединять коммутаторы между собой access портами.

Другое решение - исключить проблемный VLAN из механизма spanning-tree. Для этого на коммутаторе Cisco в режиме глобальной конфигурации следует указать:

(config)#no spanning-tree vlan 100

Таким образом VLAN100 исключается из дерева STP и пакеты BPDU для данного VLAN не отправляются и игнорируются на всех портах.

Вышеприведенное решение возможно не является совсем правильным, но проблему решает. Еще одно решение - включить фильтрацию пакетов BPDU на проблемном порту. Для этого на коммутаторе Cisco в режиме глобальной конфигурации порта следует указать:

(config-if)#spanning-tree bpdufilter enable

Данное решение также решило проблему.

Рейтинг

В этом разделе