- Что такое STP и зачем он нужен?
- Основные понятия и термины в STP
- Как выбирается корневой коммутатор?
- Роли портов в STP: кто что делает?
- Состояния портов: от новичка до профессионала
- Как происходит блокировка избыточных каналов?
- BPDU: посланцы сети
- Таймеры в STP: как долго ждать?
- Расширения и эволюция STP
- Как и зачем менять стоимость порта?
- Что такое TCN и как протокол реагирует на изменения?
- Практические советы по настройке STP
- FAQ
- Чек-лист для настройки STP
Если вы хоть раз сталкивались с сетями Ethernet, то знаете, что коммутаторы — это такие социальные бабочки, которые любят много связей. Но если связи будут слишком тесными, начинается вечеринка из петель — пакеты летают туда-сюда бесконечно, создавая настоящую суматоху и загаженную сеть. К счастью, у нас есть протокол STP (Spanning Tree Protocol), который как мудрый хозяин отключает лишние связи, чтобы коммутатор мог нормально работать, не теряясь в паутине.
Давайте вместе разберёмся, что это за зверь такой — STP, почему он появился, как работает и зачем нужны корневые и назначенные порты. Приготовьтесь к путешествию по сети, где порты — это ворота, корневой коммутатор — король замка, а BPDU — посланцы, которые держат всех в курсе дел.
Что такое STP и зачем он нужен?
STP — это протокол канального уровня (второго уровня модели OSI), разработанный в 1985 году Радьей Перлман, которую ласково называют "Мамой Интернета". Основная задача STP — убрать избыточные связи (петли) в сети, чтобы пакеты не бегали по кругу, занимая всё пропускное пространство и не позволяя нормальной работе сети.
Почему петли — это зло?
Представьте, что два коммутатора соединены не одной, а несколькими линиями. Когда хост посылает пакет с широковещательным адресом, коммутатор размножает этот пакет и рассылает через все порты, кроме того, откуда пришёл пакет. Если есть петля, пакеты начинают ходить по кругу, как туристы в лабиринте без выхода, заполняя сеть мусором.
Вот что происходит:
| Шаг | Описание действия |
|---|---|
| 1 | Хост посылает широковещательный пакет |
| 2 | Коммутатор отправляет копии на все порты, кроме входящего |
| 3 | Другие коммутаторы получают пакет и тоже рассылют дальше |
| 4 | Пакеты возвращаются к исходным коммутаторам, повторяются и умножаются бесконечно |
В итоге — сеть забивается, производительность падает, а люди на работе начинают звонить в ИТ со словами: "У меня интернет упал!"
Основные понятия и термины в STP
Чтобы понять работу STP, нужно познакомиться с несколькими важными терминами:
| Термин | Что это? | Аналогия |
|---|---|---|
| Bridge (мост) | Коммутатор, который соединяет сегменты сети | Узловая станция метро |
| Port (порт) | Точка подключения к коммутатору | Ворота или дверь |
| Root Bridge (корневой мост) | Главный коммутатор в сети, центр дерева | Король замка |
| Root Port (корневой порт) | Порт, ведущий к корневому мосту по кратчайшему пути | Главный проход к королевской комнате |
| Designated Port (назначенный порт) | Порт, выбранный для передачи трафика на сегмент | Приглашённый гость, ответственный за вход |
| Non-designated Port (неназначенный порт) | Порт, заблокированный для предотвращения петель | Закрытая дверь |
| BPDU (Bridge Protocol Data Unit) | Сообщения между коммутаторами для обмена информацией STP | Посланцы с новостями |
| Path Cost (стоимость пути) | Метрика, основанная на скорости канала, для выбора маршрута | Расстояние или сложность пути |
Как выбирается корневой коммутатор?
Все коммутаторы начинают с мыслью: "Я — король!" — и отправляют BPDU с собой в роли корневого моста. Но не может быть два короля! Поэтому происходит голосование, в котором побеждает коммутатор с наименьшим идентификатором Bridge ID.
Bridge ID состоит из:
- Приоритета (Bridge Priority) — число от 0 до 65535, задаваемое администратором (по умолчанию 32768)
- MAC-адреса — уникального аппаратного адреса
Если приоритеты равны, решает MAC-адрес — тот, что меньше, становится корневым. Это как выбирать главу семьи по имени — кто раньше по алфавиту, тот и глава.
Роли портов в STP: кто что делает?
После выбора корневого коммутатора каждый коммутатор определяет для себя:
- Root Port — единственный порт с минимальной суммарной стоимостью пути к корневому коммутатору. Это главный путь наверх.
- Designated Port — порт, выбранный для обслуживания сегмента сети. В каждом сегменте есть только один назначенный порт.
- Non-designated Port — порт, который блокируется для предотвращения петель.
- Disabled Port — порт, выключенный или не участвующий в STP.
Состояния портов: от новичка до профессионала
Порты не сразу начинают пропускать трафик. Они проходят через несколько состояний, словно ученик в школе:
| Состояние | Что происходит? | Время по умолчанию |
|---|---|---|
| Blocking | Порт слушает BPDU, но не передает данные. Предохраняет сеть от петель | Переменная |
| Listening | Порт начинает активно слушать BPDU и пересылать их, но не учит MAC-адреса | 15 секунд |
| Learning | Порт учит MAC-адреса, но не передает данные | 15 секунд |
| Forwarding | Порт полноценно передает и принимает данные | Рабочее состояние |
Переходы — это осторожная процедура, чтобы не нарушить стабильность сети.
Как происходит блокировка избыточных каналов?
Вернёмся к нашему примеру с тремя коммутаторами Switch1, Switch2 и Switch3, соединёнными в треугольник. STP автоматически вычисляет стоимость путей до корневого моста и выбирает порты, которые нужно блокировать, чтобы убрать петли.
Как это делается?
- Коммутаторы обмениваются BPDU, сообщая свои Bridge ID и стоимости пути.
- Определяется кратчайший путь к корневому мосту для каждого сегмента.
- Порты, не являющиеся root или designated, переводятся в состояние Blocking.
Например, если путь через Switch2 дешевле, чем через Switch3, то порт Switch3 на этом сегменте блокируется.
BPDU: посланцы сети
BPDU — это маленькие пакетики с новостями, которые коммутаторы посылают друг другу каждые 2 секунды (по умолчанию). В них содержится информация о:
- Корневом коммутаторе (Root Bridge ID)
- Стоимости пути до корня (Root Path Cost)
- Идентификаторе отправителя (Bridge ID)
- Идентификаторе порта отправителя (Port ID)
- Таймерах (Hello, Max Age, Forward Delay)
Коммутаторы сравнивают полученные BPDU с собственными и решают, кто корень, какие порты активны, а какие блокируются.
Таймеры в STP: как долго ждать?
Чтобы обеспечить стабильность, STP использует несколько таймеров:
| Таймер | Описание | Значение по умолчанию |
|---|---|---|
| Hello Timer | Интервал отправки BPDU | 2 секунды |
| Max Age Timer | Время ожидания BPDU от корня до определения потери связи | 20 секунд |
| Forward Delay Timer | Время нахождения порта в состояниях Listening и Learning | 15 секунд |
Общая задержка при перестройке сети может достигать 50 секунд — не самый быстрый способ, зато надёжный.
Расширения и эволюция STP
Протокол STP развивается, и появились его улучшения:
| Протокол | Особенности | Стандарт IEEE |
|---|---|---|
| RSTP (Rapid STP) | Быстрая сходимость, уменьшение времени восстановления сети | 802.1w |
| PVSTP (Per-VLAN STP) | Отдельный экземпляр STP для каждого VLAN (Cisco) | Проприетарный Cisco |
| MSTP (Multiple STP) | Группировка VLAN с одинаковой топологией в один экземпляр STP | 802.1s |
| SPB (Shortest Path Bridging) | Устранение необходимости блокировки портов, использование кратчайших путей | IEEE 802.1aq |
Как и зачем менять стоимость порта?
Стоимость порта (Port Cost) влияет на выбор маршрута к корневому мосту: чем ниже стоимость, тем предпочтительнее путь. Стоимость связана со скоростью канала и может быть изменена вручную.
| Скорость порта | Стандартная стоимость (802.1D-1998) | Стоимость (802.1W-2001) |
|---|---|---|
| 4 Мбит/с | 250 | 5 000 000 |
| 10 Мбит/с | 100 | 2 000 000 |
| 100 Мбит/с | 19 | 200 000 |
| 1 Гбит/с | 4 | 20 000 |
| 10 Гбит/с | 2 | 2 000 |
Изменение стоимости порта позволяет "переназначить" место разрыва кольца, например, заблокировать другой порт и изменить логику сети.
Что такое TCN и как протокол реагирует на изменения?
Topology Change Notification (TCN) — это сообщение, которое отправляется, когда меняется топология сети (например, порт поднялся или упал).
- Коммутатор с изменением отправляет TCN через Root Port к корневому мосту.
- Корневой мост уведомляет все коммутаторы об изменении, устанавливая флаг Topology Change Acknowledgement (TCA).
- В результате коммутаторы ускоренно обновляют таблицы MAC-адресов, сокращая время "застоя" сети.
Практические советы по настройке STP
- Задайте корневой мост вручную — настройте Bridge Priority у коммутатора, который должен стать корнем, чтобы избежать спонтанных выборов.
- Используйте защиту корня (root-guard) на портах, где не должен появиться корневой мост.
- Настройте стоимость портов (port cost) для управления выбором оптимальных путей.
- Обновляйте прошивки коммутаторов для поддержки Rapid STP и других улучшений.
- Мониторьте BPDU-трафик для обнаружения несанкционированных изменений сети.
FAQ
Что происходит, если в сети появляется петля?
Пакеты начинают бесконечно циркулировать, загружая сеть и вызывая сбои.
Почему порт может быть заблокирован?
Чтобы предотвратить петли, STP блокирует избыточные порты.
Что такое корневой порт?
Порт с минимальной стоимостью пути к корневому коммутатору.
Сколько времени занимает перестройка STP?
Около 30–50 секунд, в зависимости от таймеров.
Можно ли ускорить работу STP?
Да, с помощью RSTP или настроек port cost и root priority.
Чек-лист для настройки STP
- [ ] Определить и назначить корневой мост (низкий Bridge Priority)
- [ ] Проверить корректность работы BPDU
- [ ] Настроить port cost для оптимизации маршрутов
- [ ] Включить root-guard на портах, где это необходимо
- [ ] Обеспечить поддержку RSTP для быстрой сходимости
- [ ] Мониторить сеть на появление топологических изменений
STP — это как строгий, но мудрый смотритель порядка в сети, который следит, чтобы все пакеты шли по правильным дорогам и не устраивали круговых пробок. Настройте его правильно, и ваша сеть будет как хорошо слаженный оркестр без фальшивых нот.