11. PVST

PVST - Per-VLAN Spanning Tree

STP и VLAN

  • STP блокирует коммутацию на порту без учета информации о VLAN. Остовное дерево в 802.1D строится по всей физической топологии, а не по отдельным логическим доменам

  • Есть вероятность блокировки коммутации там, где физически петля существует, но логически ее нет (равно как и последствий петли)

Уникальность Bridge ID

  • 802.1D предполагает наличие только одного дерева

  • Другие протоколы строят несколько деревьев одновременно

    • MSTP (Multiple Spanning Tree Protocol) - 802.1s, вошел в состав 802.1Q-2005

    • Семейство PVST: Cisco, Force10, Alcatel-Lucent, Extreme, Avaya, Brocade, Juniper

  • Каждый коммутатор в дереве должен иметь уникальный Bridge ID

    • Метки принадлежности BPDU к определенному дереву в общем случае недостаточно для определения петли в дереве

    • Одному коммутатору приходится иметь несколько Bridge ID

PVST/PVST+/PVRST

  • PVST - проприетарный протокол Cisco на основе 802.1D-1990 c поддержкой VLAN и механизмами ускорения работы (STP Toolkit). Поддерживает только транки ISL

  • PVST+ - PVST с поддержкой транков 802.1Q

  • PVRST - проприетарный протокол Cisco на основе 802.1w. Строит дерево не на основе физической топологии, а по VLAN

  • PVRST+ - PVRST c поддержкой транков 802.1Q

Extended System ID

  • В реальных сетях размер поля Bridge Priority в 16 бит излишен

  • Для получения множества Bridge ID под хранение идентификатора дерева "заимствуется" 12 бит от поля приоритета

  • Схема называется Extended System ID

BPDU в протоколах семейства PVST

В протоколах семейства PVST строится одно дерево за каждый VLAN

  • Много VLAN - много BPDU в транке

  • Необходимо сверять дерево отправителя с деревом получателя

    • На метку или Extended System ID ориентироваться нельзя, приходится добавлять TLV (Type Length Value)

  • Формат BPDU модифицирован

    • Для не-PVST коммутаторов необходим "ванильный" CST

    • В Cisco CST включен принудительно, используется дерево VLAN 1

  • MAC-адрес получателя - 01:00:0C:CC:CC:CD

  • Инкапсуляция LLC+SNAP; Organization Code: 0x00000C; PID: 0x010B

  • Помечаются 802.1Q (кроме Native VLAN), PRI: Network Control

  • Добавляется TLV Originating VLAN (T=0x0000, L=2 байта)

Настройки по умолчанию

  • Spanning Tree работает на всех VLAN и на всех портах

    • Начиная с IOS 15.2(4)E режим по умолчанию - RPVST+

    • До этого по умолчанию использовался PVST+

  • Таймеры

    • Hello Time: 2 секунды

    • Forward Delay: 15 секунд

    • Max Age: 20 секунд

  • Метод вычисления стоимостей интерфейсов - 802.1D-1998

  • Extended System ID равен номеру VLAN

Switch(config)#spanning-tree mode ?
  mst         Multiple spanning tree mode
  pvst        Per-Vlan spanning tree mode
  rapid-pvst  Per-Vlan rapid spanning tree mode

Установка Bridge Priority

  • Задается десятичное значение, состоящее из:

    • Старших 4 бит приоритета

    • Нулевых 12 бит Extended System ID

  • 16 возможных вариантов, в том числе:

    • 32768 - значение по умолчанию

    • 24576 - рекомендуемое значение для корневого коммутатора

    • 28672 - рекомендуемое значение для резервного корневого коммутатора

Switch(config)#spanning-tree vlan 1 priority 1024
% Bridge Priority must be in increments of 4096.
% Allowed values are: 
  0     4096  8192  12288 16384 20480 24576 28672
  32768 36864 40960 45056 49152 53248 57344 61440

Макросы Root Primary и Secondary

  • Макрос spanning tree vlan <#> root primary позволяет выставить коммутатору такой приоритет, который сделает бридж корневым

    • Если root priority - 32768, то выставляется приоритет 24576

    • Если другой, то выставляется приоритет такой же или на 4096 меньше

Switch(config)#spanning-tree vlan 1 root primary 
  • Макрос spanning tree vlan <#> root secondary позволяет выставить коммутатору приоритет 28672, делая его резервным

    • Если корневой коммутатор получил свой приоритет с помощью макроса, а на других коммутаторах приоритет не настраивался, то при отказе текущего корня "резервный" коммутатор будет иметь самый маленький приоритет

    • Гарантии становления корнем после отказа текущего этот макрос не дает

Switch(config)#spanning-tree vlan 1 root secondary

Настройка Port Priority

  • Исторически Port ID состоял из двух однобайтовых полей:

  • С появлением многопортовых коммутаторов баланс изменился. На разных моделях комммутаторов он стал разным

Switch(config)#int gi0/0     
Switch(config-if)#spanning-tree port-priority ?
  <0-224>  port priority in increments of 32
  • Приоритет может быть настроен за каждый конкретный VLAN

Switch(config-if)#spanning-tree vlan 100 port-priority ?
  <0-224>  port priority in increments of 32

Настройка Port Cost

  • Назначение стоимости порта во всех деревьях

Switch(config)#int e0/0
Switch(config-if)#spanning-tree cost ?
  <1-200000000>  port path cost
  • Назначение стоимости порта в отдельно взятом дереве

Switch(config-if)#spanning-tree vlan 100 cost ?
  <1-200000000>  Change an interface's per VLAN spanning tree path cost 
  • Настройка метода вычисления стоимости портов (по умолчанию short):

    • Short: 802.1D-1998 (100/19/4/2)

    • Long: 802.1D-2004 (20Tb/скорость интерфейса)

Switch(config)#spanning-tree pathcost method ?
  long   Use 32 bit based values for default port path costs
  short  Use 16 bit based values for default port path costs

Диагностика STP

  • Заказывается диагностика за отдельное дерево

Switch#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     5000.0001.0000
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     5000.0001.0000
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/0               Desg FWD 4         128.1    Shr 
Gi0/1               Desg FWD 4         128.2    Shr 
Gi0/2               Desg FWD 4         128.3    Shr 
Gi0/3               Desg FWD 4         128.4    Shr 

Last updated