Passa ai contenuti principali

Introduzione alle reti 3 - Switch tecnologies

In questa sezione verranno esaminate le Virtual LAN, prima espressione della tecnologia LAN Switching.
  


Virtual Local Area Network (VLAN)


Come già detto, uno dei punti di forza di uno switch risiede nella possibilità di creare sotto-reti a basso costo. Le VLAN (Virtual Local Area Network), in particolare, rappresentano la risposta a quelle situazioni nelle quali, pur non disponendo di grandi risorse, si renda comunque necessario tener distinti due o più ambiti della stessa rete, o, come è usuale dire, suddividere in più parti un dominio di broadcast. 

L'esempio tipico è quello di una (piccola) impresa che abbia necessità di tener separati sulla rete i propri device in base alle attività produttive. La rete potrebbe allora pensarsi composta di tante VLAN quante sono le attività aziendali, ciascuna VLAN potendo contenere al proprio interno l'hw destinato ad ogni specifica attività.




Dal punto di vista sistemistico, una VLAN è costituita da un sottoinsieme di porte dello stesso switch. Da notare che, in assenza di altro, una volta definite delle VLAN in uno switch, dispositivi a questo collegati potranno comunicare solo se connessi alle porte della stessa VLAN. 

I vantaggi di una rete gestita tramite VLAN sono così riassumibili:
  • Economicità: le VLAN richiedono esclusivamente la configurazione dello switch 
  • Efficace amministrazione: dovuta al frazionamento di un unico dominio di broadcast in più sotto-domini di minore dimensione
  • Buon livello di sicurezza: come già osservato, le VLAN sono fra loro indipendenti 
  • Aumento delle performance: permettendo a più reti logiche di utilizzare la stessa infrastruttura, si ha un migliore uso della larghezza di banda ed una suddivisione logica delle funzioni.

Gli switch Cisco nascono già dotati di VLAN predefinite: 
  • VLAN 1: anche detta nativa, o di management, contiene di default tutte le porte dello switch
  • VLAN 1002 concepita per reti fddi    
  • VLAN 1003 per reti token-ring-default   
  • VLAN 1004 per reti fddinet   
  • VLAN 1005 per reti trnet


IOS consente di creare ulteriori VLAN e di associarvi le porte dello switch che si desidera ne facciano parte. Di seguito le principali istruzioni per la creazione e la gestione di VLAN in uno switch.



(config)#vlan <vlan-id>
crea una nuova VLAN, o la seleziona se già esiste

(config-vlan)#name <vlan-name>
assegna un nome alla VLAN corrente

(config)#interface <port-id>
(config-if)#switchport mode access
(config-if)#switchport access
          vlan <vlan-id>
assegna una porta dello switch ad una VLAN:
  • seleziona una porta dello switch
  • imposta la modalità ACCESS per la porta
  • assegna la porta ad una VLAN

(config)#no vlan <vlan-id>
elimina una VLAN esistente

(config)#interface <port-id>
(config-if)#no switchport access
          vlan
rimozione di una porta da una VLAN:
  • seleziona una porta dello switch
  • de-associa la porta corrente dalla VLAN alla quale era stata assegnata; la porta viene automaticamente assegnata nuovamente alla VLAN di default: VLAN 1

#show vlan [brief|id <vlan-id>
            |name <vlan-name>]
fornisce indicazioni sulle VLAN in formato: sintetico; puntuale; per nome della VLAN

#show interfaces [<interface-id>
    |vlan <vlan-id>|switchport]
fornisce indicazioni sulle porte associate alle VLAN


Oss: la configurazione delle VLAN viene salvata nel file della memoria Flash vlan.dat.



La VLAN di Management

