Spanning-Tree RSTP LAB Junos design and configuration

Home » Blog » Configuration Template » Juniper » Spanning-Tree RSTP LAB Junos design and configuration

Spanning-Tree RSTP LAB Junos design and configuration

07.02 2024 | by massimiliano

Spanning Tree Teoria STP IEEE 802.1d è un protocollo che assicura assenza di loop all’interno di un dominio di switching […]



Spanning Tree Teoria

STP IEEE 802.1d è un protocollo che assicura assenza di loop all’interno di un dominio di switching layer 2; utilizza un valore dello switch chiamato BRIDGE-ID per eleggere il root-switch trasportato all’interno di BPDU di 8 bytes di cui:

i primi due bytes rappresentano il Bridge Priority assumendo un range di valori decimali da 0 a 65.353 (valore di default = 32.768)

Gli ultimi sei bytes rappresentano l’indirizzo MAC proprio dello switch

In STP il valore più basso di Bridge-ID è preferito; in caso di parità della priority (valore per il quale uno switch assume il ruolo di root), il secondo passo è quello di confrontare il valore più basso di MAC address tra i due switch in contesa.

Il ruolo delle porte è il seguente:

Listening = la porta sta trasmettendo e ricevendo BPDU (Bridge Protocol Data Unit)

Learning = acquisisce le informazioni di MAC address del nodo collegato alla porta e permette così la costruzione di una tabella di bridging MAC addresses

Blocking = non permette nessuna trasmissione di dati user in uscita alla porta (ma resta in ascolto delle BPDU)

Forwarding = permette la trasmissione e ricezione di dati user e BPDU

Disable = porta non attiva

Lo status delle porte è il seguente:

Root = significa la Best Port in forwarding status con direzione verso il root bridge

Designated = in forwarding state per ogni segmento di rete LAN

Non-designated = risulta in blocking 

RSTP IEEE 802.1w è un protocollo sempre per evitare loop all’interno di un dominio di switching ma a differenza del 802.1d garantisce migliori tempi di convergenza

Il ruolo delle porte è il seguente:

Forwarding = permette la trasmissione e ricezione di dati user

Learning = acquisisce le informazioni di MAC address del nodo collegato alla porta e permette così la costruzione di una tabella di bridging MAC addresses

Discarding = nessun pacchetto è trasmesso dalla porta

Lo status delle porte è il seguente:

Root = significa la Best Port in forwarding status con direzione verso il root bridge

Designated = in forwarding state per ogni segmento di rete LAN

Alternate = in blocking state ma rappresenta il path alternativo verso il root bridge; questo path è differente da quello utilizzato dalla best port.

Backup = in blocking state rappresenta il backup (ridondanza) di un path verso un segmento LAN dove un altro switch è invece già connesso.

Disable = è possibile in modo amministrativo disabilitare una porta

Differenza Tempi di Convergenza:

RSTP: circa 10 sec (spesso anche 2 sec)

STP: 50 secondi

RSTP IEEE 802.1w ha facoltà di categorizzare alcune porte in stato di Forwarding senza attendere i timers del protocollo STP attraverso due variabili:

LINK TYPE = eseguito attraverso la configurazione della porta in half-duplex oppure full-duplex

Full-Duplex = link type point-to-point = connessione tra due switch

Half-Duplex = link shared = connessione attraverso un terzo media dove multipli switches possono esistere

