MSTP позволяет в одном устройстве создавать разные экземпляры (instance) STP для разных VLAN. Каждый экземпляр выбирает свой Root Bridge или же разные пути до него. Таким образом обеспечивается балансировка трафика по VLAN. Внутри экземпляра работают правила RSTP, точно также выбираются Root Bridge, Root и Dsgn порты.
В данной статье разобран пример конфигурации и работы MSTP на маршрутизаторах R1, R2, R3, R4.
spanning-tree
mstp
interface tengigabitethernet 0/0/15
exit
interface tengigabitethernet 0/0/16
exit
msti 1 <<<<<<<<<<<<<<< создание экземпляра для определенного диапазона VLAN
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test <<<<<<<<<<<<<<<<< название области должно совпадать
revision 1 <<<<<<<<<<<<<<<<< ревизия должна совпадать
exit
exit
spanning-tree
mstp
interface hundredgigabitethernet 0/0/1
exit
interface tengigabitethernet 0/0/25
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
spanning-tree
mstp
interface hundredgigabitethernet 0/0/4
exit
interface tengigabitethernet 0/0/22
exit
interface tengigabitethernet 0/0/24
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
spanning-tree
mstp
interface tengigabitethernet 0/0/15
exit
interface tengigabitethernet 0/0/16
exit
interface tengigabitethernet 0/0/18
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
Командой show spanning-tree можно узнать статусы портов, на R1 это будет выглядеть вот так:
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 0 128.16 2000 fwd Dsgn p2p te0/0/16 0 128.17 2000 fwd Dsgn p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 1 128.16 2000 fwd Dsgn p2p te0/0/15 2 128.16 2000 fwd Dsgn p2p te0/0/16 1 128.17 2000 fwd Dsgn p2p te0/0/16 2 128.17 2000 fwd Dsgn p2p
Когда устройство является Root Bridge, то все его порты находятся в статусе fwd и роль у них Dsgn.
Вывод команды с R2:
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/25 0 128.8 2000 blk Altn p2p hu0/0/1 0 128.73 200 fwd Root p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/25 1 128.8 2000 blk Altn p2p te0/0/25 2 128.8 2000 blk Altn p2p hu0/0/1 1 128.73 200 fwd Root p2p hu0/0/1 2 128.73 200 fwd Root p2p
Мы видим, что интерфейс te0/0/25 заблокирован для msti 1 и трафик будет проходить через hu0/0/1, так как он в статусе fwd. Для msti 2 также заблокирован интерфейс te0/0/25 и передача трафика будет осуществляться по интерфейсу hu0/0/1.
При дефолтных настройках MSTP работает как RSTP. Для того, чтобы уйти от дефолта и сделать балансировку, необходимо дополнительно внести изменения в конфигурацию msti.
msti 0 — используется для управления топологией внутри региона. По умолчанию все VLAN’ы относятся к нему.
msti0: 1-9, 51-99, 201-4096
msti1: 10-50
msti2: 100-200
Благодаря работе протокола RSTP, внутри msti 0 заблокировались излишние линки.
В конфигурации spanning-tree есть возможность изменить стоимость пути (path-cost) в конкретном msti для изменения структуры дерева.
Внесем изменения в конфигурацию маршрутизатора R1 в msti 0:
spanning-tree
mstp
interface tengigabitethernet 0/0/15
path-cost 20000 <<<<<<<<<<<<<<<<<<<< изменили cost для 0/0/15 в msti 0
exit
interface tengigabitethernet 0/0/16
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
На R4 также изменили cost на 20000 в сторону R1, в сторону R3 установили cost 20.
Соответствие скорости и стоимости соединения:
10 Mb/s: Cost=2000000
100 Mb/s: Cost=200000
1000 Mb/s: Cost=20000
10000 Mb/s: Cost=2000
Роли портов поменялись.
show spanning-tree с R4:
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 0 128.16 20000 blk Altn p2p te0/0/16 0 128.17 2000 fwd Dsgn p2p te0/0/18 0 128.19 20 fwd Root p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 1 128.16 2000 fwd Root p2p te0/0/15 2 128.16 2000 fwd Root p2p te0/0/16 1 128.17 2000 fwd Dsgn p2p te0/0/16 2 128.17 2000 fwd Dsgn p2p te0/0/18 1 128.19 2000 fwd Dsgn p2p te0/0/18 2 128.19 2000 fwd Dsgn p2p
Далее будем менять путь до Root Bridge (R1) для msti1 и msti2.
spanning-tree
mstp
interface tengigabitethernet 0/0/15
path-cost 20000
exit
interface tengigabitethernet 0/0/16
if-msti 1 <<<<<<<<<<<<<<<<<< переходим в if-msti 1, чтобы изменить cost
path-cost 200
exit
if-msti 2
path-cost 3000
exit
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 0 128.16 2000 fwd Dsgn p2p te0/0/16 0 128.17 2000 fwd Dsgn p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 1 128.16 2000 fwd Dsgn p2p te0/0/15 2 128.16 2000 fwd Dsgn p2p te0/0/16 1 128.17 200 fwd Dsgn p2p te0/0/16 2 128.17 3000 fwd Dsgn p2p
spanning-tree
mstp
interface hundredgigabitethernet 0/0/1
if-msti 1
path-cost 2000
exit
exit
interface tengigabitethernet 0/0/25
if-msti 1
path-cost 200
exit
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/25 0 128.8 2000 blk Altn p2p hu0/0/1 0 128.73 200 fwd Root p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/25 1 128.8 200 fwd Root p2p te0/0/25 2 128.8 2000 blk Altn p2p hu0/0/1 1 128.73 2000 down Altn p2p * hu0/0/1 2 128.73 200 fwd Root p2p
* опечатка в статусе порта: down Altn ; данная ошибка будет исправлена в следующих версиях ПО.
spanning-tree
mstp
interface hundredgigabitethernet 0/0/4
if-msti 1
path-cost 2000
exit
exit
interface tengigabitethernet 0/0/22
if-msti 1
path-cost 200
exit
if-msti 2
path-cost 3000
exit
exit
interface tengigabitethernet 0/0/24
if-msti 2
path-cost 200
exit
path-cost 20
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/22 0 128.25 2000 fwd Root p2p te0/0/24 0 128.27 20 fwd Dsgn p2p hu0/0/4 0 128.39 200 fwd Dsgn p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/22 1 128.25 200 fwd Root p2p te0/0/22 2 128.25 3000 down Altn p2p te0/0/24 1 128.27 2000 fwd Dsgn p2p te0/0/24 2 128.27 200 fwd Root p2p hu0/0/4 1 128.39 2000 fwd Dsgn p2p hu0/0/4 2 128.39 200 fwd Dsgn p2p
spanning-tree
mstp
interface tengigabitethernet 0/0/15
path-cost 20000
exit
interface tengigabitethernet 0/0/16
if-msti 1
path-cost 200
exit
exit
interface tengigabitethernet 0/0/18
if-msti 1
path-cost 200
exit
path-cost 20
exit
msti 1
vlans 10-50
exit
msti 2
vlans 100-200
exit
region test
revision 1
exit
exit
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 0 128.16 20000 blk Altn p2p te0/0/16 0 128.17 2000 fwd Dsgn p2p te0/0/18 0 128.19 20 fwd Root p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 1 128.16 2000 blk Altn p2p te0/0/15 2 128.16 2000 fwd Root p2p te0/0/16 1 128.17 200 fwd Dsgn p2p te0/0/16 2 128.17 2000 fwd Dsgn p2p te0/0/18 1 128.19 200 fwd Root p2p te0/0/18 2 128.19 2000 fwd Dsgn p2p
Схематично пути до Root Bridge для разных msti будут выглядеть вот так:
На маршрутизаторах серии ME также возможно принудительно задать Root Bridge.
Изменение приоритета моста в RSTP выполняется для оптимизации топологии путем настройки более низкого значения приоритета с шагом 4096 (0/4096/8192/12288/16384/../61440), по умолчанию приоритет равен 32768 + msti ID. Корневым становится устройство с наименьшим приоритетом Bridge ID.
Далее мы изменим Root Bridge внутри msti 2.
spanning-tree
mstp
interface hundredgigabitethernet 0/0/1
if-msti 1
path-cost 2000
exit
exit
interface tengigabitethernet 0/0/25
if-msti 1
path-cost 200
exit
exit
msti 1
vlans 10-50
exit
msti 2 <<<<<<<<<<<<<<<<< для изменения Bridge ID необходимо перейти в нужный msti
bridge-priority 4096
vlans 100-200
exit
region test
revision 1
exit
exit
С прежней конфигурацией и изменением для msti 2 корневого моста, статусы и роли портов будут выглядеть вот так:
MST1
VLANs mapped to this MSTI: 10-50
Root ID Address E4:5A:D4:5B:29:80
Priority 32769
This switch is the regional Root
Bridge ID Address E4:5A:D4:5B:29:80
Priority 32769
interface mst index prio.nbr cost state role type
------------------------ ---------- --------- ------------ ------- --------- -----
te0/0/15 0 128.16 20000 fwd Dsgn p2p
te0/0/16 0 128.17 2000 fwd Dsgn p2p
interface mst index prio.nbr cost state role type
------------------------ ---------- --------- ------------ ------- --------- -----
te0/0/15 1 128.16 2000 fwd Dsgn p2p
te0/0/15 2 128.16 2000 down Altn p2p
te0/0/16 1 128.17 200 fwd Dsgn p2p
te0/0/16 2 128.17 3000 fwd Root p2p
MST2
VLANs mapped to this MSTI: 100-200
Root ID Address E8:28:C1:48:05:40
Priority 4098
This switch is the regional Root
Bridge ID Address E8:28:C1:48:05:40
Priority 4098
interface mst index prio.nbr cost state role type
------------------------ ---------- --------- ------------ ------- --------- -----
te0/0/25 0 128.8 2000 blk Altn p2p
hu0/0/1 0 128.73 200 fwd Root p2p
interface mst index prio.nbr cost state role type
------------------------ ---------- --------- ------------ ------- --------- -----
te0/0/25 1 128.8 200 fwd Root p2p
te0/0/25 2 128.8 2000 fwd Dsgn p2p
hu0/0/1 1 128.73 2000 down Altn p2p
hu0/0/1 2 128.73 200 fwd Dsgn p2p
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/22 0 128.25 2000 fwd Root p2p te0/0/24 0 128.27 20 fwd Dsgn p2p hu0/0/4 0 128.39 200 fwd Dsgn p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/22 1 128.25 200 fwd Root p2p te0/0/22 2 128.25 3000 fwd Dsgn p2p te0/0/24 1 128.27 2000 fwd Dsgn p2p te0/0/24 2 128.27 200 fwd Dsgn p2p hu0/0/4 1 128.39 2000 fwd Dsgn p2p hu0/0/4 2 128.39 200 fwd Root p2p
interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 0 128.16 20000 blk Altn p2p te0/0/16 0 128.17 2000 fwd Dsgn p2p te0/0/18 0 128.19 20 fwd Root p2p interface mst index prio.nbr cost state role type ------------------------ ---------- --------- ------------ ------- --------- ----- te0/0/15 1 128.16 2000 blk Altn p2p te0/0/15 2 128.16 2000 fwd Dsgn p2p te0/0/16 1 128.17 200 fwd Dsgn p2p te0/0/16 2 128.17 2000 fwd Root p2p te0/0/18 1 128.19 200 fwd Root p2p te0/0/18 2 128.19 2000 down Altn p2p
Схематично это будет выглядеть так:




