В текущей топологии поставлены следующие цели:
1) Вручную назначить CIST Root свитч
2) Вручную назначить CIST Regional Root свитчи для каждого региона
3) Вручную назначим Root для каждого инстанса
SW1 - regional root, раздаёт вланы и инстансы по vtp
Вначале базово сконфигурируем свитчи и инстансы, потом возьмёмся за сладкое
SW1 раздаёт вланы и инстансы по vtp на первый регион
1) Создаём vlan
SW1(config)# vlan 11
SW1(config-vlan)# name stimvlan11
SW1(config-vlan)# exit
SW1(config)# vlan 12
SW1(config-vlan)# name stimvlan12
SW1(config-vlan)# exit
SW1(config)# vlan 13
SW1(config-vlan)# name stimvlan13
SW1(config-vlan)# exit
SW1(config)# vlan 21
SW1(config-vlan)# name stimvlan21
SW1(config-vlan)# exit
SW1(config)# vlan 22
SW1(config-vlan)# name stimvlan22
SW1(config-vlan)# exit
SW1(config)# vlan 23
SW1(config-vlan)# name stimvlan23
SW1(config-vlan)# exit
SW1(config)# vlan 99
SW1(config-vlan)# name stimnativevlan99
SW1(config-vlan)# exit
2) Конфигурируем интерфейсы
SW1(config)# interface range ethernet 0/0 - 3
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk native vlan 99
SW1(config-if)# exit
SW1(config)# interface range ethernet 1/0 - 3
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk native vlan 99
SW1(config-if)# exit
3) Включаем spanning-tree режим mst
SW1(config)# spanning-tree mode mst
SW1(config)# spanning-tree mst configuration
SW1(config-mst)# name stimregion1
SW1(config-mst)# revision 4
SW1(config-mst)# instance 10 vlan 11, 12, 13
SW1(config-mst)# instance 20 vlan 21, 22, 23
SW1(config-mst)# exit
4) Конфигурируем vtp для редистрибьюции vlan и instance
SW1(config)# vtp mode server
Device mode already VTP Server for VLANS.
SW1(config)# vtp domain stimvtpdomain
Changing VTP domain name from NULL to stimvtpdomain
SW1(config)# vtp password 123456
Setting device VTP password to 123456
SW1(config)# vtp version 3
SW1(config)#exit
SW1# vtp primary vlan
SW1# conf t
SW1(config)# vtp mode server mst
SW1(config)#exit
SW1# vtp primary mst
SW2 - SW4
1) Конфигурируем интерфейсы
SW2(config)# interface range ethernet 0/0 - 3
SW2(config-if)# switchport trunk encapsulation dot1q
SW2(config-if)# switchport mode trunk
SW2(config-if)# switchport trunk native vlan 99
SW2(config-if)# exit
SW2(config)# interface range ethernet 1/0 - 3
SW2(config-if)# switchport trunk encapsulation dot1q
SW2(config-if)# switchport mode trunk
SW2(config-if)# switchport trunk native vlan 99
SW2(config-if)# exit
2) Переводим в режим клиента vtp для получения вланов и инстансов
SW2(config)# vtp mode server
SW2(config)# vtp domain stimvtpdomain
SW2(config)# vtp password 123456
SW2(config)# vtp version 3
SW2(config)# vtp mode client
В этот момент свитч поймает вланы от SW1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active
11 stimvlan11 active
12 stimvlan12 active
13 stimvlan13 active
21 stimvlan21 active
22 stimvlan22 active
23 stimvlan23 active
77 test77new active
99 stimnativevlan99 active
1002 fddi-default act/unsup
1003 trcrf-default act/unsup
1004 fddinet-default act/unsup
1005 trbrf-default act/unsup
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Включаем режим mst и переводим в режим клиента
Switch(config)#spanning-tree mode mst
Switch(config)#vtp mode client mst
Впихивать картинку развёртки инстансов влом(будет позже), приведу только краткий статус
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
SW3(config)#do show vtp status
VTP Version capable : 1 to 3
VTP version running : 3
VTP Domain Name : stimvtpdomain
VTP Pruning Mode : Disabled
VTP Traps Generation : Disabled
Device ID : aabb.cc00.0300
Feature VLAN:
--------------
VTP Operating Mode : Client
Number of existing VLANs : 13
Number of existing extended VLANs : 0
Maximum VLANs supported locally : 4096
Configuration Revision : 2
Primary ID : aabb.cc00.0100
Primary Description : SW1
MD5 digest : 0x9B 0x2B 0x76 0x19 0x86 0x72 0xE5 0xC7
0xF1 0x35 0x2B 0xE7 0x49 0xFB 0xAB 0xB9
Feature MST:
--------------
VTP Operating Mode : Client
Configuration Revision : 2
Primary ID : aabb.cc00.0100
Primary Description : SW1
MD5 digest : 0x93 0x9C 0x0F 0x38 0x73 0xD2 0x42 0xCC
0xD0 0xD6 0xC2 0xEE 0xE2 0x55 0xCA 0xD4
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
SW6 раздаёт вланы и инстансы по vtp на второй регион
1) Создаём vlan
Обратим внимание что native vlan остаётся 99, иначе транки не будут работать правильно
SW6(config)# vlan 211
SW6(config-vlan)# name stimvlan211
SW6(config-vlan)# exit
SW6(config)# vlan 212
SW6(config-vlan)# name stimvlan212
SW6(config-vlan)# exit
SW6(config)# vlan 213
SW6(config-vlan)# name stimvlan213
SW6(config-vlan)# exit
SW6(config)# vlan 221
SW6(config-vlan)# name stimvlan221
SW6(config-vlan)# exit
SW6(config)# vlan 222
SW6(config-vlan)# name stimvlan222
SW6(config-vlan)# exit
SW6(config)# vlan 223
SW6(config-vlan)# name stimvlan223
SW6(config-vlan)# exit
SW6(config)# vlan 99
SW6(config-vlan)# name stimnativevlan99
SW6(config-vlan)# exit
2) Конфигурируем интерфейсы
SW6(config)# interface range ethernet 0/0 - 3
SW6(config-if)# switchport trunk encapsulation dot1q
SW6(config-if)# switchport mode trunk
SW6(config-if)# switchport trunk native vlan 99
SW6(config-if)# exit
SW6(config)# interface range ethernet 1/0 - 3
SW6(config-if)# switchport trunk encapsulation dot1q
SW6(config-if)# switchport mode trunk
SW6(config-if)# switchport trunk native vlan 99
SW6(config-if)# exit
3) Включаем spanning-tree режим mst
SW6(config)# spanning-tree mode mst
SW6(config)# spanning-tree mst configuration
SW6(config-mst)# name stimregion2
SW6(config-mst)# revision 22
SW6(config-mst)# instance 210 vlan 211, 212, 213
SW6(config-mst)# instance 220 vlan 221, 222, 223
SW6(config-mst)# exit
4) Конфигурируем vtp для редистрибьюции vlan и instance
SW6(config)# vtp mode server
Device mode already VTP Server for VLANS.
SW6(config)# vtp domain stimvtpdomaintwo
Changing VTP domain name from NULL to stimvtpdomain
SW6(config)# vtp password 1223456
Setting device VTP password to 1223456
SW6(config)# vtp version 3
SW6(config)#exit
SW6# vtp primary vlan
SW6# conf t
SW6(config)# vtp mode server mst
SW6(config)#exit
SW6# vtp primary mst
SW5,7,8
1) Конфигурируем интерфейсы
SW(config)# interface range ethernet 0/0 - 3
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan 99
SW(config-if)# exit
SW(config)# interface range ethernet 1/0 - 3
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan 99
SW(config-if)# exit
2) Переводим в режим клиента vtp для получения вланов и инстансов
SW(config)# vtp mode server
SW(config)# vtp domain stimvtpdomaintwo
SW(config)# vtp password 1223456
SW(config)# vtp version 3
SW(config)# vtp mode client
SW(config)# spanning-tree mode mst
SW(config)# vtp mode client mst
W10 раздаёт вланы и инстансы по vtp на второй регион
1) Создаём vlan
Обратим внимание что native vlan остаётся 99, иначе транки не будут работать правильно
SW6(config)# vlan 311
SW6(config-vlan)# name stimvlan211
SW6(config-vlan)# exit
SW6(config)# vlan 312
SW6(config-vlan)# name stimvlan212
SW6(config-vlan)# exit
SW6(config)# vlan 313
SW6(config-vlan)# name stimvlan213
SW6(config-vlan)# exit
SW6(config)# vlan 321
SW6(config-vlan)# name stimvlan221
SW6(config-vlan)# exit
SW6(config)# vlan 322
SW6(config-vlan)# name stimvlan222
SW6(config-vlan)# exit
SW6(config)# vlan 323
SW6(config-vlan)# name stimvlan223
SW6(config-vlan)# exit
SW6(config)# vlan 99
SW6(config-vlan)# name stimnativevlan99
SW6(config-vlan)# exit
2) Конфигурируем интерфейсы
SW6(config)# interface range ethernet 0/0 - 3
SW6(config-if)# switchport trunk encapsulation dot1q
SW6(config-if)# switchport mode trunk
SW6(config-if)# switchport trunk native vlan 99
SW6(config-if)# exit
SW6(config)# interface range ethernet 1/0 - 3
SW6(config-if)# switchport trunk encapsulation dot1q
SW6(config-if)# switchport mode trunk
SW6(config-if)# switchport trunk native vlan 99
SW6(config-if)# exit
3) Включаем spanning-tree режим mst
SW6(config)# spanning-tree mode mst
SW6(config)# spanning-tree mst configuration
SW6(config-mst)# name stimregion3
SW6(config-mst)# revision 33
SW6(config-mst)# instance 310 vlan 311, 312, 313
SW6(config-mst)# instance 320 vlan 321, 322, 323
SW6(config-mst)# exit
4) Конфигурируем vtp для редистрибьюции vlan и instance
SW6(config)# vtp mode server
Device mode already VTP Server for VLANS.
SW6(config)# vtp domain stimvtpdomainthree
Changing VTP domain name from NULL to stimvtpdomainthree
SW6(config)# vtp password 1233456
Setting device VTP password to 1233456
SW6(config)# vtp version 3
SW6(config)#exit
SW6# vtp primary vlan
SW6# conf t
SW6(config)# vtp mode server mst
SW6(config)#exit
SW6# vtp primary mst
SW9,11,12
1) Конфигурируем интерфейсы
SW(config)# interface range ethernet 0/0 - 3
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan 99
SW(config-if)# exit
SW(config)# interface range ethernet 1/0 - 3
SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan 99
SW(config-if)# exit
2) Переводим в режим клиента vtp для получения вланов и инстансов
SW(config)# vtp mode server
SW(config)# vtp domain stimvtpdomainthree
SW(config)# vtp password 1233456
SW(config)# vtp version 3
SW(config)# vtp mode client
SW(config)# spanning-tree mode mst
SW(config)# vtp mode client mst
Итак, базовая настройка топологии закончена и схема теперь функционирует (особо желающим могу дать полный снимок лабы на этом моменте, хотя точно знаю, что таких желающих не будет).
========================================================================
========================================================================
========================================================================
Теперь о практических тонкостях, которые в теории кажутся лёгкими и гладкими:
1) BridgeID состоит из приоритета и MAC-адреса уcтройства
а) Приоритет задаётся для каждого определённого инстанса свой собственный, а не для физического порта, командой Switch(config)# spanning-tree mst X priority Y (по-умолчанию 32768). Тут опять же надо отметить, что никакой магии не существует, и главное управление у нас ползает по нулевому инстансу между регионами.
б) МАС-адрес устройства берётся из MAC-адресов физических интерфейсов, по принципу: самый старый мак должен оставаться рутом, чтобы не падала топология на каждом включении нового девайса, и не иницировались глобальные перевыборы.
Например, если у свитча имеются MAC адреса на интерфейсах:
aabb.cc00.0100
aabb.cc00.0110
...
aabb.cc00.0180
то в Bridge ID пойдёт MAC адрес aabb.cc00.0100
Дефолтные значения
SW1#sh sp m
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
##### MST0 vlans mapped: 1-10,14-20,24-76,78-4094
Bridge address aabb.cc00.0100 priority 32768 (32768 sysid 0)
Root this switch for the CIST
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
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
После выполнения команды
SW1(config)# spanning-tree mst 0 priority 20480
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
##### MST0 vlans mapped: 1-10,14-20,24-76,78-4094
Bridge address aabb.cc00.0100 priority 20480 (20480 sysid 0)
Root this switch for the CIST
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
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Основное блюдо
На основании моих заметок теоретического курса по MSTP приступим
1) Вручную назначить CIST Root свитч
Способ номер 1:
SW6(config)# spanning-tree mst 0 priority 20480
Способ номер 2:
SW6(config)# spanning-tree mst 0 root primary
Результат альтернативен для обоих случаев:
SW6#show spanning-tree mst -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
##### MST0 vlans mapped: 1-10,14-20,24-76,78-4094
Bridge address aabb.cc00.0600 priority 32768 (32768 sysid 0)
Root this switch for the CIST
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
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
##### MST0 vlans mapped: 1-10,14-20,24-76,78-4094
Bridge address aabb.cc00.0600 priority 32768 (32768 sysid 0)
Root this switch for the CIST
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
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2) Вручную назначить CIST Regional Root свитчи для каждого региона
По-умолчанию, вне региона, где расположен CIST Root, кандидатами на Regional Root будут только boundary свитчи (т.е. имеющие порты смотрящие в другие регионы)
Цепочка выбора предпочтительного кандидата выглядит так:
1) наименьший путь от кандидата до региона CIST Root включая путь путь внутри региона от кандидата
2) если пути равны, сравнивается Bridge ID. Вначале приоритет, если приоритеты равны, то MAC. Меньшее число более приоритетно.
Способы:
1) Изменение скорости линков
SW(config)#int ethernet 0/0
SW(config-if)#spanning-tree mst 0 cost ?
<1-200000000> Change the interface spanning tree path cost for an instance
SW(config-if)#spanning-tree mst 0 cost 2000000
SW(config-if)#spanning-tree mst 0 cost ?
<1-200000000> Change the interface spanning tree path cost for an instance
SW(config-if)#spanning-tree mst 0 cost 2000000
2) Изменение приоритетов
SW(config)# spanning-tree mst <номер_инстанса> priority <цифра>
3) Изменение MAC ( это для особо извращенцев )
4) Выкинуть всё нафиг и перепланировать сетку заново.
Результат:
SW#show spanning-tree mst ( лог не привожу, тут всё несложно, но указание на Regional Root можно увидеть, и даже желательно, с соседних свитчей, вдобавок, это позволит выявить ошибки в топологии, если такие есть )
3) Вручную назначим Root для каждого инстанса
Назначение рута возможно двумя способами
1) Через приоритет
SW(config)# spanning-tree mst <номер_инстанса> priority <цифра>
2) Напрямую root
2) Напрямую root
SW(config)# spanning-tree mst <номер_инстанса> root primary
Перед назначением рутовых свитчей рекомендуется расчертить топологию по логическим инстансам, вместе с графической балансировкой трафика. Разумеется, в каждой практической ситуации будет разная и схема и балансировка.
Перед назначением рутовых свитчей рекомендуется расчертить топологию по логическим инстансам, вместе с графической балансировкой трафика. Разумеется, в каждой практической ситуации будет разная и схема и балансировка.
Комментариев нет:
Отправить комментарий