суббота, 10 мая 2014 г.

MSTP Global Topology


В текущей топологии поставлены следующие цели:
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   (по-умолчанию 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


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


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
 

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
SW(config)# spanning-tree mst <номер_инстанса>  root primary

Перед назначением рутовых свитчей рекомендуется расчертить топологию по логическим инстансам, вместе с графической балансировкой трафика. Разумеется, в каждой практической ситуации будет разная и схема и балансировка.

Комментариев нет:

Отправить комментарий