VMWARE Networking, NON dimenticarti dell'STP

VMWARE Networking, NON dimenticarti dell'STP

Ecco un passaggio di configurazione della rete che a volte viene trascurato ma che può risultare fondamentale specie per la gestione della manutenzione dei sistemi in HA (High Avability). Non dimenticarti mai dell’STP!

Lo Spanning-Tree Protocol (STP) è un protocollo di layer 2 che viene integrato in quasi tutti gli switch. Diamo un’occhiata a come funziona Spanning-Tree e cosa fa.

Cos’é lo Spanning Tree Protocol

Per definizione, l’ STP (Spanning Tree Protocol) viene utilizzato per impedire i loop nell’architettura di rete attiva ed è abilitato per impostazione predefinita sulla maggior parte dei prodotti business.

Ad esempio, se hai due switch, collegati tra di loro tramite un cavo sulla porta 1 di ogni switch.

Supponiamo che qualcuno collega ora un pc alla porta 2 del primo switch, e un altro cavo dal primo switch al secondo (in aggiunta a quello già presente) sulla porta 3 di ogni switch. (vedi immagine seguente)

In questo caso (semplificato e banale) si verificherà un loop.

Come funziona l’STP

Ogni trasmissione inviata dal pc passerebbe dallo switch 1 al 2 per poi tornare allo switch 1 con lo stesso indirizzo mac address sorgente.

Gli switch devono presumere che le macchine si spostano e quindi utilizzano sempre le informazioni più recenti disponibili, perciò quando lo switch 2 rinvia tale trasmissione allo switch 1, lo switch 1 deciderà che il modo migliore per raggiungere il PC sarà tramite lo switch 2 anziché la propria porta direttamente connessa: si crea perciò un circolo vizioso che continuerà a generare pacchetti e -alla fine- bloccherà ogni switch nel dominio di trasmissione perché corrompe le tabelle degli indirizzi mac.

La funzione di base di STP è perciò prevenire i loop ed i blocchi che ne derivano.

Lo spanning tree consente inoltre di creare dei loop “buoni”, cioè dei loop predefiniti nella topologia di rete al fine di includere collegamenti di backup per creare una infrastruttura resiliente in caso di errore di un collegamento attivo.

Infatti quando l’STP rileva un loop, disabilita i collegamenti ridondanti lasciando un singolo percorso attivo tra due nodi di rete.

Stati STP delle porte dello switch

  • Blocco : una porta che provocherebbe un loop viene messa in blocco, nessun dato utente viene inviato o ricevuto ma potrebbe passare alla modalità di inoltro se gli altri collegamenti in uso dovessero fallire e l’algoritmo di spanning tree determina che la porta potrebbe passare allo stato di inoltro. I dati BPDU sono ancora ricevuti;
  • Ascolto : lo switch elabora le BPDU e attende possibili nuove informazioni che potrebbero far tornare allo stato di blocco;
  • Apprendimento : sebbene la porta in stato di apprendimento non inoltri ancora i pacchetti, impara gli indirizzi di origine dai frame ricevuti;
  • Inoltro : porta che riceve e invia dati, stato normale. L’ STP controlla le BPDU in arrivo che indicano se bloccare la porta per impedire un loop;
  • Disabilitato – Non strettamente parte di STP, un amministratore di rete può disabilitare manualmente una porta.

Cosa succede se c’è un loop?

L’STP “butta giù” la porta incriminata. E ogni volta che una porta va su o giù, cioè lo switch rileva un cambiamento nella topologia di rete, forza tutti gli switch fisici collegati a scaricare le loro tabelle di inoltro e ad apprendere nuovamente la nuova topologia STP e tutti gli indirizzi MAC.

Il completamento della convergenza e l’elaborazione dei frame possono richiedere dai 20 ai 60 secondi….in cui la rete non funziona.

E qui sorge il problema con VmWare…

Ciò pone un problema quando si riferisce alle distribuzioni VMware enterprise di vSphere.

Le applicazioni possono scadere e probabilmente finire con un errore dell’host se non si configura correttamente l’HA per utilizzare non solo schede di rete ridondanti, ma anche console di servizio ridondanti.

Inoltre, come segnalato direttamente da VMWARE in questa Knowledge base alcuni eventi sulle porte fisiche degli host ESXi potrebbero forzare gli switch al ricalcolo della topologia, bloccando temporaneamente l’intera struttura.

Come evitare di bloccare tutta l’azienda se stacchi un cavo di rete?

VMWARE consiglia di abilitare l’opzione “Portfast” sulle porte dello switch a cui sono collegati gli host ESXi: questa opzione su una porta specifica dello switch farà saltare automaticamente tutte le fasi di ascolto e di apprendimento dell’STP e invierà automaticamente la porta in uno stato di inoltro.

L’unico aspetto negativo è che queste porte non sono configurate per la prevenzione del loop: ma il problema dei loop non esiste quando si collegano i server, è un problema legato alla connessione di switch e alcune apparecchiature VoIP.

E se vuoi stare sicuro…

Il mio consiglio, se vuoi evitare del tutto il flip della rete quando manutenzioni un server ESXi in cluster, è di disattivare completamente l’STP sulle singole porte a cui sono collegati i server. Questo dipende anche se questo tipo di disattivazione è possibile per il modello di switch che utilizzi.

Bada bene, NON disattivare l’STP di TUTTO lo switch, ma solo per alcune porte lasciando l’STP attivo su tutto il resto delle connessioni. Il comando per la disattivazione dell’STP per porta cambia da produttore a produttore, e deve essere verificato in modo puntuale per modello/versione di firmware dello switch che devi gestire.

Ad esempio, per lo switch HPE 5130 il comando per disabilitare l’STP sulla porta 1 è:

system-view
interface GigabitEthernet1/0/1
undo stp enable

HPE Layer 2 LAN Switching Configuration Guide (https://support.hpe.com/hpsc/doc/public/display?docId=c04771709)

Alla prossima!

Da ragazzino saltavo il pranzo e stavo fino a sera sulla tastiera di un commodore 16 a programmare giochi che oggi apparirebbero ridicoli, ma che allora per me erano semplicemente magnifici; provo la stessa emozione ancora oggi quando -utilizzando la tecnologia- risolvo problemi concreti e miglioro il lavoro mio e dei miei colleghi.