Uno switch (inglese 'swɪʧ; commutatore), nella tecnologia delle reti informatiche, è un dispositivo di rete che si occupa di commutazione a livello datalink (collegamento dati), il livello 2 del modello ISO/OSI, introdotto per ridurre il cosiddetto dominio di collisione nelle reti LAN Ethernet (ora IEEE 802.3).
Uno switch è un dispositivo in una rete di computer che collega insieme altri dispositivi. Più cavi di rete sono collegati a uno switch per abilitare la comunicazione tra diversi dispositivi. Gli switch gestiscono il flusso di dati attraverso una rete trasmettendo un pacchetto di rete ricevuto solo a uno o più dispositivi per i quali il pacchetto è destinato. Ogni dispositivo collegato in rete a uno switch può essere identificato dal suo indirizzo MAC, consentendo allo switch di dirigere il flusso del traffico massimizzando la sicurezza e l'efficienza della rete.
Uno switch è più "intelligente" di un hub Ethernet, che semplicemente ritrasmette i pacchetti fuori da ogni porta dell'hub, eccetto la porta su cui è stato ricevuto il pacchetto: l'hub è incapace di distinguere i diversi destinatari e pertanto ottiene un'efficienza di rete complessivamente inferiore.
Uno switch Ethernet opera sul livello di collegamento dati (livello 2) del modello OSI per creare un dominio di collisione separato per ciascuna porta dello switch. Ogni dispositivo collegato a una porta dello switch può trasferire dati a una qualsiasi delle altre porte in qualsiasi momento e le trasmissioni non interferiranno. Nella modalità half duplex, ogni porta dello switch non può contemporaneamente ricevere e trasmettere al dispositivo a cui è connessa. Al contrario, ciò è possibile nella modalità full duplex, assumendo che il dispositivo connesso supporti tale modalità.[1] Poiché le trasmissioni continuano a essere inoltrate a tutti i dispositivi connessi tramite lo switch, il nuovo segmento di rete continua a essere un dominio di trasmissione.
La segmentazione implica l'uso di uno switch per dividere un dominio di collisione più grande in uno più piccolo al fine di ridurre la probabilità di collisione e migliorare il throughput complessivo della rete. Nel caso estremo (cioè micro-segmentazione), ogni dispositivo si trova su una porta switch dedicata. A differenza di un hub Ethernet, esiste un dominio di collisione separato su ciascuna porta dello switch. Ciò consente ai computer di disporre di una larghezza di banda dedicata sulle connessioni point-to-point alla rete e anche di eseguire in modalità full-duplex. La modalità full-duplex ha un solo trasmettitore e un ricevitore per dominio di collisione, rendendo impossibile la collisione.
Lo switch gode, rispetto a un bridge, di:
Inoltre uno switch di fascia alta fornisce tipicamente le seguenti caratteristiche:
Internamente, uno switch è costituito da una o più schede munite di porte. A ogni porta può essere connesso un nodo, che può essere una stazione, un altro switch, uno hub o altro dispositivo di rete.
Quando un nodo A cerca di comunicare con un nodo B, il comportamento dello switch dipende dalla scheda cui è collegato B:
L'intelligenza necessaria a gestire le porte di ingresso e di uscita (riconoscere i frame, estrarre gli indirizzi sorgente e destinazione, trasmetterli) è distribuita sulle singole schede.
Spesso su alcune porte possono essere montati trasduttori di tipo diverso per risolvere diversi tipi di esigenze (si veda ad esempio la ricchezza di tecnologie di livello fisico disponibili per IEEE_802.3). Questa possibilità viene tipicamente utilizzata per aggiungere a uno switch 100Base-TX una o due porte di tipo 1000Base-X per il collegamento verso il resto della rete (uplink) o per un server veloce.
Alcuni switch hanno una costruzione modulare, ovvero le schede possono essere montate dal gestore, per modulare il numero di porte a disposizione o per utilizzare porte di tipo diverso.
Anche se non conveniente soprattutto in termini economici, è possibile realizzare uno switch anche con un comune computer dotato di più interfacce di rete.
Gli switch sono disponibili in molte forme, comprese le unità desktop stand-alone, che sono in genere destinati ad essere utilizzati in un ambiente di casa o di ufficio al di fuori di un armadio di cablaggio.
Oggi sono commercializzate due sottoclassi di switch gestiti:
Lo switch agisce sull'indirizzamento e sull'instradamento all'interno delle reti LAN mediante indirizzo fisico (MAC), selezionando i frame ricevuti e dirigendoli verso il dispositivo corretto (leggendo il MAC di destinazione). L'instradamento avviene per mezzo di una corrispondenza univoca porta-indirizzo.
Lo switch ha un comportamento analogo a quello del bridge, mentre si differenzia dal router che opera a livello 3 (internetworking), mettendo in comunicazione più reti locali attraverso il protocollo IP, e dall'hub che invece è solamente un ripetitore multiporta di strato fisico ovvero diffusivo senza indirizzamento. L'instradamento attraverso switch è in grado di ridurre il dominio di collisione presente nelle reti locali broadcast in maniera più efficiente ed efficace rispetto al bridge.[3][4]
L'uso esclusivo di switch per collegare nodi (con esclusione di hub e bridge) consente di aumentare l'efficienza di una tipica rete 10Base-T di un fattore 10, portandola dunque a competere con una più costosa rete 100Base-T provvista esclusivamente di hub, e quindi con topologia logica a bus.
Normalmente uno switch non è in grado di interconnettere reti di livello 2 eterogenee, ad esempio una rete Ethernet con una Token Ring, a meno che non si tratti di un cosiddetto "switch transazionale", mentre può interconnettere ad esempio reti Ethernet con velocità o tecnologie fisiche diverse.
Nel gergo delle reti locali, uno switch separa i domini di collisione connessi alle sue porte, ovvero se due calcolatori collegati a porte diverse trasmettono contemporaneamente, non si verifica una collisione, e i due frame possono attraversare lo switch contemporaneamente.
Il termine switch viene usato anche al di fuori delle reti Ethernet, a indicare un dispositivo che inoltri selettivamente i frame ricevuti, per esempio in ATM o Frame Relay. Inoltre, un dispositivo di rete che abbini le prestazioni di uno switch con le funzioni di livello superiore di un router viene detto switch-router o, più precisamente, switch di livello 3 (layer-3 switch).
Mentre gli switch possono conoscere le topologie su molti livelli e inoltrare su uno o più livelli, tendono ad avere caratteristiche comuni. Oltre alle applicazioni ad alte prestazioni, i moderni switch commerciali utilizzano principalmente interfacce Ethernet.
A qualsiasi livello, uno switch moderno può implementare Power over Ethernet (PoE), che evita la necessità per i dispositivi collegati, come un telefono VoIP o un punto di accesso wireless, di avere un'alimentazione separata. Poiché gli switch possono avere circuiti di alimentazione ridondanti collegati a Uninterruptible Power Supply, il dispositivo collegato può continuare a funzionare anche in caso di interruzione della normale alimentazione.
Un hub di rete, o un ripetitore, è un semplice dispositivo di rete che non gestisce il traffico che lo attraversa. Qualsiasi pacchetto che entra in una porta viene "inondato" o "ripetuto" su ogni altra porta, ad eccezione di quella di entrata. Nello specifico, ogni bit o simbolo viene ripetuto mentre scorre (con un ritardo minimo per l'interfaccia di linea). A causa di ciò, un ripetitore hub può solo ricevere e inoltrare a una singola velocità. Poiché ogni pacchetto viene ripetuto su ogni altra porta, le collisioni tra di essi influenzano l'intera rete, limitando la sua capacità complessiva.
Esistono applicazioni specializzate in cui un hub di rete può essere utile, ad esempio copiare il traffico su più apparati di rete. Gli switch di solito hanno una funzionalità chiamata port mirroring che fornisce la stessa funzionalità.
Uno switch di rete crea virtualmente la connessione end-to-end del livello 1.
La funzione di bridging di uno switch utilizza le informazioni acquisite dal livello 2 per selezionare per ogni pacchetto le porte specifiche a cui deve essere inoltrato, eliminando il requisito che ogni nodo venga presentato con tutto il traffico. Di conseguenza, le linee di connessione non vengono "scambiate" letteralmente, ma appaiono solo in quel modo a livello di pacchetto.
Agli inizi degli anni 2000, c'era una piccola differenza di prezzo tra un hub e uno switch di fascia bassa.
Un bridge, che opera a livello di collegamento dati, può interconnettere un piccolo numero di dispositivi in una casa o in ufficio. Questo è un caso banale di bridging, in cui il bridge apprende l'indirizzo MAC di ciascun dispositivo connesso. I bridge bufferano anche un pacchetto in arrivo e adattano la velocità di trasmissione a quella della porta in uscita.
La tabella CAM ("Content Addressable Memory") memorizzata nella RAM è inizialmente vuota. Per ogni frame ethernet ricevuto lo switch apprende dall'indirizzo MAC di origine dei frame e lo aggiunge insieme all'interfaccia di input per creare un database di topologia. Lo switch quindi inoltra il frame all'interfaccia trovata nella tabella CAM in base all'indirizzo MAC di destinazione dei frame. Se l'indirizzo di destinazione è sconosciuto, lo switch invia il frame su tutte le interfacce (tranne l'interfaccia di ingresso). Questo comportamento è chiamato flooding.
I bridge classici possono anche interconnettersi utilizzando un protocollo Spanning Tree che disabilita i collegamenti in modo che la rete locale risultante sia senza cicli infiniti. Al contrario dei router, i bridge spanning tree devono avere topologie con un solo percorso attivo tra due punti. Il vecchio protocollo dello spanning tree IEEE 802.1D potrebbe essere piuttosto lento. Un protocollo Rapid Spanning Tree è stato introdotto come IEEE 802.1w. Il più recente standard Shortest path bridging (IEEE 802.1aq) è la prossima progressione logica e incorpora tutti i precedenti protocolli Spanning Tree (IEEE 802.1D STP, IEEE 802.1w RSTP, IEEE 802.1s MSTP) che bloccavano il traffico su tutti tranne un percorso alternativo. IEEE 802.1aq (ShortBlocking del percorso più breve) consente a tutti i percorsi di essere attivi con più di essi di costo uguale, fornisce topologie di livello 2 molto più grandi (fino a 16 milioni rispetto al limite 4096 VLAN),[5] convergenza più veloce e migliora l'uso delle topologie mesh tramite maggiore larghezza di banda e ridondanza tra tutti i dispositivi consentendo al traffico di caricare la condivisione su tutti i percorsi di una rete mesh.
Una volta che un bridge apprende gli indirizzi dei suoi nodi connessi, inoltra i frame del livello di collegamento dati utilizzando un metodo di inoltro di livello 2.
Entro i confini del livello fisico Ethernet, uno switch di livello 3 può eseguire alcune o tutte le funzioni normalmente eseguite da un router. La funzionalità layer-3 più comune è la consapevolezza del multicast IP tramite lo snooping IGMP. Con questa consapevolezza, uno switch di livello 3 può aumentare l'efficienza consegnando il traffico di un gruppo multicast solo alle porte in cui il dispositivo collegato ha segnalato che desidera ascoltare quel gruppo.
Le tre tipologie si differenziano solo se il buffer di trasmissione è vuoto e se il link di uscita è libero. Nel caso contrario le tre tipologie si riducono all'unica store-and-forward.
Mentre il significato esatto del termine switch di livello 4 dipende dal fornitore, quasi sempre inizia con una capacità di traduzione degli indirizzi di rete, ma aggiunge un tipo di distribuzione del carico basato sulle sessioni TCP.[6] Funzioni quali QoS e ACL (quest'ultima disponibile anche per livelli inferiori) permettono ad esempio di dare priorità diverse o bloccare pacchetti con contenuti particolari, specificabili nella programmazione dello switch.
Il dispositivo può includere un firewall stateful, un concentratore VPN o un gateway di sicurezza IPSec.
Gli switch di livello 7 possono distribuire il carico in base a localizzatori di risorse uniformi (URL) o utilizzando una tecnica specifica dell'installazione per riconoscere le transazioni a livello di applicazione. Nel Web si utilizzano per le reti di distribuzione dei contenuti (CDN).[7]
Macchine più evolute sono dotate di funzionalità che permettono l'interconnessione backbone, in cui rami con caratteristiche di velocità e capacità inferiori confluiscono ordinatamente su rami con caratteristiche superiori; per questi collegamenti vengono utilizzate velocità che possono arrivare anche a 10 Gbit/s. Generalmente in una macchina stackabile le porte adibite a queste connessioni sono dotate di interoperabilità o sono addirittura modulari, rendendo flessibile la modalità di link, ad es. nella scelta di velocità e trasporto fisico (rame o fibra).
Caratteristiche significative della macchine stackabili sono:
Per decidere su quale porta inoltrare un frame ricevuto, uno switch deve possedere una funzione di instradamento. Questa è basata sull'apprendimento passivo progressivo degli indirizzi sorgente contenuti nei frame inoltrati (transparent learning o backward learning) che lo switch associa univocamente alla rispettiva porta di provenienza: questa associazione porta-indirizzo viene poi memorizzata in una tabella di instradamento di livello 2 chiamata forwarding database. Gli indirizzi appresi e memorizzati nella tabella vengono "dimenticati" dopo un certo tempo dalla loro ultima apparizione per motivi di scalabilità e flessibilità con eventuale variazione del numero e della posizione nella rete dei terminali utenti..
Quando un nodo A cerca di comunicare con un nodo B, il comportamento dello switch dipende dalla porta cui è collegato B:
Normalmente in quest'ultimo caso il nodo destinatario riceverà il pacchetto e risponderà al mittente permettendo allo switch di scoprire a quale porta esso è collegato e così via per tutti gli altri terminali di dislocazione non nota.
In alternativa è pur sempre possibile una configurazione del forwarding database in maniera manuale e statica sempre da parte dell'amministratore di rete, se il numero di terminali cui è connesso lo switch è basso.
Alcuni frame hanno un indirizzo destinazione particolare, denominato broadcast, che indica che sono destinati a tutti i calcolatori della rete. Uno switch inoltra questi frame su tutte le porte. Per questo si dice che lo switch crea un unico dominio di broadcast.
La complessità del comportamento di uno switch è compensata dalle migliori prestazioni ottenibili.
Il fatto che i frame vengano ritrasmessi selettivamente ha anche delle implicazioni di sicurezza informatica in quanto evita che un calcolatore possa facilmente intercettare (sniffare) il traffico instradato a un altro terminale. In realtà ciò è vero solo in prima approssimazione essendo state sviluppate raffinate tecniche di attacco che permettono lo sniffing anche in presenza di switch, come Switch Flooding, il Port stealing e l'ARP Poisoning, per cui uno switch non deve essere considerato come una protezione inattaccabile contro i rischi di intercettazione.
Esistono quattro metodi di instradamento che possono essere utilizzati da un bridge:
Mentre ci sono applicazioni specializzate, come le reti di storage area, in cui le interfacce di input e output hanno la stessa larghezza di banda, questo non è sempre il caso nelle applicazioni LAN generiche. Nelle LAN, uno switch utilizzato per l'accesso dell'utente finale concentra in genere una larghezza di banda e un uplink inferiori in una larghezza di banda maggiore.
Il ritardo (delay) introdotto da uno switch è generalmente di pochi microsecondi, quindi quasi ininfluente per la gran parte delle applicazioni.
Quando un host è connesso a uno switch, o su una connessione diretta tra due switch, non sono possibili collisioni, e quindi è possibile utilizzare la modalità "full duplex", ovvero i due nodi possono trasmettere contemporaneamente.
L'inoltro selettivo dei frame permette anche a più frame di attraversare contemporaneamente lo switch, e quindi la banda totale disponibile non viene ridotta con l'aumento del numero di nodi attivi. In una connessione di questo tipo si dice che l'host ha un accesso dedicato al commutatore. Questo garantisce che due nodi connessi da uno switch possano comunicare tra loro alla velocità nominale del collegamento, ma solo se non sono impegnati contemporaneamente in altre conversazioni.
Nella realtà, l'introduzione di uno switch in una rete locale porta alla diminuzione del traffico totale sulla rete e a un conseguente miglioramento delle prestazioni, ma spesso questo miglioramento porta a evidenziare altri "colli di bottiglia" della rete, spesso la connessione a internet o la capacità dei server.
Uno switch di fascia medio-alta è tipicamente dotato di un agente di gestione, ovvero un piccolo programma software che permette di controllarne e monitorarne il funzionamento. Questo è accessibile sia attraverso una porta seriale (gestione out-of-band, talvolta anche con una porta ethernet dedicata oltre alla seriale) che attraverso la stessa rete ethernet (gestione in-band). In questo caso, all'agente di gestione viene normalmente assegnato un indirizzo IP, e questo risponde ai protocolli SNMP, telnet e/o ssh, HTTP(s).
Uno switch gestito permette tipicamente di accedere da remoto a queste funzionalità:
A meno che il mirroring delle porte o altri metodi come RMON, SMON o sFlow siano implementati in uno switch,[10] è difficile monitorare il traffico che viene collegato tramite uno switch perché solo le porte di invio e di ricezione possono vedere il traffico. Queste funzioni di monitoraggio sono raramente presenti su switch di livello consumer.
Due metodi popolari progettati specificamente per consentire a un analista di rete di monitorare il traffico sono:
Un altro metodo per monitorare può essere quello di connettere un hub di livello 1 tra il dispositivo monitorato e la sua porta dello switch. Ciò indurrà un lieve ritardo, ma fornirà più interfacce che possono essere utilizzate per monitorare la singola porta dello switch.