В сети уровня 2 коммутаторы, использующие протоколы STP, RSTP или MSTP, обмениваются блоками BPDU для вычисления связующего дерева и преобразования кольцевой топологии сети в топологию дерева без петель. Во время развертывания протокола STP, в большинстве случаев порты, которые подключают коммутаторы к конечным устройствам, таким как ПК или файловые серверы, настраиваются как граничные (edge) порты. Эти порты не участвуют в вычислении дерева STP и могут немедленно перейти из состояния «Отключено» в состояние пересылки (forwarding), как если бы протокол STP был отключен на этих портах. Когда конечные устройства часто переходят из состояния «онлайн» в «офлайн» и обратно, настройка граничных портов не позволит коммутаторам пересчитывать топологию связующего дерева, повышая надежность сети.
После включения защиты BPDU (BPDU protection) на коммутаторе, если граничный порт на коммутаторе получает BPDU, коммутатор отключит граничный порт, сохраняя при этом атрибут порта неизменным. Это гарантирует, что топология связующего дерева не будет пересчитана и работа сети не будет прервана. Кроме того, коммутатор может генерировать сообщение (trap) и уведомить сервер сетевого управления об этом событии.
Выбор STP Root и как работают BPDU
На коммутаторах D-Link серии DGS-3000 для настройки BPDU protection используются такие команды:
У функции BPDU Protection два состояния — нормальное и «под атакой».
Порт с включенной защитой BPDU перейдет в состояние «под атакой», когда получит один пакет STP BPDU.
Состояние «под атакой» имеет три режима:
- drop — отбрасываются все пакеты BPDU;
- block — отбрасываются все пакеты;
- shutdown — порт отключается.
Команда config bpdu_protection ports [ | all ] используется для настройки BPDU Protection на портах коммутатора.
BPDU Protection имеет более высокий приоритет, чем параметр «Forward BPDU» (FBPDU), настроенный командой configure STP при определении обработки BPDU. То есть, когда FBPDU настроен на пересылку STP BPDU, но включена защита BPDU, порт не будет пересылать STP BPDU.
Команда config bpdu_protection recovery_timer [ | 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
Источник: computronium.livejournal.com
What is BPDU Protection and How to Configure BPDU Protection?
This document describes the Bridge Protocol Data Unit (BPDU) protection function and how to configure BPDU protection. When deploying a spanning tree protocol on a Layer 2 network, you are advised to configure BPDU protection on edge ports to prevent network topology changes and service traffic interruptions caused by BPDU attacks on the edge ports. This improves the reliability and security of the switching network.
Understanding BPDU Protection
On a Layer 2 network, switches running STP, RSTP, MSTP, or VBST exchange BPDUs to calculate a spanning tree and trim the ring network into a loop-free tree topology. During the deployment of a spanning tree protocol, in most cases, the ports that connect switches to non-switching devices including user terminals (such as PCs) or file servers are configured as edge ports. These ports do not participate in spanning tree calculation and can transition from the Disable state to the Forwarding state immediately, as if the spanning tree protocol were disabled on these ports. When user terminals frequently go online and offline, configuring edge ports will prevent switches from recalculating the spanning tree topology, improving network reliability.
In Figure 1-1, the ports on S4, S5, and S6 connected to PCs are configured as edge ports. Normally, edge ports do not receive BPDUs. If forged BPDUs are sent to attack a device with edge ports and received by them, the device will automatically change the edge ports to non-edge ports and recalculate the spanning tree. If the bridge priority in the BPDUs sent by an attacker is higher than the priority of the root bridge, the network topology will change, thereby interrupting service traffic.
Figure 1-1 BPDU protection
After BPDU protection is enabled on a switch, if an edge port on the switch receives a BPDU, the switch will shut down the edge port, while keeping the port attribute unchanged. This ensures that the spanning tree topology is not recalculated and services are not interrupted. In addition, the switch generates the following log information and notifies the NMS of this event:
MSTP/4/BPDU_PROTECTION:This edged-port [port-name] that enabled BPDU-Protection will be shutdown, because it received BPDU packet!
Configuring BPDU Protection
# Run the stp bpdu-protection command in the system view to configure BPDU protection.
system-view [HUAWEI] stp bpdu-protection
After the configuration is complete, run the display stp active command in any view to check the BPDU protection status based on the BPDU-Protection field in the command output.
display stp active ——-[CIST Global Info][Mode MSTP]——- CIST Bridge :61440.781d-ba56-f06c Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :61440.781d-ba56-f06c / 0 (This bridge is the root) CIST RegRoot/IRPC :61440.781d-ba56-f06c / 0 (This bridge is the root) CIST RootPortId :0.0 BPDU-Protection :Enabled .
- Manually recover an edge port that is shut down after receiving BPDUs. Run the restart or undo shutdown command in the interface view.
- Enable automatic recovery before any edge port receives BPDUs. Run the error-down auto-recoverycausebpdu-protectionintervalinterval-value command to enable delayed automatic recovery to prevent ports from being stuck in the disabled state. After automatic recovery is configured, an edge port will enter the error-down state after receiving BPDUs and will be restored to the up state after the delay specified by interval-value . A smaller interval-value value indicates a shorter delay for a port to automatically go up and a higher flapping frequency. A larger interval-value value indicates a longer delay for an edge port to automatically go up and a longer traffic interruption.
Related Information
For detailed implementation of the BPDU filtering function on edge ports and protection functions of spanning tree protocols, including TC protection, root protection, and loop prevention, see the following documents:
- Introduction
- Understanding BPDU Protection
- Configuring BPDU Protection
- Related Information
Источник: support.huawei.com
Тюнинг протокола STP: как настроить безопасность в коммутируемой сети (Root Guard, Loop Guard)
Рассмотрим, как настроить безопасность протокола STP в коммутируемой сети (Root Guard, Loop Guard).
Содержание:
- Топология
- Подробный мастер-класс
- Сценарий
- Основные сведения про Root Guard и Loop Guard
- Настройки DLS1 после Части 1
- Настройки DLS2 после Части 1
- Настройки ALS1 после Части 1
- Настройки ALS2 после Части 1
- Настройки ALS1 после Части 2
- Настройки DLS1 после Части 2
- Настройки DLS2 после Части 2
- Настройки DLS2 после Части 2
- Настройки ALS1 после Части 2
- Настройки ALS2 после Части 2
- Команды для проверки настроек STP
Топология
Исследуемая топология состоит из четырех коммутаторов Cisco Catalyst 3560 и 2960 под управлением Cisco IOS 15.0(2)SE6. Допускается использование других коммутаторов и версий Cisco IOS.
Схема топологии следующая:
Подробный мастер-класс
Видеоинструкция на нашем YouTube-канале:
Сценарий
Протокол STP работает по умолчанию в коммутируемой сети и обеспечивает расчет кратчайших маршрутов без петель в зарезервированной коммутируемой локальной сети предприятия. При этом протокол, изначально описанный в стандарте IEEE 802.1d, имеет ряд недостатков, которые решаются двумя способами: путем выпуска обновленных стандартов (например, RSTP — IEEE 802.1w и MST — IEEE 802.1s) и путем тонких настроек дополнительных функций (PortFast, UplinkFast, BackboneFast, BPDU Guard, BPDU Filter, Root Guard, Loop Guard и других).
Основные сведения про Root Guard и Loop Guard
Root Guard — это функция, позволяющая предотвращать появление мошеннических коммутаторов и спуфинг. То есть это защитный механизм в ситуациях, когда вашей сети и сети вашего клиента необходимо сформировать один домен STP. Но при этом вы хотите иметь корневой мост STP в своей сетевой части, и не хотите, чтобы ваш клиент взял на себя выбор корневого коммутатора. В этих случаях вы должны поставить Root Guard на портах по направлению к клиенту.
Root Guard можно включить на всех портах коммутатора, которые не являются корневыми. Обычно эта функция включена на портах, подключенных к граничным коммутаторам, которые никогда не должны получать пакеты BPDU с более высоким BID. Каждый коммутатор должен иметь только один корневой порт, который является наилучшим путем к корневому коммутатору.
Функция STP Loop Guard обеспечивает дополнительную защиту от закольцовывания при передаче на уровне 2 (петель STP). Петля STP появляется, когда порт в состоянии блокировки STP в топологии с резервированием ошибочно переходит в состояние пересылки. Обычно это происходит из-за того, что один из портов топологии с физическим резервированием (необязательно порт с блокировкой STP) больше не получает пакеты STP BPDU.
Если все порты находятся в состоянии пересылки (forwarding), то это приводит к появлению петель (закольцовывания). Если порт, на котором включена функция Loop Guard, перестает получать пакеты BPDU из назначенного порта в сегменте, он переходит в состояние loop inconsistent вместо перехода в состояние forwarding. Как правило, состояние loop inconsistent является блокирующим, поэтому никакой трафик не пересылается. Если порт снова обнаруживает пакеты BPDU, он автоматически восстанавливается и переходит в состояние блокировки (blocking). Функцию Loop Guard следует применять к неназначенным портам.
Задачи
- Проверка работы протокола STP по умолчанию.
- Настройка и проверка дополнительных функций STP Root Guard и Loop Guard.
Источник: blog.sedicomm.com