MST

  1. MST region
  2. Common spanning tree (CST)
  3. Internal spanning tree (IST)
  4. MST instance (MSTI)
    1. Manual pruning
    2. MSTI0 mapping
  5. MST BPDU

MST region

  • MST configuration name (32 chars)
  • MST configuration revision number (2 bytes)
  • instance-to-VLAN mapping: hash must match, not contents
  • region modification → TC
(config)# spanning-tree mode mst
(config)# spanning-tree mst configuration
(config-mst)# name <NAME>

; no increased automatically after config change
(config-mst)# revision <N>

; ID ∈ [0, 15]
(config-mst)# instance <ID> vlan <LIST>

; changed config
(config-mst)# show pending

; ≡ commit
(config-mst)# exit

(config-mst)# abort
; towards switch with prestandard MST, otherwise – loop or blocked
(config-if)# spanning-tree mst prestandard
; hidden cmd
# show spanning-tree mst configuration digest

Common spanning tree (CST)

  • MST region ≡ black box bridge
  • on links between regions, 802.1q CST
  • BPDUs are exchanged in native VLAN, RSTP logic
  • on boundary ports
  • CST root
    • lowest BID across all regions
    • CST regional root for own region
    • election
      • on power up switch announced itself as CST root
      • if superior BPDU is received
        • from internal port: sends CST root, CST regional root
        • from boundary port: sends CST root, CST external root path cost
  • CST regional root
    • border switch with lowest External Root path cost
    • root for IST
    • port towards CST root – CST root port (all VLANs in FWD)
    • CST root port election: IEEE 802.1Q-2014
      1. Lower CST Root ID
      2. Lower CST External Root path cost
      3. Lower CST Regional Root ID
      4. Lower CST Internal root path cost (0 between regions)
      5. Lower CST Designated Bridge ID (from MST extension)
      6. Lower CST Designated Port ID
(config)# spanning-tree mst <ID> priority <N>

Internal spanning tree (IST)

  • inside MST region, RSTP logic
  • MSTI0
  • on internal ports
  • virtual switch for CST
  • PVST+ compatibility:
    • BPDUs are sent in every VLAN by IST
    • MST must be root for PVST+, otherwise all traffic chooses single link
      • if root in PVST+ block, system ID ≡ priority in PVST+ block for other VLANs must be lower, than in native VLAN
      • if root in MST block, system ID ≡ priority in PVST+ block for other VLANs must be higher, than in native
    • load-sharing by tuning uplink cost
    • if BPDU is sent to PVST+, sender BID = sending bridge ID in VLAN1
    • if BPDU is sent to RSTP/MST, sender BID = Regional Root ID
    • if data from different VLANs results in different states towards PVST+ → block
    • (R)PVST+ peer – PVST+ mode, (R)STP peer – (R)STP mode
  • Remaining hops:
    • sent by IST root
    • other switches decrese on receiving
    • 0 ≡ discard BPDU
; on default
(config)# spanning-tree mst simulate pvst global

; 20 default
(config)# spanning-tree mst <ID> max-hops <HOPS>
; on default
(config-if)# spanning-tree mst simulate pvst [disable]

MST instance (MSTI)

  • up to 16 instances
  • VLANs are mapped to instance, no detailed consistency check between switches (only hash is compared)
  • BPDUs are exchanged by MSTI0
    • MSTI 1-15 data is exchanged in BPDUs within M-records ≡ TLV
  • region scope
  • extended system ID = MSTI number instead of VLAN
  • Master port: connects MSTI to CST

Manual pruning

  • solution:
    • do not use pruning
    • do not use access ports between switches with MST

MSTI0 mapping

  • solution:
    • trunk with all VLANs permitted
    • no VLANs mapped to IST

MST BPDU

  • CST External Root path cost does not include cost within region
  • transmitted through interface, if at least one instance is designated
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                                +-+-+-+-+-+-+-+-+
                                                | ProtoID High  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  ProtoID Low  |    Version    |    Msg type   |     Flags     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|_                         CST Root ID                         _|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  CST External Root path cost                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|_                      Regional Root ID                       _|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CST Port ID          |           Message age         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Max age            |           Hello time          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Forward delay         | Version 1 len | Version 3 len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version 3 len |                                              _|
+-+-+-+-+-+-+-+-+                                              _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|_                    MST configuration ID                     _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|_                                                             _|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   CST Internal root path cost                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|_                        CST Bridge ID                        _|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CST remain hops|                                               \
+-+-+-+-+-+-+-+-+          M-records                            /
\                                                               \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Protocol ID: 0x0000
Version: 0x03
Message age: units – 1/256s, if exceeds Max age – do not forward BPDU
Max age: units – 1/256s
Hello time: units – 1/256s
Forward delay: units – 1/256s

Msg type:

  • 0x00 ≡ configuration BPDU
  • 0x80 ≡ TCN BPDU

Flags:

  • 0x01: Topology Change Ack
  • 0x80: Topology Change

Version 1 length: 0x00
Version 3 length: MST fields length