July 31, 2024

Spanning Tree Protocol

STP в Cisco — Xgu.ru

Петля в локальной сети - это ситуация, при которой часть информации от коммутатора не рассылается по компьютерам, а кочует по двум параллельным маршрутам, как бы замыкающимся в кольцо. Данные при этом бесконечно кружатся по этому кольцу

При broadcast петле:

  • Канал забивается на 100%
  • Постоянно меняется таблица Mac адресов

Как узнать broadcast шторм

Все индикаторы на панели свича будут синхронно мигать

Unicast flooding - возникает петля, когда свич только включается (у него нет таблицы мак) и на него приходит unicast кадр

Этапы блокирование порта

  1. Выбор root свича и как до него добраться
  2. Выбор root портов
  3. Выбор designeted портов (которые не смотрят на root sw, порты root sw тоже входят)
  4. Выбор alternate порта (заблокированного)

Выбор Root switch

Приоритет 2б (по умолчанию 32768+номер vlan или инстанс MSTP) + MAC адрес 6б = Bridge ID

Bridge Protocol Data Units (BPDU) - используется для пересылки кадра между свичами раз в 2 сек для выявления петель. Она проходит и через заблокированный порт STP

Как только свичи включаются, каждый себя считает root и отправляет эту информацию соседним свичам, другой свич принимает кадры BPDU и сверяет со своим, если свой больше, то в поле bridge id будет записывать того свича

Выбор root свича происходит 15 сек

Выбор ROOT портов

  1. Корневой свич посылает BPDU с полем Root Path Cost, равным нулю
  2. Ближайший свич смотрит на скорость своего порта, куда BPDU пришел, и добавляет стоимость согласно таблице

3. Далее этот второй свич посылает этот BPDU нижестоящим коммутаторам, но уже с новым значением Root Path Cost, и далее по цепочке вниз

Если Root Path Cost одинаковый, выбирается порт с наименьшим Port Id отправителя

Выбор Designated портов

Далее выбираются назначенные (Designated) порты. Из каждого конкретного сегмента сети (линка между свичами) должен существовать только один путь по направлению к корневому свичу, иначе это петля (должен быть только один designated порт). Назначенным портом выбирается тот, который имеет лучшую стоимость в данном сегменте. У корневого свича все порты — назначенные.

И вот уже после того, как выбраны корневые и назначенные порты, оставшиеся блокируются, таким образом разрывая петлю.

Ручной выбор Root switch

-sw(conf t)# spanning-tree vlan n root primary

После команды приоритет свича станет на 8192 меньше по отношению рута, если до этого было по умолчанию, если нет, то на 4096

-sw(conf t)# spanning-tree vlan n root secondary

Выбирает запасным приоритетным свичом

Если истощается приоритет свича, он становится 1, и больше нельзя менять рут свича. В таком случае приоритет устанавливается вручную (начиная от 4096...x2)

Типы BPDU

Configuration BPDUs - для доставки информации между свитчами

TCN BPDUs - для информирования об изменении в топологии (при добавлении свича, изменении рута, падении порта)

Состояние портов STP

Таймеры STP

  • Hellow Time - каждые 2 сек
  • Forward delay - время когда порты свича находятся в состоянии Listening и Learning (15сек)
  • Maximum age - время после которого будет объявлено TCN, если коммутатор перестал получать BPDU от соседа

BackboneFast

В этой технологии при отваливании линка (между sw1 sw3) sw2 убеждается что root sw3 живой и просто разблокирует линк с sw1. Сеть не ложится. Для того чтобы функция работала, необходимо включить её на всех коммутаторах в сети.

UplinkFast

Если основной sw выходит из строя, то access коммутатор сразу переключается на запасной и переводит его в состояние forward. Кроме того, UplinkFast позволяет коммутаторам обновить записи в таблицах коммутации, без использования TCN

PortFast

На Access sw на клиентском порту сразу включается Forwarding. Клиенты могут между собой общаться, пока работает STP

BPDU guard - функция, которая позволяет выключать порт при получении BPDU (вместо ПК подключился другой свич)

По разным причинам на коммутаторах порт может “упасть” в err-disabled. Чтобы не поднимать его вручную, можно сделать автоматическую попытку восстановления Errdisable Recovery на коммутаторе.

Симптом такой – порт находится в down, то есть выключен. Чтобы посмотреть какие порты на коммутаторе в режиме err-disabled нужно выполнить команду:

# show interfaces status

Root Guard

sw(cinfig-if)# spanning-tree guard root

Если функция включена на интерфейсе, то при получении на нём BPDU лучшего, чем текущий корневой коммутатор, порт переходит в состояние root-inconsistent (эквивалентно состоянию listening). После того как порт перестает получать BPDU, он переходит в нормальное состояние.Чтобы вывести из этого состояния, свичу нужно поменять priority (большой)

BPDU Filter (используется редко)

Выключает ссылку BPDU кадров на интерфейсе

Однонаправленные связи ?

Проблема обычно возникает в одномод? оптоволокне. Например провод на прием сломался, остается только провод на отправку. Получается однонаправленная петля, так как порты остались в своих статусах

Loop Guard

STP петля возникает когда блокированный порт в избыточной топологии ошибочно переводится в состояние forwarding(передачи). Это может возникнуть например когда блокированный STP порт перестаёт получать BPDU. Так как работа протокола STP полагается на постоянное присутствие BPDU пакетов в сети.(Designated (назначенный) порт постоянно должен передавать BPDU пакеты а non-designated должен их получать). Как только на порт перестают поступать BPDU STP понимает это как изменение топологии и исчезновение петли и переводит порт в состояние forwarding. В случае использования Loop Guard порт после прекращения получения пакетов BPDU переводится в состояние loop-inconsistent и остаются по прежнему блокированным.

UDLD

Вы посылаете приветственные сообщения, вы их получаете, и все прекрасно. Как только вы все еще посылаете приветственные сообщения, но больше их не получаете, вы понимаете, что что-то не так, и мы блокируем интерфейс.

2 режима

  • Aggressive - будет пытаться переустановить соединение с соседом, после чего переведет порт в состояние err-disabled. Отправит 8 request
  • Normal - будет маркировать порт как undetermined

Сравнение Loop Guard и UDLD

Резюмируя:

Для ускорения используется технологии BackboneFast, UplinkFast,PortFast

Для защиты используется техно

логии: BPDU Guard, Root Guard, BPDU Filter, Loop Guard, UDLD

Версии STP

  • STP - оригинальная версия протокола ( устарела)
  • CST - открытый протокол, один экземпляр spanning-tree на всю сеть (без поддержки vlan, не поддерживает cisco оборуд)
  • PVST - проприетарный протокол Cisco c поддержкой VLANs, работал только на ISL транках (практический устарела)
  • PVST+ проприетарный протокол Cisco c поддержкой VLANs, работает с 802.1q транками (по умолчанию на свичах работает)
  • MSTP - открытый протокол с поддержкой VLANs (расширение RSTP, делит коммутируемую сеть на регионы. Для того чтобы два и более коммутатора принадлежали одному региону MST, они должны обладать одинаковой конфигурацией MST, которая включает: номер ревизии MSTP, имя региона, карту привязки VLAN к копии связующего дерева (VLAN-to-instance mapping)
  • RSTP - открытый протокол spanning-tree с быстрой сходимостью (не кладет сеть на 30сек, меньше. Не поддерживает cisco оборуд)
  • Rapid PVST+ проприетарный протокол Cisco С быстрой сходимостью и поддержкой VLANs

2:17

STP 2:17 – Telegraph