This post represents the solution and explanation for quiz-1.
Have a look at the quiz and try solving it before reading this post.

Before jumping to the solution, let's recap some of the features of MSTP and I will start with the history of Spanning Tree Protocol:
STP history

Multiple Spanning Tree (MST) is an IEEE standard derived from the Cisco proprietary Multiple Instances Spanning Tree Protocol (MISTP) implementation. The key things that you have to remember about 802.1 MSTP are here:
Understanding MSTP

  • it sends BPDU only for the IST (Internal Spanning Tree)
  • MST Instances (MSTi) info is piggybacked as special M-records
  • in order to be in the same region, switches needs to share all of these:
    • configuration name
    • revision number
    • vlan-to-instance mapping
  • instances:
    • IST (Internal Spanning Tree) = special instance, also called MSTI0/MST 0, that extends the Commont Spaning Tree (CST) inside the MST region and represents the entire region as a virtual CST bridge to the outside world
    • up to 15 MST Instances (MSTIs) = RSTP instances that exist only within a region
  • CIST Regional Root can only be a boundary switch (the one with the lowest cost to the CIST Root)

Quiz Solution

In quiz #1, the MSTP implementation does not take into account the following fact: IST/MST0 instance is active on all ports inside a region (this is a consequence of the fact that there are no individual BDPUs for each instance but, on the contrary, the BPDUs are sent only for IST while MSTI info is piggybacked into those BPDUs).
You can see this by running the command "show span mst 0" on CORE-2:

CORE-2#sh span mst 0

##### MST0    vlans mapped:   1-99,200-4094
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi0/13           Root FWD 20000     128.13   P2p 
Gi0/14           Altn BLK 20000     128.14   P2p 
Gi0/16           Desg FWD 20000     128.16   P2p 
Gi0/19           Desg FWD 20000     128.19   P2p 

Although vlan 11 (part of IST/MST0) is not allowed on the trunk on Gi0/13 (only vlans 100-199 are allowed on it), IST does not care about this - IST just runs on all ports in the region !

The best command that shows the problem is "show span vlan 11" on CORE-2:

CORE-2#sh span vlan 11

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/14              Altn BLK 20000     128.14   P2p 
Gi0/16              Desg FWD 20000     128.16   P2p 
Gi0/19              Desg FWD 20000     128.19   P2p 

Oooh, there's no ROOT port !!
Since Gi0/13 (root port for MST0) does not allow vlan 11 on its trunk, then it does not appear in the above output => this is the best evidence of the problem.

From the design point of view, when choosing MSTP for your network, you must remember the below rules:

  • map all vlans that you use in your network to some instances (don't leave them in IST)
  • vlans mapped to IST must be allowed on all links
  • don't manually prune individual vlans off a trunk - if you want to do this, then remove all vlans mapped to the same MST instance (not for IST - see above rule)

The solutions for this problem are (in order of preference):

  • create another instance and map vlan 11 (plus other vlans used in the network) to it (let's say MST 2)
  • allow all vlans on Gi0/13 trunk
  • configure cost or port-priority for MST0 to force Gi0/14 to be ROOT port for MST0

Thanks everyone for your interest and comments in the quiz.