# MSTP

![Схема сети](https://1953625668-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MFMJhMiVjTLWfbfC-S4%2F-MXro7ZBRqgdGaYHoXFp%2F-MXroIZiMXjlk_Ngug5w%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media\&token=98be8aee-da1a-4dcd-9f2f-2445634b31f2)

Некоторые термины протокола MSTP:

* Region - Группа коммутаторов с одинаковыми MSTI. По факту, один регион для другого выглядит как один большой коммутатор.
* MSTI (Multiple Spanning Tree Instance) - Объект MSTP, объединяющий в себе настройки для отдельного процесса STP, в который входят VLANы, Bridge-Priority для них и остальные настройки STP.
* IST (Internal Spanning Tree) - Отдельный процесс для построения дерева вне зависимости от Instances. Нужно для управления. Все VLANы, которые не включены в MSTI входят сюда, в MSTI 0.
* CST (Common Spanning Tree) - Отдельный процесс для построения дерева между регионами и отдельными RSTP и STP устройствами. Для CST регионы выглядят отдельными коммутаторами или Virtual-Switches/Virtual-Bridges
* CIST (Common and Internal Spanning Tree) - отдельный STP-процесс, который связывает CST и IST.

Конфигурация региона:

* configuration-name - Имя региона, является частью MST Configuration ID (должно быть одинаковым в одном регионе).
* revision-level - Номер региона, является частью MST Configuration ID (должно быть одинаковым в одном регионе).
* msti - настройка для отдельных MSTI. Тут, как обычно, соблюдается иерархичность конфигурации.

Пример настройки MSTP на коммутаторах из различных регионов (Все 1000 вланов на регион смысла настраивать нет. Настроим по 2 на MSTI):

{% tabs %}
{% tab title="Sun" %}
```
interfaces {
    xe-0/0/0 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 4000 ];
                }
            }
        }
    }
    xe-0/0/1 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 4000 ];
                }
            }
        }
    }
    xe-0/0/3 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 4000 ];
                }
            }
        }
    }
    xe-0/0/4 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 4000 ];
                }
            }
        }
    }
}
protocols {
    mstp {
        configuration-name Sun-System-1;
        revision-level 1;
        interface all;
        msti 1 {
            vlan 1-500;
        }
        msti 2 {
            bridge-priority 0;
            vlan 501-1000;
        }
        msti 3 {
            vlan 1001-1700;
        }
    }
}
vlans {
    mgmt {
        vlan-id 4000;
    }
    v10 {
        vlan-id 10;
    }
    v1010 {
        vlan-id 1010;
    }
    v110 {
        vlan-id 110;
    }
    v1200 {
        vlan-id 1200;
    }
    v1410 {
        vlan-id 1410;
    }
    v1500 {
        vlan-id 1500;
    }
    v510 {
        vlan-id 510;
    }
    v610 {
        vlan-id 610;
    }
}
```
{% endtab %}

{% tab title="Mars" %}
```
system {
    host-name Mars;
    root-authentication {
        encrypted-password "$6$60a/FKxt$n8t.mv6n1f.ig/Onlpif4Zd3x2PXx3pnL2qnWvJ4iZO1UdYPn2F/zYVCZY6H41XMxCq9PxROJWdfw7xjAWKws."; ## SECRET-DATA
    }
}
interfaces {
    xe-0/0/0 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 1710 1900 4000 ];
                }
            }
        }
    }
    xe-0/0/2 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 1710 1900 4000 ];
                }
            }
        }
    }
    xe-0/0/3 {
        native-vlan-id 4000;
        unit 0 {
            family ethernet-switching {
                interface-mode trunk;
                vlan {
                    members [ 10 110 510 610 1010 1200 1410 1500 4000 ];
                }
            }
        }
    }
    em1 {
        unit 0 {
            family inet {
                address 169.254.0.2/24;
            }
        }
    }
}
protocols {
    mstp {
        configuration-name Sun-System-2;
        revision-level 2;
        interface all;
        msti 1 {
            vlan 1001-1400;
        }
        msti 2 {
            bridge-priority 0;
            vlan 1401-1700;
        }
        msti 3 {
            vlan 1701-2000;
        }
        msti 4 {
            vlan 1-1000;
        }
    }
}
vlans {
    mgmt {
        vlan-id 4000;
    }
    v10 {
        vlan-id 10;
    }
    v1010 {
        vlan-id 1010;
    }
    v110 {
        vlan-id 110;
    }
    v1200 {
        vlan-id 1200;
    }
    v1410 {
        vlan-id 1410;
    }
    v1500 {
        vlan-id 1500;
    }
    v1710 {
        vlan-id 1710;
    }
    v1900 {
        vlan-id 1900;
    }
    v510 {
        vlan-id 510;
    }
    v610 {
        vlan-id 610;
    }
}
```
{% endtab %}
{% endtabs %}

Т.е. тут видно, что для каждого MSTI мы выбираем VLAN-ы, настраиваем Bridge-Priority и т.д. При этом сами VLAN'ы могут в регионах пересекаться.

Ради интереса можно попробовать найти CIST Root и IST Root. В данном случае корневой коммутатор для CIST и для региона 2 - Уран:

```
root@Uranus# run show spanning-tree bridge msti 0
STP bridge parameters
Routing instance name               : GLOBAL
Context ID                          : 0
Enabled protocol                    : MSTP

STP bridge parameters for CIST
  Root ID                           : 32768.02:05:86:71:18:03
  CIST regional root                : 32768.02:05:86:71:18:03
  CIST internal root cost           : 0
  Hello time                        : 2 seconds
  Maximum age                       : 20 seconds
  Forward delay                     : 15 seconds
  Number of topology changes        : 2
  Time since last topology change   : 996 seconds
  Local parameters
    Bridge ID                       : 32768.02:05:86:71:18:03
```

Для региона 1 же IST Root - это Солнце:

```
root@Sun# run show spanning-tree bridge msti 0
STP bridge parameters
Routing instance name               : GLOBAL
Context ID                          : 0
Enabled protocol                    : MSTP

STP bridge parameters for CIST
  Root ID                           : 32768.02:05:86:71:18:03
  Root cost                         : 2000
  Root port                         : xe-0/0/4
  CIST regional root                : 32768.02:05:86:71:4e:03
  CIST internal root cost           : 0
  Hello time                        : 2 seconds
  Maximum age                       : 20 seconds
  Forward delay                     : 15 seconds
  Hop count                         : 20
  Message age                       : 1
  Number of topology changes        : 5
  Time since last topology change   : 1060 seconds
  Local parameters
    Bridge ID                       : 32768.02:05:86:71:4e:03
```

Посмотреть информацию о регионе и о том какие VLANы включены в MSTI можно командой:

```
root@Sun# run show spanning-tree mstp configuration
MSTP configuration information
Context identifier     : 0
Region name            : Sun-System-1
Revision               : 1
Configuration digest   : 7b:39:51:2d:e0:2d:d2:64:f8:f5:43:da:cc:d8:83:3f


MSTI     Member VLANs
   0      0,1701-4094
   1      1-500
   2      501-1000
   3      1001-1700
```

Ну и посмотреть состояние интерфейсов для определённого MSTI:

```
root@Sun# run show spanning-tree interface msti 1 detail

Spanning tree interface parameters for instance 1

Interface name                 : xe-0/0/0
Port identifier                : 128.490
Designated port ID             : 128.490
Port cost                      : 2000
Port state                     : Blocking
Designated bridge ID           : 32769.02:05:86:71:72:03
Port role                      : Alternate
Link type                      : Pt-Pt/NONEDGE
Boundary port                  : No

Interface name                 : xe-0/0/1
Port identifier                : 128.491
Designated port ID             : 128.491
Port cost                      : 2000
Port state                     : Forwarding
Designated bridge ID           : 32769.02:05:86:71:64:03
Port role                      : Root
Link type                      : Pt-Pt/NONEDGE
Boundary port                  : No

Interface name                 : xe-0/0/3
Port identifier                : 128.492
Designated port ID             : 128.492
Port cost                      : 2000
Port state                     : Blocking
Designated bridge ID           : 32769.02:05:86:71:4e:03
Port role                      : Alternate
Link type                      : Pt-Pt/NONEDGE
Boundary port                  : Yes

Interface name                 : xe-0/0/4
Port identifier                : 128.493
Designated port ID             : 128.493
Port cost                      : 2000
Port state                     : Forwarding
Designated bridge ID           : 32769.02:05:86:71:4e:03
Port role                      : Master
Link type                      : Pt-Pt/NONEDGE
Boundary port                  : Yes
```

Прохождение пингов:

![](https://1953625668-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MFMJhMiVjTLWfbfC-S4%2F-MXrdhC4XQx2mdbhALe4%2F-MXreG2-pfPgaRXbmrWY%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media\&token=493dffbd-04cf-4083-bff1-aeecca1ecb0d)
