> For the complete documentation index, see [llms.txt](https://notes.kraken-security.ru/kraken/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/zashita-protokola-stp.md).

# Защита протокола STP

Советуем сначала прочитать материал «[Атака на протокол STP](https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/ataka-na-protokol-stp)»: в нём чуть побольше теории. Теперь к защите.\
\
Протокол STP включает функции, которые не допускают добавление новых устройств в сеть в роли корневого моста, а также блокирует порты, получающие BPDU или активирует полное блокирование BPDU.\
\
\&#xNAN;*На всякий напомним. BPDU — тип сетевых сообщений, который используется в протоколе STP. Коммутаторы обмениваются BPDU для определения приоритета каждого устройства и выбора корневого коммутатора. Проще говоря: c этими сообщениями STP понимает самый эффективный путь для данных.*&#x20;

#### Root guard

Если устройство в сети получит сообщение о том, что где-то есть более предпочтительный путь для передачи данных (т.е. более лучший BPDU), чем тот, который оно использует сейчас (т.е. нынешний BPDU), этот порт устройства перейдёт в специальный защитный режим — root-inconsistent.\
\
В этом режиме порт не будет отправлять и принимать данные, чтобы предотвратить возможные проблемы в сети.\
\
Здесь мы используем пример топологии сети из прошлого материала. Вот [ссылка](https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/ataka-na-protokol-stp). А это та самая схема топологии.&#x20;

<figure><img src="/files/YxTc43TYF5SNlTyjKvZR" alt=""><figcaption></figcaption></figure>

Вот что будет с нашими портами: \
\
`SW2(config)#interface ethernet 0/2` \
`SW2(config-if)#spanning-tree guard root`&#x20;

А вот состояние порта при получении BPDU: \
\
`*Aug 1 13:58:03.304: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port Ethernet0/2.` \
`SW2#show spanning-tree interface ethernet 0/2` \
`Vlan Role Sts Cost Prio.Nbr Type`

***

`VLAN0001 Desg BKN*100 128.3 Shr *ROOT_Inc`

Проще говоря, при исполь­зовании Root guard ата­ка с помощью фрей­мвор­ка, который [мы разбирали](https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/ataka-na-protokol-stp) будет недос­тупна.

#### BPDU guard

Функция, которая позволяет  огра­ничи­вать домен L2. При получе­нии любого BPDU порт перево­дит­ся в сос­тояние err disable BPDU guard error.

`SW2(config)#interface ethernet 0/2` \
`SW2(config-if)#spanning-tree bpduguard enable`

Вот что будет пос­ле получе­ния BDPU на пор­те с фун­кци­ей BPDU guard:\
\
`*Aug 1 15:12:50.120: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Et0/2 with BPDU Guard enabled. Disabling port.SW2#`\
`*Aug 1 15:12:50.120: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/2, putting Et0/2 in err-disable state`\
`*Aug 1 15:12:51.120: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/2, changed state to down`\
`*Aug 1 15:12:52.120: %LINK-3-UPDOWN: Interface Ethernet0/2, changed state to downSW2#show interfaces ethernet 0/2`\
`Ethernet0/2 is down, line protocol is down (err-disabled)`

#### BPDU filter

Это функция позволяет не отправлять и не получать BPDU на пор­те, то есть вырубать на интерфейсе STP. Вот код: \
\
`SW2(config-if)#spanning-tree bpdufilter enable`

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://notes.kraken-security.ru/kraken/krupicy-znanii/uyazvimosti/zashita-protokola-stp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