EDGE-PORT = sono porte direttamente collegate tra uno switch ed un end-point quale può essere un host, server, etc; [ attenzione al fatto che queste porte se ricevono BPDU (quindi collegate ad altri switch) perdono il loro ruolo di Edge Port e diventano normali porte STP, andando cosi a generare all’arrivo di BPDU un TCN (Topology Change Notification)

Il best-path è calcolato su base valore del bandwidth interface del link associato ad un valore di costo della porta

MSTP IEEE 802.1s  significa avere una istanza STP per un set o region di vlans (Multiple Spanning Tree)

Risulta molto utile nel caso di molte vlan in uso, invece di avere una singola instanza per vlan, ottenere (configurare) differenti regioni associate a gruppi di vlan (ad esempio una regione alla quale appartengono un range di vlan da 2-800 ed un’altra regione con un range da 801-1000)

Questo comporta appunto un numero di istanze minori di STP ed un risparmio in termini di CPU di uno switch rispetto ad esempio RSTP.

BPDU Ethernet Frame

STP utilizza questi pacchetti come segnalazione per costruire il suo albero loop-free; una volta che STP è stabile, lo switch eletto root trasmette BDPU ogni 2 seconds di default

I campi che costituiscono le BPDU sono:

Protocol ID (2 bytes) = questo valore è sempre 0

Protocol version (1 bytes) = questo valore è sempre 0

BPDU Type (1 bytes) = questo campo serve per determinare se la frame BPDU è di tipo Configuration (0x00) oppure TCN (Change Topology = 0x80)

Flags (1 bytes) = questo campo è utilizzato per gestire changes in una topologia attiva

Root ID (8 bytes) = contiene il valore di Bridge ID del Root Bridge; dopo la convergenza tutti gli switch debbono avere lo stesso valore per vlan instance

Root path cost (4 bytes) = è un valore cumulativo in termini di cost di tutti i links a partire dal root bridge

Bridge ID (8 bytes) = è il valore identificativo del bridge che genera la BPDU; questo valore deve sempre essere lo stesso per tutte le BPDU trasmesse da ogni singolo switch per vlan instance, ma deve essere differenti da tutti gli altri switch presenti nel dominio STP. Il BID è una combinazione del valore di priority (default = 32.768) dello switch sender ed il valore di MAC Address.

Port ID (2 bytes) = contiene un valore unico per ciascuna porta; questo valore è una combinazione del priority della porta outbound ed un unico ID che rappresenta la porta stessa (di default la priority port = 128). Un esempio può essere indicato dalla porta ge-1/0/0 con valore pari a 128:513 e la porta ge-1/0/1 con valore pari a 128:514; ad ogni porta è associato un costo inversamente proporzionale alla velocità

Message Age (2 bytes)= questo valore memorizza un tempo da quando il root bridge ha generato le informazioni dalle quali il corrente BPDU è derivato

Max Age (2 bytes) = questo valore indica un tempo massimo per cui una determinata BPDU è stata salvata (range = 6 – 40 sec; default = 20 sec)

Hello Time (2 bytes) = questo valore misura il tempo di trasmissione tra periodici BPDU configuration (default = 2 sec)

Forward Delay (2 bytes) = questo valore misura il tempo che uno switch utilizza nello status di listening e learning ed influenza anche i timers durante un processo di TCN (range = 4 – 30 sec; defaut = 15 sec)

Esempio di configurazione Spanning-Tree in Junos con parametri di default

set protocols rstp bridge priority 32k

set protocol rstp max-age 20

set protocol rstp hello-time 2

set protocol rstp forward-delay 15

set protocol rstp interface ge-0/0/8.0 disable  # esclude la porta dal partecipare al protocollo RSTP

}

 set interface ge-0/0/1.0 cost 20000  # valore del costo per interfaccia a 1 GBps

set interface ge-0/0/1.0 mode point-to-point  # default mode per interfaccia operativa in full-duplex

}

set interface ge-0/0/2.0 priority 128  # default valore usato per influenzare i downstream switches ad utilizzare il percorso a minor costo verso il root-switch   

set interface ge-0/0/2.0 mode shared  # default mode per interfaccia operativa in half-duplex

}

set interface ge-0/0/3.0 mode edge  # default mode per interfaccia NON connessa ad altro switch operante con RSTP (ma solo a devices NO-STP enabled)

Architettura RSTP di Laboratorio

Verifica MAC table MX1

root@vMX1> show bridge mac-table   

MAC flags       (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC

    O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC,

P -Pinned MAC)

Routing instance : VSWITCH

 Bridging domain : VL-100, VLAN : 100

   MAC                 MAC      Logical          NH     MAC         active

   address             flags    interface        Index  property    source

   00:50:79:66:68:05   D        ge-0/0/5.0     

   00:50:79:66:68:06   D        ge-0/0/6.0     

   00:50:79:66:68:0d   D        ae2.0          

   00:50:79:66:68:0e   D        ae1.0          

{master}

Verifica MAC table MX2

root@vMX2> show bridge mac-table

MAC flags       (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC

    O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC,

P -Pinned MAC)

Routing instance : VSWITCH

 Bridging domain : VL-100, VLAN : 100

   MAC                 MAC      Logical          NH     MAC         active

   address             flags    interface        Index  property    source

   00:00:5e:00:01:64   D        ae1.0          # VRRP Mac address   

   00:50:79:66:68:06   D        ae1.0          

   00:50:79:66:68:0e   D        ae3.0          

   2c:6b:f5:c5:7a:f0      D        ae1.0          

root@vMX2>

Verifica MAC table MX3

root@vMX3> show bridge mac-table   

MAC flags       (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC

    O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC,

P -Pinned MAC)

