Progetto di reti locali/Repeater e bridge
Interconnessione a livello fisico
[modifica | modifica sorgente]Il repeater e l'hub[1] sono dispositivi di rete per l'interconnessione a livello fisico, che si limitano a ricevere e propagare una sequenza di bit. I canali di livello fisico interconnessi possono anche essere di tecnologia diversa (ad es. da doppino a fibra ottica), ma tutti i livelli superiori devono essere uguali (ad es. solo Ethernet, solo FDDI).
Il repeater svolge anche la funzione di recupero della degradazione del segnale: si sincronizza con il segnale a onda quadra e lo rigenera in modo da pulirlo. Il preambolo che precede la trama serve per la sincronizzazione, cioè per il riconoscimento del segnale, e ogni volta che il segnale attraversa un repeater viene così "mangiata" una parte di questo preambolo → non è possibile collegare più di 4 repeater in cascata.
Un dominio di collisione è l'insieme di nodi che concorrono per accedere allo stesso mezzo trasmissivo → la trasmissione contemporanea provoca collisione. L'interconnessione di due segmenti di rete crea un unico dominio di collisione: il repeater non è in grado di riconoscere le collisioni che vengono propagate su tutte le porte → è un limite alla dimensione del dominio fisico.
Interconnessione a livello data-link
[modifica | modifica sorgente]Il bridge e lo switch sono dispositivi di rete per l'interconnessione a livello data-link, che memorizzano (modalità store and forward) e poi rigenerano la trama. Anche i domini di livello data-link interconnessi possono essere di tecnologia diversa (ad es. da Ethernet a FDDI).
- Problema della dimensione massima delle trame
In pratica è spesso impossibile interconnettere due tecnologie di livello data-link differenti, a causa di problemi legati alla dimensione massima delle trame: per esempio, in una rete basata su Ethernet avente MTU = 1518 byte interconnessa con una rete basata su token ring avente MTU = 4 KB, che cosa succede se dalla rete token ring giunge una trama maggiore di 1518 byte? Inoltre la frammentazione a livello data-link non esiste.
Il bridge disaccoppia il dominio di broadcast dal dominio di collisione:
- "spezza" il dominio di collisione: implementa il protocollo CSMA/CD per rilevare le collisioni, evitando di propagarle sulle altre porte;
- estende il dominio di broadcast: le trame inviate in broadcast vengono propagate su tutte le porte.
Modalità half duplex e full duplex
[modifica | modifica sorgente]Un link punto-punto a livello data-link tra due nodi (ad es. un host e un bridge) può essere effettuato in due modi:
- modalità half duplex: i due nodi sono collegati con un unico filo bidirezionale → ogni nodo non può trasmettere e ricevere allo stesso tempo, perché si verificherebbe una collisione;
- modalità full duplex: i due nodi sono collegati con due fili unidirezionali separati → ogni nodo può trasmettere e ricevere allo stesso tempo, grazie alla separazione dei domini di collisione.
- Vantaggi della modalità full duplex
- maggiore larghezza di banda: il throughput tra i due nodi raddoppia;
- assenza di collisioni:
- non è più necessario abilitare il protocollo CSMA/CD;
- non è più necessario il vincolo sulla dimensione minima delle trame Ethernet;
- non esiste più il limite sul diametro massimo del dominio di collisione (l'unico limite di distanza è quello fisico del canale).
Transparent bridge
[modifica | modifica sorgente]L'instradamento è svolto in maniera trasparente: il bridge cerca di imparare la posizione dei nodi ad esso collegati riempiendo una tabella di inoltro chiamata filtering database, le cui entry hanno il seguente formato:
dove la porta di destinazione è la porta del bridge, appresa con gli algoritmi di apprendimento, da cui far uscire le trame dirette verso l'indirizzo MAC di destinazione associato.
- Algoritmi di apprendimento
- frame forwarding: l'apprendimento è basato sull'indirizzo MAC di destinazione: quando arriva una trama la cui destinazione non è ancora presente nel filtering database, il bridge manda la trama in broadcast su tutte le porte tranne la porta d'ingresso (flooding) e attende la risposta che molto probabilmente la destinazione invierà e su cui entrerà in azione l'algoritmo di backward learning;
- backward learning: l'apprendimento è basato sull'indirizzo MAC sorgente: quando arriva una trama a una certa porta, il bridge verifica se la sorgente è già presente ed associata a quella porta nel filtering database, e se necessario lo aggiorna.
Il processo di inoltro intelligente aumenta la banda aggregata della rete: le trame non vengono più propagate sempre in broadcast su tutte le porte ma vengono inoltrate solo sulla porta verso la destinazione, lasciando gli altri link liberi di trasportare degli altri flussi nello stesso tempo.
Mobilità
[modifica | modifica sorgente]L'ageing time consente di mantenere il filtering database aggiornato: esso viene impostato a 0 quando la entry viene creata o aggiornata dall'algoritmo di backward learning, e viene incrementato con il passare del tempo fino a quando non supera il tempo di scadenza e la entry non viene rimossa. In questo modo il filtering database contiene informazioni sulle sole stazioni che sono effettivamente presenti nella rete, liberandosi dalle informazioni sulle vecchie stazioni.
Le reti di livello data-link supportano nativamente la mobilità: se la stazione viene spostata, rimanendo nella stessa LAN, in modo da essere raggiungibile da un'altra porta, il bridge va "notificato" dello spostamento tramite l'invio di un qualsiasi trama broadcast (ad es. ARP Request), in modo che l'algoritmo di backward learning possa correggerne il filtering database. I sistemi Windows tendono a essere più "loquaci" dei sistemi UNIX.
Esempi di stazioni che si possono spostare sono:
- cellulari;
- macchine virtuali nei datacenter: durante il giorno possono essere distribuite su più server Web per distribuire il carico di lavoro, durante la notte possono essere concentrate sullo stesso server Web perché il traffico è minore consentendo un risparmio di energia;
- stazioni collegate alla rete con due link, uno primario usato in condizioni normali e uno secondario tollerante ai guasti: quando il link primario si guasta, l'host può ripristinare la connettività inviando una trama in broadcast attraverso il link secondario.
Switch
[modifica | modifica sorgente]"Switch" è il nome commerciale dato ai bridge dotati di funzionalità avanzate per enfatizzare le loro maggiori prestazioni:
- uno switch è un bridge multi-porta: uno switch è dotato di molte più porte, tipicamente tutte in modalità full duplex, rispetto a un bridge;
- il processo di inoltro intelligente non è più un componente software ma è implementato in un chip hardware (l'algoritmo di spanning tree rimane implementato in software perché più complesso);
- la ricerca della porta associata a un dato indirizzo MAC nel filtering database è più rapida grazie all'uso delle Content Addressable Memory (CAM), che però hanno un costo maggiore e un consumo energetico maggiore;
- gli switch supportano la tecnologia di inoltro cut-through più veloce della modalità store and forward: una trama può essere inoltrata sulla porta di destinazione (a meno che non già occupata) subito dopo la ricezione dell'indirizzo MAC di destinazione.
Problemi
[modifica | modifica sorgente]Scalabilità
[modifica | modifica sorgente]I bridge presentano dei problemi di scalabilità perché non sono in grado di organizzare il traffico, e perciò non sono adatti per reti complesse (come le reti geografiche):
- nessun filtraggio del traffico broadcast → su una rete ampia con molti host le trame broadcast rischiano di intasare la rete;
- l'algoritmo di spanning tree rende completamente inutilizzati alcuni link che formerebbero anelli in topologia sfavorendo il bilanciamento del carico: Progetto di reti locali/B1#Scalabilità.
Sicurezza
[modifica | modifica sorgente]Sono possibili alcuni attacchi al filtering database:
- MAC flooding attack
La stazione attaccante genera trame con indirizzi MAC sorgente casuali → il filtering database si riempie di indirizzi MAC di stazioni inesistenti, mentre quelli delle stazioni esistenti vengono buttati fuori → il bridge manda in flooding (quasi) tutte le trame provenienti dalle stazioni esistenti perché non riconosce più gli indirizzi MAC di destinazione → la rete viene rallentata e (quasi) tutto il traffico sulla rete viene ricevuto dalla stazione attaccante.[2]
- Tempesta di pacchetti
La stazione attaccante genera trame con indirizzi MAC di destinazione casuali → il bridge manda in flooding tutte le trame provenienti dalla stazione attaccante perché non riconosce gli indirizzi MAC di destinazione → la rete viene rallentata.
Note
[modifica | modifica sorgente]- ↑ La differenza tra hub e repeater sta nel numero di porte: il repeater ha due porte, l'hub ha più di due porte.
- ↑ Non tutto il traffico può essere intercettato: quando arriva una trama da una stazione esistente il bridge ne salva l'indirizzo MAC sorgente nel filtering database, così se subito dopo arriva una trama diretta a quella stazione, prima che la relativa entry venga cancellata, essa non verrà mandata in flooding.