Livello di Routing: gestire la trasmissione.
In presenza di reti interconnesse con tecnologia IP, l’indirizzo IP della stazione di destinazione rappresenta l’indicazione fondamentale sulla base della quale i gateway prendono le decisioni di instradamento del datagramma.
La consegna fisica dei pacchetti tra stazioni appartenenti alla stessa rete locale, è invece responsabilità diretta del livello di collegamento dati.
A tale livello sono implementati meccanismi di instradamento molto più elementari di quanto previsto per Internet.
Il problema della consegna dei pacchetti in una rete locale può essere scomposto in due fasi.
Per prima cosa è necessario far giungere il pacchetto alla scheda di rete di tutte le stazioni potenzialmente interessate al messaggio; successivamente, occorre implementare un meccanismo che consenta a ciascuna stazione di riconoscersi come destinazione del pacchetto ricevuto.
Nelle reti locali a bus la soluzione tecnologica adottata prevede che le stazioni siano connesse in cascata allo stesso mezzo fisico.
Il problema di raggiungere la scheda di rete della stazione di destinazione è puramente un problema di propagazione del segnale nel mezzo di trasmissione prescelto.
Nelle reti locali di maggiore complessità la questione è complicata da dalla presenza di apparati attivi che occorre attraversare.
Tali dispositivi appartengono a due categorie:
- da una parte gli hub che servono da concentratori e ripetitori per il segnale fisico
- gli switch che servono da commutatori e che posseggono più evolute funzionalità di propagazione controllata dei pacchetti
In presenza di hub, il pacchetto viene ritrasmesso su tutte le interfacce del dispositivo tranne quella attraverso cui è stato ricevuto.
Con uno switch, le informazioni contenute nell’intestazione dei pacchetti possono essere utilizzate per limitare la propagazione dei frame all’interno della rete.
Le informazioni utilizzate da stazioni e switch per riconoscere sorgente e destinazione di un pacchetto, sono costituite essenzialmente da una coppia di indirizzi di livello MAC (Medium Access Control).
Tutti gli standard per reti locali adottano anche schede provviste di indirizzi MAC.
I collegamenti geografici punto-punto rappresentano un’eccezione. Qui si adottano protocolli che non richiedono alcun indirizzo per identificare le schede coinvolte nella comunicazione.
Quando il segnale può essere generato da un unico trasmettitore e destinato a un unico ricevitore non è interessante definire l’origine e la destinazione del pacchetto.
Le tecnologie oggi maggiormente diffuse (Ethernet, FastEthernet, GigaEthernet, Token Ring, IEEE802.11) si basano proprio su questo principio di funzionamento.
Il compito di ciascuna scheda di rete è compiere ciclicamente i seguenti passi:
- rilevare i frame trasmessi sul segmento di rete a cui la stazione è direttamente connessa (nel caso di reti wireless riconoscere quali frame sono trasmessi alla stessa radiofrequenza cui opera la scheda di rete locale);
- memorizzare ogni frame ricevuto in un buffer interno;
- estrarre l’intestazione del frame per controllare l’identificativo specificato come indirizzo MAC di destinazione;
- decidere se scartare o passare ai livelli superiori il frame. Se l’identificativo estratto coincide con quanto memorizzato internamente, il frame vine inviato al livello superiore; in caso contrario il frame viene scartato.
Esaminando le modalità con cui una scheda di rete processa ogni frame ricevuto, non è diffficile intuire dove intervenire per modificarne il funzionamento standard e restituire tutti i frame al livello superiore, anche quando l’indirizzo di destinazione non coincide con quello associato alla scheda locale.
Quando questo avviene, la scheda di rete si definisce configurata in modalità promiscua. La possibilità di consegnare al livello superiore tutti i frame trasmessi su un segmento della rete, indipendentemente dall’indirizzo di destinazione, è presupposto necessario per molti programmi che fanno da monitor del traffico sulla rete locale.
La possibilità di analizzare ogni pacchetto trasmesso può essere uno strumento insostituibile per l’amministratore della rete nella rilevazione e rimozione di eventuali malfunzionamenti dell’infrastruttura di comunicazione.
Simili programmi (denominati packet sniffer) possono però essere usati anche dalle persone sbagliate.
In mano ad un hacker interno o a un attaccante esterno che abbia precedentemente guadagnato l’accesso remoto a una macchina attestata sulla rete locale, un packet sniffer rappresenta una ghiotta opportunità per intercettare e registrare quanto trasmesso sul segmento di rete locale (dati sensibili, password degli utenti…).
Nel caso sia previsto l’utilizzo di protocolli potenzialmente vulnerabili come IP (in particolare Ipv4), l’unica contromisura a disposizione degli amministratori è limitare la propagazione dei frame alle sole aree della rete in cui si trovano le stazioni interessate ai pacchetti, ricorrendo a una topologia di rete basata interamente su switch.
Una topologia a stella, o una soluzione più complessa costituita di più reti elementari a stella, interconnesse attraverso l’uso di dorsali prive di stazioni utente, sono soluzioni che minimizzano gli effetti dell’inserimento in rete di un packet sniffer.
In un simile scenario ciascuna scheda di rete teoricamente è in grado di rilevare solo la quota di traffico destinata al proprio indirizzo MAC.
Per non costringere l’amministratore della rete a rinunciare alla possibilità di monitorare quanto accade sulla rete attraverso una stazione di controllo centralizzata, le porte degli switch possono essere configurate in modalità monitor, abilitando su tale porta la replicazione di tutti i pacchetti ricevuti dallo switch.
La stazione connessa a una porta monitor non deve essere una stazione comune. È consigliabile che questo monitor si occupi solo di controllare e analizzare lo stato della rete attraverso l’esecuzione di packet sniffer.
Considerata la criticità di tale piattaforma è indispensabile che l’organizzazione stabilisca una efficace politica di sicurezza per la protezione/gestione dei monitor di rete.
I prinicipali standard per reti locali differiscono tra loro per la struttura del frame e per la modalità di accesso al mezzo (definita dal protocollo MAC, subcomponente del livello Collegamento Dati), ma non per la natura degli indirizzi da assegnare alle schede di rete.
Le diverse tecnologie prevedono un unico sistema di indirizzamento a 48 bit. Questo approccio consente di utilizzare una soluzione wireless IEEE 802.11 per estendere una rete cablata FastEthernet o Token Ring.
L’indirizzo MAC della scheda di destinazione rappresenta l’indicazione indispensabile sulla base della quale compiere la consegna fisica del frame.
Per non generare ambiguità, gli indirizzi MAC devono essere unici all’interno della rete locale. In realtà dovrebbero essere unici a livello mondiale, in quanto i costruttori di schede regolarmente seguono le direttive dello IANA, definendo in maniera consensuale quali indirizzi associare alle proprie schede di rete.
Teoricamente non dovrebbero essere mai rilasciate due schede con lo stesso identificativo MAC.
Purtroppo esistono costruttori che non seguono questa regola generale e ciò complica il lavoro degli amministratori di rete.
Due schede di rete con lo stesso identificativo non possono coesistere all’interno della stessa rete locale, senza pregiudicarne il corretto funzionamento.
L’utilizzo accidentale di due schede provviste dello stesso MAC produce un involontario effetto DoS sulle stazioni direttamente coinvolte.
Per fortuna è molto improbabile che questo inconveniente sia utilizzato volontariamente da un hacker.
Gli indirizzi MAC sono impressi direttamente dal costruttore nelle memorie non volatili delle varie schede e non possono essere normalmente modificati dall’utente locale.
Un utente esperto può comunque riprogrammare le memorie presenti sulle schede e modificarne il MAC.
In alternativa esistono appositi programmi che possono generare pacchetti con indirizzo MAC sorgente diverso da quello impresso sulla scheda.
Per poter essere trasmesso, ogni datagramma IP deve essere incapsulato in un frame dalla scheda di rete della stazione sorgente o di un gateway coinvolto nella consegna. Il datagramma IP è contenuto nel campo dati del frame trasmesso.
Poichè la destinazione finale del pacchetto è individuata da un indirizzo IP, per la consegna è necessario stabilire un apposito meccanismo in grado di traslare l’indirizzo IP delle stazioni nel corrispondente indirizzo MAC delle loro schede di rete.
Questo meccanismo è gestito dal protocollo ARP.