Routing instance : VSWITCH

 Bridging domain : VL-100, VLAN : 100

   MAC                 MAC      Logical          NH     MAC         active

   address             flags    interface        Index  property    source

   00:00:5e:00:01:64   D        ae2.0          

   00:50:79:66:68:0d   D        ge-0/0/5.0     

   00:50:79:66:68:0e   D        ae2.0          

   2c:6b:f5:c5:7a:f0      D        ae2.0          

root@vMX3>

Verifica MAC table MX4

root@vMX4> show bridge mac-table

MAC flags       (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC

    O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC,

P -Pinned MAC)

Routing instance : VSWITCH

 Bridging domain : VL-100, VLAN : 100

   MAC                 MAC      Logical          NH     MAC         active

   address             flags    interface        Index  property    source

   00:00:5e:00:01:64   D        ae3.0          

   00:50:79:66:68:0d   D        ae3.0          

   00:50:79:66:68:0e   D        ge-0/0/6.0     

   2c:6b:f5:c5:7a:f0      D        ae3.0          

root@vMX4>

Configuration MX1: chassis and interfaces

Configuration MX1: RSTP

VSWITCH {

        instance-type virtual-switch;

        protocols {

            rstp {

                bridge-priority 32k;

                max-age 20;

                hello-time 2;

                forward-delay 15;

                interface ae1;

                interface ae2;

            }                          

        }

        bridge-domains {

            VL-100 {

                vlan-id 100;

                interface ae1.0;

                interface ae2.0;

                interface ge-0/0/5.0;

                interface ge-0/0/6.0;

                routing-interface irb.100;

            }

Configuration MX2: chassis and interface

Configuration MX2: RSTP

VSWITCH {

        instance-type virtual-switch;

        protocols {

            rstp {

                bridge-priority 36k;

                max-age 20;

                hello-time 2;

                forward-delay 15;

                interface ae1;

                interface ae3;

            }                          

        }

        bridge-domains {

            VL-100 {

                vlan-id 100;

                interface ae1.0;

                interface ae3.0;

                interface ge-0/0/5.0;

                interface ge-0/0/6.0;

                routing-interface irb.100;

            }

Configuration MX3: chassis and interface

Configuration MX3: RSTP

 VSWITCH {

        instance-type virtual-switch;

        protocols {

            rstp {

                bridge-priority 40k;

                max-age 20;

                hello-time 2;

                forward-delay 15;

                interface ae2;

                interface ae4;

            }                          

        }

        bridge-domains {

            VL-100 {

                vlan-id 100;

                interface ae2.0;

                interface ae4.0;

                interface ge-0/0/5.0;

Configuration MX4: chassis and interface

Configuration MX4: RSTP

VSWITCH {

        instance-type virtual-switch;

        protocols {

            rstp {

                bridge-priority 44k;

                max-age 20;

                hello-time 2;

                forward-delay 15;

                interface ae3;

                interface ae4;

            }                          

        }

        bridge-domains {

            VL-100 {

                vlan-id 100;

                interface ae2.0;

                interface ae4.0;                 interface ge-0/0/6.0;

Verifica elezione Root Bridge from MX1

root@vMX1> show spanning-tree bridge routing-instance VSWITCH detail

STP bridge parameters

Routing instance name                        : VSWITCH

Context ID                                              : 1

Enabled protocol                                  : RSTP

  Root ID                                                 : 32768.2c:6b:f5:c5:7a:d0

  Hello time                                           : 2 seconds

  Maximum age                                    : 20 seconds

  Forward delay                                    : 15 seconds

  Message age                                      : 0

  Number of topology changes         : 4

  Time since last topology change    : 254 seconds

  Local parameters

    Bridge ID                                            : 32768.2c:6b:f5:c5:7a:d0

    Extended system ID                         : 0

    Hello time                                          : 2 seconds

    Maximum age                                   : 20 seconds

    Forward delay                                   : 15 seconds

    Path cost method                            : 32 bit

Verifica elezione Root Bridge from MX2

root@vMX2> show spanning-tree bridge routing-instance VSWITCH detail

STP bridge parameters

Routing instance name                        : VSWITCH

Context ID                                              : 1

Enabled protocol                                  : RSTP

  Root ID                                                 : 32768.2c:6b:f5:c5:7a:d0

  Root cost                                              : 10000

  Root Port                                              : ae1

  Hello time                                           : 2 seconds

  Maximum age                                    : 20 seconds

  Forward delay                                    : 15 seconds

  Message age                                      : 1

  Number of topology changes         : 2

  Time since last topology change    : 393 seconds

  Local parameters

    Bridge ID                                            : 36864.2c:6b:f5:2b:26:d0

   output omitted (extsystem-id, hello-time, max-age, forward-delay, path cost method)

Verifica elezione Root Bridge from MX3

root@vMX3> show spanning-tree bridge routing-instance VSWITCH detail

STP bridge parameters

Routing instance name                        : VSWITCH

Context ID                                              : 1

Enabled protocol                                  : RSTP

  Root ID                                                 : 32768.2c:6b:f5:c5:7a:d0

  Root cost                                              : 10000

  Root Port                                              : ae2

  Hello time                                           : 2 seconds

  Maximum age                                    : 20 seconds

  Forward delay                                    : 15 seconds

  Message age                                      : 1

  Number of topology changes         : 2

  Time since last topology change    : 999 seconds

  Local parameters

    Bridge ID                                            :40960.2c:6b:f5:30:5e:d0

   output omitted (extsystem-id, hello-time, max-age, forward-delay, path cost method)

Verifica elezione Root Bridge from MX4

root@vMX4> show spanning-tree bridge routing-instance VSWITCH detail

STP bridge parameters

Routing instance name                        : VSWITCH

Context ID                                              : 1

Enabled protocol                                  : RSTP

  Root ID                                                 : 32768.2c:6b:f5:c5:7a:d0

  Root cost                                              : 20000

  Root Port                                              : ae3

  Hello time                                           : 2 seconds

  Maximum age                                    : 20 seconds

  Forward delay                                    : 15 seconds

  Message age                                      : 1

  Number of topology changes         : 2

  Time since last topology change    : 1075 seconds

  Local parameters

    Bridge ID                                            : 45056.2c:6b:f5:97:9c:d0

   output omitted (extsystem-id, hello-time, max-age, forward-delay, path cost method)

Verifica interface detail from MX1

root@vMX1> show spanning-tree interface routing-instance VSWITCH detail

Spanning tree interface parameters for instance 0

Interface name                            : ae1

Port identifier                              : 128.4

Designated port ID                     : 128.4

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 32768.2c:6b:f5:c5:7a:d0

Port role                                       : Designated

Link type                                       : Pt-Pt/NONEDGE

Interface name                            : ae2

Port identifier                              : 128.5

Designated port ID                     : 128.5

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 32768.2c:6b:f5:c5:7a:d0

Port role                                       : Designated

Link type                                      : Pt-Pt/NONEDGE

Verifica interface detail from MX2

root@vMX2> show spanning-tree interface routing-instance VSWITCH detail

Spanning tree interface parameters for instance 0

Interface name                            : ae1

Port identifier                              : 128.4

Designated port ID                     : 128.4

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 32768.2c:6b:f5:c5:7a:d0

Port role                                       : Root

Link type                                       : Pt-Pt/NONEDGE

Interface name                            : ae3

Port identifier                              : 128.6

Designated port ID                     : 128.6

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 36864.2c:6b:f5:2b:26:d0

Port role                                       : Designated

Link type                                      : Pt-Pt/NONEDGE

Verifica interface detail from MX3

root@vMX3> show spanning-tree interface routing-instance VSWITCH detail

Spanning tree interface parameters for instance 0

Interface name                            : ae2

Port identifier                              : 128.5

Designated port ID                     : 128.5

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 32768.2c:6b:f5:c5:7a:d0

Port role                                       : Root

Link type                                       : Pt-Pt/NONEDGE

Interface name                            : ae4

Port identifier                              : 128.7

Designated port ID                     : 128.7

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 40960.2c:6b:f5:30:5e:d0

Port role                                       : Designated

Link type                                      : Pt-Pt/NONEDGE

Verifica interface detail from MX4

root@vMX4> show spanning-tree interface routing-instance VSWITCH detail

Spanning tree interface parameters for instance 0

Interface name                            : ae3

Port identifier                              : 128.6

Designated port ID                     : 128.6

Port cost                                       : 10000

Port state                                     : Forwarding

Designated bridge ID                 : 36864.2c:6b:f5:2b:26:d0   # questo è lo switch vMX2 direttamente connesso to root bridge preferito

Port role                                       : Root

Link type                                       : Pt-Pt/NONEDGE

Interface name                            : ae4

Port identifier                              : 128.7

Designated port ID                     : 128.7

Port cost                                       : 10000

Port state                                     : Blocking

Designated bridge ID                 : 40960.2c:6b:f5:30:5e:d0

Port role                                       : Alternate

Link type                                      : Pt-Pt/NONEDGE

Torna in alto