Протокол STP
Spanning Tree Protocol (STP, протокол покрывающего дерева) — канальный протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, связанных избыточными соединениями. STP решает эту задачу, автоматически блокируя соединения, которые в данный момент для полной связности коммутаторов являются избыточными.
Необходимость устранения топологических петель в сети Ethernet следует из того, что их наличие в реальной сети Ethernet с коммутатором с высокой вероятностью приводит к бесконечным повторам передачи одних и тех же кадров Ethernet одним и более коммутатором, отчего пропускная способность сети оказывается почти полностью занятой этими бесполезными повторами; в этих условиях формально сеть может продолжать работать, на практике её производительность становится настолько низкой, что может выглядеть как полный отказ сети.
STP относится ко второму уровню модели OSI. Протокол описан в стандарте IEEE 802.1D, выработанным рабочей группой IEEE 802.1 по межсетевому взаимодействию. Основан на одноимённом алгоритме, который разработала Радья Перлман (англ. Radia Perlman). Алгоритм остовного дерева позволяет по мере необходимости автоматически отключать передачу через мост в отдельных портах (блокировать порты коммутатора), чтобы предотвратить зацикливание в топологии маршрутов пересылки пакетов. Для использования алгоритма остовного дерева в сетевом мосте никакой дополнительной настройки не требуется.
Разновидности протокола STP
С момента создания исходного стандарта IEEE 802.1D было разработано несколько разновидностей протоколов STP. К разновидностям протоколов STP относятся следующие:
STP это исходная версия IEEE 802.1D, которая предотвращает формирование петель в топологии сети с резервными каналами. Общий протокол spanning-tree (CST): предполагает использование только одного экземпляра протокола spanning-tree для всей сети с мостовым соединением независимо от количества сетей VLAN.
PVST+ является усовершенствованным протоколом компании Cisco, в котором для каждого отдельного VLAN используется отдельный экземпляр RSTP.
802.1D-2004 обновленная версия стандарта STP, в которую входит IEEE 802.1w.
RSTP или IEEE 802.1w - быстрый протокол STP доработанный протокол STP, который обеспечивает более быстрое схождение, чем протокол STP.
Rapid PVST+ усовершенствованный корпорацией Cisco протокол RSTP, который использует PVST+. Rapid PVST+ предоставляет отдельный экземпляр 802.1w для каждой сети VLAN.
MSTP (Multiple STP) это стандарт IEEE на базе ранней реализации собственного протокола Cisco с несколькими экземплярами — Multiple Instance STP (MISTP). MSTP сопоставляет несколько сетей VLAN в пределах одного экземпляра протокола spanning-tree. Реализация Cisco протокола MSTP, которая обеспечивает до 16 экземпляров протокола RSTP и объединяет множество сетей VLAN с идентичной физической и логической топологией в один общий экземпляр RSTP.
Виды портов протокола STP
Протокол Spanning Tree (STP) обеспечивает отсутствие петель в топологии любой сети. Помимо предотвращения петель, STP изолирует угрозу от широковещательного шторма в сетях на втором уровне модели OSI (L2). В рамках протокола Spanning Tree существует 3 вида портов.
- Корневой порт (root port)
- Выделенный порт (designated port)
- Блокированный (альтернативный порт)
Статусы портов протокола STP
BPDU (Bridge Protocol Data Unit) это фреймы, необходимые для обмена сообщениями между коммутаторами для выбора корневого (root) устройства в рамках механизма протокола STP (Spanning Tree Protocol).
Порт коммутатора может находиться в различных статусах, в зависимости от результата сходимости Spanning Tree:
Блокирован - порт находится в статусе блокировки. Это означает, что порт не участвует в приеме и пересылке фреймов. Все BPDU сообщения от соседних коммутаторов исключаются.
Слушает – коммутатор все еще не участвует в процессе передачи фреймов с данными, но получает и отправляет сообщения BPDU.
Учится – в данном состоянии порт начинает фиксировать MAC – адреса устройств.
Пересылка – порт в состоянии пересылки, коммутатор может отправлять и принимать фреймы BPDU параллельно с заполнением таблицы MAC - адресов.
Выключен – порт выключен администратором.
Этапы работы протокола STP
- Выбор «корневого» (root) коммутатора.
- Выбор «корневого» (root) порта.
- Выбор «назначенного» (designated) порта.
- Блокировка остальных портов в рамках алгоритма STP.
До запуска алгоритма Spanning Tree:

Этапы работы протокола STP
Выбор корневого коммутатора
Коммутатор с наименьшим идентификатором (ID) выбирается как корневое устройство. Идентификатор коммутатора (switch ID) состоит из следующих компонентов:
- Номер приоритета
- MAC – адрес коммутатора
(пример: 24577.00:00:00:00:00:01 / Приоритет. MAC – адрес)
В процессе выбора корневого коммутатора, первым делом сравнивается приоритет. Если у двух коммутаторов одинаковых приоритет, то выбор базируется на MAC – адресе устройства.
Этапы работы протокола STP
Выбор корневого порта
Корневой порт выбирается на основании наименьшей «стоимости» пути к корневому коммутатору. Стоимость пути определяется из стоимости линков, ведущих к корневому коммутатору. Важно отметить:
- Корневые порты назначаются только на не корневых коммутаторах.
- Один не корневой коммутатор может иметь только один корневой порт.

Этапы работы протокола STP
Выбор назначенного порта
Порт коммутатора, который имеет кратчайший путь к корневому коммутатору – называется «назначенным».
- Каждый сегмент (путь) имеет свой назначенный порт.
- Назначенные порты определяются на всех коммутаторах (корневых и нет).
Если два порта имеют одинаковую стоимость, сначала учитывается идентификатор устройства (Bridge ID), а затем идентификатор порта (Port ID).
Все остальные порты переходят в альтернативный статус и блокируются.
Финальная топология:

