Описание проблемы
Коммутатор S5700 подключен к Cisco коммутатору, который использует PVST+ протокол для разбивки L2 петель. Интерфейс, который смотрит в сторону Cisco коммутатора – Gi0/0/6. Вот конфигурация:
interface GigabitEthernet0/0/6
undo negotiation auto
speed 100
description PtP Zuiderzeeland #4
port link-type dot1q-tunnel
port default vlan 1915
mac-limit maximum 100
loopback-detect recovery-time 60
loopback-detect enable
loopback-detect action block
stp bpdu-filter enable
stp edged-port enable
undo ndp enable
storm-control broadcast min-rate 1488 max-rate 1488
storm-control multicast min-rate 1488 max-rate 1488
storm-control action error-down
storm-control enable trap
storm-control enable log
Клиент сконфигурировал STP BPDU FILTER и EDGE PORT на этом интерфейсе, в надежде блокировать PVST+ BPDU. Но это не сработало. Давайте разберем почему...
Начиная с версии прошивки V200R003 S5700 будет форвардить BPDU PVST+ по умолчанию через ASIC. Что делает STP BPDU FILTER и EDGE PORT? В соответствии с документацией, можно сказать, что после того, как порт будет сконфигурирован в виде EDGE PORT и BPDU FILTER, этот порт не будет посылать и принимать никакие BPDU и не сможет сообщаться в STP режимах с непосредственно подключенным устройством.
Так что же здесь не так?
STP EDGE PORT и BPDU FILTER команды работают только с MSTP, STP или RSTP BPDUs. PVST+ это Cisco проприетарный протокол и он работает по-другому. Наш коммутатор воспринимал PVST+ как обычный L2 фрейм.
Как исправить это?
Решение
Чтобы фильтровать PVST+ BPDUs, которые поступают на интерфейс коммутатору, рекомендую использовать следующий traffic policy:
#
acl number 4000
rule 10 permit destination-mac 0100-0ccc-cccd \\\ мачить PVST+ BPDUs
#
traffic classifier c1 type or
if-match acl 4000
#
traffic behavior b1
statistics enable
deny \\\\\ чтобы фильтровать BPDUs делаем Deny.
#
traffic policy p1
classifier c1 behavior b1 precedence 5
В конце применяем полисер глобально.
[S5700]traffic-policy p1 global inbound