О сетях передачи данных: Как работают BPDUGuard и BPDUFilter

О сетях передачи данных: Как работают BPDUGuard и BPDUFilter Прошивки

Cisco bpdufilter и bpduguard

Bdpufilter фильтрует в обе стороны, т.е. коммутатор отбрасывает все входящие BPDU и не отправляет BPDU в порт. Логично фильтр повесить на порты, которые никак не участвуют в кольцевой топологии, с которых никогда не придет BPDU, например, на порт подключения сервера, на порт подключения маршрутизатора, на стык с провайдером.

interface GigabitEthernet1/0/1
description Server
switchport access vlan 100
switchport mode access
spanning-tree portfast edge
spanning-tree bpdufilter enable

interface GigabitEthernet1/0/2
description Router
switchport trunk encapsulation dot1q
switchport mode trunk
spanning-tree portfast edge trunk
spanning-tree bpdufilter enable

interface GigabitEthernet1/0/3
description Internet
switchport access vlan 5000
switchport mode access
spanning-tree portfast edge
spanning-tree bpdufilter enable

Eltex bpdufilter и bpduguard

Тут все просто. Можно выключить spanning-tree глобально и все bpdu зафильтровать. Не уверен насчет цисковских только.

mes2124p(config)#no spanning-tree
mes2124p(config)#spanning-tree bpdu
filtering Specify that when spanning tree is disabled on an
interface, BPDU packets would be filtered.
flooding Specify that when spanning tree is disabled on an
interface, untagged BPDU packets would be flooded
unconditionally (Without applying VLAN rules), to all
ports with spanning tree disabled. Tagged BPDU packets
would be filtered.
mes2124p(config)#spanning-tree bpdu filtering
mes2124p(config)#exit
mes2124p#sh spanning-tree

*********************************** Process 0 ***********************************

Spanning tree disabled (BPDU filtering) mode MSTP
Default port cost method: long
Loopback guard: Disabled

Вот, собственно, что и послужило поводом к статье. Конструкция ниже заблокировала порт, так как bpduguard отрабатывает раньше, чем фильтр. Да и сам фильтр фильтрует только входящие bpdu.

mes2124p#sh run int gi1/0/23
interface gigabitethernet 1/0/23
switchport mode trunk
spanning-tree bpdu filtering
spanning-tree bpduguard enable

Juniper bpdufilter и bpduguard

Я не знаю, фильтруют ли производители своими bpdufilter’ами цисковский 01:00:0C:CC:CC:CD или нет. В общем случае, рекомендуется написать фильтр с указанием двух мак-адресов и повесить по входу, например, такой:

firewall {
family inet {
filter bpdufilter {
term discard-bpdu {
from {
destination-mac-address {
01:80:c2:00:00:00/48;
01:00:0c:cc:cc:cd/48;
}
}
then {
discard;
count BPDU_FILTER;
}
}
term allow-other {
then accept;
}

}
}
}

%MINIFYHTML7ce697ddd36f619d953da1e261db504324%

Согласно документации, на мелких коммутаторах, кроме ex9200, можно глобально включить фильтр для портов, где spanning-tree отключен. В примере ниже для всех интерфейсов отключен spanning-tree и включена фильтрация bpdu.

Настройка bpdu protection на коммутаторе d-link

В сети уровня 2 коммутаторы, использующие протоколы STP, RSTP или MSTP, обмениваются блоками BPDU для вычисления связующего дерева и преобразования кольцевой топологии сети в топологию дерева без петель. Во время развертывания протокола STP, в большинстве случаев порты, которые подключают коммутаторы к конечным устройствам, таким как  ПК  или файловые серверы, настраиваются как граничные (edge) порты. Эти порты не участвуют в вычислении дерева STP и могут немедленно перейти из состояния «Отключено» в состояние пересылки (forwarding), как если бы протокол STP был отключен на этих портах. Когда конечные устройства часто переходят из состояния «онлайн» в «офлайн» и обратно, настройка граничных портов не позволит коммутаторам пересчитывать топологию связующего дерева, повышая надежность сети.

После включения защиты BPDU (BPDU protection) на коммутаторе, если граничный порт на коммутаторе получает BPDU, коммутатор отключит граничный порт, сохраняя при этом атрибут порта неизменным. Это гарантирует, что топология связующего дерева не будет пересчитана и работа сети не будет прервана. Кроме того, коммутатор может генерировать сообщение (trap) и уведомить сервер сетевого управления об этом событии.

На коммутаторах D-Link серии DGS-3000 для настройки BPDU protection используются такие команды:

У функции BPDU Protection два состояния — нормальное и «под атакой». 

Порт с включенной защитой BPDU перейдет в состояние «под атакой», когда получит один пакет STP BPDU. 

Состояние «под атакой» имеет три режима: 

Команда config bpdu_protection ports [<portlist> | all ] {state [enable | disable] | mode [ drop | block | shutdown]} используется для настройки BPDU Protection на портах коммутатора. 

BPDU Protection имеет более высокий приоритет, чем параметр «Forward BPDU» (FBPDU), настроенный командой configure STP при определении обработки BPDU. То есть, когда FBPDU настроен на пересылку STP BPDU, но включена защита BPDU, порт не будет пересылать STP BPDU.

Команда config bpdu_protection recovery_timer [<sec 60-1000000> | infinite] используется для настройки таймера восстановления BPDU Ptotection. Когда порт переходит в состояние «под атакой», он может быть отключен или заблокирован в зависимости от конфигурации. Состояние порта можно восстановить вручную или с помощью механизма автоматического восстановления. Параметр команды infinite означает, что порт не восстанавливается автоматически. Чтобы вручную восстановить порт, пользователю необходимо отключить и снова включить порт. 

Команда config bpdu_protection [trap | log] [none | attack_detected | attack_cleared | both] используется для указания, когда информация об атаке логируется (log) или отправляется trap (trap):

  • none — указывает, что ни attack_detected, ни attack_cleared  не регистрируются;
  • attack_detected — указывает, что события будут регистрироваться при обнаружении атак BPDU;
  • attack_cleared — указывает, что события будут регистрироваться , когда удалены атаки BPDU.
  • Включается BPDU Protection глобально на коммутаторе командой enable bpdu_protection.

Пример настройки BPDU Protection на коммутаторе D-Link DGS-3000-28X:

enable bpdu_protection
config bpdu_protection recovery_timer 60
config bpdu_protection trap none
config bpdu_protection log both
config bpdu_protection ports 1-22 state enable
config bpdu_protection ports 1-22 mode block

Оцените статью
Huawei Devices
Добавить комментарий