11.2 Rapid Spanning Tree Protocol (RSTP)

11. Spanning Tree Protocols

11.2 Rapid Spanning Tree Protocol (RSTP)

RSTP описан в стандарте IEEE 802.1w. Выполняя те же функции, что и традиционный STP, RSTP имеет лучшие характеристики. Большим плюсом RSTP является время сходимости по сравнению с традиционным STP. RSTP определяет некоторые каналы как point-to-point, при выходе из строя которых могут быть мгновенно задействованы для пересылки альтернативные каналы. RSTP выполняет быструю сходимость в сети, когда происходит изменение топологии, за счёт применения дополнительного функционала, такого как edge-порты, rapid direct и indirect link failure detection and recovery.В RSTP добавляются новые роли портов:

  • Альтернативный порт — обеспечивает альтернативный путь к Root Bridge’у (по-сути — запасной путь для root-порта); находится в состоянии discarding; не пересылает трафик до тех пор, пока не получит Superior BPDU от соседнего коммутатора; принимает роль Root-порта при выходе его из строя
  • Запасной порт — обеспечивает избыточный путь в сегмент на Designated-коммутаторе; находится в состоянии discarding; получает Superior BPDU от Designated-порта; не пересылает трафик, пока «жив» Designated-порт в этом же сегменте LAN

11-2-1

Роли портов Root и Designated в RSTP остались без изменений.


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

По сравнению с традиционным STP, в RSTP меньше состояний портов:

11-2-2

  • Discarding — заменяет одновременно 3 состояния портов в STP: Disabled, Blocking, Listening. В этом состоянии находятся Alternate, Backup и Disabled-порты.
  • Learning — порты, находящиеся в процессе изучения MAC-адресов
  • Forwarding — порты, находящиеся одновременно в состоянии изучения и пересылки: Root, Designated и Edge-порты.

BPDU в RSTP

BPDU в STP используются для:

  • Выбора Root Bridge’а
  • Определения Root-порта у каждого коммутатора
  • Определения Designated-портов для каждого сегмента LAN
  • Отключения избыточных линков для создания loop-free топологии
  • Уведомления и подтверждения об изменении топологии

В  RSTP, configuration BPDU также выполняют функции keepalive (проверяют «на живость» соседние коммутаторы), отсылаются каждые 2 секунды (можно поменять). Если от соседнего коммутатора не поступало BPDU в течение 3-ёх hello-интервалов, то подразумевается неисправность и топология перестраивается.

Интерфейсы, работающие в Full Duplex рассматриваются протоколом как point-to-point links. При неисправности такие интерфейсы могут стать новыми root-портами или designated-портами и перейти в состояние forwarding не дожидаясь истечения каких-либо таймеров (learning в данном случае). Порты в half-duplex рассматриваются как shared
(или LAN) links и должны ожидать окончания таймеров при переходе к forwarding-состоянию.

RSTP обратно совместим с традиционным STP, т.е. если коммутатор с RSTP получит BPDU традиционного STP, он возвратится к STP. В топологии только с RSTP существует единственный тип BPDU — Rapid Spanning Tree BPDU (RST BPDU). RST BPDU имеет такой же формат, как и Configuration BPDU в традиционном STP. Коммутатор определяет тип принятой BPDU по 2-ум полям в BPDU: protocol version и BPDU type.

Сравнение BPDU традиционного STP и RSTP:

11-2-3

  • Protocol Version — 0x02 (т.е. RSTP)
  • BPDU Type — 0x02 (RST BPDU)

В RST BPDU добавилось несколько значений флагов (поле Flags):

  • TCN Acknowledgment: используется при подтверждении STP TCN;
  • Agreement and Proposal: используется для быстрого перевода нового designated-порта в состояние forwarding;
  • Forwarding and Learning: используется для анонса состояния отправляющего порта;
  • Port Role: определяет роль отправляющего порта: 0 = Unknown, 1 = Alternate or Backup, 2 = Root, and 3= Designated;
  • Topology Change: RSTP использует configuration BPDU с установленным этим битом для оповещения других коммутаторов об изменении топологии.

RST BPDUs содержит Version 1 Length поле, которое всегда содержит значение 0x0000. Поле служит для последующих расширений RSTP.


Настройка Bridge Priority

