Протокол Spanning Tree (STP) обеспечивает отсутствие петель в топологии любой сети. Помимо предотвращения петель, STP изолирует угрозу от широковещательного шторма в сетях на втором уровне модели OSI (L2). Разберемся в терминах:
Какие бывают порты?
Можно смело выделить 3 вида портов в рамках протокола Spanning Tree. А именно:
- Корневой порт (root port)
- Выделенный порт (designated port)
- Блокированный (альтернативный порт)
Статусы портов
Порт коммутатора может находиться в различных статусах, в зависимости от результата сходимости Spanning Tree:
- Блокирован - как видно из названия, данный порт находится в статусе блокировки. Это означает, что порт не участвует в приеме и пересылке фреймов. Все BPDU сообщения от соседних коммутаторов исключаются.
BPDU (Bridge Protocol Data Unit) это фреймы, необходимые для обмена сообщениями между коммутаторами для выбора корневого (root) устройства в рамках механизма протокола STP (Spanning Tree Protocol).
- Слушает – коммутатор все еще не участвует в процессе передачи фреймов с данными, но получает и отправляет сообщения BPDU.
- Учится – в данном состоянии порт начинает фиксировать MAC – адреса устройств.
- Пересылка – в состоянии пересылки, коммутатор может отправлять и принимать фреймы BPDU параллельно с заполнением таблицы MAC - адресов.
- Выключен – порт выключен администратором.
Этапы протокола STP
- Выбор «корневого» (root) коммутатора.
- Выбор «корневого» (root) порта.
- Назначение «выделенного» (designated) порта.
- Блокировка остальных портов в рамках алгоритма STP.
Выбор корневого коммутатора
Коммутатор с наименьшим идентификатором (ID) выбирается как корневое устройство. Идентификатор коммутатора (switch ID) состоит из следующих компонентов: .
- Номер приоритета .
- MAC – адрес коммутатора
Например: 24577.00:00:00:00:00:01 / Приоритет. MAC – адрес
В процессе выбора корневого коммутатора, первым делом сравнивается приоритет. Если у двух коммутаторов одинаковых приоритет, то выбор базируется на MAC – адресе устройства.
Выбор корневого порта
Корневой порт выбирается на основании наименьшей «стоимости» пути к корневому коммутатору. Стоимость пути выражается из стоимости линков, ведущих к корневому коммутатору.
Важно отметить:
- Корневые порты назначаются только на не корневых коммутаторах.
- Один не корневой коммутатор может иметь только один корневой порт.
Выбор назначенного порта
Порт коммутатора, который имеет кратчайший путь к корневому коммутатору - называется «назначенным».
- Каждый сегмент (путь) имеет свой назначенный порт.
- Назначенные порты определяются на всех коммутаторах (корневых и нет).
Если два порта имеют одинаковую стоимость, сначала учитывается идентификатор устройства (Bridge ID), а затем идентификатор порта (Port ID).
Все остальные порты переходят в альтернативный статус и блокируются.
Пример
До запуска алгоритма Spanning Tree:

Выбор портов

Финальная топология
