Multiple Spanning Tree Protocol
The Multiple Spanning Tree Protocol and algorithm, provides both simple and full connectivity assigned to any given Virtual LAN throughout a Bridged Local Area Network. MSTP uses BPDUs to exchange information between spanning-tree compatible devices, to prevent loops in each MSTI and in the CIST, by selecting active and blocked paths. This is done as well as in STP without the need of manually enabling backup links and getting rid of bridge loops danger.
Moreover, MSTP allows frames/packets assigned to different VLANs to follow separate paths, each based on an independent MSTI, within MST Regions composed of LANs and or MST Bridges. These Regions and the other Bridges and LANs are connected into a single Common Spanning Tree.
History and motivation
It was originally defined in IEEE 802.1s as an amendment to 802.1Q, 1998 edition and later merged into IEEE 802.1Q-2005 Standard, clearly defines an extension or an evolution of Radia Perlman's Spanning Tree Protocol and the Rapid Spanning Tree Protocol. It has some similarities with Cisco Systems' Multiple Instances Spanning Tree Protocol, but there are some differences.The original STP and RSTP work on the physical link level, preventing bridge loops when redundant paths are present. However, when a LAN is virtualized using VLAN trunking, each physical link represents multiple logical connections. Blocking a physical link blocks all its logical links and forces all traffic through the remaining physical links within the spanning tree. Redundant links cannot be utilized at all. Moreover, without careful network design, seemingly redundant links on the physical level may be used to connect different VLANs and blocking any of them may disconnect one or more VLANs, causing bad paths.
Instead, MSTP provides a potentially better utilization of alternate paths by enabling the use of alternate spanning trees for different VLANs or groups of VLANs.
Main Entities
Multiple Spanning Tree Instances (MSTI)
As MSTP enables grouping and mapping VLANs into different spanning tree instances, there's an urge of determining a group or set of VLANs, which are all using the same spanning tree, this is what we come to know as a MSTI.Each instance defines a single forwarding topology for an exclusive set of VLANs, by contrast, STP or RSTP networks contains only a single spanning tree instance for the entire network, which contains all the VLANs. A region can include:
- Internal Spanning-Tree Instance : Default spanning tree instance in any MST region. All VLANs in this IST instance conform a single spanning tree topology, allowing only one forwarding path between any two nodes. It also provides the root switch for any VLAN configured switches which are not specifically assigned to a MSTI.
- Multiple Spanning Tree Instance : Unlike IST, this kind of instance comprises all static VLANs specifically assigned to it and at least, must include one VLAN.
MSTP Regions
A set of interconnected switches that must have configured the same VLANs and MSTIs, also have the same following parameters:- MST Configuration Name
- Revision Level
- Configuration Digest: Mapping of which VLAN are mapped to which MST instances.
Common and Internal Spanning Tree (CST/CIST)
We can differentiate two kinds of conformated Spanning Trees into the different networks created by MSTP, these are:- Common Spanning Tree : Administers the connectivity among MST regions, STP LANs and RSTP LANs in a bridged network.
- Common Internal Spanning Tree : Identifies regions in a network and administers the CIST root bridge for the network, for each region and for each spanning tree instance in each region. It's also the default spanning tree instance of MSTP so that any VLAN which isn't a member of a particular MSTI, will be a member of the CIST. Furthermore, works as well as the spanning tree that runs between regions and between MST regions and Single Spanning Tree entities.
MSTP Bridge Protocol Data Units (BPDU)
Its main function is enabling MSTP to select its root bridges for the proper CIST and each MSTI. MSTP includes all its spanning tree information in a single BPDU format. Not only does reduce the number of BPDUs required on a LANs to communicate spanning tree information for each VLAN, but it also ensures backward compatibility with RSTP.BPDUs' general format comprises a common generic portion -octets 1 to 36- that are based on those defined in IEEE Standard 802.1D,2004, followed by components that are specific to CIST -octets 37 to 102. Components specific to each MSTI are added to this BPDUs data block.
and STP BPDUs show a deeper resume of the MSTP BPDU format and, besides, some additional information about how was this object structured in older or different versions of this protocol as STP and RSTP, maintaining its compatibility.
MSTP Configuration Identification
In case there is an allocation of VIDs into a MST Region which differs within the different bridges that compound it, frames for some VIDs might be duplicated or even not delivered to some LANs at all. To avoid this, MST Bridges check that they are allocating VIDs to the same spanning trees as their neighboring MST Bridges in the same Region by transmitting and receiving MST Configuration Identifiers along with the spanning tree information. These MST Configuration Identifiers, while compact, are designed so that two matching identifiers have a very high probability of denoting the same configuration even in the absence of any supporting management practice for identifier allocation. Either one of this "objects" contains the following:- Configuration Identifier Format Selector: Indicates the use which is going to be given to the following components.
- Configuration Name
- Revision Level and the Configuration Digest: A 16B signature HMAC-MD5 Algorithms created from the MST Configuration Table.
This object is specific and unique of MSTP, neither STP or RSTP use it.
Protocol Operation
MSTP configures for every VLAN a single spanning tree active topology in a manner that there's at least one data route between any two end stations, eliminating data loops. It specifies various "objects" allowing out the algorithm to operate in a proper way. The different bridges in the various VLANs start advertising their own configuration to other bridges using the MST Configuration Identifier in order to allocate frames with given VIDs to any of the different MSTI. A priority vector is utilized to construct the CIST, it connects all the bridges and LANs in a Bridged LAN and ensures that paths within each region are always preferred to paths outside the Region. Besides, there is a MSTI priority vector, this one compromises the necessary information to build up a deterministic and independently manageable active topology for any given MSTI within each region.Additionally, comparisons and calculations done by each bridge select a CIST priority vector for each Port. This leads to one bridge been selected as the CIST Root of the Bridged LAN; then, a minimum cost path to the root is shifted out for each Bridge and LANs. Subsequently, in each region, the bridge whose minimum cost path to the root doesn't pass through another bridge with the same MST Conf.ID will be identified as its Region's CIST Regional Root. Conversely, each Bridge whose minimum cost path to the Root is through a Bridge using the same MST Configuration Identifier is identified as being in the same MST Region as that Bridge.
In summary, MSTP encodes some additional information in its BPDU regarding region information and configuration, each of these messages conveys the spanning tree information for each instance. Each instance can be assigned several configured VLANs, frames assigned to these VLANs operate in this spanning tree instance whenever they are inside the MST region. To avoid conveying their entire VLAN to spanning tree mapping in each BPDU, bridges encode an MD5 digest of their VLAN to instance table in the MSTP BPDU. This digest is then used by other MSTP bridges, along with other administratively configured values, to determine if the neighboring bridge is in the same MST region as itself.
Port Roles
Common Internal Spanning Tree Ports
- Root: Provides the minimum cost path from the Bridge to the CIST Root through the Regional Root.
- Designated: Provides the least cost path from the attached LAN through the Bridge to the CIST Root.
- Alternate or Backup: Provides connectivity if other Bridges, Bridges Ports or LANs fail or are erased.
Multiple Spanning Tree Instance Ports
- Root: Provides the minimum cost path from the Bridge to the MSTI Regional Root.
- Designated: Provides the least cost path from the attached LANs through the Bridge to the Regional Root.
- Master: Provides connectivity from the Region to a CIST Root that lies outside the Region. The Bridge Port that is the CIST Root port for the CIST Regional Root is the Master port for all MSTI.
- Alternate or Backup: Provides connectivity if other Bridges, Bridges ports or LANs fail or are erased.
RSTP compatibility
Both protocols have in common various issues such as: the selection of the CIST Root Bridge, the selection of the MSTI Root Bridge and computation of port roles for each MSTI, the port roles used by the CIST are the same as those of STP and RSTP, and the state variables associated with each port.
Into the bargain, they also share some problems as, for instance: MSTP can't protect against temporary loops caused by the inter-connection of two LANs segments by devices other than the Bridges that operate invisibly with respect to support of the Bridges' MAC Internal Sublayer Service.
For all the above, it can be concluded that MSTP is fully compatible with RSTP bridges, an MSTP BPDU can be interpreted by an RSTP bridge as an RSTP BPDU. This not only allows compatibility with RSTP bridges without configuration changes, but also causes any RSTP bridges outside of an MSTP Region to see the region as a single RSTP bridge, regardless of the number of MSTP bridges inside the region itself.
Protocol configuration
This section is mainly oriented to provide any user a proper manner of configuring a MSTP network over Cisco devices.Before configuring MSTP
Be sure of having configured VLANs and having associated them with switch ports, afterwards determine: MSTP Regions, revision level and instances; which VLANs and switch ports will belong to which MSTIs and, finally, which devices do you want to be root bridges for each MSTI.Configuration guidelines for MSTP
- Switches must have the same MST configuration identification elements to be in the same MST region. When configuring multiple MST regions for MSTP, MSTIs are locally significant within an MST region. MSTIs will not span from one region to another region.
- Common and Internal Spanning Tree is the default spanning tree instance for MSTP. This means that all VLANs that are not explicitly configured into another MSTI are members of the CIST.
- The software supports a single instance of the MSTP Algorithm consisting of the CIST and up to 15 MSTIs.
An example of how to configure a simple, three switch MSTP topology wherein a layer-two access switch carries four VLANs and has two uplinks to two distribution switches, can be found here:
A good configuration view, from the above-mentioned example shall be:
S3# show spanning-tree mst
##### MST0 vlans mapped: 1-19,21-39,41-4094
Bridge address 000e.8316.f500 priority 32768
Root address 0013.c412.0f00 priority 0
port Fa0/13 path cost 0
Regional Root address 0013.c412.0f00 priority 0
internal cost 200000 rem hops 19
Operational hello time 2, forward delay 15, max age 20, txholdcount 6
Configured hello time 2, forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Root FWD 200000 128.13 P2p
Fa0/16 Altn BLK 200000 128.16 P2p
##### MST1 vlans mapped: 20,40
Bridge address 000e.8316.f500 priority 32769
Root address 000f.345f.1680 priority 1
port Fa0/16 cost 200000 rem hops 19
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Altn BLK 200000 128.13 P2p
Fa0/16 Root FWD 200000 128.16 P2p
Extensions
Alternative Multiple Spanning Tree Protocol (AMSTP)
The first skel of this protocol was proposed in. AMSTP is a simplified one tree instance rooted at each edge bridge in the core to forward frames.Protocol operation
To set up these trees, AMSTP relies in one basic tree which will be used to obtain instances, until one of them is built per switch for the network. The process applied to build up the main/basic tree is the same as in RSTP. In summary, firstly a bridge must be elected as the Root Bridge. Then, every switch will compute and calculate its cost to the Root Bridge and, afterwards, the root ports must be elected by selecting the one which receives the best BPDU, this is, the one that announces minimum path cost to root bridge.BPDUs
AMSTP BPDUs use the same local multicast protocol addresses than STP and have a structure that resembles MSTP BPDUs since both are comprised essentially of a basic BPDU and several AM-Records, allowing full-backwards compatibility with RSTP and STP standard protocols. Each of the AM-Records contains the data used to negotiate a specific tree instance. Every ABridge, except for the elected root bridge, creates an AM-Record for its own spanning tree instances. They are used by connected ports of neighboring switches to negotiate the transitions of each tree instance with a proposal/agreement mechanism.ABRIDGES
This protocol, developed in emphasizes in the terms of efficiency in network usage and path length. That's the main cause why it uses AMSTP, a simplified and self-configuring version of MSTP protocol.Abridges can be described as a two-tiered hierarchy of layer-two switches in which network islands running independent rapid spanning tree protocols communicate through a core formed by island root bridges. As it has been mentioned, it is focused in terms of efficiency, this is due to the ability of AMSTP to provide optimum paths in the core mesh and the usage of RSTP to aggregate efficiently the traffic at islands networks. Its convergence speed is as fast as RSTP and MSTP.
Architecture
With the objective of enhancing the properties of Abridges protocol, a two-level hierarchical link layer infrastructure in which segmentation is performed at link layer is proposed. The core will be composed, primarily, by Abridges and will oversee connecting the leaf access networks that are referred to as "access layer". Besides, each of this access networks, also called islands, will be a layer-two sub-network using STP connected to one or more Abridges.Protocol operation
Inside every island or access network a bridge is automatically elected to behave as the Root Bridge, this one bridge will behave as a gateway, allowing the forwarding of frames from the core to an island and conversely. Just one Abridge is going to perform these gateway functions, although many could be connected. Communication among 802.1D bridges and between standard 802.1D bridges and ABridges does not require point-to-point connections.The ABridge receiving an ARP frame from an island host obtains the island in which the destination is located by asking an ARP server where the host was previously registered by its island ABridge. This server stores the IP to MAC mapping and the island ABridge ID. The ARP servers distribute its load based on equal result of short hashing of the IP addresses served. The core self-configures and the operation is transparent to all hosts and standard switches at islands.
ABridges functionality
ABridges is composed by three basic functional modules, which could be resumed in:- STD Bridge: Performs standard bridging functions with the nodes of its island. The access functionality resides on the access ports of this module, which has an equivalent behavior to a standard bridge acting as a root bridge.
- AMSTP Routing: Routes frames between Abridges and the Gateway. It has core ports, either of them interconnect ABridges, which learn root bridge IDs from the AMSTP BPDUs received and store this information in a database, known as "Forwarding Database".
- GateWay: Interconnects the above-mentioned modules.