В данной статье будут рассмотрены особенности протокола множественного связующего дерева MST (Multiple Spanning Tree), его сравнение с другими версиями протокола STP. Также будут показаны базовые настройки протокола и показаны некоторые тонкости реализации.
По умолчанию коммутаторы Cisco Catalyst используют PVST+ или Rapid PVST+ (Per VLAN Spanning Tree). Это означает, что каждая VLAN сопоставляется с одним экземпляром связующего дерева. Когда на коммутаторе 20 сетей VLAN, это означает, что имеется 20 экземпляров связующего дерева.
Это проблема? Скоро узнаем… пока давайте посмотрим на пример:
Взгляните на эту топологию. Есть три коммутатора и множество сетей VLAN. Всего насчитывается 201 VLAN. Если запускаем PVST или Rapid PVST, это означает, что у нас есть 201 вычисление для каждой VLAN. Это требует процессорное время и много памяти.
Когда SW2 является корневым мостом для VLAN 100-200 и SW3 для VLAN 201-300, топологии spanning-tree будут выглядеть так:
SW2 является корневым мостом для VLAN от 100 до VLAN 200. Это означает, что интерфейс fa0/17 на SW1 или интерфейс fa0/14 на SW3 будет заблокирован. Будет 100 вычислений связующего дерева (spanning tree), но все они выглядят одинаково для этих VLAN…
То же самое относится и к VLAN 201-300. SW3 является корневым мостом для VLAN от 201 до 300. Интерфейс fa0/14 на SW1 или SW2 будет заблокирован для всех этих VLAN.
Два разных результата, но у меня все еще есть 201 различных экземпляров связующего дерева. Ну разве это не пустая трата ресурсов процессора и памяти?
MST (Multiple Spanning Tree), описанный в стандарте IEEE 802.1s, решит эту проблему. Вместо вычисления связующего дерева для каждой VLAN можно использовать экземпляры (instance) и сопоставлять VLANы с каждым экземпляром. Для сети выше можно сделать что-то вроде этого:
- Экземпляр 1: VLAN 100 — 200
- Экземпляр 2: VLAN 201 — 300
Таким образом для всех этих сетей VLAN требуются только два вычисления (экземпляра) связующего дерева.
MST работает с концепцией регионов. Коммутаторы, настроенные на использование MST, должны выяснить, работают ли их соседи с MST.
Когда коммутаторы имеют одинаковые атрибуты, они будут находиться в одном регионе. Но так же возможно наличие одного или нескольких регионов. Ниже приведены атрибуты, которые должны соответствовать в соседних регионах:
- Имя конфигурации MST.
- Номер версии конфигурации MST.
- Экземпляр MST для таблицы сопоставления VLAN.
Когда коммутаторы имеют одинаковые атрибуты, они будут находиться в одном регионе. Если атрибуты не совпадают, то коммутатор рассматривается как находящийся на границе области. Он может быть подключен к другой области MST, но также будет общаться с коммутатором, на котором запущена другая версия STP.
Имя конфигурации MST — это тот атрибут, который можно указать, чтобы использовать его для идентификации региона MST. Номер ревизии конфигурации MST также нужно задать самостоятельно, и идея этого номера заключается в том, что можно его менять, меняя конфигурацию.
В пределах региона MST будет один экземпляр связующего дерева, которое создаст свободную от петель топологию в регионе. При настройке MST всегда существует один экземпляр по умолчанию, используемый для вычисления топологии в регионе. Он называется IST (Internal Spanning Tree). По умолчанию Cisco будет использовать экземпляр 0 для запуска IST. На самом деле это rapid spanning tree, которое запущено в MST.
Я хочу создать экземпляр 1 для VLAN 100-200 и экземпляр 2 для VLAN 201-300. В зависимости от того, какой коммутатор станет корневым мостом для каждого экземпляра, будет разные порты будут заблокированы. Это будет выглядеть так:
Коммутатор вне области MST не видит, как выглядит область MST. Для этого коммутатора это похоже на общение с одним большим коммутатором или «черным ящиком»:
Давайте немного поиграемся с конфигурацией.
Конфигурация MST
Я буду использовать следующую топологию:
Мы начнем с одного региона MST со следующими атрибутами:
- Имя конфигурации MST: «REGION-1»
- Номер версии конфигурации MST: 1
- Экземпляр MST для таблицы сопоставления VLAN:
- Экземпляр 2: VLAN 10, 20 и 30.
- Экземпляр 3: VLAN 40, 50 и 60.
Вот что мы будем делать в первую очередь:
SW1(config)#spanning-tree mode mst
SW2(config)#spanning-tree mode mst
SW3(config)#spanning-tree mode mst
Так включается MST на коммутаторах. Давайте посмотрим на экземпляр MST по умолчанию:
SW1#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------
SW2#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------
SW3#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------
Можно использовать команду show spanning-tree mst configuration, чтобы увидеть экземпляры MST. Никаких дополнительных экземпляров не было создано, поэтому доступен только экземпляр 0. Можно видеть, что все VLAN в настоящее время сопоставлены с экземпляром 0. Давайте посмотрим, что еще можно увидеть:
SW1#show spanning-tree mst
##### MST0 vlans mapped: 1-4094
Bridge address 0011.bb0b.3600 priority 32768 (32768 sysid 0)
Root address 000f.34ca.1000 priority 32768 (32768 sysid 0)
port Fa0/17 path cost 0
Regional Root address 000f.34ca.1000 priority 32768 (32768 sysid 0)
internal cost 200000 rem hops 19
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Root FWD 200000 128.19 P2p
Можно также использовать команду show spanning-tree mst. Здесь будет видно отображение VLAN, а также информацию о корневом мосте. Прежде чем добавить дополнительные экземпляры, нужно добавить некоторые VLAN и настроить связи между коммутаторами в виде транков:
SW1(config)#interface fa0/14
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config)#interface fa0/17
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW2(config)#interface fa0/14
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW2(config)#interface fa0/16
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW3(config)#interface fa0/14
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk
SW3(config)#interface fa0/16
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk
Теперь настроим VLAN:
SW1, SW2 & SW3:
(config)#vlan 10
(config-vlan)#vlan 20
(config-vlan)#vlan 30
(config-vlan)#vlan 40
(config-vlan)#vlan 50
(config-vlan)#vlan 60
(config-vlan)#exit
Теперь можно настроить MST и экземпляры:
SW1(config)#spanning-tree mst configuration
SW1(config-mst)#name Networklessons
SW1(config-mst)#revision 1
SW1(config-mst)#instance 2 vlan 10,20,30
SW1(config-mst)#instance 3 vlan 40,50,60
SW1(config-mst)#exit
SW2(config)#spanning-tree mst configuration
SW2(config-mst)#name Networklessons
SW2(config-mst)#revision 1
SW2(config-mst)#instance 2 vlan 10,20,30
SW2(config-mst)#instance 3 vlan 40,50,60
SW2(config-mst)#exit
SW3(config)#spanning-tree mst configuration
SW3(config-mst)#name Networklessons
SW3(config-mst)#revision 1
SW3(config-mst)#instance 2 vlan 10,20,30
SW3(config-mst)#instance 3 vlan 40,50,60
SW3(config-mst)#exit
Так настраивается MST. Сначала понадобится команда конфигурации spanning-tree mst, чтобы войти в конфигурацию MST. Устанавливаем имя, используя команду name. Не забудьте установить номер версии и сопоставить экземпляры с помощью команды instance. Давайте проверим работу:
SW1#show spanning-tree mst configuration
Name [Networklessons]
Revision 1 Instances configured 3
Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-9,11-19,21-29,31-39,41-49,51-59,61-4094
2 10,20,30
3 40,50,60
-------------------------------------------------------------------------------
Используем команду show spanning-tree mst configuration, чтобы проверить конфигурацию. Можно видеть, что есть два экземпляра. VLANы сопоставляются с экземплярами 2 и 3. Все остальные VLAN все еще сопоставляются с экземпляром 0.
Пока что так хорошо, давайте немного поэкспериментируем с MST и изменим корневой мост:
Я хочу убедиться, что SW1 является корневым мостом в регионе. Нужно будет изменить приоритет для IST:
SW1(config)#spanning-tree mst 0 priority 4096
Вот как изменяется приоритет для экземпляра MST 0.
SW1#show spanning-tree mst
##### MST0 vlans mapped: 1-9,11-19,21-29,31-39,41-49,51-59,61-4094
Bridge address 0011.bb0b.3600 priority 4096 (4096 sysid 0)
Root this switch for the CIST
Здесь можно увидеть, что SW1 является корневым мостом для IST. В нем говорится о CIST, который обозначает Common and Internal Spanning Treee.
Давайте рассмотрим интерфейсы:
SW1#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Desg FWD 200000 128.19 P2p
SW2#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.16 P2p
Fa0/16 Altn BLK 200000 128.18 P2p
SW3#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.14 P2p
Fa0/16 Desg FWD 200000 128.16 P2p
Теперь мы знаем состояние всех интерфейсов. Давайте нарисуем картинку, чтобы понять, как выглядит IST:
Теперь я хочу внести некоторые изменения в экземпляр 2, поэтому теперь SW2 будет корневым мостом:
SW2(config)#spanning-tree mst 2 priority 4096
Мы изменим приоритет на SW2 для экземпляра 2.
SW2#show spanning-tree mst 2
MST2 vlans mapped: 10,20,30
Bridge address 0019.569d.5700 priority 4098 (4096 sysid 2)
Root this switch for MST2
Эта команда доказывает, что SW2 является корневым мостом для экземпляра 2. Давайте проверим интерфейсы:
SW1#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.16 P2p
Fa0/17 Altn BLK 200000 128.19 P2p
SW2#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/16 Desg FWD 200000 128.18 P2p
SW3#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.14 P2p
Fa0/16 Root FWD 200000 128.16 P2p
Вот как выглядит экземпляр 2. Давайте превратим код представленный выше в приятную картинку:
Вот причудливая картина экземпляра 2, которая показывает роли порта. Обратите внимание, что эта топология выглядит иначе, чем та, что для экземпляра 0.
И последнее, но не менее важное: теперь я сделаю некоторые изменения в экземпляре 3:
SW3(config)#spanning-tree mst 3 priority 4096
SW3 станет корневым мостом, например 3.
SW3#show spanning-tree mst 3
MST3 vlans mapped: 40,50,60
Bridge address 000f.34ca.1000 priority 4099 (4096 sysid 3)
Root this switch for MST3
SW3 теперь является корневым мостом экземпляра 3. Давайте посмотрим на интерфейсы:
SW1#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Root FWD 200000 128.19 P2p
SW2#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Altn BLK 200000 128.16 P2p
Fa0/16 Root FWD 200000 128.18 P2p
SW3#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.14 P2p
Fa0/16 Desg FWD 200000 128.16 P2p
Теперь мы можем сделать еще одну картину топологии:
Давайте сравним экземпляры 2 и 3 рядом друг с другом:
Слева вы видите экземпляр 2, а справа — экземпляр 3.
Изменяя экземпляр корневого моста, мы получаем разные топологии:
- Экземпляр 2: fa0/17 на SW1 заблокирован для VLAN 10, 20 и 30.
- Экземпляр 3: fa0/14 на SW2 заблокирован для VLAN 40, 50 и 60.
Что произойдёт, когда я добавлю другой коммутатор, который работает с PVST, в топологию? Давайте выясним!
SW4(config)#spanning-tree mode pvst
PVST по умолчанию используется для большинства коммутаторов Cisco.
SW4(config)#interface fa0/16
SW4(config-if)#switchport trunk encapsulation dot1q
SW4(config-if)#switchport mode trunk
SW4(config)#interface fa0/19
SW4(config-if)#switchport trunk encapsulation dot1q
SW4(config-if)#switchport mode trunk
SW4(config)#vlan 10
SW4(config-vlan)#vlan 20
SW4(config-vlan)#vlan 30
SW4(config-vlan)#vlan 40
SW4(config-vlan)#vlan 50
SW4(config-vlan)#vlan 60
SW4(config-vlan)#exit
Я хочу убедиться, что у нас есть транк для SW2 и SW3, и что SW4 знает обо всех VLAN. Давайте посмотрим, что SW4 думает обо всем этом:
SW4#show spanning-tree vlan 1
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p
Это то, что SW4 видит в сети VLAN 1. Имейте в виду, что эта VLAN была сопоставлена с экземпляром 0. Он видит SW1 в качестве корневого моста, и вы можете видеть, какой порт находится в режиме пересылки и блокировки.
SW4#show spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p
VLAN 10, сопоставляется с экземпляром 2. SW4 рассматривает SW1 как корневой мост для этой VLAN, хотя мы сконфигурировали SW2 как корневой мост для экземпляра 2. Это совершенно нормально, потому что MST будет рассылать BPDU из IST во внешний мир. Мы не увидим никакой информации из экземпляра 2 или экземпляра 3 на SW4.
SW4#show spanning-tree vlan 40
VLAN0040
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32808 (priority 32768 sys-id-ext 40)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p
VLAN 40 сопоставляется с экземпляром 3, но вы можете видеть, что SW4 видит SW1 в качестве корневого моста. SW4 получает тот же BPDU для всех сетей VLAN.
Надеюсь, эта статья была полезна для вас, и вы узнали много нового.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.