Una considerazione a parte merita la configurazione di una VLAN di Management. Come già il nome lascia intendere, compito di una VLAN di Management è quello di consentire l'amministrazione di uno switch da remoto via Telnet o SSH. Questi i passi da seguire per implementare una VLAN di Management:

  • configurare lo switch per l'accesso sicuro da remoto via vty 
  • (consigliato) creare una nuova VLAN (la VLAN di Management); in alternativa VLAN 1 sarà assunta, di default, come VLAN di management per lo switch
  • se necessario, assegnare alla VLAN di Management la porta attraverso la quale si intende collegarsi allo switch;
  • configurare la VLAN di Management con proprio indirizzo IP e Subnet Mask al pari di una normale interfaccia: sarà questo l'indirizzo al quale dovrà puntare Telnet/SSH   
      Switch(config)#interface vlan <n>
      Switch(config-if)#ip address <ip-address> <subnet-mask>
  • attivare la VLAN di management 
      Switch(config-if)#no shutdown   
  • definire per lo switch un default gateway.   
      Switch(config)#ip default-gateway <ip-address-1>


Nell'esempio che segue, la porta fastethernet 0/17 viene assegnata alla VLAN 99 e questa configurata per essere la VLAN di management dello switch S0.



S0#configure terminal

S0(config)#line vty 0 15
S0(config)#password cisco
S0(config)#login

S0(config)#interface fastethernet 0/17
S0(config-if)#switchport mode access
S0(config-if)#switchport acces vlan 99
S0(config-if)#exit

S0(config)#interface vlan 99 
S0(config-if)#ip address 192.168.1.194 255.255.255.192
S0(config-if)#no shutdown 
S0(config-if)#exit

S0(config)#ip default-gateway 192.168.1.193
S0(config-if)#end

Di seguito l'accesso allo switch mediante telnet:






Il Trunking


Può capitare di dover creare delle sotto-reti in contesti particolari: ripensando al problema di tener separate sulla rete differenti aree funzionali, la soluzione VLAN illustrata si dimostra adeguata fino a quando i device sono dislocati in modo tale da poter essere collegati allo stesso switch. Una simile soluzione, tuttavia, non sarebbe più accettabile se
, ad esempio, la dislocazione delle postazioni di lavoro fosse su piani differenti dello stesso edificio (eventualmente con postazioni di aree funzionali differenti nello stesso ambiente) o il numero di porte dello switch non fosse sufficiente a collegare tutti i device. 

In casi di questo tipo, una soluzione può essere quella della figura seguente: due switch ospitano le medesime VLAN; i device sono collegati alle porte dell'uno o dell'altro switch nel rispetto delle esigenze logistiche e dell'appartenenza alle specifiche VLAN; gli switch vengono, infine, collegati fra loro attraverso più collegamenti: uno per ciascuna VLAN. Una simile soluzione consente, in definitiva, ai frame di transitare dall'uno all'altro switch, pur all'interno della stessa VLAN. 




Quella precedente, seppur praticabile, può dimostrarsi una scelta troppo onerosa. Difatti, solo per fare un esempio, per mettere in comunicazione due switch, vengono impegnate da entrambe le parti tante porte quante sono le VLAN. 


IOS offre, al riguardo, una soluzione che, sebbene virtuale, si dimostra senz'altro più conveniente: il TrunkingCome illustrato nella figura seguente, l'idea alla base del Trunking è quella di accorpare in un unico collegamento, su di un'unica porta i collegamenti multipli della soluzione precedente. Un simile collegamento prende il nome di Trunk.  In una tale soluzione, i frame vengono etichettati in modo differente a seconda della VLAN di appartenenza; il Trunk consente il passaggio di frame da uno switch all'altro indipendentemente dalla VLAN di appartenenza, ma, all'interno dei singoli switch, i frame tornano nuovamente ad essere gestiti sulla base della propria VLAN di appartenenza.




