book2

5.2 STP Operations

Общая логика STP

STP строит loop-free topology в четыре шага:

  1. elect the root bridge;
  2. elect the root ports;
  3. elect the designated ports;
  4. остальные порты переводит в alternate или blocked role/state.

BPDU (Bridge Protocol Data Unit) — служебный STP frame, через который switches обмениваются информацией о topology. abbreviation BID (Bridge ID) — идентификатор switch в STP, который участвует в выборе root bridge. abbreviation root port — лучший port non-root switch по направлению к root bridge. networkterm designated port — port на segment, который лучше всех ведёт traffic к root bridge. networkterm alternate port — резервный port, который не forwarding’ит traffic, пока active path работает. networkterm

Из чего состоит BID

BID включает:

  • bridge priority;
  • extended system ID;
  • MAC address.

bridge priority — числовой приоритет switch в STP election. networkterm extended system ID — часть BID, которая помогает различать VLAN instance. networkterm

Чем меньше BID, тем лучше.

Обычно порядок выбора root bridge такой:

  1. lower priority wins;
  2. если priority одинаковый, lower MAC wins.

Запомни формулу

Lowest BID = Root Bridge

Шаг 1. Elect the Root Bridge

Каждый switch сначала “думает”, что он root. Потом через BPDUs switches сравнивают свои BID и соглашаются, кто root.

Если все switches оставлены на default priority, победитель часто определяется по MAC address.

Это плохо как design choice, потому что root может стать “не тот” switch.

Поэтому в реальной сети root bridge обычно назначают вручную.

Шаг 2. Determine Root Path Cost и выбрать Root Port

root path cost — суммарная стоимость пути до root bridge. networkterm port cost — стоимость отдельного port, зависящая от link speed. networkterm

Чем выше скорость link, тем ниже cost.

Таблица из модуля:

Link SpeedSTP Cost (short)RSTP Cost (long)
10 Gbps22000
1 Gbps420000
100 Mbps19200000
10 Mbps1002000000

На каждом non-root switch выбирается только один root port с наименьшим total path cost до root bridge.

Шаг 3. Elect Designated Ports

На каждом Ethernet segment должен быть один designated port.

Правила полезно помнить так:

СитуацияКто designated port
На root bridgeВсе ports designated
Один конец segment — root portДругой конец designated
Оба switch не rootПобеждает switch с лучшим path to root

Если cost одинаковый, STP включает tie-breakers.

Шаг 4. Alternate / Blocked Ports

Если port не стал ни root, ни designated, он становится резервным.

Такой port не участвует в normal forwarding и именно это спасает сеть от loop.

Equal-Cost Paths и Tie-Breakers

Если до root есть два одинаково дешёвых пути, STP использует tie-break sequence:

  1. lowest sender BID;
  2. lowest sender port priority;
  3. lowest sender port ID.

Очень экзаменационная цепочка

BID -> port priority -> port ID

Таймеры STP

TimerDefaultЧто значит
Hello2 secкак часто идут BPDUs
Forward Delay15 secсколько порт ждёт в listening и learning
Max Age20 secсколько switch ждёт старую STP-информацию

Hello Timer — интервал между BPDU messages. networkterm Forward Delay — задержка перехода порта через intermediate states. networkterm Max Age — время жизни STP-информации до пересчёта topology. networkterm

Port States

У classic STP пять состояний:

StateBPDUMAC learningUser traffic
BlockingReceive onlyNoNo
ListeningSend/ReceiveNoNo
LearningSend/ReceiveYesNo
ForwardingSend/ReceiveYesYes
DisabledNoneNoNo

Короткое объяснение:

  • Blocking — loop prevention, data frames не forward’ятся;
  • Listening — switch слушает topology, но ещё не учит MACs;
  • Learning — начинает учить MAC table, но ещё не пускает user traffic;
  • Forwarding — normal operation;
  • Disabled — port administratively down.

PVST логика

PVST (Per-VLAN Spanning Tree) — отдельный spanning tree instance для каждого VLAN. abbreviation

Это значит, что:

  • у VLAN 10 может быть один root bridge;
  • у VLAN 20 может быть другой root bridge.

Так можно лучше балансировать redundant topology между VLANs.

Команды, которые реально нужно знать

show spanning-tree
show spanning-tree vlan 1
show spanning-tree root
show spanning-tree interface f0/1

show spanning-tree ciscoIOScommand Показывает STP topology, root bridge, port roles и states для switch.

show spanning-tree vlan 1 ciscoIOScommand Показывает STP details только для конкретного VLAN instance.

show spanning-tree root ciscoIOScommand Быстро показывает, какой switch является root для spanning tree instances.

show spanning-tree interface f0/1 ciscoIOScommand Показывает STP role/state конкретного interface.

Частая ошибка

Люди путают port role и port state.

role отвечает на вопрос: какая функция у порта в topology. state отвечает на вопрос: forward’ит ли он traffic прямо сейчас.

Если понял тему

Ты уже можешь смотреть на topology и объяснять, почему один port стал root, другой designated, а третий blocked.