Multiple Spanning Tree Protocol: Difference between revisions

Content deleted Content added
No edit summary
Yobot (talk | contribs)
m WP:CHECKWIKI error fixes using AWB
Line 1:
{{IPstack}}
{{commons category|MSTP}}
The '''''Multiple Spanning Tree Protocol''''' (MSTP) and [[Algorithm|algorithm]], provides both, simple and full, connectivity assigned to any given [[Virtual LAN|Virtual LAN (VLAN)]] throughout a Bridged Local Area Network. MSTP uses [[Bridge Protocol Data Unit|BPDUs]] to exchange information between spanning-tree compatible devices, to prevent loops in each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] (Multiple Spanning Tree Instances) and in the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] (Common and Internal Spanning Tree), by selecting active and blocked paths. This is done as well as in [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] without the need of manually enabling backup links and getting rid of [[Bridging (networking)|bridge]] [[Switching loop|loops]] danger.<br /><br />
 
Moreover, MSTP allows frames/packets assigned to different [[Virtual LAN|VLANs]] to follow separate paths, each based on an independent [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]], within MST Regions composed of [[Local area network|LANs]] and or MST Bridges. These Regions and the other Bridges and [[Local area network|LANs]] are connected into a single Common Spanning Tree (CST).
 
== History ==
It was originally defined in [[Institute of Electrical and Electronics Engineers|IEEE]] 802.1s as an amendment to [[IEEE 802.1Q|802.1Q]], 1998 edition and later merged into [[Institute of Electrical and Electronics Engineers|IEEE]] [[IEEE 802.1Q|802.1Q-2005 Standard]], clearly defines an extension or an evolution of [[Radia Perlman|Radia Perlman’s]] [[Spanning_Tree_Protocol|Spanning Tree Protocol]] and the [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|Rapid Spanning Tree Protocol]]. It’s mandatory to highlight that it has some similarities with [[Cisco Systems|Cisco Systems']] Multiple Instances Spanning Tree Protocol (MISTP) but, in fact, as always occurs with providers implementations there are a couple of differences.<br /><br />
 
If there is only one [[Virtual LAN|VLAN]] in the network, single (traditional) [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]]/[[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] will work appropriately but, as it’s easily supposed, if the network contains more than one [[Virtual LAN|VLAN]], the logical network configured by single [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]]/[[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] wouldn’t work as efficiently as it is supposed to, even letting some errors ([[Switching loop|loops]], bad paths…) to appear. Instead, it is possible to make better use of the alternate paths available by using an alternate [[Spanning tree|spanning tree]] for different [[Virtual LAN|VLANs]] or groups of [[Virtual LAN|VLANs]], here is where the necessity of hammering away a new extension of [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] philosophy into multiple trees organized by [[Virtual LAN|VLANs']] groups came up.
 
== Main Entities ==
 
=== Multiple Spanning Tree Instances (MSTI) ===
[[File:MSTI.png|thumb|Different Spanning trees created by different MSTIs on the same physical layout.]]
As MSTP enables grouping and mapping [[Virtual LAN|VLANs]] into different spanning tree instances, there’s an urge of determining a group or set of [[Virtual LAN|VLANs]], which are all using the same spanning tree, this is what we come to know as a MSTI. <br />
Each instance defines a single forwarding topology for an exclusive set of [[Virtual LAN|VLANs]], by contrast, [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] or [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] networks contains only a single spanning tree instance for the entire network, which contains all the [[Virtual LAN|VLANs]]. A region can include:<ref>{{cite book
|last = packard
|first = Hewlett
Line 17 ⟶ 21:
|year = 2006
|url = ftp://ftp.hp.com/pub/networking/software/2900-AdvTrafficMgmt-Aug2006-59916197-Chap04.pdf
}}</ref>:
 
* '''Internal Spanning-Tree Instance (IST)''': Default spanning tree instance in any MST region.All [[Virtual LAN|VLANs]] in this IST instance conform a '''single''' spanning tree [[Topology#Computer_scienceComputer science|topology]], allowing only one forwarding path between any two nodes. It also provides the root switch for any [[Virtual LAN|VLAN]] configured switches which are not specifically assigned to a MSTI.
* '''Multiple Spanning Tree Instance (MSTI)''': Unlike IST, this kind of instance comprises all static [[Virtual LAN|VLANs]] specifically assigned to it and at least, must include one [[Virtual LAN|VLAN]].
''While each MSTI can have multiple [[Virtual LAN|VLANs]], each [[Virtual LAN|VLAN]] can be associated with only one MSTI.''<br />
 
=== MSTP Regions ===
[[File:MST Region.png|thumb|MSTIs in different regions.]]
A set of interconnected switches that must have configured the same [[Virtual LAN|VLANs]] and [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]], also the same following parameters:
* '''MST Configuration Name'''
* '''Revision Level'''
* '''Configuration Digest:''' Mapping of which [[Virtual LAN|VLAN]] are mapped to which MST instances.
An [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] is unable to span across MST regions because of its inherent locality to a single MST region. This is done by an identifying number for each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]]. For achieving the task of assigning each bridge to a region, each switch/bridge must compare their '''MST Configuration Identifiers (Format Selector, Region Name, Revision Level and Configuration Digest)''', either of them represents [[Virtual LAN|VLAN]] to [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]] mapping for each bridge.
 
=== Common and Internal Spanning Tree (CST/CIST) ===
[[File:CIST.png|thumb|CIST operates links between regions and to SST devices.]]
We can differenciate two kinds of conformated Spanning Trees into the different networks created by MSTP, these are:
* '''Common Spanning Tree (CST):''' Administers the connectivity among MST regions,[[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] [[Local area network|LANs]] and [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] [[Local area network|LANs]] in a bridged network.
* '''Common Internal Spanning Tree (CIST):''' 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 [[Virtual LAN|VLAN]] which isn’t a member of a particular [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|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 (SST) entities.<br />
The role of the Common Spanning Tree (CST) in a network, and the Common and Internal Spanning Tree (CIST) configured on each device, is to prevent loops within a wider network that may span more than one [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#MSTP_RegionsMSTP Regions|MSTP Region]] and parts of the network running in legacy [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] or [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] mode.
 
=== MSTP Bridge Protocol Data Units (BPDU) ===
{{Main article|Bridge Protocol Data Unit}}
Its main function is enabling MSTP to select its root bridges for the proper [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] and each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]]. [[Multiple Spanning Tree Protocol|MSTP]] includes all its spanning tree information in a single [[Bridge Protocol Data Unit|BPDU]] format. Not only does reduce the number of [[Bridge Protocol Data Unit|BPDUs]] required on a [[Local area network|LANs]] to communicate spanning tree information for each [[Virtual LAN|VLAN]], but it also ensures backward compatibility with [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] (and in effect, classic [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] too).
[[Bridge Protocol Data Unit|BPDUs']] general format comprises a common generic portion ''-octets 1 to 36-'' that are based on those defined in [[Institute of Electrical and Electronics Engineers|IEEE]] Standard [[IEEE 802.1D|802.1D]],2004
<ref>{{cite book
Line 48 ⟶ 54:
|url = http://www.ccna-powertraining.de/wp-content/uploads/2014/10/802.1D-2004.pdf
}}</ref>
, followed by components that are specific to [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] ''-octets 37 to 102.'' Components specific to each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] are added to this [[Bridge Protocol Data Unit|BPDUs]] data block. <br /> <br />
 
[https://www.alliedtelesis.com/sites/default/files/stp_feature_config_guide.pdf BPDU table info] and [https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Bridge_Protocol_Data_Unit_fields STP BPDUs] ''' show a deeper resume of the MSTP [[Bridge Protocol Data Unit|BPDU]] format''' and, besides, some additional information about how was this object structured in older or different versions of this protocol as [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] and [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]], mantaining its compatibility.
 
=== MSTP Configuration Identification ===
In case there is an allocation of [[IEEE_802IEEE 802.1Q#Double_taggingDouble tagging|VIDs (VLAN IDs)]] into a MST Region which differs within the different bridges that compound it, '''frames for some [[IEEE_802IEEE 802.1Q#Double_taggingDouble tagging|VIDs]] might be duplicated or even not delivered to some [[Local area network|LANs]] at all'''. To avoid this, MST Bridges check that they are allocating [[IEEE_802IEEE 802.1Q#Double_taggingDouble tagging|VIDs]] to the same [[Spanningspanning tree|spanning trees]]s 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'''<ref>{{cite book
Line 60 ⟶ 68:
|year = 1998
|url = https://tools.ietf.org/html/rfc2271
}}</ref> <ref>{{cite book
|last = IETF
|first = RFC
Line 67 ⟶ 75:
|year = 1999
|url = https://tools.ietf.org/html/rfc2571
}}</ref> <ref>{{cite book
|last = IETF
|first = RFC
Line 82 ⟶ 90:
|year = 1997
|url = https://tools.ietf.org/html/rfc2104
}}</ref> <ref>{{cite book
|last = IETF
|first = RFC
Line 90 ⟶ 98:
|url = https://tools.ietf.org/html/rfc2104
}}</ref> A 16B signature [[Hash-based message authentication code|HMAC]]-[[MD5|MD5 Algorithms]] created from the MST Configuration Table.<br />
This object is specific and unique of MSTP, neither [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] or [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] use it.
 
== Protocol Operation ==
MSTP configures for every [[Virtual LAN|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 [[Virtual LAN|VLANs]] start advertising their own configuration to other bridges using the MST Configuration Identifier in order to allocate frames with given VIDs (VLAN ID) to any of the different [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]]. A priority vector is utilized to construct the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]], it connects all the bridges and [[Local area network|LANs]] in a Bridged [[Local area network|LAN]] and ensures that paths within each region are always preferred to paths outside the Region. Besides, there is a [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] priority vector, this one compromises the necessary information to build up a deterministic and independently manageable active topology for any given [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] within each region. <br /><br />
 
Additionally, comparisons and calculations done by each bridge select a [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] priority vector for each [[Port (computer networking)|Port]] (based on priority vectors, MST Configuration Identifiers and on an incremental Path Cost associated to each receiving port). This leads to one bridge been selected as the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root of the Bridged [[Local area network|LAN]]; then, a minimum cost path to the root is shifted out for each Bridge and [[Local area network|LANs]] (thus preventing loops and ensuring full connectivity between [[Virtual LAN|VLANs]]). 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 [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|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.<br /><br />
 
In summary, MSTP encodes some additional information in its [[Bridge Protocol Data Unit|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 [[Virtual LAN|VLANs]], frames (packets) assigned to these [[Virtual LAN|VLANs]] operate in this spanning tree instance whenever they are inside the MST region. To avoid conveying their entire [[Virtual LAN|VLAN]] to spanning tree mapping in each [[Bridge Protocol Data Unit|BPDU]], bridges encode an MD5 digest of their [[Virtual LAN|VLAN]] to instance table in the MSTP [[Bridge Protocol Data Unit|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 [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root through the Regional Root.
* '''Designated:''' Provides the least cost path from the attached [[Local area network|LAN]] through the Bridge to the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root.
* '''Alternate or Backup:''' Provides connectivity if other Bridges, Bridges [[Port (computer networking)|Ports]] or [[Local area network|LANs]] fail or are erased.
 
=== Multiple Spanning Tree Instance Ports ===
* '''Root:''' Provides the minimum cost path from the Bridge to the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] Regional Root.
* '''Designated:''' Provides the least cost path from the attached [[Local area network|LANs]] through the Bridge to the Regional Root.
* '''Master:''' Provides connectivity from the Region to a [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root that lies outside the Region. The Bridge [[Port (computer networking)|Port]] that is the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root [[Port (computer networking)|Port]] for the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Regional Root is the Master [[Port (computer networking)|Port]] for all [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]].
* '''Alternate or Backup:''' Provides connectivity if other Bridges, Bridges [[Port (computer networking)|Ports]] or [[Local area network|LANs]] fail or are erased.
 
== RSTP compatibility ==
MSTP is designed to be [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] and [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] compatible and interoperable without additional operational management practice, this is due to a set of measurements based on [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] (Clause 17 of [[Institute of Electrical and Electronics Engineers|IEEE]] Std [[IEEE 802.1D|802.1D]], 2004 Edition) intending to provide the capability for frames assigned to different [[Virtual LAN|VLANs]], to be transmitted along different paths within MST Regions.<br />
Both protocols have in common various issues such as: the selection of the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] Root Bridge (it uses the same fundamental algorithm, 17.3.1 of [[Institute of Electrical and Electronics Engineers|IEEE]] Std [[IEEE 802.1D|802.1D]], 2004 Edition, but with extended priority vector components within MST Regions), the selection of the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] Root Bridge and computation of [[Port (computer networking)|Port]] roles for each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]], the [[Port (computer networking)|Port]] roles used by the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] are the same as those of [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] and [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] (with the exception of the Master Port), and the state variables associated with each port. <br />
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 [[Local area network|LANs]] segments by devices other than the Bridges that operate invisibly with respect to support of the Bridges’ [[MAC address|MAC]] Internal Sublayer Service.<br /><br />
 
For all the above, it can be concluded that MSTP is fully compatible with [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] bridges, an MSTP [[Bridge Protocol Data Unit|BPDU]] can be interpreted by an [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] bridge as an [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] [[Bridge Protocol Data Unit|BPDU]]. This not only allows compatibility with [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] bridges without configuration changes, but also causes any [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] bridges outside of an [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#MSTP_RegionsMSTP Regions|MSTP Region]] to see the region as a single [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|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 Systems|Cisco]] devices.
 
=== Before Configuring MSTP ===
Be sure of having configured [[Virtual LAN|VLANs]] and having associated them with switch ports, afterwards determine: [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#MSTP_RegionsMSTP Regions|MSTP Regions]], revision level and instances; which [[Virtual LAN|VLANs]] and switch [[Port (computer networking)|Ports]] will belong to which [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]] and, finally, which devices do you want to be root bridges for each [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]].
 
=== Configuration guidelines for MSTP ===
[[File:MSTP config.png|thumb|Simple network topology for MSTP trials.]]
# Switches must have the same MST configuration identification elements (region name, revision level and [[Virtual LAN|VLAN]] to [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] mapping) to be in the same MST region. When configuring multiple MST regions for MSTP, [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]] are locally significant within an MST region. [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]] will not span from one region to another region.
# Common and Internal Spanning Tree (CIST) is the default spanning tree instance for MSTP. This means that all [[Virtual LAN|VLANs]] that are not explicitly configured into another [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] are members of the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]].
# The software supports a single instance of the MSTP Algorithm consisting of the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] and up to 15 [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTIs]].<br />
A [[Virtual LAN|VLAN]] can only be mapped to one [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]] or to the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]]. One [[Virtual LAN|VLAN]] mapped to multiple spanning trees is not allowed. All the [[Virtual LAN|VLANs]] are mapped to the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]] by default. Once a [[Virtual LAN|VLAN]] is mapped to a specified [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Multiple_Spanning_Tree_Instances_Multiple Spanning Tree Instances .28MSTI.29|MSTI]], it is removed from the [[Multiple_Spanning_Tree_ProtocolMultiple Spanning Tree Protocol#Common_and_Internal_Spanning_Tree_Common and Internal Spanning Tree .28CST.2FCIST.29|CIST]].To avoid unnecessary [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] processing, a [[Port (computer networking)|Port]] that is attached to a [[Local area network|LAN]] with no other bridges/switches attached, can be configured as an edge port.<br /><br />
 
An example of how to configure a simple, three switch SMTP topology wherein a layer-two access switch carries four [[Virtual LAN|VLANs]] and has two uplinks to two distribution switches, can be found here: [http://packetlife.net/blog/2010/apr/26/multiple-spanning-tree-mst/ MSTP Configuration Guide]<br />
A good configuration view, from the aboved-mentioned example shall be:
Line 149 ⟶ 163:
---------------- ---- --- --------- -------- --------------------------------
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 .<ref>{{cite book
|last = Ibáñez, García, Azcorra
|first = Guillermo, Alberto, Arturo
Line 160 ⟶ 175:
|year = 2002
|url = http://e-archivo.uc3m.es/bitstream/handle/10016/2791/amstp-2004.pdf?sequence=1
}}</ref>. 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 (named Alternate Multiple Spanning Tree Instances – AMSTI), 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 [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]]. In summary, firstly a bridge must be elected as the Root Bridge (this is done by the emission of [[Bridge Protocol Data Unit|BPDUs]] from each switch on the network periodically, every “Hello Time”, and selecting the lowest Bridge ID). Then, every switch will compute and calculate its cost to the Root Bridge and, afterwards, the root [[Port (computer networking)|Ports]] must be elected by selecting the one which receives the best [[Bridge Protocol Data Unit|BPDU]], this is, the one that announces minimum path cost to root bridge.
 
==== BPDUs ====
{{Main article|Bridge Protocol Data Unit}}
AMSTP [[Bridge Protocol Data Unit|BPDUs]] use the same local multicast protocol addresses than [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] and have a structure that resembles MSTP [[Bridge Protocol Data Unit|BPDUs]] since both are comprised essentially of a basic [[Bridge Protocol Data Unit|BPDU]] and several AM-Records, allowing full-backwards compatibility with [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] and [[Spanning_Tree_ProtocolSpanning Tree Protocol|STP]] standard protocols. Each of the AM-Records contains the data used to negotiate a specific tree instance (AMSTI). Every ABridge, except for the elected root bridge, creates an AM-Record for its own spanning tree instances. They are used by connected [[Port (computer networking)|Ports]] of neighboring switches to negotiate the transitions of each tree instance with a proposal/agreement mechanism.
 
=== ABRIDGES ===
This protocol, developed in <ref>{{cite book
|last = Ibáñez, García, Azcorra, Soto
Line 176 ⟶ 193:
|url = https://e-archivo.uc3m.es/bitstream/handle/10016/2954/COMPNW_3675_08.pdf?sequence=2&isAllowed=y
}}</ref> 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.<br />
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 (ABridges). 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 [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] to aggregate efficiently the traffic at islands networks. Its convergence speed is as fast as [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]] and MSTP.
 
==== Architecture ====
[[File:Architecture ABridges.png|thumb|Two-layer network proposal for ABridges.]]
With the objective of enhancing the properties of Abridges protocol, a two-level hierarchical [[Link layer|link layer]] infrastructure in which segmentation is performed at [[Link layer|link layer]] is proposed. The core will be composed, primarily, by Abridges (Bridges using an implementation of AMSTP) 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 [[Spanning_Tree_ProtocolSpanning Tree Protocol|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 [[IEEE 802.1D|802.1D]] bridges and between standard [[IEEE 802.1D|802.1D]] bridges and ABridges does not require point-to-point connections.<br />
The ABridge receiving an [[Address Resolution Protocol|ARP]] frame from an island host obtains the island in which the destination is located by asking an [[Address Resolution Protocol|ARP]] server where the host was previously registered by its island ABridge. This server stores the IP to [[MAC address|MAC]] mapping and the island ABridge ID. The [[Address Resolution Protocol|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:
Line 188 ⟶ 208:
* '''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 [[Bridge Protocol Data Unit|BPDUs]] received and store this information in a database, known as “Forwarding Database”.
* '''GateWay:''' Interconnects the above-mentioned modules.
Abridges will configure each of their [[Port (computer networking)|Ports]] to be part either of the core or of an island, this port self-configuration is done with very simple stipulations: if a port is not connected to another Abridge using a point-to-point link, it will turn itself an access port; on the other hand, [[Port (computer networking)|Ports]] directly connected to another Abridge are configured as core ports. This auto-configuration mechanism is pretty like the one used in [[Spanning_Tree_ProtocolSpanning Tree Protocol#Rapid_Spanning_Tree_ProtocolRapid Spanning Tree Protocol|RSTP]].
 
==== ARP and ABridge Resolution ====
As any layer-two based protocol, ABridges uses [[Address Resolution Protocol|ARP]] broadcasts to obtain the [[Link layer|link layer]] address associated to an IP address at the same [[Local area network|LAN]] or [[Virtual LAN|VLAN]]. That is the main cause why avoiding overflooding is a matter of paramount priority; to limit this broadcast traffic, is recommended the use of distributed load [[Address Resolution Protocol|ARP]] servers, although its use is not compulsory.
 
==See also==
Line 209 ⟶ 230:
{{reflist}}
 
== External Linkslinks ==
{{commons category|MSTP}}
* [http://standards.ieee.org/about/get/802/802.1.html IEEE "Home Page" for 802.1] (Related Standards of the 802.1 family)