MSTP позволяет в одном устройстве создавать разные экземпляры (instance) STP для разных VLAN. Каждый экземпляр выбирает свой Root Bridge или же разные пути до него. Таким образом обеспечивается балансировка трафика по VLAN. Внутри экземпляра работают правила RSTP, точно также выбираются Root Bridge, Root и Dsgn порты.

В данной статье разобран пример конфигурации и работы MSTP на маршрутизаторах R1, R2, R3, R4.

Конфигурация R1
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
Конфигурация R2
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
Конфигурация R3
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
Конфигурация R4
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:

R1
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.

R1
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 
R2
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 ; данная ошибка будет исправлена в следующих версиях ПО.


R3
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
R4
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.

R2
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 корневого моста, статусы и роли портов будут выглядеть вот так:

R1
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 


R2
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 


R3
 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 


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         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


Схематично это будет выглядеть так:


  • Нет меток