Если между коммутаторами существует несколько физических соединений, сеть может начать бесконечно пересылать broadcast-пакеты. В результате каналы перегружаются, а сама сеть становится нестабильной.
Протокол STP автоматически отключает лишние соединения и оставляет активным только один маршрут передачи данных. Благодаря этому резервные каналы остаются доступными, но не создают петли до момента отказа основного пути.
Как работает Spanning Tree Protocol
После включения коммутаторы обмениваются служебными BPDU-пакетами и договариваются, какой из них будет главным ориентиром сети — root bridge. От него строится дерево соединений.
Затем каждый коммутатор выбирает лучший путь до root bridge. Если до него есть несколько путей, STP оставляет активным только один. Остальные соединения переводятся в режим ожидания: пользовательский трафик через них не идет, но физически канал остается подключенным.
Если основной линк обрывается, STP заново пересчитывает схему сети и включает один из резервных путей. Так сеть продолжает работать без петли и без ручного переключения кабелей.
Почему петли опасны
Ethernet не умеет ограничивать время жизни кадров так же, как IP-сети делают это через TTL. Если в L2-сегменте появляется цикл, broadcast- и multicast-трафик начинает циркулировать бесконечно.
Это приводит к:
- накоплению широковещательного и многоадресного трафика (broadcast storm);
- перегрузке CPU коммутаторов;
- переполнению MAC-таблиц;
- потере связи между устройствами.
Даже одна случайная петля может вывести из строя корпоративную сеть целиком.
Разновидности STP
Классический протокол STP работает относительно медленно — перестроение сети может занимать до 30–50 секунд.
Другая версия STP такая как RSTP работает быстрее. Он использует ту же идею дерева без петель, но быстрее переводит резервный линк в активное состояние.
MSTP нужен, когда в сети много VLAN. Вместо одного общего дерева он позволяет сгруппировать VLAN и построить для них несколько независимых деревьев. Так часть трафика может идти по одним линкам, часть — по другим, а резервирование используется эффективнее.
PVST+ — вариант, который встречается в инфраструктуре Cisco. Он строит отдельное spanning tree для каждого VLAN. Это дает больше контроля над маршрутами внутри L2-сети, но увеличивает количество служебной логики на коммутаторах.