This tutorial explains Spanning Tree Protocol (STP), Broadcast storm, unstable MAC table, Layer 2 loop, STP Port Status and STP root bridge selection process in detail with examples.
For backup purpose we usually create redundant links. Redundant links are extremely useful in preventing entire network down situation that is triggered from single link failure. With all of its advantages, redundant link is a double edged sword. It creates network loops that flood down frames. STP removes loops as well as other evils of redundant link.
Layer 2 loop example
Above figure illustrates a simple layer 2 loop. In this network, LAN segment has two links to server.
- Primary / Main Link (S1, S2, S3, S6)
- Redundant / Backup Link (S1, S4, S5, S6)
Multiple layer 2 connections between LAN segment and server create following problems
- Broadcast Storms
- Duplicate Frame copies
- Unstable MAC Table
Before we dig these problems in more detail remember that a switch always floods three kinds of frames: unknown unicast, broadcast and multicast.
Assume that PC0 perform an ARP request to find the MAC address of Server. ARP (Address Resolution Protocol) uses broadcast method to locate the MAC address of device.
In this circumstance PC0 will generate single broadcast frame. Switch S1 will receive it from PC0. Switch S1 will flood this broadcast frame from all remaining ports except the incoming port.
Without any loop removing mechanism, switches will flood broadcasts endlessly throughout the network. This is known as broadcast storm. Next figure illustrates how a broadcast frame is continually being flooded throughout the network.
Endless Cycle One
PC0 => S1 => S2 => S3 => S6 => (Server and) S5 => S4 => S1 => (PC0 and) S2 => S3 .......
Endless Cycle Two
PC0 => S1 => S4 => S5 => S6 => (Server and) S3 => S2 => S1 => (PC0 and) S4 => S5 .......
Duplicate frame copies
In looped network, a device could receive duplicate copies of same frame from different switches. Assume that PC0 sends a unicast frame to Server. Switch floods unknown unicast from all of its ports, except the incoming port. Above figure demonstrates how the Server will receive duplicate copies of unicast frame simultaneously. Duplicate frame copies create additional overhead on the network.
Unstable MAC Table
When switch receives a frame, it checks source MAC address in frame and associate that interface with finding MAC address. Next time when switch receives a frame for this MAC address, it will forward that frame from this interface. These entries are stored in MAC Address Table. Switch uses MAC Address Table to forward the frame. Looped network can make MAC Address Table unstable. For example, assume that PC0 sends a unicast frame to Server. Switch S6 receives this frame from two interfaces (interface connected to S3 and interface connected to S5). When it receives frame from S3, it associate PC0 MAC address with the interface that is connected with S3. Again when it receives same frame from S5, it think that location of PC0 has been changed and it would update the entry in MAC address table.
Same thing will happen again when it receives frame from switch S3 again. MAC address table would be totally confused about the PC0 location because the switch S6 is receiving the PC0’s frame from more than one link. Situation becomes bad to worse when switch stuck in constantly updating the MAC Address Table with source locations and fail to forward the frame. This is known as thrashing the MAC Table.
STP is the answer of all issues explained above. STP was developed to solve each problem that is trigged due to layer two loops. Before we explain how the STP works, you need to be familiar with some basic terms of STP and their function within STP.
BPDU (Bridge Protocol Data Unit) is a multicast frame that is used to share information about switch and its interface connections. Switches use BPDU to learn the network topology; other switches connections and any existing loops. BPDU frames are sent out as multicast in every two seconds.
All decisions in STP are made from the perspective of Root Bridge. Switch with the lowest switch ID is selected as Root Bridge. BPDU contains Switch ID. Switch ID is made from priority of the switch and MAC address of switch itself. Default priority is set to 32768. Switch with the lowest MAC address will be selected as the root switch, if you don’t change the default priority value. You can override root selection process by changing the priority value. If you want one switch to be Root Bridge, change its priority value to less than 32768.
Selection process of Root Bridge runs each time a network change occurs like as adding new switch in topology, removing existing switch or Root Bridge failure. If other switches in network do not receive BPDUs from Root Bridge within 20 seconds, they assume that Root Bridge has failed and will begin a new election process to choose a new Root Bridge.
All other switches in network except Root Bridge are the non-Root Bridges. Non-Root Bridge receives updates from Root Bridge and update its STP database.
STP assigns each port a cost, called port cost. Port cost is used to choose the best path when multiple links are available between two switches. Cost of port is determined by the bandwidth of connected media link. Switch always use lower port cost to forward the frames. Two set of port costs exist.
|Bandwidth||Old Cost Value||New Cost Value|
Some old series switches like Catalyst 1900 uses old cost value. Cisco already discontinued these old series switches. New series switches like 2960 uses new cost value. Lower cost value is always preferred over higher cost value while selecting link.
Path cost is an accumulated value of port costs from Root Bridge to other switches in network. It is always calculated from Root Bridge. Default path cost at Root Bridge is 0. BPDU contains path cost information. When Root Bridge advertises BPDU out from its interface, it set path costs to 0. When connected switch receives this BPDU, it increments path cost by adding the port cost value of its incoming port. For example if switch receive this BPDU on Gigabit interface then path cost would be 0 (Value it receive from Root Bridge) + 4 (port cost value, see above table) equal to 4. Now this switch will set path cost value to 4 in BPDU frame and forward it. Assume that next switch is connected with this switch and receives updated BPDU on fast Ethernet port. Path cost for new switch would be 23. Path costs value received in BPDU + Port cost ( 4+ 19 = 23).
Root port is a port that is directly connected with the Root Bridge, or has the shortest path to the Root Bridge. Shortest path is path that has lowest path cost value. Remember that switch can go through many other switches to get the root. So it’s not always the shortest path but it is the fastest path that will be used.
Designated port is the port that is selected as having the lowest port cost. Designated port would be marked as forwarding port.
Non-designated port is the port that is selected as having the higher port cost than the designated port. Non-designated port would be marked as blocking port.
Forwarding port is used to forward the frames.
Blocking port remains disable to remove loops.
STP port states
Ports on switch running STP go through the five different states. During STP convergence, switches will move their root and designated ports through the various states: blocking, listening, learning, and forwarding, whereas any other ports will remain in a blocked state.
In blocking state, switch only listen and process BPDUs on its ports. Any other frames except BPDUs are dropped. In this state, switch try to find out which port would be root port, which ports would be designated ports and which ports would remains in blocking state to remove loops. A port will remain in this state for twenty seconds. By default all ports are in blocking state, when we powered on the switch. Only root port and designated ports will move into next state. All remaining ports will remain in this state.
After twenty seconds, root port and designated ports will move into listening state. In this state ports still listen and process only BPDUs. All other frames except BPDUs are dropped. In this state switch will double check the layer 2 topology to make sure that no loops occur on the network before processing data frames. Ports remain in this state for fifteen seconds.
Root port and designated ports enter in learning state from listening state. In this state ports still listen and process BPDUs. However, in this state ports start processing user frames. Switch examines source address in the frames and updates its MAC Address Table. Switch will not forward user frames to destination ports in this state. Ports stay in this state for fifteen seconds.
In forwarding state, ports will listen and process BPDUs. In this state ports will also process user frames, update MAC Address Table and forward user traffic through the ports.
Disable ports are manually shut down or removed from STP by an administrator. All unplugged ports also remain in disable state. Disable ports do not participate in STP.
Convergence is a state where all ports on switch have transitioned to either forwarding or blocking modes. During the STP converging, all user data frames would be dropped. No user data frame will be forwarded until convergence is complete. Usually convergence takes place in fifty seconds (20 seconds of blocking state + 15 seconds of listing state + 15 seconds of learning state).
First thing a STP enable network do, is the election of Root Bridge. Switches share BPDUs with each other to select the Root Bridge. Switch that has lowest priority will become root. Default priority is set to 32768. If priority value is same then switch with lowest MAC address would be selected as root. In our network switch S3 has lowest MAC address. Since we did not change priority value, switch S3 would be chosen as Root Bridge.
- Every switch selects single port (that has shortest path cost) from all its ports and marked it as root port.
- If two switches have multiple connections, only single connection that has shortest path cost would be marked as designated port.
- Any port that is not either a root port or designated port would be blocked.
Next figure show, how STP changes a physically looped topology in virtually looped free topology.
show spanning-tree command
show spanning-tree command provides useful information about STP operation. This information could be divided in three subsets. First set contains information about Root Bridge. Second set contains information about switch itself. Third set lists active interfaces status those are participating in STP operation.
On Root Bridge first and second subset information would be same.
On non-Root Bridge first subset shows information about Root Bridge while second subset shows information about switch itself.
Priority value is a sum of default priority value and VLAN ID.
That’s all for this article. In next article I will explain another CCNA topic in detail with examples.