На основании Bridge Priority в RSTP выбирается Root Bridge. Bridge Priority состоит из 16-битного числа и RSTP использует все 16 бит как единое значение для выбора Root Bridge. С появлением MSTP эти 16 бит стали делить на 2 поля:

  • Priority — 4 бита
  • Extended System ID — 12 бит

11-2-4

MSTP заполняет Extended System ID номером VLAN, автоматически. RSTP позволяет установить оба значения командами:

set protocols rstp bridge-priority значение
и
set protocols rstp extended-system-id значение


Перевод порта в состояние Forwarding

В традиционном STP порт может переводиться в состояние Forwarding в течение более 30 секунд, т.к. при включении порта он должен пройти состояния Listening и Learning, т.е. должны пройти 2 таймера Forwarding Delay (15 секунд по-умолчанию).

В RSTP несколько по-другому. RSTP использует механизм proposal-and-agreement handshake на point-to-point линках вместо таймеров STP. Root-порты и edge-порты переходят к состоянию пересылки незамедлительно, без обмена какими-либо сообщениями с другими коммутаторами. Edge-порты — порты, подключенные к конечным станциям. Порт принимает роль Edge-порта, если он не получает BPDU от подключенного к нему устройства. Если коммутатор получает конфигурационное сообщение на порту, который настроен как edge-порт, то этот порт автоматически переводится в normal spanning-tree port (nonedge port).

Nonedge-designated порты переводятся в состояние пересылки только после получения явного «agreement» от подключенного коммутатора.


Изменение топологии в RSTP

Напомним, что в традиционном STP изменение топологии происходит при изменении состояния любого участвующего в STP порта.

Изменение топологии в RSTP происходит только когда nonedge-порт (порт соединяющий коммутаторы) переводится в состояние пересылки.

  • При переводе порта в состояние Discarding, административном отключении порта, исключении из активной топологии RSTP, не генерируется BPDU TCN/TCN Acknowledgment сообщения
  • Инициатор рассылает RSTP TCN (RSTP BPDU с установленным TCN Flag) через Root-порт и все Designated-порты. Коммутаторы между инициатором и Root Bridge’ом не дожидаются получения этого же TCN от Root Bridge’а и начинают следующий шаг
  • Коммутаторы, получившие RSTP TCN, очищают большинство MAC-адресов из MAC-таблицы, кроме (!!!) MAC-адресов изученных на Edge-портах и MAC-адресов изученных на порту, на котором была получена RSTP TCN

Indirect Link Failure

При Indirect Link Failure протокол RSTP выполняет следующие действия:

11-2-5

 

  1. У коммутатора A отказывает Root Port, и коммутатор A начинает подразумевать себя как нового Root Bridge
  2. Коммутатор B получает Inferior BPDU от коммутатора A и переводит альтернативный порт в роль Designated
  3. Коммутатор A получает Superior BPDU, из него узнаёт что он не новый Root Bridge, и назначает порт, подключенный к коммутатору B как Root Port

Direct Link Failure

При Direct Link Failure протокол RSTP выполняет следующие действия:

11-2-6

  1. Альтернативный порт переводится в состояние пересылки и получает роль Root Port’а, т.к. старый Root Port не работает
  2. Коммутатор B оповещает с помощью RSTP TCN через новый Root Port вышестоящие (upstream) коммутаторы, что необходимо очистить их MAC-таблицы. Вышестоящие коммутаторы очищают MAC-адреса, изученные на активных портах не получивших TCN

Совместимость RSTP и STP

Если на одном коммутаторе запущен традиционный STP, а на другом — RSTP, то при получении RSTP BPDU на первом коммутаторе они будут отбрасываться. А если на порту второго коммутатора будет получена BPDU традиционного STP, то этот порт будет переведён на работу в режиме традиционного STP. Т.о. работа между двумя коммутаторами будет осуществляться используя традиционный STP.


Настройка и проверка RSTP в Juniper

Настройка RSTP осуществляется в «секции» конфигурации [edit protocols rstp]:11-2-7

Проверка RSTP осуществляется командой show spanning-tree с дополнительными атрибутами. Например, просмотр общих данных про RSTP:11-2-8Просмотр информации про интерфейсы в RSTP:11-2-9Просмотр статистики по принятым/отправленным BPDU на интерфейсах:11-2-10

К оглавлению

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