Cisco Systems



Loop Avoidance


Spanning Tree Protocol

History

Long ago, a company called Digital Equipment Corporation (DEC) created the original version of Spanning Tree Protocol (STP). The IEEE later created its own version of STP called 802.1d.

Routing protocols like RIP, EIGRP, and OSPF have processes for preventing loops from occurring at the Network layer, but if you have redundant physical links between your switches, these protocols won’t do a thing to stop loops from occurring at the Data Link layer. That’s exactly why STP was developed—to put an end to loop issues in a layer 2 switchednetwork.

Introduction

Le Spanning Tree Protocol (algorithme de l'arbre recouvrant, aussi appelé STP) est un protocole réseau de niveau 2 permettant de déterminer une topologie réseau sans boucle (appelée arbre) dans les LAN avec ponts. Il est défini dans la norme IEEE 802.1D et est basé sur un algorithme décrit par Radia Perlman en 1985

Spanning Tree Protocol (STP) achieves its primary objective of preventing network loops on layer 2 network bridges or switches by monitoring the network to track all links and shut down the redundant ones. STP uses the spanning-tree algorithm (STA) to first create a topology database and then search out and disable redundant links. With STP running, frames will be forwarded on only premium, STP-chosen links.

Le problème


This is a switched network with a redundant topology that includes switching loops. Without some type of layer 2 mechanism in place to prevent a network loop, this network is vulnerable to nasty issues like

  • broadcast storms,
  • multiple frame copies,
  • and MAC table thrashing!

Les réseaux commutés de type Ethernet doivent avoir un chemin unique entre deux points, cela s'appelle une topologie sans boucle. En effet, la présence de boucle génère des tempêtes de diffusion qui paralysent le réseau : tous les liens sont saturés de trames de diffusion qui tournent en rond dans les boucles et les tables d'apprentissage des commutateurs deviennent instables.

Une solution serait de ne pas tirer les câbles en surnombre de manière à ne pas avoir de boucles dans le réseau. Néanmoins, un bon réseau doit aussi offrir de la redondance pour proposer un chemin alternatif en cas de panne d'une liaison ou d'un commutateur.

L'algorithme de « spanning tree minimum » garantit l'unicité du chemin entre deux points du réseau tout en n'interdisant pas les câbles en surnombre. Pour cela, il bloque administrativement certains ports des commutateurs.

Mode de fonctionnement

L'algorithme STP procède en plusieurs phases :
  1. élection du commutateur racine,
  2. détermination du port racine sur chaque commutateur,
  3. détermination du port désigné sur chaque segment,
  4. blocage des autres ports.
Élection du commutateur racine

Une topologie sans boucle ressemble à un arbre et à la base de chaque arbre, on trouve ses racines (roots). Dans un réseau commuté, le root bridge (commutateur racine) est élu. Chaque commutateur a une adresse MAC et un numéro de priorité paramétrable (0x8000 par défaut), ces deux nombres constituant l'identifiant de pont (bridge identifier, BID). Le commutateur avec la priorité la plus basse l'emporte, et en cas d'égalité, c'est l'adresse MAC la plus basse qui l'emporte.

En général, l'administrateur du réseau influence le résultat de l'élection pour que le commutateur racine choisi soit le plus près possible du cœur de réseau. Pour cela, il configure la priorité du commutateur racine le plus opportun en fonction de la topologie du réseau, ainsi que la priorité d'un autre commutateur qui deviendra commutateur racine en cas de défaillance du commutateur racine principal.

Détermination des ports racine

Les autres commutateurs du réseau vont alors déterminer quel est le port qui possède la « distance » la plus courte vers le commutateur racine. Pour cela, ils utilisent le « coût » de chaque lien traversé, ce coût dépendant de la bande passante du lien. Le « port racine » (root port, RP) sera celui qui mène le plus directement au commutateur racine. Chaque commutateur doit avoir un seul root port. L'élection d'un root port est effectuée d'après les champs path cost et port ID d'un paquet BPDU. En cas d'égalité, c'est le port ayant le port ID le plus faible qui sera élu.

Détermination des ports désignés

Pour chaque segment réseau reliant des commutateurs, un « port désigné » (designated port, DP) est ensuite déterminé. Ces segments peuvent relier plus de deux commutateurs. Le port désigné est le port relié au segment qui mène le plus directement à la racine.

Blocage des autres ports

Les ports qui ne sont ni racine, ni désignés sont bloqués. Un port bloqué peut recevoir des paquets BPDU mais ne peut pas en émettre.

Changements de topologie

En cas de changement de topologie, lorsqu'un lien est coupé ou qu'un commutateur tombe en panne ou est éteint, l'algorithme est exécuté à nouveau et un nouvel arbre recouvrant est mis en place. Les boucles assurent donc de la redondance.

Technic

The Spanning Tree Election process goes through some clearly defined steps which ultimately defines the "Designated Port" for each segment

Step 1 - The bridge with the lowest "Bridge ID" (BID) becomes the "Root Bridge"
BID = priority (default 32768) + Mac Address (lowest MAC wins - like golf, lowest score wins!)

Step 2 - Root Port selection - Which port on the non-root bridges has the lowest path cost to the root bridge?
If all path costs are equal, which connected bridge has the lowest BID?
which advertised switchport is the lowest numbered port?

Step 3 - Designate Port selection - (1 per segment) Lowest path cost to root bridge
If all costs are equal, which non-root bridge has the lowest BID?

Step 4 - Block all other ports

Port Costs

Cost = connection speed in Mbps or Gbps
10 Mbps = cost of 100
100 Mbps = cost of 19
1Gbps = cost of 4
10Gbps = cost of 2

***RSTP introduces the "Alternate Port" and the "Backup Port" but for basic STP designated port election, this is the process.


Spanning-Tree Terms

Now, before I get into describing the details of how STP works within a network, it would be good for you to have these basic ideas and terms down first:

Root bridge The root bridge is the bridge with the lowest and, therefore, the best bridge ID. The switches within the STP network elect a root bridge, which becomes the focal point in the network. All other decisions in the network, like which ports on the non-root bridges should be blocked or put in forwarding mode, are made from the perspective of the root bridge, and once it has been elected, all other bridges must create a single path to it. The port with the best path to the root bridge is called the root port.

Non-root bridges These are all bridges that aren’t the root bridge. Non-root bridges exchange BPDUs with all the other bridges and update the STP topology database on all switches. This prevents loops and helps defend against link failures.

BPDU All switches exchange information to use for the subsequent configuration of the network. Each switch compares the parameters in the Bridge Protocol Data Unit (BPDU) that it sends to a neighbor with the parameters in the BPDU that it receives from other neighbors. Inside the BPDU is the bridge ID.

Bridge ID The bridge ID is how STP keeps track of all the switches in the network. It’s determined by a combination of the bridge priority, which is 32,768 by default on all Cisco switches, and the base MAC address. The bridge with the lowest bridge ID becomes the root bridge in the network. Once the root bridge is established, every other switch must make a single path to it. Most networks benefit by forcing a specific bridge or switch to be on the root bridge by setting its bridge priority lower than the default value.

Port cost Port cost determines the best path when multiple links are used between two switches. The cost of a link is determined by the bandwidth of a link, and this path cost is the deciding factor used by every bridge to find the most efficient path to the root bridge.

Path cost A switch may encounter one or more switches on its path to the root bridge, and there may be more than one possible path. All unique paths are analyzed individually, and a path cost is calculated for each unique path by adding the individual port costs encountered on the way to the root bridge.


Bridge Port Roles

STP uses roles to determine how a port on a switch will act within the spanning-tree algorithm.

Root port The root port is the link with the lowest path cost to the root bridge. If more than one link connects to the root bridge, then a port cost is found by checking the bandwidth of each link. The lowest-cost port becomes the root port. When multiple links connect to the same device, the port connected to the lowest port number on the upstream switch will be the one that’s used. The root bridge can never have a root port designation, while every other switch in a network must have one and only one root port.

Designated port A designated port is one that’s been determined to have the best (lowest) cost to get to on a given network segment, compared to other ports on that segment. A designated port will be marked as a forwarding port, and you can have only one forwarding port per network segment.

Non-designated port A non-designated port is one with a higher cost than the designated port. These are basically the ones left over after the root ports and designated ports have been determined. Non-designated ports are put in blocking or discarding mode—they are not forwarding ports!

Forwarding port A forwarding port forwards frames and will be either a root port or a designated port.

Blocked port A blocked port won’t forward frames in order to prevent loops. A blocked port will still always listen to BPDU frames from neighbor switches, but it will drop any and all other frames received and will never transmit a frame.


Alternate port This corresponds to the blocking state of 802.1d and is a term used with the newer 802.1w (Rapid Spanning Tree Protocol). An alternative port is located on a switch connected to a LAN segment with two or more switches connected, and one of the other switches holds the designated port.

Backup port This corresponds to the blocking state of 802.1d and is a term now used with the newer 802.1w (Rapid PVST+). A backup port is connected to a LAN segment where another port on that switch is acting as the designated port.


STP Ports States

Cinq états de ports peuvent rencontrés consécutivement sur un port avant que STP ait convergé. Chaque état comporte un délai qui varie en fonction de la version de STP utilisée sur le commuateur Cisco. En voici les propriétés. Le compteur "age maximum" (Max Age) de 20 secondes par défaut est le temps maximal avec que STP effectue de nouveaux calculs quand une interface ne reçoit plus de BPDUs. Le temps de "forwarding" de 15 secondes par défaut est le temps de passage d'un état "listening" à "learning" et de "learning" à "forwarding". Bref, une topologie peut prendre jusqu'à 50 secondes avant de converger et de transférer du trafic. Aussi, la fréquence d'envoi de BPDUs Hello est de 2 secondes par défaut.



Etat « Blocking »
  • Rejette toutes les trames de données venant du segment attaché
  • Rejette toutes les trames de données venant d'un autre port de transfert
  • N'intègre aucune emplacement de station dans sa MAC table (il n'y pas d'apprentissage)
  • Reçoit les BPDUs et les transmet à son système
  • N'envoie pas de BPDUs reçus de son système
  • Répond à SNMP


Etat « Listening »
  • Rejette toutes les trames de données venant du segment attaché
  • Rejette toutes les trames de données venant d'un autre port de transfert
  • N'intègre aucune emplacement de station dans sa MAC table (il n'y pas d'apprentissage)
  • Reçoit les BPDUs et les transmet à son système
  • Envoie les BPDUs reçus de son système
  • Répond à SNMP

    Etat « Learning »
  • Rejette toutes les trames de données venant du segment attaché
  • Rejette toutes les trames de données venant d'un autre port de transfert
  • Intègre les emplacements de station dans sa MAC table (apprentissage)
  • Reçoit les BPDUs et les transmet à son système
  • Envoie les BPDUs reçus de son système
  • Répond à SNMP

    Etat « Forwarding »
  • Commute toutes les trames de données venant du segment attaché
  • Commute toutes les trames de données venant d'un autre port de transfert
  • Intègre les emplacements de station dans sa MAC table (apprentissage)
  • Reçoit les BPDUs et les transmet à son système
  • Envoie les BPDUs reçus de son système
  • Répond à SNMP

    Etat « Disabled » Cet état est similaire à l'état « blocking » sauf que le port est considéré physiquement non opérationnel (shut down ou problème physique).

    Mode des ports sur les commutateurs en STP

    Les ports des commutateurs où STP est actif sont dans l'un des états suivants :

    • listening : le commutateur « écoute » les BPDU et détermine la topologie réseau ;

    • learning : le commutateur construit une table faisant correspondre les adresses MAC aux numéros des ports ;

    • forwarding : un port reçoit et envoie des données, opération normale ;

    • blocking : un port provoquant une boucle, aucune donnée n'est envoyée ou reçue mais le port peut passer en mode forwarding si un autre lien tombe ;

    • disabled : désactivé, un administrateur peut manuellement désactiver un port s'il le souhaite.

    Steps

    Au demarrage le device passe de :
    1. Listening
    2. learning
    3. forwarding ou blocking (apres la convergence)
    Le délai de transition entre les modes listening vers learning et learning vers forwarding est nommé forward delay, il est fixé par le root bridge et vaut quinze secondes par défaut.
    Quand un client tel qu'un ordinateur, une imprimante ou un serveur est connecté au réseau, son port se mettra automatiquement d'abord en mode listening puis en mode learning, avant de se mettre en mode forwarding.

    Pour raccourcir le délai de latence allant de trente à cinquante secondes inhérent à la connexion d'un nouveau périphérique, le Rapid STP a été développé et standardisé par la norme IEEE 802.1w ; il permet à un port de commutateur de passer directement en mode forwarding. Il est également possible d'exclure certains ports du fonctionnement du spanning tree, pour autant que l'on soit sûr qu'aucune boucle n'est possible sur ceux-ci.




    Types of Spanning-tree Protocols

    There are several varieties of spanning-tree protocols in use today:

    • Common Spanning Tree (CST) IEEE 802.1d
    • Per-VLAN Spanning Tree+ (PVST+) Cisco
    • Rapid Spanning Tree Protocol (RSTP) IEEE 802.1w
    • Rapid Per-VLAN Spanning Tree+ (Rapid PVST+) Cisco
    • Multiple Spanning Tree Protocol (MSTP) 802.1s

    Common Spanning Tree (CST)

    IEEE Norm: IEEE 802.1d
    The original standard for bridging and STP, which is really slow but requires very little bridge resources.
    It’s also referred to as Common Spanning Tree (CST).

    Per-VLAN Spanning Tree+ (PVST+)

    PVST+ (Cisco default version) is the Cisco proprietary enhancement for STP that provides a separate 802.1d spanning-tree instance for each VLAN.
    Know that this is just as slow as the CST protocol, but with it, we get to have multiple root bridges.
    This creates more efficiency of the links in the network, but it does use more bridge resources than CST does.

    Rapid Spanning Tree Protocol (RSTP)

    IEEE Norm: IEEE 802.1w
    This iteration enhanced the BPDU exchange and paved the way for much faster network convergence, but it still only allows for one root bridge per network like CST.
    The bridge resources used with RSTP are higher than CST’s but less than PVST+.

    Rapid Per-VLAN Spanning Tree+ (Rapid PVST+)

    Rapid PVST+ Cisco’s version of RSTP that also uses PVST+ and provides a separate instance of 802.1w per VLAN.
    It gives us really fast convergence times and optimal traffic flow but predictably requires the most CPU and memory of all.

    Configuration
    S2(config)#spanning-tree mode rapid-pvst

    Multiple Spanning Tree Protocol (MSTP)

    802.1s (MSTP) IEEE standard that started out as Cisco propriety MISTP. Maps multiple VLANs into the same spanning-tree instance to save processing on the switch. It’s basically a spanning-tree protocol that rides on top of another spanning-tree protocol.



    Per-VLAN Spanning Tree (PVST)

    Quand plusieurs VLAN existent dans un réseau ethernet commuté, STP peut fonctionner de façon indépendante sur chacun des VLAN séparément. Ce mode de fonctionnement a été baptisé PVST(+) par Cisco. C'est le mode par défaut sur les commutateurs de la marque. Il s'agit d'un développement propriétaire qui est également pris en charge par certains fournisseurs concurrents.

    PVST fonctionne uniquement avec Cisco Inter-Switch Link (ISL). PVST+ est utilisé avec dot1q.


    Rapid Spanning Tree Protocol (RSTP)

    En 1998, l'IEEE publie le document 802.1w qui accélère la convergence du protocole STP après un changement de topologie. Il est inclus dans standard IEEE 802.1D-2004. Tandis que le STP classique peut prendre de trente à cinquante secondes pour converger après un changement de topologie, RSTP est capable de converger en trois fois la valeur du délai Hello (deux secondes par défaut pour un Hello, c'est-à-dire 3 × 2 = 6 secondes de temps de convergence.)2,3.

    Rôle des ports RSTP

    • Root : le port le plus près (en termes de coût du chemin) du root bridge.
    • Designated : le port qui transmet les trames sur un segment.
    • Alternate : un port distinct du root port vers le root bridge. Il s'agit du meilleur chemin "alternatif" vers le root bridge, et passe (en cas de changement de défaillance du port root) directement à l'état forwarding.
    • Backup : Lors d'une connexion redondante d'un segment vers un autre bridge (deux connexion vers le même domaine de collision) un autre port vers un segment connecté au pont. L'un des ports (selon la priorité) aura comme rôle celui de Backup.

    Le fonctionnement général de RSTP est semblable à celui du STP classique. Les différences sont les suivantes :
    • une défaillance du root bridge est détectée en trois délais hello, c'est-à-dire six secondes avec les valeurs par défaut ;
    • les ports qui ne sont pas connectés à d'autres commutateurs (edge ports) peuvent basculer immédiatement dans l'état forwarding.
    RSTP continue à observer l'arrivée de BPDU sur ces ports pour s'assurer qu'aucune boucle n'est possible. Si un BPDU est observé, le port bascule dans le statut non edge ;

    • contrairement au STP classique, RSTP réagit aux annonces BPDU qui proviennent du root bridge. Un bridge RSTP diffuse son information RSTP sur ses designated ports. Si un bridge reçoit un BPDU indiquant un meilleur root bridge, il place tous les autres ports dans l'état discarding et informe ce bridge qu'il est le meilleur chemin vers le root. En recevant cette information, celui-ci peut faire transiter le port vers ce bridge immédiatement dans l'état forwarding sans passer par les états listening et learning, puisque aucune boucle n'est possible. Ceci constitue une amélioration majeure en termes de vitesse de convergence ;

    • RSTP conserve des informations au sujet d'un chemin alternatif vers le root bridge, ainsi qu'un chemin de backup vers les segments, ceci permet une transition rapide en cas de problème sur une liaison.




    Multiple Spanning Tree Protocol (MSTP)

    Le Multiple Spanning Tree Protocol (MSTP), défini dans la norme IEEE 802.1s puis inclus dans IEEE 802.1Q-2003, est une extension de RSTP dans laquelle une instance de RSTP existe par groupe de VLAN. Disposer de plusieurs instances de STP permet de mieux utiliser les liaisons dans le réseau, si la topologie STP est différente pour certains groupes de VLAN. Contrairement à PVST, il n'est cependant pas nécessaire de disposer d'une instance par VLAN, ceux-ci pouvant être très nombreux, les VLAN étant groupés. MSTP a été inspiré par le protocole de Cisco Multiple Instances Spanning Tree Protocol (MISTP). MSTP est compatible avec les ponts RSTP, le format de BPDU étant le même.



  • Eninam BAGNABANA     |         |     bagnadavid@outlook.fr     |