11.1 Традиционный STP

11. Spanning Tree Protocols

11.1 Традиционный STP

Spanning Tree Protocol (STP) — стандарт IEEE 802.1D, L2 протокол, предназначенный для предотвращения петель коммутации в избыточной коммутируемой сети, т.е. создания свободной от петель коммутации топологии. STP автоматически пересчитывает топологию сети при возникновении в ней изменений. STP необходим в коммутируемых сетях с избыточными каналами.

Термины и определения STP

  • Bridge ID — уникальный идентификатор каждого коммутатора (MAC-адрес коммутатора + настраиваемое значение)
  • Root Bridge — коммутатор с наименьшим Bridge ID
  • Root Port — порт на каждом коммутаторе, с наименьшей стоимостью к Root Bridge
  • Root Path Cost — стоимость пути от коммутатора к Root Bridge (сумма стоимости в принятой BPDU и локального Root Port Cost)
  • Port Cost — атрибут STP для каждого порта, используется для расчёта Root Path Cost (20000 для порта 1Gi; может быть настроен вручную)
  • Designated Bridge — коммутатор, представляющий LAN-сегмент
  • Port ID — уникальный идентификатор каждого порта на каждом коммутаторе
  • Designated Port — порт Designated Bridge’а, осуществляющий пересылку трафика в LAN-сегменте
  • BPDU — пакеты, используемые STP для обмена информацией между коммутаторами

Как только произошёл выбор Root Bridge’а, каждый не-Root Bridge высчитывает наикратчайших (с наименьшей стоимостью) путь до Root Bridge’а. Не-Root Bridge получает периодические STP BPDU, в которых помимо прочего содержится стоимость до Root Bridge’а.

Коммутатор, через который путь следования да Root Bridge’а имеет наименьшую стоимость, называется Designated Bridge для сегмента LAN, а его порт, находящийся в данном сегменте LAN — Designated Port.

Если на пути следования к Root Bridge’у существуют несколько маршрутов между 2-мя или более коммутаторами для данного LAN-сегмента, то выбирается маршрут через коммутатор с наименьшим Bridge ID.

Если существуют два или более путей с одинаковой стоимостью через порты локального коммутатора, на выбирается путь через интерфейс с наименьшим Port ID.


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

  1. Blocking — порт не пересылает данные, не участвует в активной топологии, прослушивает BPDU
  2. Listening — порт не пересылает данные, прослушивает и отправляет BPDU, участвуя в активной топологии STP
  3. Learning — порт не пересылает данные, коммутатор изучает MAC-адреса, прослушивает и отправляет BPDU
  4. Forwarding — порт пересылает данные, прослушивает и отправляет BPDU, продолжает изучение MAC-адресов

По-умолчанию на порту административно выключен STP. При этом порт пересылает BPDU в порты того же VLAN, пересылает трафик, но не участвует в STP.

 


Типы BPDU

  • Configuration BPDU — используется для построения топологии STP
  • Topology Change Notification (TCN) BPDU — уведомляет об изменениях топологии

Формат Configuration BPDU:

11-1-2

  • Protocol ID — всегда 0 (STP)
  • Protocol Version — всегда 0 (802.1D)
  • BPDU Type — 0 (Configuration BPDU)
  • Flags — Topology Change Acknowledgment flag / Topology Change flag
  • Root ID — уникальный идентификатор коммутатора, который по мнению коммутатора, отправляющего эту BPDU должен стать Root Bridge’ом
  • Root Path Cost — стоимость пути до Root Bridge’а от коммутатора, отправившего данную BPDU
  • Bridge ID — значение BID коммутатора, отправившего данную BPDU. Состоит из Bridge Priority и MAC-адреса коммутатора
  • Port ID — уникальное значение для каждого порта коммутатора (128:41)
  • Message Age — срок жизни конфигурационного сообщения — время с момента генерации конфигурационной BPDU. BPDU с превышенным Message Age отбрасываются коммутатором
  • Max Age — максимальное время хранения BPDU; так же влияет на время жизни MAC-адресов в MAC-таблице во время TCN (устанавливает Root Bridge)
  • Hello Time — интервал отправки BPDU
  • Forward Delay — определяет период времени состояний Listening и Learning (устанавливает Root Bridge); так же влияет на время жизни MAC-адресов в MAC-таблице во время TCN

