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
- Lower CST Root ID
- Lower CST External Root path cost
- Lower CST Regional Root ID
- Lower CST Internal root path cost (0 between regions)
- Lower CST Designated Bridge ID (from MST extension)
- 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