Il Trunking risponde in realtà alla direttiva IEEE 802.1Q (IEEE Std. 802.1Q-2003, Virtual Bridged Local Area Networks; ISBN 0-7381-3662-X.per consentire a più VLAN di condividere lo stesso collegamento fisico senza perdita di informazioni tra un apparato e un altro e 802.1q è il nome del protocollo di incapsulamento utilizzato nel processo di Trunking nelle reti Ethernet. Il corrispondente protocollo Cisco è ISL (Inter-Switch Link).

In IOS realizzare il Trunking fra due switch è immediato. É, difatti, sufficiente dichiarare su entrambi gli switch la porta relativa al collegamento come operante in modalità Trunk (ovvero non appartenente ad alcuna VLAN).  

Ovviamente, le porte di uno switch che non vengano assegnate ad una specifica VLAN resteranno appartenenti alla VLAN di default: la VLAN 1. Questo comporta che frame non etichettati come appartenenti ad una specifica VLAN, vengano trattati dalla rete come frame diella VLAN 1. Esiste, tuttavia, la possibilità di forzare il Trunk a considerare come VLAN di default un'altra rete differente da VLAN 1. Anche a questo si riferiscono le istruzioni seguenti.     



(config)#interface <port-id>
(config-if)#switchport mode trunk
seleziona una porta e la configura per il collegamento in Trunk


(config)#interface <port-id>
(config-if)#no switchport mode
          access
de-configura la porta per il collegamento in Trunk


(config)#interface <port-id>
(config-if)#switchport trunk native
          vlan <vlan-id>
dichiara, ai fine del Trunking, una specifica VLAN come quella di default


(config)#interface <port-id>
(config-if)#no switchport trunk
           native vlan
ripristina, ai fine del Trunking, la VLAN 1 come VLAN di default




Inter-VLAN Routing


Create delle VLAN, rimane ancora un problema da risolvere: consentirgli di comunicare fra loro. Tornando ancora una volta al contesto produttivo, si pensi, ad esempio, ad una VLAN che contenga al proprio interno un server di utilità per tutte le funzioni aziendali: è evidente che il server dovrà poter "uscire" dal perimetro della propria VLAN.

Il compito di mettere in comunicazioni due o più reti spetta di norma ai router (esistono in realtà anche switch di livello 3 che implementano funzioni di routing). E, difatti, collegando una porta dello switch per ciascuna VLAN ad una porta del router il problema trova soluzione: il frame esce dalla VLAN di origine, entra nel router e viene instradato su un'altra porta dello switch appartenente alla VLAN di destinazione. 



Tale soluzione incontra, tuttavia, il suo limite nella limitata disponibilità di porte di un router. 

Ancora una volta IOS offre una soluzione al problema: le sub-interfaces, ovvero sotto-interfacce virtuali di un'interfaccia fisica del router. In altri termini, scelta una porta del router (sia ad esempio Fa0/0) è possibile definire tante sub-interfaces quante sono le VLAN da gestire (es. Fa0/0.2Fa0/0.3, ...; per convenzione. le sub-interfaces prendono il numero delle VLAN alle quali si riferiscono). 

Sebbene le sub-interfaces possano considerarsi al pari di reali interfacce del router, rimane il fatto che il collegamento fisico è uno solo (quello che utilizza la porta del router). Come mostrato in figura, anche in questo caso è possibile utilizzare un collegamento in modalità Trunk per supplire in modo virtuale al collegamento fisico multiplo che sarebbe necessario fra switch e router. Una simile soluzione prende il nome di router-on-a-stick



Di seguito le indicazioni per la creazione di sub-interface sul router: selezionata una porta del router (attiva e senza indirizzo), per ogni VLAN viene qui definita una sub-interfaces con indirizzo, subnet mask ed incapsulamento 102.1Q; la porta corrispondente dello switch viene, invece, configurata per lavorare in modalità trunking.   


Router(config)#interface <interface-id>
Router(config-if)#no ip address
Router(config-if)#no shutdown

Router(config)#interface <interface-id>.1

Router(config-subif)#encapsulation dot1q 1
Router(config-subif)#ip address <ip-address-1> <subnet-mask-1>

Router(config)#interface <interface-id>.2
Router(config-subif)#encapsulation dot1q 2
Router(config-subif)#ip address <ip-address-2> <subnet-mask-2>

...

Router(config)#interface <interface-id>.<VLAN-Max>

Router(config-subif)#encapsulation dot1q <VLAN-Max-Id>
Router(config-subif)#ip address <ip-address-n> <subnet-mask-n>



Switch(config)#interface <port-id>

Switch(config-if)#switchport mode trunk


Si osservi in particolare che: 


  • è necessario che l’interfaccia fisica sia attiva e priva di indirizzo IP
  • per convenzione il numero della generica sub-interface è uguale a quello della corrispondente VLAN.
  • la dichiarazione della sub-interface ne provoca la creazione
  • per consentire la comunicazione in Trunking con lo switch, è necessario impostare sulla sub-interface l’encapsulation 802.1Q.


Di seguito ancora un esempio di router-on-a-stick con relativa configurazione





S0(config)#interface fa0/4
S0(config-if)#switchport mode access
S0(config-if)#switchport access vlan 2

S0(config)#interface fa0/5
S0(config-if)#switchport mode access 
S0(config-if)#switchport access vlan 2
S0(config)#interface fa0/6
S0(config-if)#switchport mode trunk 

S1(config)#interface fa0/3
S1(config-if)#switchport mode access 
S1(config-if)#switchport access vlan 2
S1(config)#interface fa0/6S1(config-if)#switchport mode trunk 
S1(config)#interface fa0/7S1(config-if)#switchport mode trunk 

R0(config)#interface fa0/0
R0(config-if)#no shutdown
R0(config)#interface fa0/0.1
R0(config-subif)#encapsulation dot1q 1
R0(config-subif)#ip address 192.168.1.1 255.255.255.128
R0(config)#interface fa0/0.2
R0(config-subif)#encapsulation dot1q 2
R0(config-subif)#ip address 192.168.1.129 255.255.255.128



VLAN Trunking Protocol (VTP)


VLAN Trunking Protocol è un protocollo di rete ideato da Cisco ed utilizzato per distribuire le informazioni relative a VLAN. 
Il contesto al quale VTP fa riferimento è quello di reti di medie o grandi dimensioni con consistente presenza di VLAN. 

L'idea di VTP è quella di creare domini di switch (collegati fra loro in trunk), destinati ad ospitare le stesse VLAN. All'interno di un dominio, un solo switch riveste il ruolo di Server distribuendo la propria configurazione VLAN agli altri switch del dominio che operano, viceversa, come Client. Esiste, inoltre, un'altra categoria di switch che prende il nome di Transparent, ad indicare che il loro ruolo nel dominio è solo quello di passare la configurazione VLAN senza assumerla. Un client che riceve la configurazione dal server, da un altro client o da un transparent switch, crea e configura automaticamente al proprio interno le VLAN secondo le indicazioni ricevute. 


Le informazioni vengono scambiate tra gli switch attraverso dei VTP Advertisement che possono essere:  

  • Summary Advertisement: inviati esclusivamente dal server ai client periodicamente (ogni 5 min.) o in occasione di cambiamenti, riguardo il nome del dominio, il VTP revision number (codice che tiene traccia dei cambiamenti apportati all'interno della configurazione) e altri.
  • Subset Advertisement: inviati esclusivamente dal server ai client a seguito di cambiamenti di configurazione (creazione, eliminazione, modifica di VLAN), contengono le informazioni contenute nel file vlan.dat.
  • Request Advertisement: inviate dai client al server in occasione di advertisement ricevuti con differente dominio o revision number o se il client stesso viene resettato.

Per implementare VTP è necessario attenersi alla seguente procedura:
  • predisporre gli switch (non ancora collegati): di default uno switch viene dichiarato Server; eventualmente sarà quindi necessario convertirlo in Client
  • sullo switch Server definire il nome del dominio e la versione VTP (1 o 2), creare le VLAN e dichiarare le porte di Trunk.
  • creare i collegamenti di Trunk fra gli switch.     

Di seguito le relative istruzioni:



#show vtp status
fornisce tutte le informazioni sulla configurazione VTP dello switch

(config)#vtp domain <domain-name>imposta il nome di dominio

(config)#vtp version <n>imposta la versione VTP: 1 di default, o 2

(config)#vtp mode {client|server|
               trasparent}
imposta la modalità di esercizio dello switch

A titolo d'esempio, si considerino i due switch S0 ed S1 e si esegua:

S0(config)#interface fa0/3
S0(config-if)#switchport mode access
S0(config-if)#switchport access vlan 2

S0(config-if)#exit
S0(config)#interface fa0/4
S0(config-if)#switchport mode access 
S0(config-if)#switchport access vlan 2
S0(config-if)#exit
S0(config)#interface fa0/5
S0(config-if)#switchport mode access 
S0(config-if)#switchport access vlan 2
S0(config-if)#exit
S0(config)#interface fa0/10
S0(config-if)#switchport mode trunk
S0(config-if)#exit
S0(config)#vtp domain Test
 
e


S1(config)#interface fa0/10
S1(config-if)#switchport mode trunk
S1(config-if)#exit
S1(config)#vtp mode client


Si è, cioè, creata la nuova VLAN 20 sullo switch S0, alla stessa VLAN sono state assegnate le interfacce Fa0/3, Fa0/4 e Fa0/5 di S0 ed è stato dichiarato il dominio VTP "Test" che vede S0 come server (impostato tale di default) e come unico client S1.   

Collegando ora in trunk i due switch (attraverso l'interfaccia FastEthernet 0/10), dopo pochi istanti si noterà che la VLAN 20 presente sullo switch S0 è stata replicata anche sullo switch S1 - le interfacce andranno, tuttavia, aggiunte manualmente! - e che S1 fa ora anch'esso parte del dominio "Test"  (S1(config)#show vtp status).  



Spanning Tree Protocol (STP)


Lo Spannig Tree Protocol è un protocollo, utilizzato al livello 2 della pila OSI, in reti ridondanti. 
Gli switch, in particolare, proprio a causa dell'elevato numero di porte, si prestano alla realizzazione di un elevato grado di ridondanza. 

In una rete, tuttavia, se da una parte la ridondanza aumenta l'affidabilità, dall'altra aumenta la probabilità di looping (ritrasmissione senza fine di frame su percorsi chiusi ad anello) che inevitabilmente finisce per creare malfunzionamenti. 


Obiettivo di STP è, pertanto, quello di evitare la presenza di cammini circolari all'interno della topologia della rete. Per far ciò, il protocollo implementa l'algoritmo di Spannig Tree


Dato un nodo radice in un grafo non orientato pesato e connesso, Spanning Tree Algorithm, individua un Minimum Spannig Tree, vale a dire un albero che collega tutti i nodi del grafo con distanza minima (in termini di pesi) fra due qualsiasi nodi del grafo.

Calato nell'operatività della rete, STP si svolge secondo le seguenti fasi:

  • scelta del bridge (switch) radice;
  • calcolo del cammino minimo fra la radice e gli altri switch della rete;
  • chiusura degli altri possibili cammini 

Nel dettaglio:


Scelta dello switch radice

La scelta dello switch con funzione di Root avviene attraverso un processo elettivo: tutti gli switch sono inizialmente possessori di un BID (Bridge ID). Il BID è un codice formato dall'accostamento di un valore di priorità (di default 32768, ma che può essere opportunamente modificato nel range 1-65536) e del MAC Address dello switch. Appena STP entra in funzione, i singoli switch iniziano a scambiarsi dei particolari frame detti BPDU (Bridge Protocol Data Unit) contenenti il proprio BID. Se uno switch riceve un BID di valore inferiore (a parità di priorità, è discriminante il MAc Address) al proprio, aggiorna il proprio BID con quello ricevuto, e lo propaga ai propri vicini. Il processo terminerà con l'indicazione unanime dello switch con BID minimo. Ovviamente, è facile - e alle volte opportuno - orientare la scelta su un determinato switch, assegnandogli un valore di priorità adeguatamente basso.


Calcolo del Minimum Spanning Tree

Al fine del calcolo del cammino minimo fra un generico switch e lo switch radice, STP assegna ad ogni porta di ciascuno switch un peso - o come è più corretto dire, un costo - inversamente proporzionale alla velocità di trasmissione della porta stessa (è comunque, anche in questo caso, consentito configurare manualmente il costo di una porta). La scelta del percorso viene quindi effettuata partendo dallo switch radice e scegliendo, di volta in volta, i collegamenti meno "costosi" (vale a dire i più veloci) verso gli switch limitrofi. In particolare, all'interno di ciascuno switch, verranno identificate una Root Port (la porta meno costosa che conduce in direzione del root bridge), e delle Designated Port (le porte meno costose di ingresso al router).



Chiusura degli altri cammini

Le porte sui cammini ridondanti e più costosi verranno invece classificate come Non Designated Port e, almeno temporaneamente, chiuse. 

A regime, quindi, STP non solo evita la possibilità di looping, ma promuove anche i percorsi più prestanti fra gli switch della rete. Allo stesso tempo, per non invalidare i benefici offerti dalla ridondanza, STP si terrà comunque pronto a cambiare stato ad una o più delle porte dichiarate Non Designated (quindi a creare percorsi alternativi) nel caso di problemi su uno qualsiasi dei percorsi attivi.

STP è attivo di default, quindi, a meno che non venga intenzionalmente arrestato, opera indipendentemente da qualsiasi intervento esterno. In ogni caso, è sempre possibile intervenire sulla sua configurazione. Di seguito le istruzioni principali al riguardo:



#show spanning-treemostra la topologia spanning-tree attuale

(config)#spanning-tree vlan 1 root
        primary

imposta lo switch corrente come root switch

(config-if)#spanning-tree
          cost <cost>

(config-if)#no spanning-tree cost



Le varianti STP: RSTP, PVST, PVST+, Rapid PVST+


A corredo di STP, nel tempo, sono stati concepiti altri protocolli, proprietari e non che ne mitigano i limiti e ne migliorano le le prestazioni. 

Primo fra tutti, RSTP (Rapid Spanning Tree Protocol) tenta di colmare un problema molto sentito in STP: il tempo di convergenza. Ripensando, difatti, al processo di costruzione del Minimum Spannig Tree, è intuitivo immaginare che, in occasione di un cambio di topologia (un guasto, o semplicemente la connessione di un nuovo apparato), il tempo necessario affinché il sistema trovi un nuovo assetto può risultare relativamente lungo. 

A tal fine, RSTP introduce l'idea di cammini alternativi dai nodi verso la Root che possano entrare immediatamente in funzione non appena venga avvertito un cambiamento di topologia nella rete. 

RSTP, per implementare un simile meccanismo, prevede per ogni switch, oltre alle usuali porte di Root, Designated e Non Designated, le 
  • Alternative Port: porte su cammini alternativi da far entrare immediatamente in funzione non appena vengano avvertiti problemi sulle Designated Port  
  • Backup Port: porte ridondanti a supporto di uno stesso collegamento.               
Gli switch Cisco eseguono diverse implementazioni del protocollo Spanning Tree. A partire dagli standard originali IEEE sono state introdotte le seguenti varianti proprietarie:
  • PVST (Per-Vlan Spanning Tree): viene supportata un’istanza dello Spanning Tree Protocol per ogni VLAN: Root Bridge e una topologia STP differente per ogni VLAN. PVST Utilizza il protocollo di Trunking Cisco ISL (Inter Switch Link).
  • PVST+: modalità predefinita sugli switch Cisco, mantiene tutte le caratteristiche del PVST, ma aggiunge il supporto allo standard 802.1Q per il Trunking.
  • Rapid PVST+: è, di fatto, la versione Cisco di RSTP

Commenti

Post popolari in questo blog

Switch Commands - istruzioni Cisco HP Extreme "in a nutshell"

Indirizzamento IP

Obiettivo di questo articolo, senza pretesa di esaurire l'argomento, è quello di presentare in modo chiaro e comprensibile un argomento alle volte ostico: l'indirizzamento IP.  Questo, fra l'altro, consentirà di affrontare, anche agli utenti meno esperti, operazioni semplici quali   la configurazione di una scheda di rete con maggiore consapevolezza. Gli indirizzi IP Come noto, con IP  ci si riferisce ad uno dei protocolli di comunicazione di rete più affermati nel mondo delle telecomunicazioni:  Internet Protocol .   Un indirizzo IP è, in particolare, un codice binario che identifica univocamente un dispositivo di rete (una scheda ethernet, la porta di uno switch o di un router, etc.) all'interno di una rete di computer.  Di primaria importanza, nell'ambito dell'indirizzamento, è la lunghezza degli indirizzi, ovvero il numero di bit utilizzati per rappresentare un indirizzo di rete. Questo, evidentemente, perché con n bit sarà possibile ind