В самом начале, когда STP ещё не выстроил топологию, все коммутаторы рассылают BPDU пытаясь объявить себя Root Bridge’ом. В итоге выигрывает и становится Root Bridge’ом коммутатор с наименьшим Priority, а при равных Priority — выигрывает коммутатор с наименьшим MAC-адресом. После того, как STP создал свободную от петель коммутируемую топологию, выбрались Root-порты, Designated-коммутаторы и Designated-порты и т.п., Root Bridge отправляет BPDU каждые 2 секунды.

Формат Topology Change Notification (TCN) BPDU

11-1-3

Формат фрэйма, в котором передаётся BPDU:

11-1-1

 


В STP определены роли портов. Все порты Root Bridge’а — Designated-порты, пересылают трафик; на каждом не-Root Bridge коммутаторе имеется Root-порт, порт который «находится» ближе всех к Root Bridge’у исходя из Path Cost. Каждому интерфейсу сопоставлена стоимость (cost) STP, которая основана на скорости, настроенной на интерфейсе:

  • 10 Mbps — cost = 2,000,000
  • 100 Mbps — cost = 200,000
  • 1 Gbps — cost = 20,000
  • 10 Gbps — cost = 2000

Если коммутатор имеет два пути с одинаковой стоимостью к Root Bridge’у, то порт с наименьшим Port ID станет root-портом. Root Port участвует в пересылке трафика.

STP выбирает Designated Bridge на каждом сегменте LAN. Процесс выбора также основан на наименьшей стоимости пути от коммутатора до Root Bridge’а. Порт Designated Bridge’а, который подключен в этот сегмент LAN и имеет наименьший Port ID, становится Designated Port’ом. Designated Port участвует в пересылке трафика.

Порты, которые не имеют статуса Root Port или Designated Port находятся в заблокированном состоянии (Blocking), принимают BPDU и не участвуют в пересылке трафика.


Сходимость STP

Время сходимости STP вычисляется по формуле:

2 x forwarding delay + maximum age = 50 сек

при дефолтных настройках таймеров forwarding delay (15 сек) и maximum age (20 сек).

Рассмотрим процедуру сходимости STP на примере.

11-1-4

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

  1. Коммутатор E, на котором «упал» линк до коммутатора G, отправляет TCN через Root Port (TCN всегда отправляются через Root Port) каждые 2 секунды до тех пор, пока не получит от коммутатора B сообщение TCN ACK
  2. Коммутатор B отправляет TCN ACK коммутатору E, подтверждая принятую TCN, и пересылает TCN через Root Port далее в сторону Root Bridge’а
  3. Коммутатор A отправляет TCN ACK коммутатору B, подтверждая принятую TCN
  4. Root Bridge A выставляет «topology changed» flag и отсылает обновлённую Configuration BPDU со всех портов:

11-1-5

5.  Коммутаторы B и C передают эту Configuration BPDU к downstream-коммутаторам
6.  Все не-Root Bridge коммутаторы устанавливают «MAC address forwarding table aging timer» (время жизни MAC-адресов в MAC-таблице стало быть) равным Forward Delay (т.е. 15 секунд по-умолчанию). После истечения таймера Forward Delay, все MAC-адреса, которые не были обновлены в эти 15 секунд в MAC-таблице, удаляются из неё и могут быть в последствии изучены.


Настройка STP в juniper

Т.к. на маршрутизаторах Juniper MX серии по-умолчанию включен RSTP, то необходимо явно включить STP. Делается в «секции» конфигурации [edit protocols rstp] командой

set protocols rstp force-version stp

11-1-6

К оглавлению

Добавить комментарий