Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
In questa nota sono riportate le prime informazioni, necessarie per comprendere la struttura,
il funzionamento e i protocolli di base di una rete per la trasmissione dati.
Ettore Colombo
Giugno 2013
Giugno 2013
Contenuti
1) Elementi di Base .................................................................................................................................... 6
LA RETE ....................................................................................................................................................................6
Definizione ...........................................................................................................................................................6
Le fondamenta dell'architettura di rete ..............................................................................................................6
Le domande a cui rispondere...............................................................................................................................6
Gli Hub .................................................................................................................................................................7
Gli Switch .............................................................................................................................................................7
Le LAN Wireless ...................................................................................................................................................7
Scegliere una Tecnologia .....................................................................................................................................7
Half e Full Duplex .................................................................................................................................................8
Gigabit Ethernet ..................................................................................................................................................8
Dagli Hub agli Switch ...........................................................................................................................................8
Tipologie di rete ......................................................................................................................................................9
Tipologia a stella .................................................................................................................................................9
Tipologia ad anello ..............................................................................................................................................9
Tipologia a bus ....................................................................................................................................................9
Classificazione delle reti per dimensione ..............................................................................................................10
Modalità di trasmissione dati ................................................................................................................................11
Simplex: .............................................................................................................................................................11
Half-duplex: .......................................................................................................................................................11
Full-duplex: ........................................................................................................................................................12
I pacchetti ..........................................................................................................................................................12
I livelli .................................................................................................................................................................12
I protocolli di comunicazione ................................................................................................................................13
Principali protocolli: ...........................................................................................................................................13
Il modello OSI (OSI Reference Model) ...................................................................................................................14
Livello 7 Applicazione (Network Processes to Application) .............................................................................15
Livello 6 Presentazione (Data Representation)..................................................................................................15
Livello 5 Sessione (Interhost Communication) ...................................................................................................15
Livello 4 Trasporto (End-to-end connections) ....................................................................................................15
Livello 3 Network (Address and best path) ........................................................................................................15
Livello 2 Data Link (Access to media).................................................................................................................15
Livello 1 Fisico (Bnariy transmission) .................................................................................................................15
I vantaggi del modello ISO/OSI ..............................................................................................................................16
Peer To Peer ..........................................................................................................................................................16
L'incapsulamento ..................................................................................................................................................17
L'incapsulamento passo dopo passo: ................................................................................................................17
Generazione del dato: (livelli 7, 6 e 5) ...............................................................................................................17
Incapsulamento: (livello 4) ................................................................................................................................17
Aggiunta dell'intestazione - "header": (livello3) ................................................................................................17
Aggiunta dell'indirizzo locale di rete nel frame-header: (livello2) .....................................................................17
Conversione binaria: (livello 1) ..........................................................................................................................17
Concetti per il Livello 1 OSI - Media, Connessioni e Collisioni ...............................................................................18
Introduzione ......................................................................................................................................................18
Ethernet – Standard 10 BaseT ...........................................................................................................................18
Tipi di cavo .........................................................................................................................................................18
Concetti sul Livello 2 OSI (Data-link)......................................................................................................................22
L’indirizzo MAC e la numerazione Esadecimale ( HEX ) .....................................................................................23
Protocolli di livello 3 della pila ISO/OSI – Routing .................................................................................................25
Ci sono due livelli di indirizzamento a livello di internetworking: ......................................................................25
Il modello TCP - (Internet Suite) ............................................................................................................................27
Relazione fra i livelli OSI e quelli TCP/IP:............................................................................................................27
Livello Application..............................................................................................................................................27
Livello Transport ................................................................................................................................................28
Page 1 of 157
Giugno 2013
Page 2 of 157
Giugno 2013
Page 3 of 157
Giugno 2013
Page 4 of 157
Giugno 2013
Il DES ................................................................................................................................................................153
3DES.................................................................................................................................................................153
AES ...................................................................................................................................................................154
CAMELLIA ........................................................................................................................................................154
La cifratura Asimmetrica .................................................................................................................................154
Page 5 of 157
Giugno 2013
1) ELEMENTI DI BASE
LA RETE
Definizione
Il termine rete è soggetto a molte definizioni, spesso anche contrastanti.
Di fatto siamo abituati ad intendere una rete come sistema di collegamento tra due o più calcolatori.
Partendo da questo semplice concetto dobbiamo subito chiarire lo scopo di una rete che, sostanzialmente, è
quello di permettere la condivisione di risorse e la cooperazione fra diverse entità, attraverso i servizi offerti dalla
rete stessa.
Elementi essenziali, e minimali, di una rete sono:
almeno due calcolatori
un interfaccia di rete per ogni calcolatore (NIC)
un media di collegamento (mezzo di collegamento)
il software operativo di rete
Associando a questi elementi minimali altri dispositivi HW e Sw, i clienti della rete possono condividere archivi,
unità periferiche e altri molteplici servizi.
Le reti possono avere dimensioni differenti ed è possibile ospitarle in sedi singole, in edifici attigui fra loro
(campus) oppure dislocarle in ambito globale (dal singolo quartiere a tutto il pianeta).
In una rete, di solito, si trovano uno o più calcolatori con potenza maggiore. La presenza di uno o più di questi
calcolatori determina la distinzione fra i sistemi "centralizzati" e quelli "distribuiti".
Nei sistemi centralizzati tutti i calcolatori (terminali) sono direttamente connessi al calcolatore centrale.
I dati debbono assolutamente passare attraverso il calcolatore centrale per essere smistati fra i vari terminali.
Nei sistemi distribuiti i vari elaboratori possono dialogare fra di loro senza nessun intermediario.
La distribuzione della potenza di calcolo si spalma fra diverse unità più o meno potenti. In senso metaforico e
molto lato, è' come se tante CPU si dividessero fra di loro il carico di una unica CPU.
Al giorno d'oggi la potenza di calcolo di un sistema distribuito è di gran lunga maggiore di quella di un sistema
centralizzato.
Fra le diverse tecnologie di rete le più diffuse, attualmente, sono Ethernet e Fast Ethernet.
Le tecnologie Ethernet e Fast Ethernet sono abbastanza simili e la differenza maggiore è rappresentata dalla
velocità con cui trasferiscono le informazioni.
Ethernet funziona a 10 Megabit per secondo (Mbps) e Fast Ethernet a 100 Megabit per secondo.
Page 6 of 157
Giugno 2013
Gli Hub
Gli hub sono dei dispositivi di connessione che garantiscono a due computer di poter comunicare e "vedersi"
reciprocamente in una tipologia di rete. Queste operazioni vengono compiute usando una metodologia a
medium condiviso: una sorta di conferenza telefonica dove tutti i partecipanti possono ascoltare gli altri sulla
linea. Dal punto di vista della sicurezza, qualsiasi computer host sull'hub può vedere i dati che appartengono a un
altro host sul medesimo hub. Se la sicurezza tra i singoli host sulla rete costituisce una preoccupazione primaria,
si dovrebbe prendere in considerazione fin da subito questo problema. Il tipo più piccolo di hub supporta da due
a otto connessioni, mentre quello più grande, che spesso è configurabile a stack, offre centinaia di porte, ognuna
delle quali può gestire un singolo computer che trasferisce i dati a 10 Mbps. Attenzione però! L'intero hub può
trasmettere i dati alla velocità massima di 10 Mbps in aggregato; in conseguenza, se due computer stanno
cercando di trasferire 10 Mbps ciascuno, non sarà possibile ottenere questa velocità.
Gli Switch
Gli switch permettono di segmentare il traffico. Ciò significa che il Computer A non può accedere ai dati che
vengono trasferiti tra il Computer B e il Computer C. La cosa equivale a una normale chiamata telefonica: il
mittente e il destinatario della chiamata sono gli unici partecipanti. Questa soluzione è quindi più sicura rispetto
all'uso di un hub. Gli switch di fascia bassa offrono 24 porte, mentre i sistemi di fascia alta sono dotati di centinaia
di porte. Ciascuna porta può gestire un singolo computer su una connessione da 10 o 100 Mbps.
Le LAN Wireless
Rispetto a switch e hub, le LAN wireless costituiscono un elemento relativamente nuovo. Invece di collegare i
computer con cavi fisici, le LAN wireless usano antenne per trasmettere i dati attraverso un insieme specifico di
frequenze radio. Mentre i computer si possono spostare, il ricevitore e le antenne per la LAN devono spesso
essere stazionarie e si devono trovare entro una certa distanza dai computer. Il fatto di non usare cavi e di essere
liberi di spostarsi ha molte implicazioni. Dal momento che non ci sono cavi che collegano ciascun ufficio, non
occorre creare un impianto di cablaggio e la scalabilità risulta molto più economica. Durante gli spostamenti, ci
sono meno dispositivi da acquistare e da mantenere.
Page 7 of 157
Giugno 2013
file relativamente piccolo. Si immagini come in questa situazione verrebbe trasferito più velocemente un filmato
da 1 Gbyte, oppure un pacchetto software da 400 Mbyte.
Gli switch sono inoltre scalabili, dal momento che possono avere molte porte e permettono di inserire con facilità
nuovo hardware nello stack.
Se si decide di fare completamente a meno di una struttura di cavi, è possibile utilizzare i dispositivi wireless. In
questo caso non è richiesta alcuna struttura di cavi ed è consentito il computing mobile in tutto l'ufficio.
Naturalmente, questo schema risulta incredibilmente utile negli uffici che non hanno o non possono avere una
struttura di cavi.
Gigabit Ethernet
Esiste un'opzione che consente di superare la barriera dei 100 Mbps: lo schema Gigabit Ethernet. Se gli switch
sono connessi da cavi Category 5 e da interfacce di rete multiple, si può ottenere una velocità a livello di Gbps. Gli
switch e le interfacce di rete devono in questo caso essere compatibili con la tecnologia Gigabit Ethernet. L'idea è
quella di usare tutte le porte di scheda Ethernet a quattro porte e aggregare simultaneamente il traffico su di
esse; in questo modo, un computer può teoricamente trasferire i dati con una velocità prossima a 1 Gbps.
Page 8 of 157
Giugno 2013
collisioni risulta maggiore del cinque per cento dei pacchetti totali in transito nell'interfaccia di quella macchina,
esistono dei problemi di congestione.
Tipologie di rete
Esistono due tipi di tipologie: La tipologia fisica e la tipologia logica:
Fondamentalmente le principali tipologie fisiche sono tre:
stella
anello
bus.
La tipologia fisica di una rete locale si differenzia, come evidenziato dalle figure, in base al tipo di collegamento
tra i vari dispositivi che la compongono......
Tipologia a stella
Una rete a stella connette tutti i nodi periferici a un nodo principale (centro stella). Ogni nodo periferico è
connesso in modo indipendente e non interferisce con gli altri. In questo modo tutte le comunicazioni passano
per il nodo centrale che si occupa di gestirle.
Tipologia ad anello
Una rete ad anello connette tutti i nodi in sequenza fra di loro in modo da formare un anello. In questo modo la
comunicazione avviene in un unico senso e ogni nodo ritrasmette al nodo successivo i dati che non sono destinati
a se stesso.
Tipologia a bus
Page 9 of 157
Giugno 2013
Una rete a bus connette tutti i nodi sullo stesso canale trasmissivo, per cui i dati trasmessi da un nodo sono
intercettabili da tutti gli altri. In questo modo la trasmissione simultanea da parte di più nodi genera un
collisione.
Da un punto di vista logico le tipologie sono due:
Nelle reti broadcast i vari elaboratori comunicano tra di loro attraverso la trasmissione di piccoli impulsi
elettrici che utilizzano un unico "canale" di comunicazione condiviso da tutti.
Si dice che il canale trasmissivo (media) è condiviso da tutti, e non c'è nessun ordine nella priorità di trasmissione.
Questo è, in parole povere, il modo in cui Ethernet lavora.
In pratica, ogni stazione invia dei messaggi che saranno ricevuti da tutte le altre stazioni della rete. Una sola
stazione, però, elaborerà il messaggio ricevuto, e questo accadrà nel caso in cui questo contenga il suo indirizzo
fisico. In caso contrario verrà ignorato.
Quando due dispositivi cercano di comunicare simultaneamente, tra i pacchetti trasmessi si verifica una collisione
che viene rilevata dai dispositivi trasmittenti. I dispositivi cessano quindi di trasmettere e si mettono in attesa
prima di inviare nuovamente i loro pacchetti. Tutto ciò fa parte del normale funzionamento per le reti Ethernet e
Fast Ethernet ed è paragonabile ad una conversazione tra un gruppo di persone; se due persone parlano
contemporaneamente, si fermano entrambe e una di esse inizia a parlare nuovamente.
Le reti Ethernet e Fast Ethernet impiegano un protocollo chiamato CSMA/CD (Carrier-sense Multiple Access with
Collision Detection). Questo protocollo ha la caratteristica implicita di permettere ad un solo dispositivo di
comunicare in un dato momento.
Nelle reti token-passing viene distribuito, sul canale trasmissivo, un "gettone" che può essere catturato per
trasmettere dati. Se un host non ha nessun dato da trasmettere passa il gettone (token) all'host successivo. In
questo modo si determina una sequenza.
Page 10 of 157
Giugno 2013
In modalità seriale, ogni bit che costituisce il dato viene invitato sullo stesso cavo cavo e in modalità sequenziale,
uno alla volta come indicato in figura
In modalità parallela, i bit che costituiscono il dato vengono inviati in contemporanea su cavi differenti. Se
inviamo 8 bit contemporaneamente, avremo bisogno di 8 cavi come in figura:
In entrambe le modalità, la velocità si misura in BAUD, (numero di bit per secondo). A prima vista la modalità
parallela sembra più veloce ma, vi sono errori e correzioni da effettuare che fanno propendere per la modalità
seriale.
I dispositivi delegati alla trasmissione (trasmettitore e ricevitore) potranno adottare diverse tipologie di
trasmissione che saranno scelte in base al tipo linea di trasmissione che li collega.
Half-duplex:
Un canale Half-duplex può ricevere e trasmettere ma non contemporameamente.
La stessa linea già vista nel simplex, diventa bidirezionale. Qui i dati viaggiano in entrambi i sensi ma, durante la
trasmissione, solo uno dei due sensi è abilitato alternativamente.
Page 11 of 157
Giugno 2013
Per analogia si potrebbe pensare alla trasmissione dei CB (citizien band) dove su un canale si può parlare solo
alternativamente.
Il segnale tipico è "passo" che trasferisce la priorità all'altro capo del canale. Il ricevente diventa trasmittente e il
trasmittente, a sua volta, cambia lo stato in ricevente.
Il passaggio di stato prende il nome di "commutazione di direzione".
Full-duplex:
Sul canale passano contemporaneamente dati nelle due direzioni.
Analogia vuole che oggi molti servizi (telefonici, dati ecc.) permettano questa implementazione (tv interattiva,
adsl, multiconferenza telefonica ecc.).
I pacchetti
I dati viaggiano nella rete sotto forma di pacchetti (data packet).
Il termine pacchetto rappresenta una specie di confezionamento (o meglio di "imbustamento") delle informazioni
attraverso cui si definisce il mittente, il destinatario, i dati trasmessi e tutta una serie di informazioni di
controllo.....
Più precisamente un pacchetto è composto da una serie di bit che formano un blocco di dati.
Questo blocco di datti è diviso in diversi sotto blocchi che rappresentano un'intestazione, informazioni di
controllo, mittente, destinatario, dati di controllo degli errori nonché il messaggio stesso (la parte relativa alle
informazioni vere e proprie).
Poiché sono unità di dati di rete simili tra loro, i termini pacchetto e frame sono di fatto sinonimi.
Il confezionamento, il tipo e la dimensione dei pacchetti dipendono dal tipo di rete utilizzata e dai protocolli che
regolano la trasmissione.
I dati (gruppi di bit che compongono il pacchetto) sono un materiale duttile che può essere suddiviso e aggregato
in vari modi. Ciò significa che, durante il loro tragitto, i dati possono essere scomposti e ricomposti più volte e in
modi differenti. Per esempio, per attraversare un particolare segmento di rete, potrebbe essere necessario
suddividere dei pacchetti troppo grandi in pacchetti più piccoli, oppure potrebbe essere utile il contrario.
In particolare, si parla di incapsulamento quando i pacchetti vengono inseriti all'interno di altri pacchetti.
I livelli
Nel progettare una rete è necessario seguire lo schema per livelli.
Ogni livello è costruito sopra il precedente e comunica solamente con il livello corrispondente (Layer n on one
computer communicates with Layer n on another computer).
Essendoci diversi tipi di rete ci sono anche molto differenze nei livelli che le costituiscono.
Essi possono differire, in reti diverse, sia per numero, ma soprattutto per definizione o contenuto.
Anche le funzioni che i livelli esplicano sono spesso molto differenti, per cui bisogna stare molto attenti nel fare
riferimenti numerici in reti di tipo diverso.
Il principio fondamentale (che vale per tutti i tipi di rete) è che ogni livello può offrire i servizi solo ai livelli più alti,
ignorando i dettagli sul come tali servizi siano implementati.
Page 12 of 157
Giugno 2013
Per esempio, il livello 5 di un elaboratore conversa con il livello 5 di un altro elaboratore. Le regole e le
convenzioni che governano questa conversazione sono generalmente indicate col termine di "protocollo di livello
5". E così per tutti gli altri livelli.
I processi che effettuano tale conversazione si definiscono "peer entitiy" ovvero "entità di pari livello". Il dialogo
fra due entità di pari livello (es. livello 4) si realizza attraverso i servizi offerti dal livello 3 ovvero (4-1).
Uno dei vantaggi palesi della divisione in livelli è quello di scomporre il problema della trasmissione fra
computers in problemi più piccoli e più facilmente gestibili.
ELABORATORE A ELABORATORE B
LIVELLO 5 <- PROTOCOLLO DI LIVELLO 5 -> LIVELLO 5
LIVELLO 4 <- PROTOCOLLO DI LIVELLO 4 -> LIVELLO 4
LIVELLO 3 <- PROTOCOLLO DI LIVELLO 3 -> LIVELLO 3
LIVELLO 2 <- PROTOCOLLO DI LIVELLO 2 -> LIVELLO 2
LIVELLO 1 <- PROTOCOLLO DI LIVELLO 1 -> LIVELLO 1
MEZZO FISICO
I protocolli di comunicazione
I pacchetti vengono trasmessi e ricevuti in base a delle regole. Possiamo ben dire che un "protocollo di
comunicazione" è un insieme di regole definite e accettate da tutti ("set of rules")
Le regole si applicano già, nella vita normale, a tutti i livelli di comunicazione. Basti pensare ad una semplice
telefonata fra due interlocutori:
In base alle regole di comunicazione telefonica, ogni telefonata inizia con un segnale di attenzione/disponibilità
come "pronto" o "hello" (in un altra lingua) e finisce con un altro saluto.
Durante la comunicazione telefonica, inoltre, mentre un interlocutore parla l'altro rimane in ascolto.
Un altro esempio può essere rappresentato dalle modalità e dalle regole di guida degli autoveicoli.
Anche in questo caso il tutto avviene per mezzo di "regole" riconosciute da tutti.
Se gli automobilisti non le rispettassero (non usando le frecce, inserendosi contromano nei sensi unici, passando
col rosso ecc) sarebbe il caos.
I protocolli di comunicazione riferiti ai dati usano le stesse regole:
Si annunciano, mentre un elaboratore trasmette gli altri restano in attesa e a fine trasmissione mandano dei
segnali per avvertire che il contatto è terminato.
Trattandosi di protocolli di comunicazione che devono soddisfare molte reti e molti elaboratori, necessitano di
regole complesse ma efficienti.
Tornando all'analogia con la vita quotidiana, si potrebbero paragonare alle regole che stabiliscono la
comunicazione in un assemblea, in un dibattito politico o in una classe scolastica.
Principali protocolli:
INSTRADABILI (ROUTABLE) - TCP/IP, IPX/SPX, OSI, AppleTalk, DECnet, XNS.
NetBEUI - Protocollo Microsoft disegnato per piccole LAN; non è instradabile. Non è compatibile
con le reti UNIX.
IPX/SPX - Protocollo per reti Novell: è instradabile. In NT è conosciuto anche come NWLink.
TCP/IP - Il protocollo di Internet ; è routabile. Usato nelle reti UNIXs.
DECnet - Definisce le comuncazioni sulle MAN FDDI; è instradabile.
Appletalk - Protocollo disegnato per le piccole reti Apple; è instradabile.
DLC - Usato per il collegamento a Mainframe IBM e stampanti di rete HP. Non è instradabile.
Page 13 of 157
Giugno 2013
Il modello di riferimento OSI (Open System Interconnection), diventato parte degli standard ISO (International
Organization for Standardization) nel 1984, divide la gestione della rete in livelli (layers). Questo modello non
definisce uno standard tecnologico ma, un modello di riferimento comune per le tecnologie e i servizi che
gestiscono le reti. Esso assicura compatibilità e interoperabilità anche fra diversi tipi di tecnologie.
Lo studio dell'Iso prese in esame gli aspetti comuni fra le varie tecnologie (SNA, DECNET, TCP/IP ecc) e cercò di
addivenire ad una serie di regole, basate su livelli, che aiutassero i costruttori ad implementare protocolli aperti.
Per capire il concetto di strutturazione per livelli è necessario comprendere come il flusso dei dati viene gestito e
regolato fra gli stessi.
Un buon esempio potrebbe essere quello relativo al sistema postale. Ogni passaggio di consegna di una lettera
avviene per livello di competenza e per regole di smistamento. La lettera viene imbucata in una cassetta postale e
poi prelevata e portata al centro di smistamento. Nel centro di smistamento viene interpretato l'indirizzo e la
lettera viene veicolata verso un altro centro vicino alla destinazione finale dove seguirà il percorso analogo (ma a
ritroso) fino ad arrivare nelle mani del postino per essere recapitata.
Page 14 of 157
Giugno 2013
Page 15 of 157
Giugno 2013
1. Riduce la complessità
Scompone le complesse problematiche del networking in parti più piccole (livelli)
2. Standardizza le interfacce
Standardizzando i componenti, permette a tutti i vendor di partecipare al mercato
4. Assicura l'interoperabilità
Permette la gestione di servizi indipendentemente dal tipo di piattaforma hw e sw
5. Accellera l'evoluzione
Permette l'implementazione dei singoli livelli indipendentemente dagli altri. Ciò facilita sviluppo ed
evoluzione.
Peer To Peer
Affinchè i pacchetti possano viaggiare dall'host sorgente a quello di destinazione, ogni livello "sorgente" del
modello OSI deve comunicare con il pari livello di "destinazione".
Questa modalità viene chiamata Peer-to-Peer Communication.
Durante questo processo ogni livello scambia delle informazioni, chiamate protocol data units (PDUs) con il suo
pari livello.
In ogni livello di comunicazione il sorgente e la destinazione si scambiano le PDU.
SORGENTE DESTINAZIONE
APPLICATION <- DATI -> APPLICATION
PRESENTATION <- DATI -> PRESENTATION
SESSION <- DATI -> SESSION
TRANSPORT <- SEGMENTI -> TRANSPORT
NETWORK <- PACCHETTI -> NETWORK
DATA LINK <- TRAME -> DATA LINK
PHYSICAL <- BIT -> PHYSICAL
Il livello di trasporto si occupa di segmenti; i segmenti vengono incapsulati in pacchetti; i pacchetti sono
frammentati e incapsulati in trame; le trame si trasformano in flussi di bit.
Page 16 of 157
Giugno 2013
L'incapsulamento
Per trasferire delle informazioni attraverso un canale comunicativo è necessario procedere al cosidetto
incapsulamento dei dati (encapsulation).
L'incapsulamento è quell'operazione che arrichisce i dati di ulteriori informazioni (ad esempio quelle relative al al
protocollo) ogni volta che scendono di livello verso il media fisico.
In pratica, nel loro cammino verso il basso (dal livello 7 fino al livello 1) i dati vengono "rivestiti" di ulteriori
informazioni come ad esempio i vari header (intestazioni) ogni volta che attraversano i livelli 4, 3 e 2 della pila
OSI.
Incapsulamento: (livello 4)
I dati da trasferire sono spezzettati in segmenti, e spediti al destinatario, numerandoli sequenzialmente. Il
destinatario, alla ricezione dei segmenti, invia un segnale di avvenuta trasmissione. Nel caso di fallimento della
ricezione di un segmento, il destinatario può richiederne la ritrasmissione. In questo modo sussiste il controllo
degli errori nel trasporto dei dati.
Page 17 of 157
Giugno 2013
Tipi di cavo
Cavo Doppino Telefonico
Il cavo doppino telefonico è un tipo di supporto utilizzato in molte topologie di rete. Il doppino telefonico fu
sviluppato in origine ad uso delle linee telefoniche, classificato come CAT 1 UTP (unshielded twisted pair). Questo
tipo di cavo consiste di in due coppie isolate di fili di rame, ritorte l’una sull’altra. La torsione dei fili garantisce un
grado di protezione dalla diafonia (crosstalk).
Il doppino telefonico esiste in due varianti: schermato e non schermato.
STP (Shielded twisted-pair cable)
STP (doppino ritorto schermato) combina le tecniche di schermatura (shielding), cancellazione, e avvolgimento
(twisting). Ogni coppia di fili elettrici è avvolta in una lamina metallica. Le 4 coppie di cavi sono avvolte in un
intrecciato o lamina metallica. Normalmente è un cavo da 150 Ohm. Come specifica per l'uso in installazioni di
reti Ethernet, STP riduce "rumori elettrici", entrambi dentro il cavo (accoppiamento coppia a coppia, o diafonia) e
al di fuori del cavo (interferenza elettromagnetica - EMI - e interferenza radio frequenza RFI)
Il cavo STP condivide molti vantaggi e svantaggi dell'Utp. STP offre una grande protezione da tutti i tipi di
interferenze esterne, ma è più caro e difficile da installare rispetto ad UTP.
Principali caratteristiche
Cavo STP
Page 18 of 157
Giugno 2013
Ohm. I materiali metallici schermati in STP e ScTP hanno bisogno di essere messi a terra entrambi.Se
impropriamente collegati a massa, essi diventano suscettibili ai principali problemi di rumore.
UTP (Unshielded twisted-pair cable)
UTP (doppino telefonico non schermato) consiste in due coppie isolate di fili di rame ritorte l’una sull’altra e
avvolti in una guaina di plastica.
Il cavo UTP viene classificato in diverse categorie.
CAT 1 supporta solamente le comunicazioni vocali (cavo telefonico tradizionale)
CAT 2 supporta velocità di trasferimento fino a 4 Mbps
CAT 3 supporta velocità di trasferimento fino a 10 Mbps
CAT 4 supporta velocità di trasferimento fino a 16 Mbps
CAT 5 supporta velocità di trasferimento fino a 100 Mbps
I doppini telefonici non schermati presentano innumerevoli vantaggi. Sono facili da installare e costano poco
rispetto a tutti gli altri “media”. Lo svantaggio è che i doppini sono sensibili al rumore elettrico e alle interferenze.
Cavo UTP
Principali Caratteristiche
Velocità – 10/100 Mbps
Lunghezza massima del cavo senza ripetitore - 100 metri (feet 382)
Vantaggi – installazione facile, costo ridotto
Svantaggi – poco resistente alle interferenze
Cavo Coassiale
Il cavo coassiale consiste in un filo centrale conduttore di rame, che è più grosso dei fili del doppino telefonico
consentendo velocità di trasmissione dati maggiore su distanze più lunghe. Il conduttore centrale è ricoperto da
uno strato di materiale plastico isolante sotto forma di schiuma che a sua volta è circondato da un foglio di
alluminio. Il conduttore non serve a trasferire dati ma fornisce una messa a terra elettrica isolando il conduttore
centrale dalle interferenze. Il cavo coassiale può trasmettere dati a 10 Mbps, per distanze massime che vanno da
185 a 500 metri. I due principali tipi di cavi coassiali utilizzati nelle reti locali sono il Thin Ethernet e il Thick
Ethernet.
Page 19 of 157
Giugno 2013
Il terminatore, o tappo, è un connettore che va inserito rispettivamente ai due lati estremi della rete. Questo
infatti ha il compito di assorbire un segnale sul cavo in modo da non creare collisioni e quindi errori nella
trasmissione.
Principali caratteristiche
Velocità - 10 Mbps
Lunghezza massima del cavo tra i ripetitori - 185 metri
Vantaggi - economico
Svantaggi - difficoltà nelle operazioni di messa a terra del cavo
Cavo Thicknet (10Base5)
Più spesso e costoso rispetto al Thinnet. Si serve di transceiver esterni AUI connessi a ciascuna NIC per mezzo di
un “vampire tap” che fora la guaina del cavo per accedere al filo.
Principali caratteristiche
Velocità - 10 Mbps
Distanza per segmento di cavo - 500m
Vantaggi - trasmissione su distanze maggiori, resistenza alle interferenze
Svantaggi - rigido quindi difficile da installare, costoso
Oltre alla dimensione e alla lunghezza supportata esiste un’ altra differenza sostanziale tra il cavo Thin ed il cavo
Thick. Il cavo Thicknet infatti utilizza dei transceiver ( a tutti gli effetti l’ elemento che effettua la trasmissione e la
ricezione dei dati ) esterni AUI connessi alla rete attraverso un vampire tap (rubinetto) che fora la guaina del cavo
per accedere al filo di rame. Lo stesso transceiver è poi connesso con un cavo DB-15 ( 15 pin ) alla scheda di rete.
Essendo il più costoso dei due ed avendo maggiore supporto in lunghezza, il cavo thicknet è spesso utilizzato in
dorsali di collegamento di reti thinnet. Una dorsale è un collegamento ad alta velocità che ha il compito di
interconnettere più reti tra loro.
“Transceiver per cavo ThickNet con Vampire Tap collegato al conduttore interno”
Page 20 of 157
Giugno 2013
Tabella Riassuntiva
Lunghezza N° max. di
Lunghezza N° max. di N° max. di Tipo di cavo
Versione Velocità max. max. di un nodi su un
totale ripetitori segmenti utilizzato
segmento segmento
5, di cui 2 non Coassiale
10Base-5 10Mbps 500m. 100 2500m. 4
popolati grosso
5, di cui 2 non Coassiale
10Base-2 10Mbps 200m. 30 1000m. 4
popolati sottile
100m.UTP 5, di cui 2 non Doppino
10Base-T 10Mbps 2 500m. 4
500m.STP popolati UTP/STP
3, di cui 1 per Doppino UTP
100Base-T 100Mbps 100m. 2 205 2
l'uplink (cat.5)
Principali caratteristiche
Velocità - 100 Mbps / 2 Gbps
Distanza supportata per invio dati affidabili – 2 Km senza ripetitore
Vantaggi - trasmissione su distanze maggiori, immune alle interferenze e intercettazioni
Svantaggi – rigido quindi difficile da installare, il tipo di supporto più costoso
Comunicazione Wireless
Wireless si riferisce a una tipologia di comunicazione, ad un monitoraggio e a un insieme di sistemi di controllo in
cui i segnali viaggiano nello spazio e non su fili o cavi di trasmissione. In un sistema wireless la trasmissione
avviene principalmente via radiofrequenza (RF) o via infrarosso (IR).La Tecnologia Wireless consente in un ufficio,
in una casa di far dialogare tra loro tutti i dispositivi elettronici presenti. Lo scambio di informazione fra gli
strumenti avviene attraverso onde radio, eliminando qualsiasi tipo di connessione fisica tra dispositivi. Per fare
ciò ciascun dispositivo deve possedere all'interno un chip, integrato, in grado di trasmettere e ricevere
informazioni nell'etere.
Gli standard per le tecnologie Wireless più utilizzati sono :
Page 21 of 157
Giugno 2013
L’ IEEE ( Institute of Electronic and Electrical Engineers ), l’ ente che si occupa degli standars di rete, ed in
particolare del livello 1 e della parte dell’accesso al supporto del livello 2, ha creato una suddivisione in due parti
del livello 2 OSI:
LLC ( logical link control ) : sottolivello del livello 2 che comunica con il livello superiore del
modello OSI ( livello 3 Network )
MAC ( Media Access Control ) : che si occupa dell’ accesso al media
Tali sottolivelli sono molto importanti e nascono dopo la standardizzazione del modello OSI.
Le reti avevano già una loro fisionomia ma potevano presentarsi dei problemi nell’ intercomunicazione tra livelli
fisico-data-link e superiori.
L’ IEEE, grazie alla suddivisione in due sottolivelli del data-link, ha sopperito a questa grave mancanza di cui
soffriva lo standard OSI.
Non bisogna pero’ confondere l’ IEEE con l’OSI:
l’ IEEE è un’ente preposta alla supervisione e all’ufficializzazione di standards di rete, mentre l’ OSI è un
modello architetturale ben affermato e definito. Vediamo più da vicino i due sottolivelli:
LLC ( LOGICAL LINK CONTROL ) : Creato per garantire la funzionalità del livello 2 indipendentemente
dalle tecnologie usate l’LLC, offre un servizio di comunicazione con il livello 3 ( network ), il quale passa al
livello 2 il pacchetto IP, che a sua volta viene riformattato dal livello due con informazioni di controllo
per il corretto instradamento dello stesso pacchetto sulla rete : DSAP ( Destination Service Access Point )
e SSAP ( Source Service Access Point ). Supporta sia comunicazioni orientate che comunicazioni non
orientate alla connessione ( connection-oriented, connectionless )
MAC ( MEDIA ACCESS CONTROL ) : Creato per l’accesso concorrente al media di collegamento,
attraverso l’utilizzo di un identificatore unico di rete, chiamato anche indiricco fisico, detto MAC address.
Tale identificativo è un indirizzo fisico in quanto identifica in modo “fisico” un host, a differenza
dell’indirizzo IP logico che puo’ identificare un aggregato di host connessi
Page 22 of 157
Giugno 2013
0-1-2-3-4-5-6-7-8-9-A(10)-B(11)-C(12)-D(13)-E(14)-F(15).
Ritornando all’ indirizzo MAC è doveroso fare una considerazione su come viene interpretato tale indirizzo.
Infatti esso è composto da 48 bit, parte dei quali appartengono alla società di produzione della scheda di rete,
mentre la seconda parte è variabile.
La foto chiarisce meglio il concetto:
I primi 24 bit (OUI) appartengono alla società di fabbricazione della scheda di rete, mentre i restanti 24 bit sono
riferiti alla scheda vera e propria in modo arbitrale.
Un indirizzo MAC assumerà quindi questo aspetto : 00-50-8B-9A-C6-F5, oppure, in un altro formato meno
utilizzato, potrà comparire nel modo seguente : 0050.8B9A.C6F5.
Come funziona il sistema esadecimale ?
Bisogna, sostanzialmente, ragionare in base 16 e non più in base 10 come il sistema decimale.
Nel sistema esadecimale invece il numero decimale 20330 corrisponderà invece al numero esadecimale:
Page 23 of 157
Giugno 2013
Se ora vogliamo convertire il numero 5DE0 in formato decimale, non dobbiamo fare altro che sfruttare la
proprietà posizionale del sistema e quindi moltiplicare il tutto per le potenze di 16:
Un frame ha diversi campi ( 6 ) ognuno dei quali ha una funzione distinta. Esaminiamoli uno per uno:
Start frame field: Tale campo indica la presenza di un frame all’interno del media di collegamento
Address Field: E’ il campo che contiene gli indirizzi fisici (MAC) di origine e di destinazione cui il frame
appartiene
Type/Lenght Field: Il campo Length contiene l’esatta dimensione del frame. In alcuni casi tale campo
contiene anche il tipo di protocollo di Livello 3 dell’host di origine
Data Field: Il campo data, come dal nome, contiene le informazioni che vogliamo spedire all’ host di
destinazione
FCS Field: Il campo FCS contiene dei valori calcolati dalla sorgente e ricalcolati successivamente dalla
destinazione, per ovviare a problemi di trasmissione. Per il calcolo del Frame Sequence Number (FCS), si
possono utilizzare diversi metodi quali il CRC (cyclic redundancy check) che è un calcolo polinomiale sul
campo data , il bit di parità che aggiunge un bit di valore “1” alla fine e l’internet checksum
Stop Frame field: Delimita la fine di un frame
MAC ( Media Access Control )
Insieme con l’LLC, il MAC crea il cosiddetto sottolivello del livello 2 . E’ l’insieme dei protocolli che determinano
l’accesso sul media di collegamento. I tipi di accesso sono 2:
Page 24 of 157
Giugno 2013
Potremmo paragonare, per facilitare la comprensione, il livello MAC ad un vigile che controlla il traffico e che
“decide” chi deve passare per primo e chi per secondo.
L’esempio lampante di un accesso deterministico è la rete Token Ring dove l’accesso di ogni host alla rete è
controllato attraverso il possesso del gettone ( 3 bytes ), il quale permette l’inizio della trasmissione. ( talking
your turn ).
Terminato il possesso del gettone da parte di un host, è possible per un’altra postazione acquistarne il possesso e
quindi trasmettere i dati.
Quando parliamo invece di un accesso non deterministico, possiamo introdurre il concetto di CSMA/CD. Il Carrier
Sense-Multiple Access – Collision Detection è un sistema che, in un certo modo, tutela e controlla l’accesso non
deterministico ad una rete. E’ di esempio la rete Ethernet. Se due host vogliono trasmettere in modo
contemporaneo possono farlo perché non regolati dal passaggio di un token. In questo modo pero’ si incorrerà in
una collisione, che obbligherà i due host a ritrasmettere i dati in momenti non contemporanei ma diversi tra loro.
Il CSMA/CD,caratterizzante di una rete Ethernet, fa in modo che un host ascolti sul media se ci sono altre
trasmissioni, da l’accesso quindi al media e, nel peggiore dei casi, gestisce le collisioni.
Il router è l'apparato fondamentale per l'indirizzamento di tipo logico. Il router è in grado di prendere decisioni
intelligenti sul percorso migliore a cui affidare la distribuzione dei pacchetti di dati.
Page 25 of 157
Giugno 2013
I routers usano il protocollo IP (con gli indirizzi logici) in alternativa agli indirizzi MAC tipici del livello Data Link.
Poiché gli indirizzi IP sono gestiti a livello software, essi si riferiscono alla rete su cui un dispositivo è situato. Ecco
perchè si dice che l'indirizzamento IP è un indirizzamente di rete.
La differenza sostanziale sta comunque nel fatto che l'indirizzo fisico (Mac) viene attribuito dal costruttore e
inserito all'interno della scheda di rete, mentre l'indirizzzo logico (IP) viene attribuito dall'amministratore di rete e
può essere cambiato a seconda delle esigenze.
Laddove switch e bridge vengono utilizzati per collegare i segmenti d'una rete LAN (fisicamente connessi). I
routers sono utilizzati per collegare fra di loro le reti che sono fisicamente separate, nonchè per accedere alla
rete mondiale Internet.
I router, quindi, connettono due o più reti fisicamente separate. La separazione è comunque basata su indirizzi di
rete che devono ASSOLUTAMENTE essere diversi e univoci. Questo processo avviene attraverso l'assegnazione
dell'ID di rete (all'interno del numero di IP) che viene assegnato a tutti gli apparati connessi alla rete.
L’approfondimento sulla numerazione IP verrà vista in seguito.
Per spiegare meglio il concetto diamo alla rete l'indirizzo A e agli host l'indirizzo di rete (A) più l'indirizzo dell'host
(1, 2, 3, 4 ecc....)
Rete A
Il router che gestirà questa rete dovrà avere un interfaccia sulla rete A con numerazione corrispondente. Per
esempio A1.
Analogamente, due reti fisicamente separate trovano la possibilità di interconnettersi attraverso un router se
rispettano i presupposti di cui sopra. In questo caso due indirizzi di rete diversi, indirizzi host diversi e le due
interfacce del router direttamente collegate alle due reti e configurate con indirizzo logico corrispondente alla
rete servita.
Host Host Host Host Host Host Host Host
A2 A3 A4 A5 B2 B3 B4 B5
Rete A Rete B
Vogliamo trasmettere dati dalla rete A alla rete B; Il router è connesso alle reti A, B, C, e D. Quando i dati (frames
di livello 2), provenienti dalla rete A, raggiungono il router, lo stesso effettua le seguenti azioni:
Page 26 of 157
Giugno 2013
Scarta l'header del data link presente nella frame. (L'header del data link contiene il MAC address
dell'host sorgente e quello dell'host di destinazione). In questo modo siamo in grado di assumere che le
informazioni relative agli indirizzi fisici di livello 2 non interessano ai router. Essi operano solo a livello 3 e
quindi a livello di indirizzo logico di rete.
Esamina l'indirizzo di rete per determinare la rete di destinazione.
Esamina la tabella di routing per determinare quale delle sue interfacce (A,B,C e D) deve utilizzare per
smistare i dati e raggiungere la rete di destinazione.
Incapsula i dati in una frame di livello 2 e li spedisce i verso l'interfaccia di uscita.
Il concetto di interfaccia riferito al router può essere espresso anche come "porta".
Ovviamente ogni interfaccia del router deve avere un numero di Ip (o comunque un indirizzo logico) univoco.
Ma e poi mai due interfaccie possono avere lo stesso numero di IP.
PRESENTATION <-
APPLICATION
SESSION
TRANSPORT <- TRANSPORT
NETWORK <- INTERNET
DATA LINK
<- NETWORK INTERFACE
PHYSICAL
I principali requisiti che il progetto stabilì, fin dall'inizio, si possono riassumere in:
questi requisiti portarono alla definizione di una architettura di rete basata su:
packet-switched;
livello connectionless di internetwork.
Livello Application
Nella suite TCP/IP non sono previsti i livelli session e presentation (non furono ritenuti necessari; l'esperienza col
modello OSI ha mostrato che questa visione è condivisibile).
Page 27 of 157
Giugno 2013
Sopra il livello transport c'è direttamente il livello application, che contiene tutti i protocolli di alto livello che
vengono usati dalle applicazioni reali. I progettisti hanno creato un livello che soddisfa le problematiche di
presentazione, codifica e controllo della comunicazione.
I protocolli introdotti per primi (ed attualmente fortemente in uso) sono:
DNS (Domain Name Service): mappatura fra nomi di host e indirizzi IP numerici;
NNTP (Network News Transfer Protocol): trasferimento di articoli per i newsgroup;
HTTP (HyperText Transfer Protocol): alla base del Word Wide Web.
Livello Transport
E' stato progettato per consentire la conversazione delle peer entity sugli host sorgente e destinazione (end-to-
end). E' il livello che si occupa della qualità del servizio, dell'affidabilità, del controllo di flusso e della correzione
degli errori.
Sono definiti due protocolli in questo livello:
TCP (Transmission Control Protocol): è un protocollo orientato alla connessione e molto affidabile (tutti i
pacchetti arrivano a destinazione e, nell'ordine giusto). Frammenta il flusso di dati in arrivo dal livello
superiore in messaggi separati (segmenti) che vengono passati al livello Internet. In fase di arrivo a
destinazione, i pacchetti vengono riassemblati in un flusso di output per il livello superiore. Connection-
oriented non significa l'esistenza di un circuito reale fra i due host (circuit switching). Significa , invece,
che i segmenti del livello 4 viaggiano avanti e indietro fra i due host per assicurarsi che la connessione sia
stabile durante un deterrminato periodo. Questo processo è conosciuto come "packet switching".
a)
UDP (User Datagram Protocol): è un protocollo non orientato alla connessione e, quindi, non affidabile.
I pacchetti possono arrivare in ordine diverso o, addirittura, non arrivare affatto.
Livello Internet
E' il livello che tiene insieme l'intera architettura. Il suo ruolo è consentire ad un elaboratore (host) di iniettare
pacchetti in una qualsiasi rete e fare il possibile per farli viaggiare, indipendentemente gli uni dagli altri e magari
per strade diverse, fino alla destinazione, che può essere situata anche in un'altra rete. Dunque è connection less.
E' un servizio best-effort datagram. Il protocollo che si occupa di questa incombenza è l' IP (Internet Protocol). Le
funzioni principali sono l'instradamento (routing) e il controllo della congestione.
Network Interface
Nelle specifiche del modello TCP/IP non esiste una considerazione del livello fisico in quanto lo stesso si appoggia
direttamente a quello dei dispositivi disponibili per le varie piattaforme HW e, comunque, conformi agli standard
IEEE 802. Tutto ciò che si assume è la capacità dell'host di inviare pacchetti IP sulla rete, difatti questo livello
viene anche denominato "host-to-network layer".
APPLICATION -> TELNET, FTP, SMTP, HTTP, NNTP, RLOGIN, DNS, TFTP
TRANSPORT -> TCP, UDP
INTERNET -> IP, ICMP, ARP, RARP
NETWORK INTERFACE -> LAN, WAN, MAN
Page 28 of 157
Giugno 2013
Utilizzo dei servizi di trasporto su vaste aree geografiche delegati a provider telefonici;
Utilizzo di connessioni seriali, full o part time;
Utilizzo di apparati specifici per le aree geografiche come: router, switch, modem, communication
servers.
Per quanto riguarda le specifiche, le raccomandazioni e gli standard che, sia a livello fisico che a livello data-link,
intervengono nel dettare regole e armonizzare lo scambio di dati fra le varie tecnologie adottate, vanno citati:
International Telecommunication Union-Telecommunication Standardization Sector (ITU-T), formerly
the Consultative Committee for International Telegraph and Telephone (CCITT)
International Organization for Standardization (ISO)
Internet Engineering Task Force (IETF)
Electronic Industries Association (EIA)
Esistono diversi standard WAN, ognuno con proprie caratteristiche tecniche e particolare diffusione nel mercato
IT. Abbiamo in precedenza detto che le WAN operano su due differenti livelli: fisico e data-link. Quello che è
importante sapere, prima di affrontare le varie tecnologie, è che mentre al livello fisico si stabiliscono i parametri
elettronici e meccanici per lo scambio dati, al livello data-link si stabiliscono le modalità di trasmissione dei frame
attraverso il singolo canale comunicativo.
Più in particolare:
A livello fisico vengono prese in esame le intefacce DTE (data terminal equipment) e DCE (data circuit-
terminating equipment) dove il DCE è il servizio offerto del provider (tipicamente la terminazione del Wan
provider Telecom/wind/Infostrada ecc.) e il DTE l'interfaccia locale del router aziendale.
Il DCE è, molto spesso, un modem o una CSU/DSU (interfaccia digitale che connette l'apparato aziendale al "local
digital telephone loop" (circuito dati del provider) è usato nei circuiti digitali (tipicamente le CDN) come le T1 o
E1.
Channel service unit/Data service unit. E' usato per collegarsi a una linea T1 o ad una linea dedicata, come il T1
frazionato. La funzione primaria di CSU/DSU è convertire il segnale in formato che il resto della rete può capire.
È simile alla funzione di un modem. CSU/DSU funziona allo strato fisico del modello OSI.
Una considerazione importante riguarda la funzionalità di timing che è demandata al DSU.
EIA/TIA-232
EIA/TIA-449
V.24
Page 29 of 157
Giugno 2013
V.35
X.21
G.703
EIA-530
High-Level Data Link Control (HDLC) standard dello IEEE. Non è compatibile con tutti gli apparati di rete.
Molti produttori implementano versioni proprietarie di questo protocollo. HDLC supporta la
configurazione point-to-point e quella multipoint.
Frame Relay. Questo protocollo utilizza i vantaggi dell'alta qualità digitale. Utilizza una trama (frame)
semplificata senza meccanismo di correzione. Questa caratteristica permette di inviare informazioni di
Livello 2 in modo più veloce di tutti gli altri protocolli.
Point-to-Point Protocol (PPP). Viene descritto dalla RFC 1661 e contiene due standard sviluppati dall'
IETF. Il PPP, nella sua struttura, contiene un campo utilizzato per identificare il protocollo di Livello 3.
Simple Data Link Control Protocol (SDLC) è stato ingenerizzato da IBM per supportare le Wan di tipo
SNA (System Network Architecture). Attualmente è rimpiazzato dal più versatile HDLC .
Serial Line Interface Protocol (SLIP) uno dei protocolli più usati per trasportare IP nelle reti WAN è stato,
quasi completamente, rimpiazzato dal più versatile PPP.
Link Access Procedure Balanced (LAPB) è usato su reti X.25 e dispone d un ottima capicità di controllo
degli errori.
Link Access Procedure D-channel (LAPD) è il protocollo WAN usato per il canale di servizio "D" nelle reti
ISDN (i dati veri e propri transitano nei canali B).
Link Access Procedure Frame (LAPF) è un protocollo molto simile all' LAPD e viene usato in abbinata alle
tecnologie frame relay.
Tecnologie WAN
Le tecnologie WAN sottoelencate godono di una ulteriore suddivisione in base al modo in cui avviene la
trasmissione dei dati sul media di collegamento. Esaminiamo le categorie.
Tabella comparativa
Page 30 of 157
Giugno 2013
POTS (Plain Old Telephone Service). Questa tecnologia comunemente usata per la trasmissione della
voce, non riguarda i computer ma le sue caratteristiche sono rilevanti per lo sviluppo delle infrastrutture
di rete. Essendo un modello estremamente affidabile e facile da usare nelle reti Wan è utile studiarlo e
conoscerlo. Il media fisico utilizzato da questa tecnologia è di tipo twisted-pair.
ISDN (Integrated Services Digital Network). E' una delle tecnologie più diffuse ed è stata la prima a
consentire un servizio di accesso dial-up completamente digitale. Non è molto costosa e ha una
larghezza di banda massima di 128 Kbps per l'accesso base "BRI" (Basic Rate Interface) e di 3 Mbps per
l'accesso primario "PRI" (Primary Rate Interface). Anche la tecnologia ISDN utilizza come media fisico il
cavo in rame di tipo twisted-pair.
Frame Relay è la versione packet-switched di ISDN ed è diventata una delle tecnologie più diffuse. E' più
efficente di X.25 e, pur erogando gli stessi servizi, può usufruire di una larghezza di banda massima di
44.736 Mbps. Utilizza il media di rame twisted pair e la fibra ottica.
SMDS (Switched Multimegabit Data Service) abbastanza simile a ATM viene usata negli ambienti
metropolitani (MAN). La velocità di trasmissione è di circa 44 Mbps. Dato il costo relativamente alto non
è molto diffusa. Utilizza il media di rame a due fili intrecciati e la fibra ottica.
xDSL (Digital Subscriber Line) è una nuova tecnologia WAN sviluppata per uso casalingo e per piccoli
uffici. La caratteristica principale sta nella disponibilità di larghezza di banda che diminuisce con la
crescita della distanza dal punto di attacco del provider. La velocità maggiore (51,84 Mbps) è
virtualmente possibile a ridosso del sito tecnico del provider. Questa tecnologia sta rapidamente
prendendo piede e i prezzi di erogazione si stanno abassando notevolmente. Le varianti di questa
tecnologia sono:
o HDSL -- high-bit-rate DSL
o SDSL -- single-line DSL
o ADSL -- asymmetric DSL
o VDSL -- very-high-bit-rate DSL
o RADSL -- rate adaptive DSL
SONET (Synchronous Optical Network) -- E' una tecnologia ad alta velocità che utilizza, principalmente,
la fibra ottica ma può adattarsi anche al rame. Le velocità raggiungibili sono diverse a seconda dell'uso a
cui questa tecnologia viene destinata. Viene implementata a diversi livelli raggiungendo velocità che
Page 31 of 157
Giugno 2013
variano dai 51,84 Mbps fino a 9.952 Mbps (OC-192); Può raggiungere queste straordinarie velocità
grazie all'uso del WDM (wavelength division multiplexing) dove i fasci laser vengono sintonizzati su
diversi colori (wavelengths) per poter inoltrare enormi quantità di dati. Questa tecnologia è molto usata
nei backbone di Internet ed il suo costo è molto elevato.
Page 32 of 157
Giugno 2013
2) SECONDO LIVELLO
Introduzione
Osi (Open Systems Interconnection, connessione di sistemi aperti) è stato studiato da Iso (International Standards
Organization) come standard da adottare per rendere possibile la comunicazione di rete tra sistemi operativi
differenti. Quando Osi fu terminato però, erano già in commercio alcuni Tcp/Ip diversi, per cui Osi non fu mai
adottato seriamente se non per motivi di studio. Tuttavia non è necessario che i vari Tcp/Ip siano identici per
poter comunicare tra loro, l'importante è che seguano a grandi linee il modello Osi: cosa che fanno, infatti.
Il modello Osi si compone di sette livelli, che vanno immaginati in colonna. Sotto la colonna c'è una serie di cavi
che fanno funzionare la rete, sopra c'è un uomo che sta chattando. L'essere umano vede solo i messaggi delle
altre persone (per sua fortuna) e non si rende conto dei singoli flussi di energia elettrica che si attivano e si
disattivano a gran velocità all'interno dei cavi di rete. Ora, tra l'uomo e gli incomprensibili intrecci di cavi si
collocano i sette strati intermedi del modello Osi: il primo è quello più vicino alla rete, infatti si occupa proprio di
gestire i flussi di dati; il settimo è quello più alto, vicino all'uomo, infatti fa funzionare Netscape Navigator, Opera
e il programma di posta elettronica. All'interno di questi sette livelli si trovano i singoli protocolli e le Api che
formano l'insieme del Tcp/Ip. Vediamoli un po' più nel dettaglio, cominciando dal settimo...
APPLICATION Il livello Applicazione contiene Api (interfacce di programmazione) che forniscono ai programmi
(browsers, Icq...) accesso in lettura e in scrittura ai dati di cui hanno bisogno per funzionare
correttamente, dati che vengono processati nei livelli più bassi.
PRESENTATION Perché i nostri programmi possano comprendere i dati che arrivano dalla rete e perché l'host remoto
possa capire i dati che arrivano dai nostri programmi, occorre che essi vengano "tradotti" nel formato
adatto. Il livello Presentazione si occupa di questo: presenta i dati in una maniera comprensibile al
livello Applicazione quando li riceve dalla rete e li traduce in formati standard comprensibili anche
all'host di destinazione quando deve inviarli. Prima dell'invio avviene una negoziazione tra gli strati
Presentazione dei due computer, duranti il quale si decide in quale formato i pacchetti devono essere
convertiti.
SESSION Il livello Sessione si occupa di aprire, mantenere aperta e infine richiudere una connessione per l'invio
di determinati dati. Questo serve per preparare un host a ricevere le informazioni e controllare che
arrivino correttamente a destinazione; tale livello Osi può anche essere "saltato" da certi protocolli
detti "senza connessione" (connectionless), ma questo non significa che tali operazioni non vengano
eseguite, significa solo che dovranno essere eseguite dai singoli programmi che li utilizzano (come le
utility di risoluzione di nomi NetBios), perché il protocollo non li svolge automaticamente.
I dati provenienti dai livelli più alti vengono sincronizzati e riuniti in una o più connessioni dello stato
Trasporto. Sessione comprende anche una funzione per ristabilire il collegamento nel caso che cada,
senza dover ricominciare tutto daccapo: si chiama risincronizzazione.
TRANSPORT Finchè non si studieranno nel dettaglio i protocolli un'implementazione di Tcp/Ip, questo livello
apparirà del tutto simile a quello subito inferiore, Rete, e a quello superiore, Sessione. In realtà ci
sono delle differenze. Trasporto si occupa di instaurare una connessione con un host remoto,
indicando anche che il tipo di scambio di dati desiderato e ottimizzando il collegamento. Prima di
passare i dati al livello inferiore li suddivide in pacchetti più piccoli.
NETWORK Il livello Rete provvede a instradare correttamente i pacchetti di dati scegliendo il percorso più breve
attraverso i vari router e gateway.
DATA LINK Il livello Collegamento Dati era troppo ampio, e presto i progettisti si decisero a suddividerlo in due
sottolivelli: Logical Link Control (controllo del collegamento logico) suddivide i pacchetti di dati in
byte o in gruppi di bit, poi Media Access Control (controllo di accesso ai dispositivi) li invia
all'interfaccia di rete corretta, facendo in modo di non farli collidere con altri flussi di bit che stanno
attraversando i cavi in quel momento.
PHYSICAL LEVEL Il Livello Fisico è composto da una serie di drivers e da alcuni standard prettamente hardware, fisici
appunto. Questi standard sono stati decisi in parte dal Ccitt e in parte da Iso, comprendono le
caratteristiche elettriche e le tensioni utilizzate, la modulazione dei segnali, il tipo di porte fisiche e il
collegamento dei vari apparecchi (schede di rete, modem) a tali porte.
Ognuno di questi livelli riceve i dati dall'alto durante l'invio delle informazioni.
Page 33 of 157
Giugno 2013
Applicazione per esempio li riceve dai programmi che si trovano al di sopra del modello Osi. Li esamina e
aggiunge una intestazione che viene utilizzata per comunicare al livello applicazione che si trova all'altro capo del
filo, le informazioni di cui necessita. Non modifica in alcun modo le informazioni che devono essere inviate, si
limita ad aggiungere una piccola intestazione che contiene tutte le informazioni necessarie e che verrà utilizzata
solo ed esclusivamente dal livello Applicazione che si trova sull'altro host. Poi passa le informazioni verso il basso.
Presentazione le riceve e fa la stessa cosa: aggiunge una piccola intestazione e passa il tutto verso il basso.
E così via, fino ad arrivare allo strato fisico, il quale non aggiunge nessuna intestazione ma invia tutto allo strato
fisico dell'altro host.
Questi riceve il messaggio e lo passa in alto.
Collegamento Dati riceve il pacchetto, esamina l'intestazione che è stata inserita dal suo corrispondere dall'altra
parte della rete, la interpreta, cancella l'intestazione e passa il tutto verso l'altro. E così via.
Page 34 of 157
Giugno 2013
OSI TCP/IP
APPLICATION
SESSION
DATA LINK
<- NETWORK INTERFACE
PHYSICAL
I principali requisiti che il progetto stabilì, fin dall'inizio, si possono riassumere in:
ricerca di una affidabilità estrema
ottima tolleranza ai guasti
possibilità di interconnessione di più reti fra loro diverse
questi requisiti portarono alla definizione di una architettura di rete basata su:
packet-switched;
livello connectionless di internetwork.
Livello Application
Nella suite TCP/IP non sono previsti i livelli session e presentation (non furono ritenuti necessari; l'esperienza col
modello OSI ha mostrato che questa visione è condivisibile).
Sopra il livello transport c'è direttamente il livello application, che contiene tutti i protocolli di alto livello che
vengono usati dalle applicazioni reali. I progettisti hanno creato un livello che soddisfa le problematiche di
presentazione, codifica e controllo della comunicazione.
I protocolli introdotti per primi (ed attualmente fortemente in uso) sono:
Telnet: terminale virtuale
FTP (File Transfer Protocol): trasferimento di archivi
SMTP (Simple Mail Transfer Protocol) e POP (Post Office Protocol): posta elettronica.
Livello Transport
E' stato progettato per consentire la conversazione delle peer entity sugli host sorgente e destinazione (end-to-
end). E' il livello che si occupa della qualità del servizio, dell'affidabilità, del controllo di flusso e della correzione
degli errori.
UDP (User Datagram Protocol): è un protocollo non orientato alla connessione e, quindi, non affidabile.
I pacchetti possono arrivare in ordine diverso o, addirittura, non arrivare affatto.
Page 35 of 157
Giugno 2013
Livello Internet
E' il livello che tiene insieme l'intera architettura.
Il suo ruolo è consentire ad un elaboratore (host) di iniettare pacchetti in una qualsiasi rete e fare il possibile per
farli viaggiare, indipendentemente gli uni dagli altri e magari per strade diverse, fino alla destinazione, che può
essere situata anche in un'altra rete.
Dunque è connection less. E' un servizio best-effort datagram.
Il protocollo che si occupa di questa incombenza è l' IP (Internet Protocol).
Le funzioni principali sono l'instradamento (routing) e il controllo della congestione.
Network Interface
Nelle specifiche del modello TCP/IP non esiste una considerazione del livello fisico in quanto lo stesso si appoggia
direttamente a quello dei dispositivi disponibili per le varie piattaforme HW e, comunque, conformi agli standard
IEEE 802.
Tutto ciò che si assume è la capacità dell'host di inviare pacchetti IP sulla rete, difatti questo livello viene anche
denominato "host-to-network layer".
I protocolli di comunicazione
I pacchetti vengono trasmessi e ricevuti in base a delle regole. Possiamo ben dire che un "protocollo di
comunicazione" è un insieme di regole definite e accettate da tutti ("set of rules")
Le regole si applicano già, nella vita normale, a tutti i livelli di comunicazione. Basti pensare ad una semplice
telefonata fra due interlocutori: In base alle regole di comunicazione telefonica ogni telefonata inizia con un
segnale di attenzione/disponibilità come "pronto" o "hello" (in un altra lingua) e finisce con un altro saluto.
Durante la comunicazione telefonica, inoltre, mentre un interlocutore parla l'altro rimane in ascolto. Un altro
esempio può essere rappresentato dalle modalità e dalle regole di guida degli autoveicoli. Anche in questo caso il
tutto avviene per mezzo di "regole" riconosciute da tutti. Se gli automobilisti non le rispettassero (non usando le
frecce, inserendosi contromano nei sensi unici, passando col rosso ecc) sarebbe il caos. I protocolli di
comunicazione riferiti ai dati usano le stesse regole: Si annunciano, mentre un elaboratore trasmette gli altri
restano in attesa e a fine trasmissione mandano dei segnali per avvertire che il contatto è terminato. Trattandosi
di protocolli di comunicazione che devono soddisfare molte reti e molti elaboratori, necessitano di regole
complesse ma efficienti. Tornando all'analogia con la vita quotidiana, si potrebbero paragonare alle regole che
stabiliscono la comunicazione in un assemblea, in un dibattito politico o in una classe scolastica.
Principali protocolli:
INSTRADABILI (ROUTABLE) - TCP/IP, IPX/SPX, OSI, AppleTalk, DECnet, XNS.
NetBEUI - Protocollo Microsoft disegnato per piccole LAN; non è instradabile. Non è compatibile con le
reti UNIX.
IPX/SPX - Protocollo per reti Novell: è instradabile. In NT è conosciuto anche come NWLink.
TCP/IP - Il protocollo di Internet ; è routabile. Usato nelle reti UNIXs.
DECnet - Definisce le comunicazioni sulle MAN FDDI; è instradabile.
Appletalk - Protocollo disegnato per le piccole reti Apple; è instradabile.
DLC - Usato per il collegamento a Mainframe IBM e stampanti di rete HP. Non è instradabile.
Peer To Peer
Page 36 of 157
Giugno 2013
Affinchè i pacchetti possano viaggiare dall'host sorgente a quello di destinazione, ogni livello "sorgente" del
modello OSI deve comunicare con il pari livello di "destinazione".
Questa modalità viene chiamata Peer-to-Peer Communication.
Durante questo processo ogni livello scambia delle informazioni, chiamate protocol data units (PDUs) con il suo
pari livello.
In ogni livello di comunicazione il sorgente e la destinazione si scambiano le PDU.
SORGENTE DESTINAZIONE
APPLICATION <- DATI -> APPLICATION
PRESENTATION <- DATI -> PRESENTATION
SESSION <- DATI -> SESSION
TRANSPORT <- SEGMENTI -> TRANSPORT
NETWORK <- PACCHETTI -> NETWORK
DATA LINK <- TRAME -> DATA LINK
PHYSICAL <- BIT -> PHYSICAL
Il livello di trasporto si occupa di segmenti; i segmenti vengono incapsulati in pacchetti; i pacchetti sono
frammentati e incapsulati in trame; le trame si trasformano in flussi di bit.
L'ottimizzazione di questo processo avviene attraverso l'incapsulamento: il livello sottostante usa
l'incapsulamento per inserire la PDU del livello superiore nel suo campo dati, dove poi verranno inserite ulteriori
informazioni (header, trailers) per ottimizzarne le funzioni.
I pacchetti
I dati viaggiano nella rete sotto forma di pacchetti (data packet).
Il termine pacchetto rappresenta una specie di confezionamento (o meglio di "imbustamento") delle informazioni
attraverso cui si definisce il mittente, il destinatario, i dati trasmessi e tutta una serie di informazioni di
controllo.....
Più precisamente un pacchetto è composto da una serie di bit che formano un blocco di dati.
Questo blocco di datti è diviso in diversi sotto blocchi che rappresentano un'intestazione, informazioni di
controllo, mittente, destinatario, dati di controllo degli errori nonché il messaggio stesso (la parte relativa alle
informazioni vere e proprie).
Poiché sono unità di dati di rete simili tra loro, i termini pacchetto e frame sono di fatto sinonimi.
Il confezionamento, il tipo e la dimensione dei pacchetti dipendono dal tipo di rete utilizzata e dai protocolli che
regolano la trasmissione.
I dati (gruppi di bit che compongono il pacchetto) sono un materiale duttile che può essere suddiviso e aggregato
in vari modi.
Ciò significa che, durante il loro tragitto, i dati possono essere scomposti e ricomposti più volte e in modi
differenti.
Per esempio, per attraversare un particolare segmento di rete, potrebbe essere necessario suddividere dei
pacchetti troppo grandi in pacchetti più piccoli, oppure potrebbe essere utile il contrario.
In particolare, si parla di incapsulamento quando i pacchetti vengono inseriti all'interno di altri pacchetti.
L'incapsulamento
Per trasferire delle informazioni attraverso un canale comunicativo è necessario procedere al cosi detto
incapsulamento dei dati (encapsulation).
L'incapsulamento è quell'operazione che arricchisce i dati di ulteriori informazioni (ad esempio quelle relative al
protocollo) ogni volta che scendono di livello verso il media fisico.
In pratica, nel loro cammino verso il basso (dal livello 7 fino al livello 1) i dati vengono "rivestiti" di ulteriori
informazioni come ad esempio i vari header (intestazioni) ogni volta che attraversano i livelli 4, 3 e 2 della pila
OSI.
Page 37 of 157
Giugno 2013
Page 38 of 157
Giugno 2013
Esempio d’incapsulamento
Application DATI
Presentation DATI
Session DATI
L'operazione di incapsulamento può essere paragonata a quella che avviene nelle comuni operazioni che
accompagnano le funzioni proprie dei sistemi postali convenzionali.
In questi sistemi vengono esaminate, a vari livelli, le informazioni relative agli indirizzi presenti nelle buste e nei
pacchi.
Ad esempio l'ufficio postale esaminerà solo il CAP, mentre il postino analizzerà la Via e il portiere del condominio
il nome del condomino.
I livelli, infatti, si astraggono dalle altre informazioni e prendono in esame solo le informazioni offerte dai pari
entità. PDU del pari livello.
Page 39 of 157
Giugno 2013
Il livello 2 OSI viene diviso in due sottolivelli dalla definizione dello IEEE:
L3 Livello network
Sottolivello LLC
(comunica con il livello network)
L2 Data Link
Sottolivello MAC
(comunica con il media)
L1 Livello fisico
Questi due sottolivelli rendono possibile e compatibile la comunicazione fra tecnologie e computer diversi fra
loro.
E' utile sottolineare che gli standard IEEE sono stati definiti dopo la convenzione OSI per cui la divisione del livello
2, che a prima vista sembra cozzare con la filosofia Iso/Osi, è un implementazione necessaria a far comunicare
due tecnologie (o più) fra di loro. Ad esempio Token Ring ed Ethernet.
LLC e MAC sono quindi due sottolivelli che svolgono un importantissima funzione nello strato di Data Link e
dispongono così di PDU autonome per dialogare Peer to Peer con le entità di pari livello.
Dispongono infatti di un proprio processo di incapsulamento.
LLC diventa allora una parte indipendente del Data Link che si astrae dalle tecnologie usate.
Cos’è il CSMA/CD ?
Si tratta di un metodo di trasmissione secondo il quale una stazione sulla rete rimane in ascolto e quando “sente”
che nessun host è in fase di trasmissione, inizia l’invio sulla rete dei dati, rimanendo al contempo in ascolto. Se
contemporaneamente un’ altra stazione sulla rete trasmette, si ha una cosiddetta collisione dei segnali, causando
l’invio di un segnale “JAM”, che obbliga gli host ad attendere un tempo casuale ( dato da un algoritmo di backoff
), prima della ritrasmissione. Due stazioni si dicono appartenenti allo stesso dominio di collisione se,
trasmettendo simultaneamente dati sulla rete a cui appartengono, creano una collisione. In pratica, in questa
rete “tradizionale”, verranno inviati i dati a tutte le stazioni che creano così un unico dominio di broadcast, cioè
Page 40 of 157
Giugno 2013
il dominio dove tutti gli host ricevono lo stesso frame. In reti di grandi dimensioni ciò può determinare un
conseguente aumento delle collisioni, scarsa sicurezza, lentezza dei collegamenti.
Una VLAN, invece, è, pure avendo una unica infrastruttura fisica, un raggruppamento logico di apparati e di host,
o, per meglio dire, più sottoreti logiche separate che vengono raggruppate in base alle funzioni, dipartimenti o
applicazioni, senza tenere conto della loro localizzazione fisica.
Questo viene permesso mediante l’uso degli switch, apparati che adottano degli algoritmi di routing dei
pacchetti.
In altre parole, gli switch creano dei domini di collisione separati con la tecnica detta della microsegmentazione :
ovvero, ogni porta dello Switch crea un unico dominio di collisione tra il trasmittente e il ricevente, senza dividere
i domini di broadcast.
Da notare che le VLAN non sono state ancora standardizzate in una RFC : è possibile però, con l’uso di software
proprietario, implementare le VLAN in architetture complesse.
La costruzione di una VLAN passa attraverso l’assegnazione delle porte dello SWITCH.
Nell’esempio seguente le porte 1,2,3, di uno switch fanno parte della VLAN 1, le porte 5, 6, 7 appartengono
alla VLAN 2 e le porte 4, 8, 9, 10 appartengono alla VLAN 3.
In questo modo, si hanno tre domini di broadcast differenti, ovvero in questo caso gli host e/o gli apparati che si
trovano in differenti VLAN non possono inviare direttamente pacchetti di dati tra di loro poichè si trovano su
domini di broadcast differenti.
Page 41 of 157
Giugno 2013
Quindi possiamo definire una VLAN come un unico dominio di broadcast insieme agli host appartenenti alla
stessa, a prescindere dalla loro localizzazione o dalla topologia della rete fisica che le connette.
Page 42 of 157
Giugno 2013
Quindi una VLAN permette di segmentare logicamente una LAN in differenti domini di broadcast, questi ultimi
separati all’interno di un unico dominio di collisione.
Una trasmissione in broadcast si ha quando dei dati vengono inviati simultaneamente a tutti gli host dello stesso
segmento di rete.
Nella figura 1 è rappresentato un unico dominio di collisione per piano.
Mentre nella figura 3, abbiamo un dominio di collisione meno esteso perché gli Switch segmentano detti domini :
infatti il pacchetto viaggia esclusivamente all’interno di un dominio di broadcast logico tra il trasmittente e il
ricevente.
La topologia logica della VLAN libera dai limiti della topologia fisica creando, così, un dominio di
broadcast logico, cioè non legato strettamente alla topologia fisica e ai suoi limiti.
Page 43 of 157
Giugno 2013
Questo confina il traffico di broadcast all’interno della singola VLAN e quindi non vengono inviati pacchetti di dati
a chi non ne fa parte.
Page 44 of 157
Giugno 2013
verso un apparato che non ha conoscenza della VLAN (cioè VLAN-unaware), ovvero dispositivi che non
prevedono il supporto di VLAN, il bridge invia il dato senza l’identificatore di VLAN.
Tipi di VLAN
Le VLAN possono essere classificate in:
STATICHE
Una volta che la VLAN è configurata rimane tale ovvero, l’appartenenza di un host alla VLAN è determinata dal
collegamento fisico alla porta dello switch da parte dell’ host come nella immagine seguente:
Page 45 of 157
Giugno 2013
Nell’esempio riportato sotto, vediamo che nella prima fase (Figura 5) due host si trovano ( nell’immagine a
sinistra ) nella VLAN 3 e 4 dello Switch 2 al secondo piano.
Nella seconda fase (Figura 6) vediamo che gli stessi host sono stati spostati ( nella immagine a destra ) al terzo
piano, sempre nelle VLAN 3 e 4 ovvero, hanno cambiato piano.
Questo spostamento non ha richiesto modifiche alla configurazione poiché sono rimasti sempre nella propria
VLAN.
Page 46 of 157
Giugno 2013
Page 47 of 157
Giugno 2013
Le porte esterne a tale VLAN non ricevono il messaggio di broadcast. La stessa porta può appartenere a diverse
VLAN, sia basate su porta che su protocollo.
Gli switch di livello 3/4 , per semplificare l’amministrazione delle VLAN e per consentire ad apparati di costruttori
differenti di cooperare, supportano il protocollo standard 802.1Q.
Protocol VLAN
IP 1
IPX 2
IP Subnet VLAN
23.24.2. 1
29.21.35. 2
192.168.48. 2
192.168.20 1
Tipi di connessioni
Gli apparati su una VLAN possono essere connessi in tre modi basati su degli apparati che devono essere VLAN-
aware o VLAN-unaware.
1 ) Trunk Link
Tutte le apparecchiature connesse a un trunk-link, incluse workstation, devono essere VLAN-aware. Tutti i frames
su un Trunk link devono avere uno speciale header. Questo speciale frames è chiamato Tagged frames.
2 ) Access Link
Un access link connette un dispositivo VLAN-unaware verso una porta VLAN-aware bridge. Tutti i frames su una
access links devono essere implicitamente taggati (cioè non taggati). L’apparato VLAN-unaware deve essere un
segmento di LAN con una workstation VLAN-unaware o può essere un segmento di LAN contenete
apparecchiature VLAN-unaware.
3 ) Hybrid Link
Questo è una combinazione dei due precedenti links. Si tratta di un link dove, apparecchiature entrambi VLAN-
aware e WLAN-unaware, sono collegate. Un link ibrido può avere entrambi tagged e untagged frames, ma tutti i
frames per una specifica VLAN devono essere taggati o non taggati.
Gli switch sono i componenti principali per le comunicazioni nelle VLAN.
Ogni switch ha l’intelligenza per poter prendere delle decisioni di instradamento basate su una metrica di VLAN
definita dall’amministratore di rete.
Lo switch può comunicare anche queste informazioni agli altri switch e router all'interno della rete.
Page 48 of 157
Giugno 2013
Entrambe queste tecniche guardano al frame quando o è ricevuto o spedito dallo switch.
Frame filtering:
Questa tecnica venne utilizzata nei primi tempi di implementazione delle VLAN.
Ogni switch doveva sviluppare una tabella di filtraggio (filtering database), la quale è usata per
determinare dove il frame deve essere spedito cioè, le informazioni di appartenenza ad una VLAN sono
immagazzinati in un filtering database, che gli switch dovevano scambiarsi tra di loro. I parametri di filtro
venivano aggiunti, modificati e cancellati dall’amministratore (static entries) e le (dynamic entries) informazioni
dinamiche che sono state apprese autonomamente dallo switch, parametri questi che possono agire sia
sull’indirizzo fisico del frame sia sul contenuto dello stesso.
Questa tecnica offre un livello alto di controllo amministrativo in quanto, si possono esaminare molti attributi di
ogni frame. In pratica con il frame filtering, lo switch si comporta esattamente come un Router creando e
gestendo delle tabelle di switching, le quali a loro volta, vengono scambiate tra gli Switch. Lo switch compara
i tag (le etichette) dei frame, li filtra con le tabelle di entrata e prende le decisioni di instradamento basandosi
sulle entrate. Questo modello di tagging (etichettatura) ha lo svantaggio di rallentare la trasmissione dei
Page 49 of 157
Giugno 2013
pacchetti dato che richiede molto lavoro alla CPU. Ogni frame, infatti, doveva essere comparato ad una filtering
database richiedendo quindi un elevato numero di risorse : si dimostrò, per questo, poco scalabile ed è per
questo che la IEEE preferì e raccomandò come metodo per realizzare VLAN il Frame Tagging.
Page 50 of 157
Giugno 2013
l’istituto raccomanda la tecnica del Frame Tagging (etichettatura del frame) come la tecnica per implementare le
VLAN con le specifiche definite nel documento dell’IEEE 802.1q.
Un cavo Ethernet standard (backbone cable) viene usato per fare passare traffico di più VLANs. Per poter inviare
traffico sul collegamento di VLAN, lo Switch o il Router, deve essere capace di supportare il trunking cioè, devono
essere VLAN-aware. Nella Figura in alto sono raffigurati due Switch che hanno un collegamento sulla porta di
Trunk.
Terminologia di VLAN:
Trunk - un solo collegamento fisico che trasporta differente traffico di VLAN cioè di più VLAN.
Tagging – E’ una etichetta che identifica a quale VLAN appartiene un frame mentre è trasportato attraverso un
Trunk link.
Diversi Protocolli di Trunking includono:
IEEE 802.1q
ISL (Inter-Switch Link) - Cisco proprietary
802.10 - FDDI
ATM LANE
Page 51 of 157
Giugno 2013
IEEE 802.1Q
Cisco proprietary Inter-Switch Link (ISL)
Questi due standard definiscono le informazioni portate nel Frame Tag, includendo informazioni di identificatore
di VLAN.
L’ ISL è un protocollo proprietario Cisco usato per Fast Ethernet e Gigabit Ethernet. IEEE 802.1Q può essere usato
ad ogni livello due della pila OSI incluso Fast Ethernet , Gigabit Ethernet, Token Ring, e FDDI.
Trunking
Il Trunking permette di inviare il traffico di diverse VLANs su un solo collegamento fisico.
Senza una linea di Trunk, dei collegamenti separati sarebbero richiesti per ogni VLAN.
Molti Switch avranno almeno uno o due porte che sono anche per il Trunking.
In questo caso, la porta può inviare/ricevere traffico per diverse VLANs.
Il Trunking si usa dove c'è un bisogno di inviare traffico per VLANs multiple connettendo due Switch, o uno Switch
ed un Router.
Nella figura, si può notare, che ci sono due collegamenti di trunking per una rete composta da due VLAN
192.168.1, 192.168.2.
Page 52 of 157
Giugno 2013
Page 53 of 157
Giugno 2013
Il router è l'apparato fondamentale per l'indirizzamento di tipo logico. Il router è in grado di prendere decisioni
intelligenti sul percorso migliore a cui affidare la distribuzione dei pacchetti di dati.
I routers usano il protocollo IP (con gli indirizzi logici) in alternativa agli indirizzi MAC tipici del livello Data Link.
Poiché gli indirizzi IP sono gestiti a livello software, essi si riferiscono alla rete su cui un dispositivo è situato. Ecco
perché si dice che l'indirizzamento IP è un indirizzamente di rete.
La differenza sostanziale sta comunque nel fatto che l'indirizzo fisico (Mac) viene attribuito dal costruttore e
inserito all'interno della scheda di rete, mentre l'indirizzzo logico (IP) viene attribuito dall'amministratore di rete e
può essere cambiato a seconda delle esigenze.
Laddove switch e bridge vengono utilizzati per collegare i segmenti d'una rete LAN (fisicamente connessi). I
routers sono utilizzati per collegare fra di loro le reti che sono fisicamente separate, nonchè per accedere alla
rete mondiale Internet.
I router, quindi, connettono due o più reti fisicamente separate. La separazione è comunque basata su indirizzi di
rete che devono ASSOLUTAMENTE essere diversi e univoci. Questo processo avviene attraverso l'assegnazione
dell'ID di rete (all'interno del numero di IP) che viene assegnato a tutti gli apparati connessi alla rete
Un approfondimento sulla numerazione IP sarà visto in seguito
Per spiegare meglio il concetto diamo alla rete l'indirizzo A e agli host l'indirizzo di rete (A) più l'indirizzo dell'host
(1, 2, 3, 4 ecc....)
Rete A
Il router che gestirà questa rete dovrà avere un interfaccia sulla rete A con numerazione corrispondente.
Per esempio A1.
Analogamente, due reti fisicamente separate trovano la possibilità di interconnettersi attraverso un router se
rispettano i presupposti di cui sopra.
Page 54 of 157
Giugno 2013
In questo caso due indirizzi di rete diversi, indirizzi host diversi e le due interfaccie del router direttamente
collegate alle due reti e configurate con indirizzo logico corrispondente alla rete servita.
Rete A Rete B
Scarta l'header del data link presente nella frame. (L'header del data link contiene il MAC addresses
dell'host sorgente e quello dell'host di destinnazione). In questo modo siamo in grado di assumere che
le informazioni relative agli indirizzi fisici di livello 2 non interessano ai router. Essi operano solo a livello
3 e quindi a livello di indirizzo logico di rete.
Esamina l'indirizzo di rete per determinare la rete di destinazione.
Esamina la tabella di routing per determinare quale delle sue interfaccie (A,B,C e D) deve utilizzare per
smistare i dati e raggiungere la rete di destinazione.
Incapsula i dati in una frame di livello 2 e li spedisce i verso l'interfaccia di uscita.
Il concetto di interfaccia riferito al router può essere espresso anche come "porta".
Ovviamente ogni interfaccia del router deve avere un numero di Ip (o comunque un indirizzo logico) univoco. Ma
e poi mai due interfaccie possono avere lo stesso numero di IP.
Page 55 of 157
Giugno 2013
cosiddetto host), che prende la parte inferiore del numero e che identifica, all'interno della rete, il vostro
computer.
La situazione dunque è ancora analoga a quella di un numero di telefono che è diviso in prefisso e numero locale.
La notazione degli indirizzi IP però è diversa da quella dei numeri telefonici e, dato che si ha a che fare con
indirizzi binari a dimensione fissa, non esiste l'equivalente della / per dividere il prefisso dal resto del numero;
pertanto non è automatico sapere come effettuare questa divisione.
Per questo motivo quando si configura una macchina ad ogni indirizzo IP si associa sempre anche quella che viene
chiamata una “netmask”: una maschera che permette di separare la parte di rete da quella di host.
Questa viene espressa con la solita notazione dotted decimal, mettendo un 1 ad ogni bit dell'indirizzo
corrispondente alla rete e uno zero a quello corrispondente all'host: nel caso dell'indirizzo in esempio si avrebbe
allora 255.255.255.0.
L'assegnazione degli indirizzi IP è gestita a livello internazionale dalla IANA, che ha delegato la gestione di parte
delle assegnazioni ad altre organizzazioni regionali (come INTERNIC, RIPE NCC e APNIC).
Per venire incontro alle diverse esigenze gli indirizzi di rete sono stati originariamente organizzati in classi, per
consentire dispiegamenti di reti di dimensioni diverse.
Struttura indirizzo IP
Esempio
Ognuno dei 4 bytes, viene interpretato come un numero decimale senza segno
Ogni valore varia da 0 a 255 (massimo numero rappresentabile con 8 bits)
Classi di indirizzi IP
Le classi di indirizzi IP sono un modo per caratterizzare lo spazio di indirizzamento IPv4.
Il Classfull addressing (indirizzamento basato sulla classe) prevedeva che dai primi bit di un indirizzo si potesse
determinare la maschera di rete.
Questa scelta, con il crescere dell'utenza di internet, si è rivelata troppo rigida, ed è stata abbandonata a favore
dell'indirizzamento senza classe o Classless Inter-Domain Routing (CIDR).
Page 56 of 157
Giugno 2013
Numero di reti = 27 - 2
(0.0.0.0 riservato, 127.xxx.xxx.xxx indirizzi di loopback) = indirizzo che individua il computer
locale su cui è in esecuzione l’applicazione a cui corrisponde il nome localhost)
Numero di hosts = 2 24 – 2
(circa 16 milioni di hosts, configurazioni di tutti 0 e tutti 1 sono riservate, tutti 1 = broadcast
sulla rete)
Indirizzi utilizzabili:
da 1.xxx.xxx.xxx a 126.xxx.xxx.xxx
Classe B
Numero di hosts = 2 16 – 2
(circa 65.000 hosts per rete)
Indirizzi utilizzabili:
da 120.0.xxx.xxx a 191.255.xxx.xxx
Classe C
Numero di hosts = 2 8 – 2
(245 hosts per rete)
Indirizzi utilizzabili:
da 192.0.0.xxx a 233.255.255.xxx
Page 57 of 157
Giugno 2013
Altre Classi
classe D:
o riservata agli indirizzi multicast: [224-239].x.x.x. Questi indirizzi cominciano con la
sequenza 1110. Non hanno maschera di rete, essendo tutti e 32 i bit dell'indirizzo utilizzati per
indicare un gruppo, non un singolo host.
classe E:
o riservata per usi futuri: [240-255].x.x.x. Questi indirizzi cominciano con la sequenza 11110 e
non è definita una maschera di rete.
Esempio:
nella classe B gli indirizzi vanno da 10000000 a 10111111 che in decimale corrispondono da 128 a 191.
Secondo le classi è possibile gestire un numero limitato di reti e un numero limitato di host in base al seguente
schema:
Classe Leading bits Totale Numero di Reti Numero Max di Indirizzi Host
rete: 2 = 16.384
14
Per il calcolo della rete si eleva a 14 in quanto in classe b abbiamo i primi due ottetti che si riferiscono alla rete,
quindi 16 bit, ma considerando che i primi 2 bit sono fissi diventa 14.
La crescita di Internet ha reso questo sistema ridottissimo rispetto alle esigenze per cui si è introdotto la tecnica
del mascheramento.
Indirizzi IP privati
Con indirizzi IP privati si intendono alcune classi di indirizzi IPv4, definite nella RFC 1918, riservate alle reti
locali non connesse ad internet allo scopo di ridurre le richieste di indirizzi pubblici.
Chiunque può utilizzare questi indirizzi per la propria rete locale, perché i pacchetti relativi a tali reti non vengono
instradati dai router internet, e quindi essi non entreranno in conflitto con analoghi indirizzi posti su altre reti
locali.
Nel caso occorra connettere ad Internet una rete locale che utilizza queste classi di indirizzi, si deve ricorrere
al network address translation.
Page 58 of 157
Giugno 2013
Indirizzi IP pubblici
In informatica, un indirizzo IP pubblico è un indirizzo IP nello spazio di indirizzamento della rete internet, che è
allocato univocamente e potenzialmente accessibile da qualsiasi altro indirizzo IP pubblico.
La distinzione tra indirizzi IP pubblici e privati sono un concetto legato a IPv4, in quanto IPv6 non prevede un
concetto di indirizzo IP privato analogo.
Gli indirizzi IP pubblici sono rilasciati e regolamentati dall'ICANN tramite una serie di organizzazioni delegate.
Tuttavia è da tener presente che a livello mondiale e nazionale i primi provider di connessione Internet si sono
accaparrati un numero sproporzionato di indirizzi IP. I provider che si sono affacciati dopo sul mercato hanno
ovviato a questo stato di cose considerando i propri utenti di una medesima città come una rete privata che
accede ad Internet mediante un singolo IP pubblico. Questo comporta alcune difficoltà nell'utilizzo di servizi su
Internet che presuppongono che ad un IP corrisponda un singola connessione (per esempio IRC e peer-to-peer).
L'aggettivo pubblico può essere fuorviante, perché non è affatto detto che si possa sempre accedere al sistema a
cui è assegnato un tale indirizzo: anche se effettivamente l'indirizzo è assegnato, potrebbe ad esempio esserci
un firewall che impedisce la connessione diretta.
Gli indirizzi IP pubblici sono teoricamente intorno ai 4 miliardi: ma la modalità della loro allocazione e le necessità
pratiche dovute all'instradamento dei dati stanno rapidamente terminando la loro disponibilità, e sono una delle
ragioni per lo sviluppo e uso di IPv6, dove il concetto di "indirizzo pubblico" perderà di significato pratico.
Per ragioni di scalabilità della tabella di routing globale di internet, gli indirizzi IP pubblici vengono assegnati a
grandi blocchi ai provider, i quali poi provvedono ad assegnare sottoblocchi o anche singoli indirizzi ai propri
clienti.
Netmasking
Affinché tutto questo funzioni senza ambiguità è necessario che l'assegnazione degli indirizzi pubblici di Internet
sia univoca e non sia quindi possibile darsi arbitrariamente un indirizzo IP
Infatti, come nella vita reale, anche in quella virtuale non possiamo inventarci un indirizzo ma esso ci viene
assegnato.
Una volta in possesso dell'indirizzo IP da assegnare al nostro calcolatore possiamo aprire la schermata relativa
alla configurazione della rete.
Ma qualunque sia il nostro sistema operativo ci troveremo sempre di fronte ad almeno tre parametri:
il già citato indirizzo IP, la netmask e il gateway di default e finché la configurazione di questi parametri non è
corretta e coerente non saremo in gradi di accedere alle risorse di rete.
Ma se nella vita reale, l'indirizzo postale basta per poter spedire e ricevere una lettera, perché su Internet
l'indirizzo IP non è sufficiente?
Page 59 of 157
Giugno 2013
Consideriamo quindi che il nostro computer S (sorgente) con indirizzo IP, per esempio, 195.32.69.2 debba inviare
una informazione a un computer D (destinatario) che per ora identifichiamo con un indirizzo IP generico
AAA.BBB.CCC.DDD.
Come detto, l'informazione diventa quindi il "payload" di un pacchetto TCP/IP e viene quindi inserito in una
particolare busta TCP/IP.
Sulla busta viene messo l'indirizzo del mittente, 195.32.69.2 e quello del destinatario.
Immaginiamo, a questo punto, il calcolatore con la busta in mano che si reca nella cassetta postale più vicina.
Ciò che vedremmo, a questo punto, e che esso si trova a dover fare una scelta.
Nel caso reale la cassetta ha due fessure, una per la posta destinata alla propria città e l'altra per tutte le altre
destinazioni.
La stessa cosa accade nella rete.
Il computer deve decidere se la lettera è destinata ad un calcolatore della propria rete locale o se il destinatario è
"più lontano".
Inoltre, mentre nel caso reale si può anche commettere un errore e sperare che la lettera venga ugualmente
recapitata, nel caso informatico la scelta deve essere esatta.
Se la risposta a questa domanda è positiva allora la lettera va inviata nella fessura per la stessa città altrimenti va
imbucata nell'altra.
Il risultato positivo o negativo di questa domanda decide il modo con cui il pacchetto va inviato, se ad un
computer locale o al gateway di default.
Page 60 of 157
Giugno 2013
0 1 2 3 4 5 6 7 8 9
che combinati insieme con una logica detta posizionale ci permettono di scrivere un qualsiasi numero. Per cosa
sta l'aggettivo "posizionale"? Cerchiamo di capirlo con un esempio. Quando vogliamo scrivere l'anno di nascita
del sottoscritto mettiamo uno di fianco all'altro i seguenti simboli
1 9 6 9
La nostra percezione di questa sequenza di cifre è una percezione posizionale nel senso che questo modo di
scrivere da un peso differente alle singole cifre coinvolte cosi che il numero 9 in seconda posizione da sinistra non
ha lo stesso valore dell'altro 9.
Ogni posizione a sinistra di un altra "pesa" dieci volte di più di quella a destra e quindi presi i numeri sopra da
destra si avrà che quel numero indica nove volte uno più sei volte dieci più nove volte cento più una volta mille. E'
questo e solo questo che indichiamo quando scriviamo "1969".
Posizione 3 2 1 0
Cifre 1 9 6 9
Dieci simboli, incremento posizionale di potenze di dieci, tutto questo ripetersi del valore dieci da il nome al
nostro sistema numerico chiamato "decimale".
Usualmente si dice che il fatto di avere un sistema decimale deriva dal fatto che abbiamo dieci dita e quindi
l'utilizzo di dieci simboli è solo una convenzione ed è in realtà possibile utilizzare un numero arbitrario di simboli
per scrivere i numeri. In realtà, il cosi detto sistema binario formato appunto dai soli simboli
0 1
ricopre un'importanza fondamentale nel mondo dei calcolatori in quanto il calcolatore, lavorando con correnti o
campi magnetici è solo in grado di rilevare la presenza o l'assenza di uno di questi campi in un elemento di
memoria e la rilevazione o meno di tali campi viene associata alla lettura nella cella di memoria di un uno o di
uno zero.
Ma visto che il nostro cervello è assuefatto al sistema decimale, vediamo innanzitutto come si costruisce una
corrispondenza tra i primi numeri del sistema decimale e di quello binario.
Lo zero e l'uno sono ovviamente uguali in tutte e due i sistemi.
Con il due abbiamo il primo intoppo. Mentre nel sistema decimale esiste un simbolo unico che identifica
univocamente tale valore, nel sistema binario abbiamo già esaurito tutti i numeri esprimibili con una sola cifra e
quindi dobbiamo passare a due cifre.
Come nel caso decimale in cui dopo il nove viene il dieci, anche nel caso binario, dopo l'1, si passa a dover usare
due cifre e quindi il corrispettivo binario del due decimale e' il 10. Il tre decimale sarà l'11 binario e con il quattro
Page 61 of 157
Giugno 2013
abbiamo finito anche tutti i modi di esprimere in binario un numero con due cifre e quindi passiamo a tre e
dunque il quattro decimale e' il 100 binario.
Riassumendo e estendendo queste associazioni, indicando con il pedice il tipo di numerazione relativa, si avrà che
Ovviamente anche il sistema binario è posizionale e, come nella numerazione decimale una posizione a sinistra è
dieci volte maggiore di quella a destra, analogamente nel sistema binario, una posizione a sinistra è due volte
maggiore di quella a destra per cui, per esempio, 1001112 significa, partendo da destra, una volta uno più una
volta due più una volta quattro più una volta trentadue e quindi 3910.
Posizione 5 4 3 2 1 0
Fattore
25 24 23 22 21 20 in potenze
moltiplicazione.
Fattore
32 16 8 4 2 1 in valore
moltiplicazione
Cifre 1 0 0 1 1 1
Bene, ora che conosciamo il punto di vista del calcolatore riguardo ai numeri, siamo in grado di guardare
l'indirizzo IP da un nuovo punto di vista mettendoci nei panni di un computer.
Quando noi esseri umani diciamo che un calcolatore ha l'indirizzo 195.32.69.2 quello che il computer vede sono
quattro sequenze di otto simboli binari separati da un punto. Ogni simbolo binario 0,1 viene chiamato in gergo
"bit" e otto bit vanno a formare un nuovo elemento chiamato "byte". Quindi l'indirizzo IP può essere visto come
una sequenza di 4 byte o, il che è la stessa cosa, di 32 bit.
Perché abbiamo detto che ogni elemento della sequenza è formato proprio da 8 bit? Perché abbiamo già detto
che i numeri separati dal punto possono andare da 0 a 255 e 255 in binario è
2 2 2 2 2 2 2 2
7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1
Che questo è proprio il valore che rappresenta 255 in binario lo si vede senza dover sommare tutti i termini sopra
con un semplice trucchetto.
Preso il numero
2 2 2 2 2 2 2 2 2
8 7 6 5 4 3 2 1 0
256 128 64 32 16 8 4 2 1
1 0 0 0 0 0 0 0 0
che è il successivo del numero sopra si ha che questo è 2 = 256 in decimale e quindi il numero sopra è 2 -1 ossia
8 8
proprio 255.
A questo punto, per puro diletto mostriamo il nostro indirizzo IP usato nell'esempio dal punto di vista del sistema
binario
Page 62 of 157
Giugno 2013
195 32 69 2
Già che ci siamo, scriviamo anche la netmask 255.255.255.0 in formato binario. Questa è molto semplice visto
che abbiamo appena visto qual'è la rappresentazione binaria del numero 255 per cui
Ma perché ci siamo infilati in tutte queste sfilze di uno e zeri chilometriche? Perché grazie a queste siamo ora in
grado di introdurre l'operatore che ci permetterà di calcolare la rete conoscendo l'indirizzo IP e la netmask.
Facciamo quindi la conoscenza con l'operatore "AND". Cosa possiamo dire di questo operatore?
Beh, innanzitutto che esso è un operatore binario ossia è una operazione matematica che va applicata a numeri
binari e che esegue una qualche trasformazione sulle cifre binarie del numero trasformandole in qualcos'altro.
Il tipo di trasformazione viene definita a parole in questo modo: l'AND tra due cifre binarie da come risultato 1 se
e solo se tutte e due le cifre sono 1 altrimenti il risultato è 0.
Visto che le possibili combinazioni di due cifre binarie sono solo quattro è possibile scrivere il funzionamento
dell'operatore AND elencando tutti i possibili casi e quindi scrivendo che:
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
Un modo equivalente per esprimere il funzionamento dell'operatore AND è dire che applicandolo a un qualsiasi
cifra binario e allo 0 da come risultato 0 mentre applicandolo con il numero 1 da la stessa cifra binaria.
Calcoliamo la netmask.
Bene, ora abbiamo tutti gli strumenti per definire e calcolare la rete a cui appartiene un dato indirizzo IP. La rete
di un indirizzo IP è il risultato dell'operatore AND applicato all'indirizzo stesso e alla sua netmask quindi, nel caso
specifico, esprimendo per brevità, per ora i due elementi ancora in notazione binaria sarà il risultato
dell'operazione
Si vede subito che, in questo caso, il calcolo è molto semplice. Iniziamo infatti ad applicare l'operatore AND sul
primo byte dell'indirizzo IP e della netmask per ottenere il primo byte dell'indirizzo di rete
Ma, per quanto detto sopra, l'operatore AND tra un qualsiasi numero binario e 1 è il numero binario stesso e
quindi
e si vede quindi subito che il risultato dell'AND sui primi tre byte dell'indirizzo IP sono gli stessi 3 byte iniziali.
Andando a calcolare il quarto byte della rete il cui valore è il risultato dell'operazione
che, per quanto detto prima ossia che l'operazione di AND tra un qualsiasi numero e zero da sempre zero ci porta
a concludere che
Page 63 of 157
Giugno 2013
in quanto, non essendoci mai capitato il calcolo 68 AND 254 non sappiamo a priori quanto faccia. Eseguendo si ha
che
0 1 0 0 0 1 0 0 AND
11111110 =
01000100
e dunque il risultato è di nuovo 6810 e dunque la rete a cui appartiene l'indirizzo 195.32.68.2 con netmask
255.255.254.0 sembra verificare ancora la regola empirica vista sopra ossia da come risultato la rete 195.32.68.0.
Vediamo ora la rete dell'altro indirizzo. Di nuovo, l'unico calcolo che non abbiamo mai eseguito e' 69 AND
254 ed essendo
0 1 0 0 0 1 0 1 AND
11111110 =
01000100
Per cui entrambi gli indirizzi IP appartengono alla stessa rete 195.32.68.0 e quindi sono indirizzi che appartengono
a due calcolatori della stessa rete locale.
Quindi, se la netmask è 255.255.255.0 allora 195.32.68.2 e 195.32.69.2 appartengono a due reti differenti e i
calcolatori si manderanno i pacchetti tramite i loro rispettivi gateway ma se la netmask è 255.255.254.0 allora il
Page 64 of 157
Giugno 2013
calcolatore manderà la busta direttamente sulla rete locale aspettandosi che l'altro sia direttamente connesso ad
essa.
In definitiva possiamo dunque affermare che la netmask è un elemento discriminante per decidere cosa è locale
e cosa è remoto e la domanda a quale rete appartiene un indirizzo IP è mal posta se non si specifica anche la
netmask ad esso assegnata.
Netmask notevoli.
Elenchiamo ora alcuni casi notevoli.
La netmask 255.255.255.0 detta classe C, quella vista sopra, che ha indirizzi disponibili per 2 -2 calcolatori
8
(sottraggo due perché uno è l'indirizzo di rete inusabile e l'altro è un altro indirizzo particolare che tutte le reti
debbono avere chiamato indirizzo di broadcast) ossia 254 indirizzi usabili per assegnare ai calcolatori della rete
La netmask 255.255.255.192 che divide una classe C in quattro sottoreti di 2 -2 =62 calcolatori
6
La netmask 255.255.255.128 che divide una rete di 256 indirizzi in due sottoreti di 2 -2 =126 calcolatori
7
La netmask 255.255.255.252 è la più piccola rete usabile con 2 -2 = 2 indirizzi disponibili, usata spesso nelle
2
punto-punto dove un indirizzo è l'IP di un lato della connessione e l'altro è l'indirizzo dell'altro punto (il terzo è
l'indirizzo di rete e il quarto è il sopra citato indirizzo di broadcast)
La netmask 255.255.255.255 rappresenta il singolo host in quanto, essendo tutti i bit a 1 da come risultato il solo
IP stesso. Relativamente al discorso IP disponibili questo è un caso degenere con cui non si identifica una rete ma
l'indirizzo del computer stesso.
La netmask 255.255.0.0 detta classe B che ha indirizzi locali disponibili per 2 -2 calcolatori formata quindi da 256
16
classi C.
La netmask 255.0.0.0 detta anche classe A ha indirizzi locali disponibili per 2 -2 calcolatori formata da 256 classi
24
B.
La netmask 0.0.0.0 che è un altro caso "degenere" in quanto essa rappresenta l'intero spazio degli indirizzi IP. In
moltissimi casi in cui infatti è necessario intendere la frase "qualsiasi indirizzo" si usa infatti la notazione
0.0.0.0/0.0.0.0.
Più in generale la netmask si scrive iniziando a mettere simboli "0" partendo da destra e mettendone tanti quanti
ne servono a formare lo spazio di indirizzi IP che si intende utilizzare nella rete locale.
Quindi la netmask non può assumere tutte le forme possibili utilizzando quattro sequenze di numeri da zero a
255 ma solo le seguenti forme
255.255.255.255
255.255.255.252
255.255.255.248
255.255.255.240
255.255.255.224
255.255.255.192
Page 65 of 157
Giugno 2013
255.255.255.128
255.255.255.0
255.255.252.0
255.255.248.0
255.255.240.0
255.255.224.0
255.255.192.0
255.255.128.0
255.255.0.0
255.252.0.0
255.248.0.0
255.240.0.0
255.224.0.0
255.192.0.0
255.128.0.0
255.0.0.0
Le netmask di default per le varie classi sono elencate nella tabella seguente, con alcuni indirizzi IP host
esemplificativi.
Per dire le cose semplicemente, un host è una qualsiasi macchina caratterizzata da un indirizzo IP, compresi
server, workstation, router, ecc.
Subnetting
Esaminiamo ora questo concetto con un indirizzo IP classe B, come 142.168.25.100.
Dalla tabella superiore, sappiamo che la netmask di default per la rete di classe B è 255.255.0.0.
Di conseguenza, facendo l'AND della maschera di default con l'indirizzo IP si ottiene l'indirizzo della rete su cui si
trova quel particolare host, per esempio 142.168.0.0.
Un host con indirizzo IP di 142.168.25.100 si trova quindi su una rete con indirizzo IP di 142.168.0.0, se si usa la
netmask di default della classe B.
Page 66 of 157
Giugno 2013
Se si ha a disposizione una completa serie di indirizzi di classe B con l'indirizzo di rete 142.168.0.0, che cosa si può
fare con questi indirizzi?
Si ricordi che le reti di classe B hanno la forma N.N.H.H, in altre parole gli ultimi due byte possono essere usati per
assegnare gli indirizzi IP agli host.
Ciò porta ad ottenere una rete con “65.536 -2” indirizzi per gli host.
Il -2 deriva dal fatto che 142.168.0.0 è l'indirizzo della rete e quindi non può essere assegnato ad un host; l'ultimo
indirizzo sulla rete, 142.168.255.255, invece si usa per i broadcast, e quindi nemmeno questo può essere
assegnato ad un host.
Questa sarebbe una rete molto estesa (65.534 indirizzi per gli host), di gran lunga troppo grande per risultare
pratica.
Un approccio molto semplice consiste nel "prendere a prestito" il valore di un byte di indirizzi per gli host e
assegnarli quali indirizzi di rete.
Ciò porterebbe a 256 reti con 254 host per ciascuna.
Anche in questo caso si tratta di reti molto grandi.
Questo processo di prendere a prestito gli indirizzi per gli host e usarli per le reti è chiamato subnetting.
Quest'operazione è compiuta usando una SNM (Sub NetMask).
In questo caso, si userebbe la sub-netmask 255.255.255.0, che è la netmask di default per la classe C.
Di conseguenza abbiamo preso una rete di classe B e l'abbiamo trasformata in 254 reti di classe C.
Se si fa l'AND tra 142.168.25.100 e 255.255.255.0, si ottiene l'indirizzo di rete 142.168.25.0 con il primo indirizzo
host disponibile di 142.168.25.1 e l'ultimo di 142.168.25.254, dal momento che 142.168.25.255 è riservato per i
broadcast.
Un altro modo per compiere quest'operazione consiste nel cominciare con l'indirizzo di rete (142.168.25.0 in
questo caso), trasformare in 1 tutti i bit per gli host e ottenere l'indirizzo di broadcast.
Qui, l'ultimo byte si usa per gli indirizzi degli host; trasformare in 1 questi ultimi porta quindi ad ottenere
142.168.25.255.
Questo tipo di broadcast è chiamato "directed broadcast" allo scopo di indicare che salta i router, mentre un
broadcast locale (che non salta i router) ha la forma di 255.255.255.255 indipendentemente dalla classe di rete
coinvolta.
Se a questo punto non avete ancora perso i sensi, vi potreste chiedere se è possibile compiere il subnetting
soltanto sui confini dei byte, oppure se si può compiere anche su una rete di classe C.
Le risposte sono rispettivamente "no" e "sì"; in altre parole, si può lavorare nel mezzo di un byte.
In ogni caso, abbiamo che degli 8 bit nell'ultimo byte, riservati inizialmente per gli host, ne prendiamo a prestito
tre bit per le sub network. Questo lascia a disposizione i 5 bit richiesti per gli host.
Ottimo, ma quante subnet abbiamo?
Esattamente si riesce ad avere 8 subnet ( 2 )
3
Abbiamo quindi otto subnetwork con 30 indirizzi per gli host ciascuna.
Page 67 of 157
Giugno 2013
L’assegnazione dell’indirizzo IP
Quando dobbiamo scegliere il metodo di assegnazione dei numeri di Ip sugli host di una rete, possiamo optare
per due metodologie:
Page 68 of 157
Giugno 2013
indirizzamento statico
indirizzamento dinamico
Resta inteso, comunque, che entrambe le metodologie non ammettono duplicazione di indirizzi IP sulla stessa
rete.
Indirizzamento statico
La scelta dell'indirizzamento statico presuppone che venga svolto un lavoro "manuale" di configurazione di ogni
host e/o apparato della rete.
L'indirizzo IP deve essere configurato, con il software messo a disposizione dal S.O. e, in caso di cambiamento,
l'operazione deve essere ripetuta.
Questo metodo presuppone una catalogazione molto meticolosa. Se il lavoro non viene pianificato bene, si corre
il rischio di assegnare indirizzi duplicati.
E' pur vero che i sistemi operativi come Windows 9x e Windows NT/2000, in fase di inizializzazione dello stack
Tcp/Ip, spediscono una richiesta ARP per testare l'esistenza di eventuali indirizzi IP duplicati e, nell'eventualità
che essi incontrino un IP duplicato, sospendono l' inizializzazione dello stack Tcp/Ip.
Ciò non significa che l'opera di catalogazione degli IP (in formato cartaceo o digitale) non sia una buona
precauzione anche laddove, con sistemi misti, non esistano features del tipo di quelle offerte da Windows 9x o
Windows Nt/2000.
Indirizzameneto dinamico
I sono diversi metodi che possono essere scelti per assegnare dinamicamente gli indirizzi IP:
Page 69 of 157
Giugno 2013
Se trova il suo stesso MAC nel campo di destinazione allora prende l'IP contenuto nel datagramma.
Analogamente a RARP, BOOTP opera in un ambiente client-server, e richiede un semplice scambio di pacchetto.
Diversamente da RARP, che spedisce indietro un indirizzo IP composto da 4 otteti, il datagramma BOOTP
restituisce anche informazioni ulteriori (l'indirizzo IP, l'indirrizzo del router (default gateway), l'indirizzo del
server, le Opzioni Venditore che possono contenere informazioni aggiuntive specifiche dell'implementazione).
BOOTP non è stato disegnato per fornire un indirizzamento dinamico degli IP, perché gli stessi vengono creati in
un file di configurazione che specifica i parametri per ogni device.
Page 70 of 157
Giugno 2013
3) Switching
Gli apparati di Livello 2
Informazioni generali
Schede di rete:
Una scheda di rete svolge compiti importanti quali,
Page 71 of 157
Giugno 2013
Quando, per malfunzionamenti di vario tipo, viene meno la connessione fra un computer e l'hub, non viene
compromessa la struttura generale della rete.
Si tratta dunque di un tipo di collegamento assai pratico ed affidabile.
L’Hub può essere utilizzato nella costruzione di reti:
a BUS:
a Stella
La parola hub in inglese significa "perno" o "fulcro", traducendolo in informatichese possiamo meglio definirlo
come "centro".
E' un’apparecchiatura che si e' diffusa nel mondo delle reti locali nella seconda metà degli anni Ottanta e che
consente di realizzare un sistema di cablaggio a stella, dove tutte le connessioni provenienti dalle workstation di
un certo gruppo di lavoro, confluiscono verso un centro di connessione che può essere attivo o passivo, ma il cui
scopo fondamentale rimane quello di creare una connessione elettrica tra tutte le macchine che vi sono collegate
ed eventualmente altri hub.
In pratica tutti gli utenti collegati all'hub (o ad una serie di hub connessi in cascata) si trovano sullo stesso
segmento di rete e condividono la stessa larghezza di banda.
Possiamo dire che si trovano tutti connessi alla stessa velocità.
Questà modalità di lavoro introduce degli effetti negativi da non sottovalutare:
ogni volta che un PC comunica, l'Hub "satura" la rete.
La relativa semplicità di questo componente lo rende abbastanza economico e quindi ancora molto usato.
Esistono in commercio sia versioni da 10 Mbit/s che da 10/100 Mbit/s e con diverse porte:
da un minimo di 4 fino ad arrivare a 16, 24 o anche più.
E' ovvio che più aumentano il numero delle porte e più si degradano le prestazioni perché la "banda" deve essere
ripartita tra tutte.
Quindi con un hub a 8 porte - 100 Mbit/s avremo una banda disponibile per ogni Pc di 100/8cioè circa 12 Mbit/s
per porta.
In una rete Ethernet è possibile aggregare in cascata non più di 4 Hub.
Page 72 of 157
Giugno 2013
L’hub viene usato solitamente per connessioni fatte con doppino (schermato e non), mentre sono praticamente
scomparsi gli hub per topologie a stella basate su cavo coassiale.
Trova impiego nelle reti Ethernet e nelle reti Token Ring dove prende più propriamente il nome di MAU
(Multistation Access Unit).
Il vantaggio dell’impiego di un hub e di un cablaggio a stella è che si possono aggiungere e togliere workstation in
qualsiasi momento senza interrompere la continuità di collegamento delle stazioni di lavoro ad esso attestate ed
eventuali stazioni di lavoro con schede d’interfaccia guaste possono essere isolate automaticamente senza
compromettere la connessione di tutte le altre.
Funzionamento:
Gli Hub, e i repeater, sono fondamentalmente la stessa cosa.
Entrambi sono apparati che lavorano a livello 1 del Modello OSI.
Diversamente dagli switch e dai router, gli hub non leggono la trama (frame) ma si assicurano che essa venga
inoltrata sulle porte collegate.
Va ricordato che i repeater hanno una porta di entrata e una di uscita mentre gli hub sono multiporta.
Tutti gli elaboratori (nodi) che condividono una rete Ethernet usano il metodo di accesso CSMA/CD.
Si dice, infatti, che stanno tutti sullo stesso dominio di collisione.
Detto questo possiamo affermare che tutti i nodi connessi ad un hub sono parte dello stesso dominio di
collisione.
In un dominio di collisione, infatti, quando avviene una collisione, tutti i nodi nell'area del dominio (domain/area)
avvertiranno la collisione e quindi, reagiranno di conseguenza.
Per connettersi ad un hub, i nodi di una rete usano il cavo UTP (Unshielded Twisted Pair).
Ad ogni porta dell'hub può corrispondere un solo nodo.
La modalità di lavoro degli hub è molto semplice e trasparente.
Quando un nodo connesso ad una delle sue porte trasmette dei dati, questi vengono replicati e spediti su tutte le
altre porte.
Solo il destinatario dei dati "processerà" la trama ethernet mentre tutti gli altri nodi rifiuteranno la trama e non la
inoltreranno sul proprio elaboratore.
L'operazione di rifiuto e di accettazione della trama viene portata a termine dalla scheda di rete (NIC) che,
leggendo il “Destination MAC address “ contenuto nell'header della trama ethernet stessa, verrà portato a
confrontato con il proprio MAC address.
Solo in caso di uguale MAC address la trama verrà processata.
Tutti gli hub hanno una porta speciale che funziona come "uplink" port.
La porta uplink permette di connettere l'hub ad altri hub, aumentando le porte disponibili sulla LAN.
Questo soluzione, a basso costo, permette di estendere le reti di pochi computers e, da un certo punto di vista
funziona abbastanza bene.
Purtroppo, non appena la rete si appesantisce con nuovi nodi, anche il traffico inutile (tutte le trame non
processate) diventa un problema e impatta in modo negativo sulle performance della stessa.
Switch
Questi apparati hanno rapidamente sostituito gli hub nelle reti aziendali.
Diversamente degli hub (apparati di Livello 1) che hanno il solo compito di rigenerare il segnale sulle porte a
disposizione, gli switch (apparati di livello 2) si occupano di gestire la banda prendendo delle decisioni basate sul
MAC.
In pratica, uno switch (detto anche multi-port bridge) crea dei percorsi commutati collegando fisicamente un
interfaccia ad un altra rendendo così disponibile tutta la larghezza di banda.
Diversamente dall'hub, lo switch instrada i dati sull'interfaccia (porta dello switch) alla quale è connesso l'host.
In pratica lo switch separa/isola i segmenti della rete, stabilendo una connessione temporanea tra la sorgente e il
punto di destinazione, chiudendola al termine del collegamento.
Lo switch è un tipico apparato di Livello 2 (Data Link) anche se l'evoluzione degli stessi (con capacità di
instradamento anche a livello IP) lo sta portando verso gestioni di instradamento e load balancing.
La denominazione layer 2 o layer 3, deriva direttamente dalla struttura relativa al Modello Iso/Osi.
Il livello (layer) 2 è caratteristico degli switch più tradizionali, i quali basano l’instradamento dei frame sul MAC
address destinatario.
Con questa tecnologia le comunicazioni sono di tipo 1 a 1, tutte le altre porte dello switch non sono interessate.
Page 73 of 157
Giugno 2013
Gli switch di livello 3 operano sul protocollo e sono, quindi, in grado di determinare i percorsi di instradamento
utilizzando le informazioni fornite dai protocolli ( es. IPX, IP, AppleTalk).
La scelta della tecnologia switch è fondamentale per tutte le applicazioni che creano molto traffico e per tutte le
reti con un alto numero di utenti.
Nell'ottica di rete sul modello Intranet, con ampio utilizzo di contenuti multimediali, non si può più prescindere
da una soluzione switched. L’hub è, oramai, un apparato che non soddisfa più le continue esigenze di alte
performance e può trovare applicazione solo in piccoli uffici dove pochi client condividono un server per le
stampe e/o semplici applicazioni transazionali.
Lo switch rappresenta quindi lo strumento principale per l'implementazione e la ottimizzazione di un qualsiasi
ambiente di rete locale.
Laddove esiste un numero di nodi molto elevato lo switch assolve pienamente al suo compito principale che è
quello di distribuire "banda" in modo dedicato.
Il proliferare degli accessi Internet, per esempio, spinge all’utilizzo di soluzioni switching in grado di ottimizzare la
disponibilità di banda passante sul lato geografico evitando, per quanto possibile, l’interferenza con applicazioni,
servizi e periferiche locali.
D’altra parte, l’aumento dei server all’interno di una qualsiasi organizzazione rende l’utilizzo degli switch l’unico
strumento veramente valido per garantire prestazioni e affidabilità.
In quest’ottica, la disponibilità di funzionalità specifiche di CoS/QoS offre la possibilità di costruire una gerarchia
di servizi che abilita la convergenza di applicazioni diverse su un’unica infrastruttura.
Gli switch oggi apportano un aiuto decisivo, superando i limiti della trasmissione "anarchica" di Ethernet e la
rigidità del Token Ring.
Oltre alla segmentazione fisica del traffico, gli switch consentono il tracciamento di reti virtuali per facilitare lo
scorrimento del flusso dei dati.
Gli switch di Livello 2, dimensionati per gestire un numero ristretto di reti virtuali, con un numero modesto di
stazioni di lavoro, si rivelano non adatti alle topologie multiprotocollo distribuite su più piani e che generano un
forte traffico tra gruppi di lavoro.
I costruttori hanno permesso allora ai propri switch di gestire le reti virtuali al Livello 3 del modello Osi. Questo
posizionamento consente a questi ultimi di assimilare un gruppo di lavoro virtuale a una sottorete Ip, Ipx o
AppleTalk e di organizzare la comunicazione tra queste entità protocollari.
Tuttavia, la semplice funzione di trasmissione dei pacchetti offerta da questi primi switch di Livello 3 non
dispensa dalla mediazione di un router.
L'ultima generazione di switch offre un palliativo a tale carenza, attivando una funzione di routing integrale,
ovvero la trasmissione dei pacchetti e la definizione dei percorsi.
Page 74 of 157
Giugno 2013
E, bene o male, i router tradizionali iniziano a posizionarsi esternamente alla dorsale, per lasciare agli switch-
router il compito di gestire i pacchetti e di organizzare le comunicazioni all'interno della rete locale.
Switching Mode
Il ritardo (latenza) con cui il pacchetto attraversa lo switch dipende dalla scelta della modalità di switching.
Le modalità di switching sono:
Store-and-Forward:
In questa modalità il Frame viene ricevuto e memorizzato completamente prima di analizzare il Destination
MAC Address e agire di conseguenza. In questa modalità è possibile applicare al frame tutte le informazioni
necessarie alla sua gestione (vedi VLAN). Questa tecnica di switching aumenta la latenza in proporzione alla
dimensione del frame.
Cut-through:
In questa modalità, detta anche FastForwording, lo switch non aspetta che il Frame sia ricevuto e
memorizzato completamente ma lo analizza mano a mano che viene ricevuto e una volta individuato,
nell’header, il Destination MAC Address lo invia direttamente al destinatario. In questa modalità non è
possibile applicare al frame tutte le informazioni necessarie alla sua gestione (vedi VLAN). Questa tecnica di
switching mantiene costante la latenza indipendentemente dalla dimensione del frame.
FragmentFree:
Questa è una modifica del “Cut-through”. Lo switch aspetta di ricevere almeno 64 byte prima di iniziare l’invio
del frame. Questo serviva ad eliminare le eventuali collisioni. Anche questa tecnica di switching mantiene
costante la latenza indipendentemente dalla dimensione del frame.
Page 75 of 157
Giugno 2013
Spanning-Tree (STP)
Prima di iniziare a parlare più in dettaglio del funzionamento dello Spanning Tree Protocol occorre conoscere il
meccanismo, presente negli switch, per l’inoltro dei frame e per la costruzione della tabella dei Mac-Address.
Processo di Forwarding
NO SI
Scarta Frame Frame senza
Errori
FINE
SI
NO
Porta X in
Forwarding?
SI Indirizzo NO
Destinatario
presente
nella tabella
SI
Il Inoltra Frame su tutte le
Scarta Frame
destinatario porte eccetto la porta X
è sulla LAN di “Flooding”
NO
Page 76 of 157
Giugno 2013
Processo di Learning
SI NO
Indirizzo Sorgente del
Frame contenuto nella
Tabella MAC ?
Azzera l’ageing-time
FINE
Come visto sopra, il processo di Forwarding è il primo che viene attivato alla ricezione di un Frame.
Questo permette allo switch di agire immediatamente per quanto riguarda l’invio del nuovo Frame verso il
destinatario limitando il tempo di latenza della trasmissione.
Di seguito viene attivato il processo di Learning che permette allo switch di controllare ed eventualmente
aggiornare la propria tabella MAC.
Di seguito è riportata la sequenza completa basata su un esempio di rete.
Page 77 of 157
Giugno 2013
Stazione 1 Stazione 2
08-00-01-02-03-04 08-00-01-02-05-06
Stazione 6
08-00-01-02-c5-c6
1
3
B
LAN C
2 Flooding
LAN B
Stazione 3 Stazione 4
08-00-01-02-B3-B4 08-00-01-02-B5-B6
B
3 LAN C
LAN B
Stazione 3 Stazione 4
08-00-01-02-B3-B4 08-00-01-02-B5-B6
Page 78 of 157
Giugno 2013
Stazione 1 Stazione 2
08-00-01-02-03-04 08-00-01-02-05-06
B
3 LAN C
2
LAN B
Stazione 3 Stazione 4
08-00-01-02-B3-B4 08-00-01-02-B5-B6
4
4 2 3
SW-1
1 4
3
4 1 2 1
4
1
1 1
1 2 2 LAN3
SW-2
1
LAN1 3
1 2 4
1
1 1 1 2 3
2 3 4
3 4 SW-3
1
2 2 2
4 2
1 1 1
LAN2 1 1 1
Per visualizzare la presentazione in Power Point selezionare il disegno con tasto destro e quindi selezionare
“Oggetto collegato Presentazione” e quindi “Collegamento Mostra”.
Page 79 of 157
Giugno 2013
ma priva di cicli. Una LAN complessa può essere costituita da diversi segmenti di rete, connessi tra loro tramite
dei bridge o switch, con il vincolo che la topologia di una LAN non contenga cicli (maglie o loop), ovvero che tra
ogni coppia di stazioni di lavoro esista un solo percorso. Se così non fosse, alcuni pacchetti verrebbero replicati
all'infinito sulla rete, con risultati disastrosi. Lo switch, infatti, conosce gli indirizzi MAC degli host connessi su ogni
segmento, ma se riceve un pacchetto con destinazione sconosciuta, o un pacchetto broadcast, lo invia su tutti
segmenti. Se esiste un loop nella rete, il pacchetto raggiungerà nuovamente il segmento da cui è partito, venendo
nuovamente replicato. Questo porterebbe alla proliferazione di infinite copie dello stesso pacchetto sulla rete, e
quindi alla saturazione della rete stessa. Una rete complessa priva di percorsi ridondanti è però estremamente
fragile, perché il guasto di un solo switch o collegamento la partiziona in due reti che non comunicano tra di loro.
In una rete locale complessa, è necessario che ci siano dei collegamenti ridondanti, ma che alcuni di questi siano
mantenuti "fuori servizio" fino a quando non si rendono necessari per sopperire a guasti di altri collegamenti o
bridge. L'algoritmo di spanning tree è un algoritmo distribuito, che opera su tutti gli switch, facendo in modo che
in ogni istante la rete sia connessa ma priva di loop, ovvero che il grafo dei collegamenti disponibili sia "coperto"
da un albero. Ciò si ottiene mediante la creazione di una gerarchia di switch. Uno switch viene individuato
come radice dell'albero coprente ("root bridge"), e una parte dei collegamenti tra switch disponibili viene messa
in standby, portando in stato "BLOCKING" alcune delle porte degli switch stessi. Nel caso in cui un nodo diventi
irraggiungibile, oppure cambi il costo di connessione, lo switch cercherà di arrivare al nodo attivando i percorsi
alternativi che sono in stand-by, ripristinando in questo modo la connettività completa della rete (se possibile).
Nella “teoria dei grafi”, questo problema è noto come “Albero spanning”. Questo processo avviene
periodicamente per cui, se si scollega uno switch o si interrompe un collegamento, si ricostruisce lo spanning tree
e la rete continua a funzionare. L'algoritmo tende automaticamente a mantenere in funzione i collegamenti di
capacità superiore, ma talvolta la scelta di collegamenti da mantenere attivi è inadeguata alle caratteristiche della
rete o del traffico che la attraversa. Configurando opportuni parametri sugli switch, è possibile influenzare sia la
scelta del “root bridge” che la scelta dei collegamenti da mantenere in servizio. Tale algoritmo è stato inventato
da Radia Perlman e standardizzato in IEEE 802.1D.
L'algoritmo di Spanning Tree permette di estendere reti locali mantenendo un buon grado di ridondanza, ma
presenta alcuni limiti:
Page 80 of 157
Giugno 2013
I tempi di convergenza, ovvero il tempo necessario al protocollo per reagire al guasto di un elemento
della rete o al suo ripristino, tendono a crescere con il numero di switch coinvolti nel processo.
Il protocollo di spanning tree genera a sua volta traffico sulla rete, che può contribuire alla sua
saturazione.
La capacità dei collegamenti lasciati in stand-by non può essere sfruttata (ovvero questi collegamenti
sono usati come riserva fredda).
Per ovviare ai sopracitati limiti, sono stati sviluppate estensioni al protocollo di Spanning Tree originario. In
particolare:
Multiple Spanning Tree
Rapid Spanning Tree: provvede a ripristinare la topologia di rete nel minor tempo possibile (nell'ordine
di qualche secondo).
Alcuni produttori di apparati di networking hanno sviluppato sistemi alternativi e proprietari per superare i limiti
imposti da spanning-tree nell'ethernet e raggiungere le caratteristiche di SDHin particolar modo per quanto
riguarda classica configurazione ad anello. In questo ambito sono da citare :
Hiper-Ring di Hirshmann
EAPS di Extreme Network
Resilient Packet Ring di Nortel Networks
Per le reti di tipo Token ring ed FDDI esiste un algoritmo specifico, alternativo a spanning tree, definito source
routing.
Quando la rete cresce al punto di rendere eccessivamente problematici questi fattori, è spesso necessario
segmentarla con l'aiuto di uno o più router, anche se questo comporta tipicamente la modifica degli indirizzi IP
utilizzati dagli host sulla rete (ri numerazione).
Per definire questa struttura gli switch, partecipanti allo spanning tree, si scambiano una serie di frame specifici,
denominati BPDU, che hanno la seguente struttura:
Page 81 of 157
Giugno 2013
Page 82 of 157
Giugno 2013
Numero di Ports
Port Identifier
Situazione Iniziale
Bp=32768
08002b-aa5030
SW-1
2 1
LAN1
LAN3
2
Bp=32768
08012b-aa4020
SW-3
1
2
Bp=32768
08012b-aa05bc
SW-3
1
LAN2
Page 83 of 157
Giugno 2013
LAN1
LAN3
Root Port
Bp=32768
2 08012b-aa4020
Page 84 of 157
Giugno 2013
Bridge priority
o Range: 0 - 61440
o Default/raccomandato: 32768
o Incremento consigliato (IEEE 802.1t): 4096
Port priority
o Range: 0 - 240
o Default/raccomandato: 128
o Incremento consigliato (IEEE 802.1t): 16
Path cost
o Range: 0 - 65535
o Raccomandato (IEEE 802.1D): 1000/(velocità in Mb/s)
Path Cost Raccomandato
Intervallo Valori Intervallo Valori
Velocità porta Valore Raccomandato
Raccomandati Accettabili
4 Mbps 250 100-1000 1-65535
10Mbps 100 50-600 1-65535
16Mbps 62 40-400 1-65535
100Mbps 19 10-60 1-65535
1Gbps 4 3-10 1-65535
10Gbps 2 1-5 1-65535
Timer
Hello time
o Periodicità per la generazione di Configuration BPDU
o Range: 1 - 10 secondi - Raccomandato: 2 secondi
Forward delay timer
o Ritardo in alcuni cambiamenti di stato delle porte
o Tempo di rimozione veloce di entry del filtering database
o Range: 4 - 30 secondi - Raccomandato: 15 secondi
Max age
o Intervallo tra la ricezione di una Configuration BPDU e “sblocco” di una porta
o Range: 6 - 40 secondi - Raccomandato: 20 secondi
Rilevamento di un cambiamento topologico
Rilevamento di un malfunzionamento di livello fisico
o Fallimento del Link Integrity Test
Mancata ricezione periodica di Configuration BPDU
o Una porta in stato di blocking inizializza un timer al valore del parametro max age
o Se il timer scade, la porta passa in stato listening
Il collegamento dal root bridge alla LAN ha problemi
o Allo scadere del forward delay passa in stato learning
o Allo scadere del forward delay passa in stato forwarding
Transizioni ritardate per evitare oscillazioni
Page 85 of 157
Giugno 2013
Rilevamento Rilevamento
Rilevamento Rilevamento Rilevamento Rilevamento
basato sul basato sul
basato sul basato sul basato sul basato sul livello fisico protocollo
livello fisico protocollo livello fisico protocollo
Page 86 of 157
Giugno 2013
Page 87 of 157
Giugno 2013
Situazione Iniziale
1 A 1
111 2 2 222
4 3 B 3 4
E D
C F
5 6 5 6
4 333 1 1 444 4
3 J K
2 2 3
G H I L M N
1 2 1 2 1 2 1 2
555 666 777 888
4 3 4 3 4 3 4 3
1 A 1
Root 111 222
111,0 2 2 111,10
4 3 B 3 4
E D
C F
5 6 5 6
333 444
4 111,10 1 1
111,10
4
3 J K
2 2 3
G H I L M N
1 2 1 2 1 2 1 2
555 666 777 888
111,20 111,20 111,20 111,20
4 3 4 3 4 3 4 3
Page 88 of 157
Giugno 2013
Designated Forwarding
1 A 1
Root 111 222
111,0 2 2 111,10
B Root Forwarding
4 3 3 4
E D Alternate
C F
5 6 5 6
333 444
4 111,10 1 1
111,10
4
3 J K
2 2 3
G H I L M N
1 2 1 2 1 2 1 2
555 666 777 888
111,20 111,20 111,20 111,20
4 3 4 3 4 3 4 3
Page 89 of 157
Giugno 2013
STP o RSTP abilitato con 2 link STP o RSTP abilitato con 2 link
separati (no-trunk) in trunk
1 1
VLAN VLAN VLAN VLAN
rossa blu rossa blu
X
Link in Trunk
Page 90 of 157
Giugno 2013
Attualmente, la presenza di VLAN diventa sempre maggiore all’interno di una rete e di conseguenza si rende
necessario implementare un protocollo che permetta la configurazione di più istanze di Spanning Tree, questo
protocollo è lo IEEE 802.1s o Multiple Spanning Tree Protocol (MSTP).
Caratteristiche Generali
Soluzione flessibile per creare reti con più istanze di spanning tree alle quali possono essere associate una o
più VLAN
Adotta, come base, lo IEEE 802.1w o RSTP
Permette di creare reti con diversi switch in cascata
Permette l’associazione o la mappatura di VLAN sull’istanza desiderata
Architettura
Lo IEEE 802.1s prevede la suddivisione della rete in zone o aree denominate “Region”.
Region 4 Region 2
Region 3
Region 1
Region 5
SST (Single Spanning Tree Region) in cui sono presenti switch che non adottano lo standard IEEE 802.1s e
di conseguenza non ammettono l’impiego di spanning tree multipli
o SST può impiegare STP o RSTP
o Ne è presente una sola all’interno della rete
MST (Multiple Spanning Tree Region) in cui sono presenti switch che sono conformi allo standard IEEE
802.1s dove è previsto l’impiego si istanze multiple di spannig tree
Page 91 of 157
Giugno 2013
o All’interno di una Region, per ogni istanza di spannig tree viene eletto un MSTI Regional Root
Bridge
In una rete ci possono essere più MST Region
In ogni MST Region ci sono:
o Una istanza comune di Spanning Tree CSTI con un CSTI Regional Root Bridge
o Una o più istanze multiple di Spannig Tree MSTI con uno o più MSTI Regional Root Bridge
Le informazioni riguardanti l’istanza di spanning tree comune e quelle relative alle diverse istanza multiple MSTI
sono memorizzate in una tabella denominata MST Configuration Table Entry
Più in dettaglio possiamo dire che una rete può essere suddivisa in:
Page 92 of 157
Giugno 2013
4) Routing
Informazioni generali
Occorre, per prima cosa, distinguere tra due concetti fondamentali:
Routing inteso come funzione
Router inteso come apparato hardware
Routing
Page 93 of 157
Giugno 2013
La funzione di “Routing” è implementata nel livello 3 del Modello di Riferimento OSI “Network” e nel
corrispondente livello 3 della pila TCP/IP ”Internet”.
Questa funzione ha il compito di stabilire i percorsi per il trasferimento dei dati attraverso la rete, ha la
responsabilità del controllo della sequenza dei pacchetti, evitare la congestione della rete e di gestire gli errori.
Tutto questo è svolto dai Protocolli di Routing che garantiscono la corretta ricezione dei pacchetti e si dividono in:
Routing Statico
Routing Dinamico
Router
Questa definizione viene applicata all’apparato Hardware che contiene e gestisce la funzione di Routing.
La caratteristica fondamentale dei router è che la funzione di instradamento è basata sugli indirizzi di livello 3
(rete) del modello OSI (corrispondente al livello IP dello stack TCP/IP), a differenza dello switch che instrada sulla
base degli indirizzi di livello 2 (collegamento) "MAC".
Gli elementi della tabella di instradamento (o Routing Table) non sono quindi singoli
calcolatori ma intere reti, ovvero sottoinsiemi anche molto ampi dello spazio di
indirizzamento.
Questo è fondamentale per la scalabilità delle reti, in quanto permette di gestire reti
anche molto grandi facendo crescere le tabelle di instradamento in modo meno che
lineare rispetto al numero di host.
In generale i router necessitano di essere configurati, e non sono quindi
dispositivi plug and play.
Per garantire la massima affidabilità e lo sfruttamento ottimale dei collegamenti in
caso di reti complesse costituite da molte sottoreti diverse e variamente interconnesse, i router possono
costruire le loro tabelle di instradamento in modo dinamico, scambiandosi periodicamente informazioni su come
raggiungere le varie reti che collegano l'un l'altro.
Per fare questo sono stati messi a punto dei protocolli di routing appositi, come OSPF, RIP e BGP, attraverso i
quali i router si scambiano informazioni sulle reti raggiungibili.
Un router può interconnettere reti di livello 2 eterogenee, come ad esempio una LAN ethernet con un
collegamento geografico in tecnologia Frame Relay o ATM.
Inoltre, rispetto ad un bridge, un router blocca le tempeste broadcast.
Molti router destinati al mercato domestico incorporano la funzionalità
di access point per reti wireless Wi-Fi.
Alcuni router possiedono anche un firewall incorporato, poiché il punto di
ingresso/uscita di una rete verso l'esterno è ovviamente il luogo migliore dove
effettuare controlli sui pacchetti in transito.
I router possono essere normali computer che fanno girare un software
apposito (gateway), o - sempre più spesso - apparati specializzati, dedicati a
questo solo scopo.
I router di fascia più alta sono basati su architetture hardware specializzate per
ottenere prestazioni wire-speed, letteralmente alla velocità della linea.
Un router wire speed può inoltrare pacchetti alla massima velocità delle linee cui è collegato.
I Router di fascia media ed alta hanno normalmente una costruzione modulare, che permette di aggiungere
interfacce verso reti di tipo diverso secondo la necessità.
Page 94 of 157
Giugno 2013
Di seguito è riportata la correlazione tra i livelli del Modello di Riferimento OSI e l’architettura TCP/IP.
OSI TCP/IP
APPLICATION
SESSION
DATA LINK
<- NETWORK INTERFACE
PHYSICAL
Ricordiamo che i livelli 1 e 2 del Modello OSI sono racchiusi, come due sottolivelli, in un solo livello
dell’architettura TCP/IP denominato Network Interface.
Page 95 of 157
Giugno 2013
Vediamo ora come si inserisce l’architettura TCP/IP nella rete riportata in precedenza.
Avendo chiaro il funzionamento degli apparati di livello 2 (Switch) possiamo vedere ora come lavorano, in
dettaglio, i Router.
Ipotizziamo una rete costituita da tre router (R1, R2 e R3), ciascun router ha una interfaccia Ethernet (e0) e due
interfacce Seriali (s0 e s1).
Page 96 of 157
Giugno 2013
Da quanto riportato risulta chiaro che il corretto funzionamento dei router è legato alla precisa definizione delle
informazioni presenti nelle tabelle di routing.
Il processo di routing
Il Routing, come detto in precedenza, è una funzione del livello network (livello di rete) del modello OSI.
Tale funzione viene svolta da un dispositivo chiamato Router, il quale per poter instradare il traffico, deve
conoscere le seguenti informazioni:
Indirizzo di destinazione
I router ad esso adiacenti, da cui ricavare informazioni per accedere alle reti remote
Possibili percorsi verso tutte le reti remote
Il percorso migliore per ciascuna rete remota
Il modo di mantenere e di verificare le informazioni necessarie per il Routing.
Risulta quindi di notevole importanza che il router, nella propria memoria RAM, costruisca una tabella (Routing
Table) che gli permetta di memorizzare quelle informazioni indispensabili per individuare il percorso ottimale
verso le reti remote da raggiungere.
Page 97 of 157
Giugno 2013
La Routing Table è contiene la lista di tutte le reti che il router può raggiungere con le informazioni sulle modalità
di instradamento.
I suoi campi principali sono:
A seconda del modo in cui tali informazioni vengono in essa raccolte si parla di:
Routing Statico
Routing Dinamico
Come descritto, la funzione del router diventa importante nel caso in cui si abbia necessità di collegare host
appartenenti a reti diverse, prima di parlare più nel dettaglio le tipologie di routing richiamiamo alcuni concetti.
L'Host A controlla l'indirizzo IP di destinazione e rileva che esso non appartiene alla propria rete LAN
Locale, indirizza quindi il pacchetto ad un Gateway di default (che generalmente è un router, o un altro
dispositivo, al quale vengono spediti i pacchetti destinati verso host non appartenenti allo stesso
segmento di rete e di cui non si conoscono i percorsi per raggiungere le destinazioni desiderate), il cui
indirizzo IP è preconfigurato in ciascun host. Il computer, nella propria ARP-CACHE (memoria cache in cui
vengono conservati i MAC address), verifica di conseguenza la presenza dell'indirizzo fisico del suddetto
gateway. Nell'eventualità che ne venga rilevata l'assenza, l'host invia una richiesta di ARP per la
risoluzione dell'indirizzo.
A questo punto l'host indirizza il datagram con IP address della destinazione finale e l'indirizzo fisico
(MAC address) del gateway di default (Router A).
Il Router A riceve il pacchetto, controlla l'IP di destinazione e rileva che il datagram è diretto verso un
segmento esterno alla propria LAN. Inoltre analizzando la propria Routing Table, individua la entry (riga)
corrispondente come mostrato in nella parte in arancione della figura seguente.
Page 98 of 157
Giugno 2013
Il Router estrae, dal Datagram ricevuto, il MAC address e riassembla il datagram con l'indirizzo fisico
corrispondente al Router del salto successivo (Router B).
Il pacchetto giunge così al router che è direttamente connesso al segmento di destinazione: lo router
stesso controlla l'indirizzo IP e rileva che il datagram appartiene alla rete cui esso è connesso. Il Router
mediante la lettura della ARP-CACHE o mediante l'invio di una richiesta di ARP, ottiene il MAC address di
destinazione.
Page 99 of 157
Giugno 2013
Al termine pertanto delle operazioni prima descritte, il pacchetto risulta indirizzato con l'indirizzo IP e
l'indirizzo fisico dell'host di destinazione.
E' importante notare che sia IP address di destinazione che quello di sorgente rimangono invariati per l'intero
processo mentre la parte MAC varia. Inoltre qualsiasi Router intermedio lungo il percorso, esamina solo la parte
network dell'indirizzo, non la parte host; infatti nelle routing table vi è traccia solo delle network remote.
Routing statico
Nel routing statico la tabella di routing (entry) viene configurate manualmente dall'amministratore.
Questo procedimento ha il vantaggio di non richiedere che i router si scambino informazioni per aggiornare i vari
percorsi o eventualmente di individuarne di nuovi, limitando così l'uso di banda. Inoltre essendo i percorsi già
determinati una volta configurata la tabella, non è richiesto altro sforzo da parte del router stesso per calcolare i
percorsi ottimali.
Da un punto di vista di sicurezza abbiamo un altro beneficio, poiché c'è solo un punto di ingresso e di uscita per
raggiungere la rete, dando la possibilità di isolare eventuali intrusioni.
Vediamo meglio in dettaglio.
Cosa accade quando si verifica un guasto nella connessione fra Router R3 e Router R4 della figura sopra,
nell'ipotesi che la LAN 3 sia raggiungibile, al momento solo attraverso R4?
Nel momento in cui il R2 riceve un pacchetto destinato alla rete 193.45.31.0, controlla nella sua Routing table se
esiste una entry per tale rete, e avendo trovato la corrispondenza inoltra il pacchetto verso il R4.
Tuttavia essendo proprio il R4 irraggiungibile, il pacchetto viene perso. Per risolvere tale problema occorre
reimpostare manualmente la nuova rotta, in modo che sulla Routing table del R2 vi sia un percorso alternativo
attivo per raggiungere la rete 193.45.31.0.; nell'esempio in figura questo percorso è rappresentato da R3.
Tale soluzione ha l'inconveniente di richiedere sempre la riconfigurazione da parte dell'amministratore tutte le
volte che si devono modificare le entry sia in seguito a guasti, sia per inserire nuove rotte; inoltre tale metodo
comincia a divenire abbastanza oneroso quando l'internetwork contiene parecchi percorsi.
Per questi motivi il routing statico viene usato quando il numero dei segmenti di LAN non è elevato.
Riassumendo:
Routing dinamico
Questo tipo di Routing permette ai vari router di scambiarsi le informazioni necessarie a determinare i possibili
percorsi per raggiungere destinazioni remote, mediante dei protocolli chiamati appunto Routing Protocol, che
usano appropriati algoritmi di routing.
Il vantaggio di tale metodo è che richiede un minor controllo da parte dell'amministratore, mentre di contro
richiede un maggior uso di banda rispetto al routing statico; questo perché, oltre al traffico relativo ai pacchetti,
c'è un traffico relativo allo scambio delle informazioni indispensabili ai routing protocol.
Inoltre un altro notevole beneficio è dato dalla capacità di adattarsi automaticamente ai cambiamenti della
topologia di rete, se si verifica un guasto lungo una connessione oppure ne viene attivata una nuova, gli
aggiornamenti dei vari percorsi vengono automaticamente propagati a tutti i Router.
Riassumendo, lo scopo di un protocollo di routing, è quello di mantenere dinamicamente le routing table.
Per fare ciò, i router devono quindi condividere le informazioni sui percorsi ( routes) che ciascuno conosce.
Questo scambio di dati è compiuto mediante pacchetti speciali chiamati routing updates. Questi ultimi variano
da protocollo a protocollo, come vedremo nel seguito.
Prima di entrare nel dettaglio vediamo quali sono gli scopi che un Routing Protocol si deve prefiggere:
Ottimità. Un protocollo di routing deve essere in grado di fornire il percorso migliore o più veloce lungo la rete.
Vengono quindi individuati percorsi alternativi, ciascuno con una velocità o livello di traffico diverso. Ad esempio,
un protocollo userà la banda e il conteggio dei salti (hop count), mentre un altro darà un peso maggiore alla
banda.
Convergenza Veloce. Tutti i cambiamenti all'interno dell'internetwork si devono propagare verso tutti i
router nel minor tempo possibile.
Robustezza. Un protocollo robusto deve essere in grado di funzionare anche nel caso di configurazioni
non corrette e guasti di componenti.
Suddivisione in aree
Per realizzare una rete dobbiamo considerare la necessità di poter unire più LAN o segmenti insieme, ciascuno
dei quali è stato creato e gestito in modo indipendente rispetto agli altri.
Questo ha portato alla suddivisione in aree diverse: ciascuna zona che appartiene allo stesso dominio
amministrativo prende il nome di Autonomous System (AS).
Volendo fare una considerazione di carattere diverso, possiamo mettere in risalto che all'aumentare del numero
dei Router, c'è di conseguenza l'incremento delle informazioni necessarie per gestire i protocolli di routing, che
vanno dal calcolo computazionale per calcolare i percorsi migliori, alla gestione delle tabelle di routing.
Quindi la scelta di poter suddividere l'insieme delle reti in AS, ha permesso di migliorare la situazione sotto il
punto di vista del processo di routing, infatti tutti i router che appartengono al medesimo AS condividono lo
stesso protocollo di routing; ad esempio un algoritmo Distance vector o Link state.
L'algoritmo di instradamento che opera all'interno di un AS, è definito protocollo di instradamento del sistema
intra-autonomo.
Si rende a questo punto importante collegare i vari autonomous system fra loro mediante l'uso di router in grado
di instradare pacchetti fra aree diverse.
In sintesi possiamo suddividere i router nelle 3 seguenti categorie:
Interior Router: responsabili della trasmissione informazioni all'interno di un AS, per cui non hanno una diretta
connessione con una qualsiasi rete esterna.
Border Router (Router di confine): realizza la connessione fra AS diversi. Può essere considerato quindi come il
punto di ingresso e di uscita verso altri AS.
Exterior Router (Router esterno): appartengono a questa classe tutti i router che sono esterni rispetto al punto
di vista di un certo AS.
Nel caso di Intradomain routing, i router interni devono conoscere solo i segmenti di rete appartenenti allo
stesso AS, non è quindi necessario che mantengano informazioni su reti esterne; essi si limitano a mandare ai
router di confine quei pacchetti destinati fuori.
Questa organizzazione ha dei notevoli vantaggi, poiché riduce notevolmente le dimensioni delle routing table in
quanto le network esterne non sono presenti direttamente in tale tabella se non attraverso il border router, il
quale penserà come raggiungere le destinazioni richieste. Inoltre un altro beneficio riguarda appunto il router
stesso, che dovrà sostenere un carico di lavoro inferiore, rendendo la rete più efficiente.
Nel caso di Interdomain routing, il border router dovrà necessariamente tenete traccia sia delle reti interne che
appartengono al proprio AS, sia degli altri border ruoter.
In aggiunta sono anche responsabili della" traduzione dei protocolli " nel caso in cui i vari AS usino protocolli
di routing diversi.
A causa delle diverse responsabilità che competono sia all'Intradomain routing, sia all'Interdomain routing,
possiamo classificare i protocolli di routing in:
Come accennato in precedenza due tipi di algoritmi che vengono usati in IGP sono:
Distance vector
Link state
Ciascuno di essi utilizza un proprio metodo per calcolare le routes, e presenta delle problematiche diverse per
quello che concerne i cambiamenti della topologia della rete.
Facciamo l'assunzione di considerare in questo esempio una metrica di tipo hop count e che tutti i router
vengano inizializzati allo stesso istante. In un primo momento ciascun router costruirà una routing table
contenente solo la rete locale di appartenenza, ovvero:
ROUTER A
HOP
NETWORK NEXT HOP
COUNT
200.100.8.0 0
200.100.6.0 0
200.100.1.0 0
Va osservato che, essendo le reti elencate in tabella direttamente connesse al Router A, l'hop count assegnato
sarà zero e il campo next hop vuoto, ad indicare che non sono necessari passaggi intermedi attraverso altri router
per raggiungerle.
ROUTER B Router C
HOP
NETWORK NEXT HOP
COUNT HOP
NETWORK NEXT HOP
200.100.1.0 0 COUNT
200.100.9.0 0 200.100.2.0 0
200.100.4.0 0 200.100.7.0 0
200.100.2.0 0 200.100.3.0 0
200.100.10.0 0
ROUTER D
Router E
NETWORK NEXT HOP HOP COUNT
NETWORK NEXT HOP HOP COUNT
200.100.4.0 0
200.100.11.0 0
200.100.7.0 0
200.100.6.0 0
200.100.5.0 0
200.100.5.0 0
200.100.30.0 0
ROUTER B
NETWORK NEXT HOP HOP COUNT
200.100.1.0 0
200.100.9.0 0
200.100.4.0 0
200.100.2.0 0
200.100.6.0 Router A 1
200.100.8.0 Router A 1
Quindi per raggiungere la rete 200.100.8.0, i pacchetti dovranno essere inoltrati attraverso il ROUTER A e la
distanza ad essa associata è appunto 1, poiché c'è un solo router nel cammino che porta verso la destinazione.
Nello stesso momento anche il ROUTER D avrà ricevuto il messaggio da ROUTER A, per cui dopo l'update la
tabella sarà la seguente.
ROUTER D
NETWORK NEXT HOP HOP COUNT
200.100.11.0 0
200.100.6.0 0
200.100.5.0 0
200.100.3.0 0
200.100.1.0 Router A 1
200.100.8.0 Router A 1
Le informazioni mandate da ROUTER D saranno ricevute anche da ROUTER A, ROUTER E e ROUTER C, mentre
quelle da ROUTER B saranno ricevute da ROUTER A, ROUTER E e ROUTER C.
Facciamo l'ipotesi che i messaggi inviati da ROUTER B, siano ricevuti per primi, per cui il ROUTER A:
ROUTER A
NETWORK NEXT HOP HOP COUNT
200.100.8.0 0
200.100.6.0 0
200.100.1.0 0
200.100.11.0 Router D 1
200.100.5.0 Router D 1
200.100.4.0 Router B 1
200.100.2.0 Router B 1
200.100.3.0 Router D 1
200.100.9.0 Router B 1
In questa tabella in corrispondenza della network 200.100.8.0 abbiamo un hop count di 0, in quanto viene
preferito il percorso che ha un numero di salti minore, infatti dalla routing table, ricevuta dal Router D e con
associato una metrica di 1, è stata opportunamente scartata. In maniera del tutto analoga, ROUTER C riceverà il
messaggio da ROUTER B:
ROUTER C
NETWORK NEXT HOP HOP COUNT
200.100.2.0 0
200.100.7.0 0
200.100.3.0 0
200.100.10.0 0
200.100.8.0 Router B 2
200.100.1.0 Router B 1
200.100.9.0 Router B 1
200.100.4.0 Router B 1
200.100.2.0 Router B 1
Questo procedimento, come precedentemente accennato, viene iterato fra tutti i Router adiacenti ad intervalli di
60 secondi. Da ciò consegue che tale protocollo non permette di avere una conoscenza della rete nella sua
globalità, ma soltanto dei salti successivi (next hop) che permetteranno di inoltrare i pacchetti verso la
destinazione finale.
Questa caratteristica lo contraddistingue da altri protocolli di tipo link state, i quali riescono a costruirsi delle
tabelle che tengono conto della topologia dell'intera rete.
Senza procedere oltre, con tutte le routing table relative agli altri Router, possiamo riassumere dicendo che in
ciascun aggiornamento vengono aggiunte le reti che non sono ancora presenti in tabella incrementando di 1
l'hop count, se invece risultano già presenti, vengono scelte quelle con valore di metrica minore.
I protocolli appartenenti a questa classe sono : RIP/RIP-V2 e IGRP.
Routing loops
Come accennato precedentemente, uno degli scopi del protocollo di routing è la convergenza, cioè tutte le volte
che si verificano dei cambiamenti nella topologia di rete, passerà un certo intervallo di tempo, prima che tutti i
router si aggiornino sui nuovi percorsi in maniera corretta.
Quello che si desidera è che tale convergenza sia la più rapida possibile.
Proprio perché non sempre ciò è possibile, si possono verificare una serie di problemi: uno di questi è il routing
loop, ossia quando un pacchetto rimane vincolato a muoversi fra 2 o più router senza trovare una via d'uscita.
Ammettiamo che la connessione fra Router C e Router D non sia più attiva, questo fa in modo che il Router C,
nella propria routing table, elimini questo percorso. Al successivo update, il Router C invia la sua tabella a Router
B, il quale rimuove la entry corrispondente alla RETE1. Il Router B però, osservando che Router A ha un percorso
verso la RETE1 (appreso da updates precedenti) con una Metrica di 2, modifica la route verso la RETE1 passando
attraverso il Router A ed incrementando la metrica a 3. A questo punto, Router A pensa che la RETE1 sia
raggiungibile attraverso Router B, il quale in maniera analoga pensa lo stesso del Router A. Come risultato i
pacchetti non raggiungeranno mai la destinazione, ma continueranno a rimbalzare fra nodo A e nodo B.
Una possibile soluzione è rappresentata dallo stabilire un numero massimo di Hop count (salti) che il
pacchetto può fare. Infatti tutte le volte che un pacchetto passa attraverso un router, viene
incrementato di 1 l'hop count e se siamo in presenza di un loop, questo numero si incrementerà sempre
più tendendo all'infinito. Fissare quindi a priori un soglia massima per l'hop count, significa che superato
tale valore il pacchetto verrà scartato. Tuttavia con questa soluzione non si riesce ad evitare del tutto il
problema del loop, poiché pacchetti rimangono nel loop fino a quando non vengono scartati. Come
conseguenza , si verifica uno spreco inutile di banda e di risorse.
Un altra soluzione che cerca di limitare i loops prende il nome di algoritmo di Split Horizon, mediante il
quale un router che riceve certe informazioni pertinenti una certa destinazione da un router adiacente,
non può rispedire indietro altre informazioni sulla medesima destinazione.
Nell'esempio il Router A riceve delle informazioni dal Router B sul fatto che la Rete 1 non è più attiva, per cui il
Router A non può rimandare indietro al Router B un update che contiene informazioni su come arrivare alla Rete
1, ma si limiterà al più ad inviargli notifiche sulle altre routes apprese da altri router.
Poison Reverse può essere interpretato come uno split horizon leggermente modificato, infatti talvolta è
chiamato split horizon con updates poison reverse. Con questa tecnica, invece di non spedire
informazioni su certe routes a chi li ha inviati, le invia ugualmente ma gli attribuisce una metrica infinita,
per cui la destinazione viene considerata come irraggiungibile. Il metodo di split horizon sia con poison
reverse che senza, elimina i loops solo fra router adiacenti. Vediamo un esempio in cui il fenomeno del
routing loop si verifica anche se viene utilizzato lo split horizon.
In condizioni di corretto funzionamento i Router A, B e C hanno una rotta per la rete 1 attraverso router A.
Vediamo cosa accade se la Rete 1 diviene down (inattiva).
Supponiamo che il Router C sia il primo a ricevere l'update contenente informazioni sulla Rete 1 diventata down,
per cui rimuove dalla propria routing table la entry corrispondente. Tuttavia, nel caso in cui router B non ha
ancora ricevuto l'updates dal Router A, può inviare una notifica (Update) a Router C che la Rete 1 è raggiungibile
con una metrica di 1.
Di conseguenza Router C riaggiorna la entry relativa a Rete 1 raggiungibile attraverso Router B con una metrica di
2.
Router A può infine accettare un updates verso la route Rete 1 da Router C poiché ha ricevuto tale percorso da
Router B.
Supponendo che il collegamento fra Router A e Router B sia molto lento e che gli updates avvengano prima che
Router A possa comunicare a Router B che la Rete1 è down, anche in questo caso si è verificato un loop fra i tre
Router.
Per risolvere tale problema occorre utilizzare altri metodi diversi da quelli visti fino ad ora.
Si parla di Hold downs e Triggered updates.
Hold downs
Questa tecnica permette, tutte le volte che una route viene rimossa dalla routing table, di non accettare
alcun update sulla route stessa, se non prima che sia trascorso un certo periodo di tempo. Tale intervallo sarà
quello necessario affinché tutta la rete sia aggiornata del link down.
Nell'esempio precedente, quando Router A invia un update che la Rete 1 è down, dovrà trascorrere un intervallo
di tempo prima che Router C possa ricevere un update da Router B riguardante la Rete 1.
Triggered updates
Metodo che permette di rendere più veloce la convergenza.
Normalmente i protocolli di tipo Distance vector inviano gli updates ad intervalli regolari di tempo. La tecnica
Triggered updates permette di inviare tali messaggi nel momento in cui si verificano dei cambiamenti nella
topologia della rete, piuttosto che aspettare prefissati istanti di tempo.
Funzionamento
Il tipo di metrica usata è l'Hop count e gli Updates, che contengono l'intera copia delle routing table, vengono
scambiati ad intervalli regolari (ogni 30 secondi) e quando si verificano dei cambiamenti nella topologia.
Tutte le volte che un router riceve un update che contiene entry modificate, deve aggiornare la propria routing
table incrementando di 1 l'Hop count e indicare come next hop l'indirizzo IP del router da cui ha ricevuto il
messaggio.
La tabella di routing indicherà, per ciascuna entry della tabella, solo il percorso migliore per raggiungere la
destinazione desiderata.
Una volta che è stato aggiornata la routing table, il router trasmetterà immediatamente un update per informare
gli altri router adiacenti dei cambiamenti.
In questo particolare caso, gli updates vengono inviati senza attendere i 30 secondi di default.
Ciascun router, in una rete nella quale opera questo protocollo, viene considerato come 1 hop. Se un router
apprende un percorso verso una certa destinazione che richiede il passaggio di altri tre router, scriverà nella
propria routing table in corrispondenza della suddetta destinazione, un Hop count = 3.
Soluzioni al problema del routing loops
Per quanto riguarda la risoluzione del problema del routing loops, il RIP lo realizza con la tecnica di usare un hop
count massimo pari a 15; ciò significa che un pacchetto, non potrà passare attraverso un numero di router
maggiore di 15 per arrivare a destinazione, in quanto verrà scartato dal sedicesimo.
In conseguenza a questo, il RIP non può venire impiegato in un contesto in cui esistano segmenti separati da più
di 15 router, infatti proprio per questo motivo il RIP rimarrà limitato in ambito di LAN non troppo grandi.
Ulteriori tecniche che il RIP usa sono:
L'indirizzo IP di destinazione è forse il campo più importante contenuto nella routing table.
Infatti quando un router riceve un pacchetto dati attraverso la sua porta di IN, controlla nella propria tabella di
routing se esiste una entry per tale destinazione, ed in caso affermativo inoltra il flusso dati nella corrispondente
porta di OUT.
Il campo “next hop” contiene l'indirizzo del router successivo che permette il raggiungimento della rete di
destinazione.
Per quanto riguarda il “Timer”, il RIP deve scandire temporalmente ogni quanto inviare gli updates ad i router
vicini, inoltre considererà irraggiungibile un router vicino se da questo non riceve notizie almeno una volta ogni
180 secondi.
Una caratteristica da non trascurare è che il Protocollo RIP 1 non invia le subnet mask ma solo gli indirizzi IP, di
conseguenza possono verificarsi degli errori in quanto non vengono riconosciute eventuali sottoreti.
Questo problema viene risolto nella versione RIP 2, infatti in questa versione è presente nel pacchetto un campo
chiamato “subnet mask” che contiene appunto la subnet mask corrispondente alla entry considerata.
In aggiunta questa versione fornisce un semplice meccanismo di autenticazione per rendere più sicuri gli updates
delle routing table.
Un ulteriore differenza fra RIP 1 e RIP 2 riguarda i messaggi di updates; nel primo caso essendo tali messaggi di
tipo broadcast si può verificare un sovraccarico nella rete e un tempo di convergenza lento, mentre per quanto
riguarda il secondo i messaggi vengono inviati in multicast, interessando così solo certi router, alleggerendo così il
numero di informazioni da trasmettere.
Protocollo IGRP
Caratteristiche
Il protocollo IGRP (Interior Gateway Routing Protocol) è proprietario Cisco ed è stato sviluppato nel 1980,
appartiene alla classe IGPs ed è di tipo distance vector.
E' molto simile al protocollo RIP, tuttavia cerca di migliorare le limitazioni di quest'ultimo.
Le sue caratteristiche più importanti sono:
Il protocollo IGRP ha una scalabilità maggiore del RIP in quanto permette di estendere il numero
massimo per l'Hop count da 15 a 255.
Per quanto riguarda la metrica IGRP essa è di tipo complesso in quando può essere composta da più
fattori, vedremo meglio in seguito.
Un ulteriore vantaggio è la capacità di memorizzare nella routing table percorsi multipli (fino ad un
massimo di quattro) per una certa destinazione. Questo permette di realizzare una distribuzione del
traffico in modo da alleggerire il carico del flusso dei pacchetti.
A questo punto viene spontaneo chiedersi per quale motivo il RIP continui ad essere utilizzato, nonostante IGRP
mostri un numero maggiore di vantaggi.
Il nocciolo della questione risiede nel fatto che IGRP è proprietario Cisco, per cui solo i Router Cisco possono
supportare tale protocollo, mentre RIP è un Open Standard (standard pubblico).
Metriche
Banda
Valori possibili si trovano in un range compreso fra 1200 bps e 10Gbps; è un valore che viene imposto nella fase
di configurazione e non necessariamente corrisponde con la banda disponibile della connessione.
Tuttavia se non è stato esplicitamente definito un valore, verrà attribuito di default il valore di circa 1,5Mbps.
Carico
Questa variabile è strettamente correlata alla banda utilizzata su una particolare linea di connessione e al carico
di traffico sulla stessa.
Affidabilità
Misura il tasso di errore che si verifica quando vengono trasmessi pacchetti lungo un certa linea, in altre parole è
il rapporto fra i pacchetti che sono arrivati correttamente a destinazione su quelli che sono giunti con errori.
Il range di valori possibili varia da 1 a 255.
Ritardo
E' il tempo necessario (misurato in microsecondi) che i dati impiegano ad attraversare una linea di connessione
della rete.
IGRP calcola automaticamente quale è il valore di questo parametro a seconda dell'interfaccia a cui la linea di
trasmissione è connessa.
Se le variabili sopra descritte non sono impostate, IGRP associa a ciascuna di esse il loro valore di default.
Anche questo protocollo utilizzando l'hop count nelle proprie tabelle di routing, riesce a prevenire il fenomeno
del routing loops ed utilizzando più Timers (temporizzazioni), riesce a gestire le proprie tabelle.
Timers
Updates funzionano allo stesso modo del RIP, cioè trascorso un certo tempo, ogni router invierà la propria
routing table ai propri vicini, con la differenza che il tempo fra un update e l'altro è di 90 secondi.
Route invalid è il tempo che un router deve aspettare prima di dichiarare invalido un percorso notificato come
tale, da un updates ricevuto. Generalmente questo tempo è di 270 secondi.
Hold down è quel tempo che deve trascorrere prima che un updates, riguardante una routes appena rimossa
dalla routing table, possa essere accettato nuovamente.
Nella fase di startup (inizializzazione), il router rileva i segmenti che sono ad essi connessi direttamente
Ciascun router invia delle informazioni (LSAs) per far conoscere agli altri router quali sono le proprie
connessioni.
A questo punto, conosciute le informazioni su tutti i link e segmenti dell'internetwork, il router è in grado di
analizzare tutti i possibili percorsi e di scegliere quelli ottimali, da inserire poi nelle routing table.
Per effettuare ciò ciascun router utilizza un algoritmo del tipo “SPF” (shortest path first); viene scelto cioè il
percorso più breve fra tutti i possibili per una determinata destinazione.
Tale algoritmo è conosciuto anche come algoritmo di “Dijkstra”.
Questo permette a ciascun router di individuare le routes mediante la creazione di una struttura ad albero
rappresentante la rete ed avente come radice il router stesso.
Banda
Nella fase iniziale in cui ciascun router invia i messaggi LSA, contenenti informazioni sulle proprie connessioni
(una di queste è il costo, o metrica, assegnata), può verificarsi un aumento eccessivo del traffico riducendo la
banda disponibile per la trasmissione dei dati veri e propri fra end system.
Dopo questa prima fase, il protocollo link state occupa meno banda del rispettivo distance vector, in quanto gli
updates sono meno frequenti.
Memoria
Il protocollo link state riesce ad avere una visione completa della topologia della rete grazie al procedimento
esaminato in precedenza.
Tutte le informazioni che sono necessarie al raggiungimento di tale scopo devono essere memorizzate nella
memoria del router, il quale deve avere una RAM abbastanza grande altrimenti si possono verificare problemi.
Capacità di calcolo
Nella fase di costruzione del database e nel calcolo delle possibili routes, il router impiega tutte le sue capacità di
calcolo riservando meno risorse per il suo compito in condizioni normali, cioè quello di instradatore.
Un protocollo abbastanza noto di tipo link state e divenuto uno standard nel 1990, è chiamato OSPF (Open
Shortest Path First).
Questo protocollo appartiene alla classe IGP e pertanto opera internamente a ciascun Autonomous System (AS).
Protocollo OSPF
Caratteristiche
Questo protocollo di tipo Link state appartiene alla classe IGP e pertanto opera internamente a ciascun
Autonomous System (AS).
Inoltre essendo Internet costituita da molti AS, talvolta abbastanza grandi e non facilmente gestibili, OSPF offre la
possibilità di suddividere gli AS in Aree numerate, ciascuna delle quali è formata da una o più reti. Ciò comporta
che la topologia ed i dettagli interni ad una certa area, non siano visibili all'esterno di essa.
Detto questo, OSPF scambia i messaggi LSA con tutti quei router che appartengono al medesimo AS, ed essendo
di tipo link state, utilizza l'algoritmo SPF per calcolare il percorso più breve verso ciascuna route.
Protocollo EIGRP
Caratteristiche
EIGRP (Enhanced Interior Gateway Protocol), è stato introdotto da Cisco nel 1990. Come suggerisce il nome
stesso è il successore di IGRP, infatti è stato creato per migliorarne l'efficienza e per la necessità di operare su
internetwork più vaste.
E' compatibile con IGRP e può interoperare con esso, in quanto entrambi sono in grado di interpretare le routes
dell'altro.
EIGRP è considerato un protocollo ibrido, poiché combina caratteristiche dei protocolli link state e distance
vector, in particolare fra le sue capacità si evidenziano:
Tutto questo ha come conseguenza una convergenza più veloce ed un'occupazione minore di banda.
Router
Caratteristiche
Il Router è un dispositivo che si colloca al livello tre (network) della pila ISO/OSI e può essere considerato sotto
certi aspetti simile ad un personal computer. Una sua architettura generica può essere così schematizzata:
Porte di Ingresso / Uscita (interfacce: 10 BaseT, seriale, AUI, ecc..)
Blocco che opera la commutazione: permette di collegare le porte di ingresso al router, con quelle di
uscita
Processore di instradamento: esegue il protocollo di routing, mantiene le tabelle di routing
Memoria : (ROM, RAM, Flash, NVRAM)
Sistema Operativo necessario per gestire il sistema
A differenza di un PC non ha la tastiera, il mouse e il monitor, viene quindi configurato attraverso un terminale,
mentre in maniera analoga al pc, un router viene inizializzato caricando il suo sistema operativo in memoria RAM
e leggendo poi i file di configurazione.
Funzionamento
Le sue funzioni principali sono:
Selezione del percorso: il router deve contenere certe informazioni nelle proprie tabelle di routing per
poter instradare i pacchetti verso le destinazioni desiderate.
Funzione di switching: consiste nel trasferire i dati provenienti da un interfaccia di ingresso verso
l'appropriata interfaccia di uscita.
5) FIREWALL
Che cos’è un firewall e come funziona
I firewall sono dispositivi software od hardware posti a protezione dei punti di interconnessione, eventualmente
esistenti, tra una rete privata interna (ad es. una Intranet) ed una rete pubblica esterna (ad. es. Internet) oppure
tra due reti differenti.
Usando una metafora è come se questi dispositivi rappresentassero i punti di una dogana: la loro funzione
principale è quella di agire come dei filtri controllando tutto il traffico di rete che proviene dall’esterno, nonché
quello che viene generato dall’interno, e permettendo soltanto quel traffico che risulta effettivamente
autorizzato.
Prima di addentrarci nel discorso è opportuno fare una breve premessa per ricordare i principi di funzionamento
sui quali si basa il TCP/IP (Transport Control Protocol/Internet Protocol) poiché questa diffusissima suite di
protocolli garantisce ormai la stragrande maggioranza dei servizi all’interno sia delle reti private che di quelle
pubbliche.
In un network basato sul TCP/IP ciascun sistema è identificato in modo univoco da un indirizzo IP, costituito da
quattro ottetti del tipo aaa.bbb.ccc.ddd, e comunica con altri sistemi scambiando messaggi sotto forma di
pacchetti, detti anche datagrammi, tramite un determinato protocollo.
In sostanza ogni forma di comunicazione tra i sistemi di un network di questo tipo presuppone l’esistenza di due
punti distinti ciascuno dei quali è rappresentato da un coppia univoca di elementi costituiti oltre che da un
indirizzo IP anche da una porta di comunicazione: l’indirizzo IP, analogamente ad un numero di telefono,
garantisce la possibilità di instaurare una comunicazione con un determinato sistema mentre la porta non è altro
che un numero che serve a differenziare il servizio di rete, cioè l’applicazione usata per la comunicazione stessa
(ad es. il servizio http ha tipicamente un numero di porta uguale ad 80, quello ftp la 21, ecc…).
Il meccanismo che sta alla base dell’intero scambio informativo è quello che permette l’instaurazione di una
connessione ed è chiamato three-way handshake termine che, tradotto letteralmente, significa “stretta di mano
a tre vie”: senza di esso nessun successivo flusso comunicativo potrebbe esistere tra due sistemi differenti.
Volendo ricorrere ad una metafora possiamo dire che la logica sulla quale si fonda questo meccanismo è molto
simile a quella delle raccomandate con ricevuta di ritorno (Figura seguente):
il client che intende connettersi ad un server invia a quest’ultimo un messaggio di sincronizzazione
attivo ed uno di conferma non attivo;
sull’altro capo della connessione il server risponde con un messaggio di conferma attivo ed uno di
sincronizzazione attivo;
infine il client risponde con un messaggio di conferma attivo ed uno di sincronizzazione non attivo;
Terminata l’ultima fase la connessione può dirsi instaurata mentre nel caso in cui il messaggio di conferma non
arriva entro un tempo stabilito si procede alla ritrasmissione.
Per poter agire come un filtro il firewall ha la necessità di analizzare tutti i pacchetti che lo attraversano in modo
da prendere una decisione conforme ad un set di regole definito dall’utente.
In linea generale queste regole sono specificate in modo da comportare l’accettazione od il blocco dei pacchetti
in transito sulla base di quelli che sono i loro elementi distintivi, vale a dire indirizzo IP e porta della sorgente
nonché indirizzo IP e porta della destinazione.
Tuttavia dal punto di vista del funzionamento interno i firewall possono essere ulteriormente distinti in due
gruppi separati:
firewall a filtraggio di pacchetti;
firewall a livello di circuito (proxy);
I primi sono i più comuni ed anche i meno costosi: essi esaminano le informazioni contenute nella intestazione
del pacchetto relativa al protocollo IP e le confrontano con il loro set di regole interno permettendone o
bloccandone il transito.
Il vantaggio di questi dispositivi, oltre al costo contenuto, è rappresentato dalla velocità mentre per converso i
punti deboli sono costituiti da una certa sensibilità verso determinati tipi di attacco come quelli basati sull’IP
spoofing.
Inoltre un altra vulnerabilità è data dal fatto che in questo caso sussiste una connessione diretta tra sorgente e
destinazione per cui, una volta che il firewall lascia transitare il pacchetto, esso non garantisce più alcuna
ulteriore difesa contro ogni successivo attacco portato in essere.
Al contrario i firewall a livello di circuito, molto più costosi, forniscono un livello di protezione più elevato poiché
esaminano non soltanto l’intestazione ma anche il contenuto dei pacchetti in transito.
Questo meccanismo di funzionamento viene anche detto “stateful packet inspection” proprio perché l’esame del
contenuto del datagramma è diretto a verificare lo stato della comunicazione in corso e, quindi, ad assicurare che
il sistema di destinazione abbia effettivamente richiesto la comunicazione stessa.
In questo modo c’è la garanzia che tutte le comunicazioni si svolgano soltanto con indirizzi sorgente
effettivamente conosciuti per effetto di precedenti interazioni.
Quando un PC accede ad Internet esso diventa, a tutti gli effetti e per tutta la durata del collegamento, un nodo
della rete.
Il sistema connesso, come del resto qualsiasi altro nodo, può esporre dei servizi di rete cioè delle applicazioni che
hanno delle funzionalità specifiche e che rimangono in ascolto su una porta determinata (ad es. un server ftp o
telnet od anche il classico servizio di condivisione dei file e delle stampanti di Windows).
In alcuni casi può capitare che questi servizi nascondano al loro interno delle vulnerabilità o, comunque, rendano
manifesti dei difetti di configurazione tali da poter essere sfruttati per guadagnare l’accesso non autorizzato ad
un sistema.
In genere prima di tentare una qualsiasi forma di intrusione un aggressore fa uso di un software specifico per
effettuare la scansione del target alla ricerca di eventuali porte in ascolto.
Una volta individuate queste porte è molto facile risalire al tipo di applicazione in esecuzione e, da qui, al genere
di problemi di sicurezza che affliggono l’applicazione stessa e, di conseguenza, diventa possibile sfruttare un
exploit (una tecnica di attacco particolare che si basa sulla presenza di vulnerabilità note) in modo da ottenere
l’accesso al sistema.
Naturalmente, nella realtà dei fatti, quasi mai le cose sono così semplici ma l’esempio è diretto a sottolineare un
dato di fatto di fondamentale importanza: l’uso di un firewall, in combinazione con altri strumenti, può
effettivamente garantire un livello di protezione discreto non soltanto contro i tentativi di sfruttare vulnerabilità
più o meno note di un servizio ma anche e soprattutto contro l’attività di scansione delle porte che normalmente
costituisce sempre il preludio di un attacco.
I firewall, come già accennato, non sono dispositivi “autonomi” nel senso che devono essere istruiti nel prendere
decisioni in merito alla ammissibilità del traffico in transito attraverso delle regole ben precise definite
dall’utente.
La predisposizione di questo set di regole può richiedere una fase di studio ed implementazione più o meno
lunga e laboriosa a seconda di quali siano effettivamente le esigenze di difesa che si pongono nel caso specifico
ma, in ogni caso, il fulcro dell’intero funzionamento di questi dispositivi sta proprio nella loro corretta
configurazione.
Essere in possesso del prodotto software più evoluto sul mercato non è di alcuna utilità se lo stesso prodotto non
può essere utilizzato nella pienezza delle sue funzionalità proprio a causa di una cattiva configurazione.
In questi casi anzi è molto meglio rinunciare all’utilizzo di un firewall perché lo stesso può ingenerare un falso
senso di sicurezza in chi lo utilizza.
I firewall che non hanno natura di dispositivi hardware sono delle vere e proprie applicazioni ed, in quanto tali,
possono essere affetti da imperfezioni così come qualsiasi altro prodotto di questo genere.
L’unica differenza con le applicazioni tradizionali è che in questi casi il firewall rappresenta l’ultimo baluardo di
difesa per cui se un aggressore riesce a superare questa barriera sfruttando una vulnerabilità specifica del
prodotto egli può avere pieno accesso al sistema protetto e compiere di conseguenza ogni tipo di attività.
Per evitare che ciò accada è assolutamente necessario applicare sempre tutte le patch rilasciate dal produttore
del software, anche quelle che non sono dirette a risolvere uno specifico problema di sicurezza, dal momento che
questa abitudine è in grado di migliorare non soltanto la longevità del prodotto ma anche la sua resistenza
intrinseca a forme di attacco più o meno note.
Un altra tipologia di prodotti è quella dei firewall a livello di applicazione: si tratta di dispositivi che “vedono” il
traffico passante non come una sequenza di pacchetti ma come un flusso di dati e verificano la legittimità delle
connessioni permettendo soltanto il tipo di traffico che risponde a delle funzionalità specifiche (ad es. l’accesso
alla rete Internet oppure lo scambio dei messaggi di posta elettronica).
In linea generale questa classe di prodotti è spesso rappresentata da sistemi con servizi di proxy che funzionano
agendo da tramite tra un client ed un qualsiasi server esterno.
In pratica il client invia la sua richiesta di connessione ad una rete esterna al server proxy il quale, dopo aver
verificato l’ammissibilità del traffico in base alle regole definite, la inoltra al sistema di destinazione.
Una volta ricevuta la risposta da parte del target essa viene reinoltrata al client che di conseguenza è sempre
nascosto e non instaura mai una connessione diretta con il sistema esterno.
I vantaggi derivanti da questo differente meccanismo di funzionamento sono principalmente costituiti da un
migliore controllo sui protocolli applicativi (vedi http, ftp, smtp, ecc..) dal momento che il software, se
opportunamente configurato, è in grado anche di riconoscere la presenza di vulnerabilità specifiche ed evitare di
conseguenza lo sfruttamento di exploit noti da parte di un aggressore.
Altri benefici sono inoltre costituiti dalla minore suscettibilità agli attacchi basati sulle tecniche di occultamento
dei dati all’interno del traffico legittimo (cd. tunneling), dalla possibilità di produrre log dettagliati ed, in alcuni
casi, dalla capacità di interfacciamento con altri sistemi (ad esempio gli IDS o sistemi di scoperta delle intrusioni)
con un conseguente miglioramento dei livelli di sicurezza complessivi.
Purtroppo invece, a causa della differente filosofia di progetto che sta alla base di questi prodotti, il rovescio
della medaglia consiste nella introduzione di una inevitabile lentezza nello smistamento del traffico di rete il che,
peraltro, rende questi dispositivi anche più esposti ad una certa tipologia di attacchi (vedi D.o.S o Denial of
Service).
In origine il NAT é nato per affrontare il problema dell’esaurimento degli indirizzi IP della rete pubblica,
massimizzando quindi l'uso degli indirizzi IP pubblici assegnati. La traduzione di un indirizzo IP, è una soluzione
che permette di utilizzare lo stesso indirizzo IP per l’accesso ad Internet di piú sottoreti interne all’organizzazione,
riducendo di conseguenza la necessitá di utilizzare degli indirizzi IP registrati. In sintesi il NAT compie la
traduzione degli Indirizzi IP Locali interni in Indirizzi IP Globali esterni e viceversa.
Inoltre la rete 127.0.0.0 (di classe A) è normalmente usata dai sistemi operativi Unix come rete di “loopback”, per
esempio il comando << ping 127.0.0.1 >> effettua un test sul funzionamento della rete ( e dei dispositivi di rete
locali all’host come la NIC card) senza utilizzare realmente la rete.
Traduzione statica
La Traduzione Statica avviene quando il gestore della rete configura manualmente sulla macchina abilitata ad
effettuare il NAT gli indirizzi in una tabella di NAT (NAT Table). Uno specifico indirizzo interno viene mappato uno
specifico indirizzo esterno e viceversa in modalitá uno-a-uno. Gli indirizzi interni ed esterni sono configurati
staticamente uno per uno.
Traduzione dinamica
La Traduzione Dinamica prevede che i router di confine NAT siano configurati con un elenco di indirizzi interni che
devono essere tradotti, e con un elenco di indirizzi pubblici detto “pool” che può essere utilizzato per assegnare
gli indirizzi esterni. Ci possono essere piú pool di indirizzi esterni. Quando un host interno accede alla rete
pubblica, viene allocato per la traduzione del suo indirizzo privato uno degli indirizzi del pool. Questi indirizzi poi
vengono disallocati (diciamo rilasciati) con un meccanismo di timeout. In questo modo piú host interni possono
condividere un singolo indirizzo IP esterno in momenti diversi. Questa procedura permette di sfruttare al
massimo lo spazio di indirizzamento pubblico.
Terminologia usata
Vediamo nel seguito la terminologia utilizzata nell’ambito del NAT:
Inside Local IP address – Si tratta degli indirizzi assegnati agli host della rete interna privata (STUB
network). Questi indirizzi sono di norma inseriti in una parte della tabella NAT e precisamente nella parte
riguardante la rete privata interna. Questi indirizzi sono unici all’interno della rete interna.
Inside Global IP address – Si tratta di un indirizzo IP che rappresenta in un certo momento uno o piú
indirizzi locali interni sulla rete pubblica. Questi indirizzi fanno parte della tabella NAT del router e piú
precisamente della colonna corrispondente agli indirizzi IP pubblici. Si tratta di un indirizzo pubblico assegnato da
uno spazio di indirizzi globalmente unico dal provider di servizi Internet (ISP).
Outside global IP address – Si tratta di un indirizzo IP che è stato assegnato ad un host sulla rete
Internet. É un indirizzo pubblico instradabile su Internet.
Simple translation – Traduzione semplice di un indirizzo IP verso un altro indirizzo IP (uno-a-uno).
Extended translation – Traduzione di tipo esteso. Ad una coppia composta da un indirizzo IP (inside
local) e da un numero di porta viene associato un altro indirizzo IP (inside global) e un altro numero di porta.
Questa modalitá serve come vedremo nel seguito ad effettuare il cosiddetto “overload”.
Il NAT basato unicamente sull’indirizzo IP non permette a differenti host privati di connettersi
contemporaneamente allo stesso host pubblico e viceversa.
Step 1: L’host A interno con IP 10.1.1.2 apre un collegamento verso l’host B esterno con IP 199.100.0.1.
Step 2: Viene inviato il primo pacchetto IP dall’host A 10.1.1.2, il router NAT di confine ricevuto il pacchetto IP lo
fa salire spacchettizzandolo lungo la pila OSI fino al livello tre, a questo punto il router legge l’indirizzo IP di
origine Source IP Address, questo impone al router di controllare la sua NAT table. Se viene trovata una
traduzione, cioè una corrispondenza tra ilSource IP Address (l’indirizzo IP Privato interno) ed un indirizzo IP nel
campo “Inside Local IP Address” della tabella di NAT si procede alla traduzione ovvero nel pacchetto IP viene
sostituito l’indirizzo IP nel campo Source IP Address con l’Inside Global IP Address corrispondente. A questo
punto viene ricalcolato l’header checksum e il pacchetto è poi fatto avanzare lungo la pila OSI verso il basso ed
inviato al buffer della porta di uscita del router, per essere poi spedito sulla rete pubblica verso la sua
destinazione con il suo nuovo Source IP Address.
Se non viene trovata nessuna traduzione staticamente assegnata, il router, che non può inviare all’esterno un
pacchetto IP con un indirizzo IP privato, “pesca” nel “pool di indirizzi pubblici” e assegna tra quelli disponibili nel
pool un nuovo indirizzoSource IP Address pubblico locale. Questo indirizzo viene usato per modificare il
campo Source IP Address in uscita, viene quindi ricalcolato l’header checksum. A questo punto il pacchetto viene
inviato verso il buffer di uscita verso la destinazione con il suo nuovo Source IP Address pubblico.
Step 3: Il router NAT di confine sostituito l’indirizzo IP privato 10.1.1.2 locale con l’indirizzo IP Globale pubblico
locale 198.168.2.2 manda avanti il pacchetto verso l’host B.
Step 4: L’host B riceve il pacchetto e risponde all’host A con un pacchetto IP che ha nel campo Destination
IP Address l’indirizzo IP Globale interno 198.168.2.2, che è l’indirizzo pubblico assegnato dal router NAT.
Step 5: Quando il router di confine riceve il pacchetto con l’indirizzo Destination IP Address Globale interno, il
router, lo fa salire spacchettizzandolo lungo la pila OSI fino al livello tre, a questo punto il router legge l’indirizzo
IP, compie un lookup nella NAT table trovando una corrispondenza con un indirizzo IP Privato locale interno.
Step 6: Il router effettua il NAT sostituendo nel pacchetto IP l’indirizzo IP nel campo Destination IP Address, viene
ricalcolato l’header checksum e fatto avanzare lungo la pila OSI verso il basso ed inviato al buffer della porta di
uscita del router e poi spedito sulla rete privata verso la sua destinazione, l’host A con il suo nuovo Destination
IP Address.
Questo è l’esempio della procedura standard che viene compiuta dalla traduzione NAT statica o NAT dinamica.
Il router NAT mantiene al suo interno una tabella di record con la corrispondenza tra l’indirizzo IP privato
sorgente della comunicazione e l’indirizzo IP pubblico di destinazione della comunicazione, questi record vengono
creati in modo dinamico ogni volta che un pacchetto verso una data destinazione attraversa il NAT. I record
vengono poi cancellati tramite un meccanismo di timeout.
Estensioni al NAT
Per superare il problema delle connessioni molti-a- uno del NAT sono stati introdotte due soluzioni
1. multi-address NAT
2. Port-mapped NAT (NAPT)
1. Nel multi-address NAT, al router NAT o meglio, alla porta pubblica del router NAT vengono assegnati più
indirizzi pubblici in maniera tale che il router possa distinguere le singole sessioni di trasmissione
identificate dall’indirizzo IP Pubblico con cui viene tradotto l’IP privato dal meccanismo di NAT. Il router
per distinguere i pacchetti IP destinati agli host privati interessati dalla comunicazione utilizzerà
l’indirizzo IP, nelle immagini ecco due host interessati a comunicare con un host esterno, il router NAT
traduce i due indirizzi interni con due differenti indirizzi IP globali .
In questo modo utilizzando nel lookup i vari indirizzi IP interni globali, il router riuscirà a distinguere i destinatari
dei pacchetti IP.
Ma questa soluzione ha anch’essa dei limiti. Il principale è che bisogna avere a disposizione più indirizzi IP
pubblici. Inoltre quando si raggiunge il limite degli indirizzi IP pubblici disponibili nel pool non è piú possibile
comunicare, nell’ambito di più sessioni, con lo stesso host finche non si libera un indirizzo.
2. Questi limiti vengono superati con il Port-mapped NAT (NAPT) che è una soluzione che usa una NAT
Table estesa cioè, viene sovraccaricata la NAT Table facendo comportare il router come un gateway di
livello 4 ovvero, nella NAT Table oltre a registrare gli indirizzi IP vengono registrati anche i protocolli
utilizzati (TCP/UDP) nella comunicazione e le relative porte.
Step 2: Viene spedito il primo pacchetto dall’host A 10.1.1.2, il router NAT di confine, ricevuto il pacchetto IP, lo
fa salire spacchettizzandolo lungo la pila OSI fino al livello tre, a questo punto il router legge l’indirizzo IP di
origine Source IP Address, questo impone al router di controllare la sua NAT table.
Se è abilitato il sovraccarico della NAT Table, ed un'altra traduzione è attiva cioè, esiste già una altra sessione di
comunicazione (sessione 1°) che utilizza lo stesso indirizzo IP Globale 198.168.2.2 , il router riutilizzerá lo stesso
indirizzo IP Globale 198.168.2.2 ma di questa nuova traduzione (sessione 2°) memorizzerá abbastanza
informazioni per poterla distinguere dall’altra traduzione attiva (sessione 1°).
Queste informazioni però non potrà ricavarle dal terzo livello della pila OSI dovrà fare avanzare il pacchetto lungo
la pila fino al quarto livello OSI. Il router a questo livello leggerà anche il segmento TCP o UDP leggendo e
modificando i campi SourcePort per i pacchetti in uscita e Destination Port per quelli in entrata e ricalcolando il
campo checksum. A questo punto il pacchetto così modificato viene fatto avanzare lungo la pila OSI verso il basso
ed inviato al buffer della porta di uscita del router per essere spedito sulla rete pubblica verso la sua destinazione
con il suo nuovo Source IP Address e la sua nuovaSource Port e il checksum ricalcolato. Questo tipo di entry nella
NAT Table è stata chiamata entry estesa. Cioè, viene usata una NAT Table estesa in cui, oltre agli indirizzi IP
vengono memorizzati anche i numeri di porta e il tipo di protocollo usato.
Step 3: Il router, sostituito l’indirizzo IP locale 10.1.1.2:1758 con un indirizzo IP Globale 198.168.2.2:1723, tenuto
conto del numero di porta, fa avanzare il pacchetto verso il suo destinatario 199.100.0.1:23.
Step 4: L’host B esterno ricevuto il pacchetto, risponde al nodo che usa l'indirizzo IP Globale interno
192.168.2.2:1723.
Step 5: Il router NAT riceve il pacchetto IP, lo fa salire spacchettizzandolo lungo la pila OSI fino al livello tre, a
questo punto il router legge l’indirizzo IP Destination IP Address 192.168.2.2:1723, questo impone al router di
controllare la sua NATtable.
La NAT Table, per questo indirizzo è sovraccaricata e per poter identificare il destinatario del pacchetto è
obbligato a fare avanzare il pacchetto lungo la pila fino al quarto livello OSI. Il Router a questo livello leggerà il
segmento TCP o UDP leggendo e modificando i campi Destination Port e Destination IP Address per i pacchetti in
entrata e ricalcolando il campo checksum. A questo punto il pacchetto così modificato viene fatto avanzare
lungo la pila OSI verso il basso ed inviato al buffer della porta di uscita del router per essere spedito sulla rete
privata verso la sua destinazione con il suo nuovo Destination IPAddress 10.1.1.2 e la sua nuova Destination Port
1758 e il checksum ricalcolato .
Step 6: L’host A 10.1.1.2 riceve il pacchetto sulla porta 1758 e continua la conversazione. Per ogni pacchetto, il
router compie tutto il percorso dallo Step 2 allo Step 5.
In pratica tra la rete LAN della sede centrale e la rete LAN della sede remota veniva stesa una linea di
collegamento fisica “point-to-point”. Ovvero veniva realizzato un collegamento WAN tra due sedi di tipo circuit
permanent. Un circuito che è una connessione fisica permanente “garantita sicura” tra due endpoint. Un
collegamento questo che aveva le caratteristiche di Sicurezza, Affidabilità e Riservatezza era cioè, un
collegamento a prova di intercettazione. Quando le sedi da mettere in comunicazione erano molte, significava
realizzare una completa rete WAN sicura, per collegare tutte le LAN remote, e dato che stendere e mantenere
una rete WAN per trasmissioni dati riservata, risultava, e risulta ancora, estremamente costoso, le società
tipicamente, noleggiavano dalle TelCo nazionali (che funzionavano come carrier) delle linee particolari (di tipo
circuit permanent o circuit swiching) che venivano chiamate affittate, dedicate o Private.
Lo scopo fondamentale di una rete Privata è quello di congiungere due reti sicure, due perimetri di sicurezza
attraverso un collegamento sicuro. Quando più LAN vengono messe in comunicazione attraverso una rete
Privata, un collegamento sicuro, esse diventano, di fatto, un unica rete privata, all’interno di un unico perimetro
di sicurezza.
Ogni rete per poter operare libera da pericoli esterni, ha bisogno di attivare un perimetro di sicurezza che spesso
coincide con l’estensione della singola LAN.
Possiamo affermare che tutto quello che si trova all’interno di questo perimetro è “Sicuro” (per definizione i
pericoli sono sempre esterni al perimetro). Anche il singolo PC di casa o il notebook ha il suo perimetro di
sicurezza che coincide con se stesso poiché, al suo interno vi sono dati e risorse che sono per noi importanti e che
necessitano di protezione.
La sicurezza di una rete Privata classica viene in pratica data dal suo “isolamento fisico” rispetto al resto del
mondo. La rete privata è una rete fisicamente separata dall’esterno. Addirittura, è possibile che su questa rete
privata possano essere utilizzate regole e protocolli completamente diversi da quelli delle normali reti
standardizzate. Ad esempio sulla rete ferroviaria si tiene la sinistra mentre sulla rete stradale pubblica è
obbligatorio tenere la destra.
ATTENZIONE: Attualmente, esistono delle tecnologie di intercettazione sia su cavi in rame che su fibra
estremamente sofisticate, che permettono di estrarre dati senza generare alcuna interferenza rilevabile. Queste
tecnologie, anche se, non sono alla portata di tutti, rendono le reti private tradizionali con trasmissione dei dati
in chiaro, estremamente carenti dal punto di vista della sicurezza.
Comunque, il più grave difetto di una linea privata rispetto ai vantaggi che offre è che ha alti costi. Costi che non
tutti si possono permettere, e comunque ancora, tutti vogliono avere a costi più bassi, la stessa connettività
sicura ed affidabile tra sedi distanti di una linea privata. E magari anche qualche vantaggio in più.
Internet
La rete attualmente più diffusa, pervasiva, adattabile ed economica esistente al mondo è Internet. Ovvero, la rete
che utilizza la suite di protocolli TCP/IP. Quando questo tipo di rete fu progettata non fu concepita per essere una
rete sicura. Internet è una rete Pubblicaperché chiunque può accedervi. Chiunque abbia i mezzi e le conoscenze
adatte può intercettare e leggere i dati che vi vengono trasmessi sopra. Inoltre, questo tipo di rete (Internet)
distrugge alla base il 1° principio della sicurezza perché con essa ogni potenziale attaccante è praticamente
“Adiacente”. Questo rende la difesa di una rete informatica un concetto fortemente squilibrato, “Asimmetrico”
dove l’utente collegato in rete si trova nella condizione di essere “solo contro tutti”; dove tutti possono
potenzialmente mettere in essere un attacco. Per trasmettere in sicurezza i dati non sembrerebbe essere questa
il tipo di rete più adatta. Invece, proprio questo tipo di rete insicura può essere utilizzata per la trasmissione dei
dati in tutta sicurezza.
La soluzione
La soluzione, è quella di rendere sicura ed affidabile la trasmissione dei dati su una rete insicura, realizzando delle
VPN (Virtual Private Network) cioè, delle Reti che sono Private in maniera Virtuale. Il termine “Virtuale” indica
che, si sfrutta una infrastruttura di rete insicura come Internet per realizzare dei collegamenti fra gli utenti, che
con degli accorgimenti particolari vengono resi, Privati, Sicuri e soprattutto “logicamente separati" dal resto di
Internet come se si trattasse di una linea riservata. Questo a costi notevolmente più bassi di una linea affittata. E
con il vantaggio di poter realizzare una rete “Privata” non solo tra sedi fisse.
Definizione di VPN
Una VPN è un servizio di comunicazione “logico” sicuro e affidabile fra due o più apparecchiature realizzata sopra
una infrastruttura di rete pubblica potenzialmente non sicura come Internet.
Per rafforzare la privacy, le VPN impiegano protocolli di tunneling e una cifratura avanzata per offrire una
barriera protettiva attorno ai dati originali prima che vengano spediti sopra un'infrastruttura potenzialmente
pericolosa.
Principalmente le VPN svolgono tre funzioni critiche per la sicurezza delle informazioni e cioè :
Confidentiality (encryption) of information – La riservatezza delle informazioni mediante
cifratura - Il mittente può cifrare i pacchetti dei dati prima di trasmetterli attraverso la rete. Così
facendo, nessuno può accedere alla comunicazione senza autorizzazione. E se vengono intercettate,
le comunicazioni non possono essere lette e comprese.
Data integrity – L'integrità dei dati - Il ricevente può verificare con dei meccanismi di hashing (di
firma elettronica dei dati) che i dati sono stati trasmessi attraverso Internet senza essere stati
alterati.
Origin authentication – L'autenticazione della origine - Il ricevente può autenticare la sorgente del
pacchetto, garantendo e certificando dopo la verifica la sorgente delle informazioni. Questo
permette un accesso remoto sicuro. L’autenticazione può essere ulteriormente distinta in:
· Device authentication
· User authentication
Secondariamente le VPN :
Riducono i costi - le VPN riducono in maniera profonda i costi di mantenimento di una rete sicura
perché usano Internet come infrastruttura di collegamento site-to-site di accesso remoto. Dato la
crescente diffusione dell’accesso ad Internet a banda larga, ad alta velocità e a costi ragionevoli.
Questo garantisce basse spese di installazione, basse spese di gestione e un veloce ROI (ritorno
degli investimenti).
Migliorano le comunicazioni – con le VPN, gli utenti remoti (sedi distaccate, road warriors,
telelavoratori, clienti, fornitori e partner negli affari) si possono connettere in sicurezza da
qualunque posto e in ogni tempo 24 ore su 24 alle risorse della rete sicura o tra di loro.
Sono Flessibili e Scalabili – le VPN hanno una flessibilità e una capacità di scalare che le linee
affittate non hanno. L’implementazione di una VPN semplifica e centralizza l’amministrazione delle
reti. Una infrastruttura di VPN può adattarsi con facilità alle necessità di cambiamento delle reti.
Sono Sicure ed Affidabili – la sicurezza è un concetto intrinseco in una VPN, poiché le VPN
utilizzano protocolli di tunneling e una cifratura avanzata. L’affidabilità viene data dal numero
ridotto di punti di entrata, in pratica, ha un punto di entrata ed un punto di uscita ovvero, hanno
una topologia a tunnel, punto-a-punto e quindi estremamente semplice.
Sono Indipendenti dagli standard tecnologici – dei primi due livelli dalla pila OSI. Questo
garantisce che una rete non sia vulnerabile alle caratteristiche di debolezza (insicurezza) dei primi
due livelli.
Comunque, è importante che la tecnologia che si usa per realizzare una VPN sia ben implementata e sia parte di
una infrastruttura di sicurezza competente. Che abbia una “politica di sicurezza” adeguata. La sicurezza di una
rete può essere compromessa se, durante la implementazione si lasciano delle falle nel perimetro di sicurezza
che possono essere sfruttate e possono permettere un libero accesso ai dati e alle risorse interne da parte di un
attaccante.
In altre parole la VPN ben implementata garantisce la sicurezza dei dati dall’interfaccia d’entrata fino
all’interfaccia di uscita. Quello che c’è prima e dopo la VPN sono un’altra faccenda.
Una rete Virtuale viene costruita attraverso l’uso di protocolli multipli di tunnel su un collegamento IP standard
cioè, viene utilizzato un protocollo che crea un tunnel tra la sorgente e la destinazione dei dati.
Una rete Privata è una rete che assicura Riservatezza, Integrità e Autenticazione (Confidentiality, Integrity and
Authentication) ai dati trasmessi.
Il Tunneling
La VPN usa il concetto di Tunneling per creare una rete privata attraverso Internet. Concettualmente, è come se
un tunnel sicuro venisse costruito tra due apparecchiature finali abilitate a realizzare VPN end-to-end.
I dati possono essere spediti dall’origine verso la fine del tunnel, avendo la certezza che arriveranno alla fine del
tunnel.
Tecnicamente, però non esiste nessun tunnel ed il processo non assomiglia ad un tunnel, ma il
termine "Tunneling" è la descrizione del risultato finale della trasmissione dei dati.
Dati che sono capaci di passare attraverso un ambiente non-sicuro senza doversi preoccupare di chi possa
intercettare, dirottare, o manipolare i dati.
Il Tunneling quindi è un processo “logico” di collegamento punto-a-punto attraverso una rete IP connectionless
(senza connessioni).
I due punti finali del tunnel, le due interfacce, anche se sono distanti e collegati da molti nodi, diventano per un
processo logico adiacenti.
Il Tunneling compie un incapsulamento di multiprotocollo dei dati.
Questo termine significa che i pacchetti di dati, anche se sono di protocolli differenti ad esempio: DECnet,
Appletalk, IP privato (non instradabile), IP globale unico, IPX, NetBeui una volta giunti davanti l’entrata del tunnel
(interfaccia d’entrata del tunnel), dal protocollo di tunneling (GRE, L2TP, IPsec) vengono imbustati nuovamente
all'interno di un secondo pacchetto IP e vengono spediti sulla rete con un nuovo header IP e così trasportati verso
la fine del tunnel (interfaccia d’uscita del tunnel).
Una volta giunti alla fine del tunnel vengono spogliati dell’imbustamento supplementare aggiunto dal protocollo
di tunnel e instradato verso la sua destinazione.
Essenzialmente, il tunneling è un processo che incapsula il pacchetto di dati all’interno di un altro pacchetto che
viene spedito sulla rete.
Ovvero, i dati vengono imbustati due volte per far si che essi siano trasmessi solamente ai destinatari finali
autorizzati.
La Cifratura
La Cifratura assicura che i messaggi non possano essere letti da nessuno oltre il destinatario intenzionale. La
riservatezza delle informazioni viene garantita da una cifratura robusta. La Cifratura trasforma quindi le
informazioni in chiaro (cleartext) mediante uno scrambling digitale in un ciphertext che è incomprensibile nella
sua forma codificata per chi non è autorizzato. La funzione di decifratura ripristina di nuovo il ciphertext in
informazioni comprensibili per il destinatario (cleartext).
Una rete privata virtuale in sintesi, viene realizzata sfruttando le capacità che hanno alcuni protocolli di fare
“tunneling” cioè, la capacità di incapsulare i pacchetti di differenti protocolli (multipli) all’interno di un pacchetto
IP e di trasmetterlo su un collegamento IP standard. Alcuni di questi protocolli sono il GRE (Generic Routing
Encapsulation), L2TP (Layer 2 Tunneling Protocol) e IPsec (IP security). Il terzo protocollo, IPsec (IP security) è
attualmente la tecnologia più sicura per realizzare VPN. E realizza sia il tunneling che la cifratura.
Tipologie di VPN
Scenari di uso delle VPN
La crescita dell’economia, legata alle tecnologie informatiche, supportate da reti sicure, ha definito in forma
nuova il modo di lavorare e di concepire lo spazio. Questo è dovuto alla straordinaria potenza rivoluzionaria di
sovvertire lo spazio che ha Internet. Mentre in precedenza, le funzioni e le mansioni lavorative venivano definite
dal luogo fisico in cui ci si trovava, adesso, nella economia inter-connessa o meglio, nella cyber-economia che
rende gli antipodi geografici adiacenti, i concetti spaziali prendono un nuovo significato anzi, prescinde dai luoghi
fisici, e il personale viene definito da come compie le sue funzioni di lavoro.
Gli sviluppi della cyber-economia oltre ad aumentare la produttività e la redditività ha creato anche nuove
richieste alle reti. In particolare, mentre in passato venivano realizzate delle reti sicure che, si focalizzavano nel
connettere luoghi fissi come gli uffici principali, con gli uffici di ramo, e gli uffici regionali. Adesso questo non è più
un tipo di connettività sufficiente per l’economia di molte imprese, e comunque per le imprese del futuro.
Le imprese adesso, hanno bisogno di un nuovo tipo di connettività che continui a preservare il perimetro di
sicurezza ma, che consenta di effettuare collegamenti business-to-business in un tipo di rete che abbia le
caratteristiche di scalabilità e mobilità e che sia possibile aggiungerla ai collegamenti di rete tradizionali.
Le VPN offrono il servizio di collegare in sicurezza diversi utenti remoti cioè, utenti che si trovano al di fuori del
classico perimetro di sicurezza aziendale, e che hanno essi stessi un proprio perimetro di sicurezza, come i
telelavoratori, i lavoratori mobili (Road warrior), i clienti, i partner d’affari che necessitano di accedere alle risorse
interne della rete sicura o tra di loro. Questo, crea un nuovo tipo di rete virtualmente privata, che permette di
collegare i vari perimetri di sicurezza per mezzo di una infrastruttura di rete insicura (Internet) senza timore che
le comunicazioni possano essere intercettate.
Per questo tipo di accesso, si possono utilizzare come infrastruttura portante, dei flessibili ed economici
collegamenti dial-up, per mezzo del più vicino Internet Service Provider. I collegamenti agli ISP forniscono la
connettività ad Internet, che è la struttura sottostante alle VPN. Il classico perimetro di sicurezza delle reti pur
mantenendo il proprio livello di sicurezza, diviene elastico e flessibile, estendendosi e contraendosi in base alle
esigenze, inglobando secondo le necessità al suo interno, le entità che hanno diritto ad accedervi. È sufficiente
che si sia collegati ad Internet, da qualunque luogo gli utenti si trovino, per avere un collegamento sicuro come
quello di una rete privata classica, anche se virtuale, tra due perimetri sicurezza.
Per ottenere questo risultato, i vari utenti remoti debbono essere abilitati a realizzare delle VPN. Infatti, le Virtual
Private Network possono essere messe su (settate) in poco tempo e impiegate ovunque vi siano apparecchiature
abilitate a realizzarle come: computers con installato un software client VPN, routers abilitati a fare delle VPN,
firewalls VPN, o concentratori VPN dedicati.
VPN TIPOLOGIE
Le reti VPN possono essere descritte in base all’utilizzo e in base alle tipologie.
Per l’utilizzo, con differenti tipi di apparecchiature di rete è possibile creare differenti modelli di VPN:
Da security gateway a security gateway. Questo connette due reti stabilendo una connessione
VPN tra due security gateway. Questa VPN protegge le comunicazioni solamente tra i due security
gateway.
Da un host verso un security gateway. Questo connette host su varie reti esterne con host che si
trovano all’interno del perimetro di sicurezza aziendale, realizzando delle VPN individuali
attraverso il security gateway. Questa VPN protegge la connessione tra l’host e il security gateway.
Da host a host. Questo permette di connettere singoli host attraverso una connessione VPN
software.
rete. Questa è una rete molto diffusa perché più flessibile e meno costosa di una connessione
tradizionale da ufficio remoto, come possono essere le reti a pacchetto switchate come il Frame
Relay e ATM, e i collegamenti di linee affittate.
Una Extranet VPN site-to-site è una infrastruttura che fornisce un collegamento ai clienti esterni,
fornitori, partner di affari o ad altre reti verso la rete della sede centrale su una infrastruttura
pubblica condivisa come Internet utilizzando i tunnel VPN. Le VPN extranet sono diverse dalle VPN
intranet, perché consentono l’accesso a delle risorse interne della rete agli utenti che si trovano al di
fuori dell’azienda. Quindi nella extranet le risorse messe a disposizione degli utenti esterni sono
limitate. Questo permette di condividere delle risorse interne con l’esterno. Nel consentire l’accesso
alla rete interna da parte degli utenti della extranet i diritti di accesso devono essere ben definiti
nella politica di sicurezza.
Le VPN site-to-site possono essere usate per connettere in sicurezza sedi aziendali fisse distanti. In passato,
venivano usate per connettere questi luoghi delle linee affittate in genere con tecnologia Frame Relay o ATM,
sostituite attualmente con i molto più economici collegamenti VPN end-to-end che viaggiano su Internet.
sottostante. In ricezione i dati vengono deincapsulati e inviati al livello superiore. I sette livelli OSI e i quattro
livelli del TCP/IP, dal più alto al più basso, sono mostrati nella figura sotto.
I controlli di sicurezza esistono per le comunicazioni di rete ad ogni livello dei modelli OSI o TCP/IP. Come prima
spiegato, i dati in trasmissione sono passati dal livello più alto al livello più basso, con ogni livello che aggiunge
ulteriori informazioni. A causa di questo, un controllo di sicurezza ad un livello più alto non può offrire una piena
protezione per i livelli più bassi, perché i livelli più bassi compiono funzioni delle quali i livelli più alti non sono
consapevoli.
protocollo e offrendo in più tutta una serie di tunneling sicuri con un assortimento di metodi di
autenticazione.
S/MIME (Secure/Multipurpose Internet Mail Extensions) è un protocollo standardizzato da IETF prima
nella RFC 1521 per i messaggi MIME (Mechanisms for Specifying and Describing the Format of Internet
Message Bodies) che specifica come devono essere trasferiti i dati multimediali e gli allegati e-mail, poi
con l’aggiunta di cifratura e firma elettronica (SECURE) per migliorare la sicurezza per applicazioni VPN
generate dai componenti di un sistema di comunicazione.
Comunque, la sicurezza realizzata a livello Application è di ogni specifica applicazione che deve essere ben
progettata e correttamente implementata. I metodi di protezione, i controlli di sicurezza richiedono di essere
implementati in ogni nuova applicazione. I controlli a livello Application possono proteggere i dati di livello
applicativo ma, non possono proteggere le informazioni di livello più basso.
Attualmente molte applicazioni supportano i protocolli SSL e TLS per realizzare la sicurezza delle trasmissioni
(VPN). Soluzioni di VPN queste che stanno avendo molto successo e diffusione in Internet. Le differenze tra questi
due protocolli sono dovute soprattutto agli algoritmi crittografici utilizzati. Un limite di questi protocolli è la
incapacità di proteggere comunicazioni differenti da quelle basate sul TCP, perché presume che il protocollo di
livello rete stia assicurando l'affidabilità del trasporto (connection-oriented) con ritrasmissione del pacchetto in
caso di perdita o ritardo.
Il vantaggio di questa soluzione è la velocità. Gli svantaggi tuttavia sono che questa soluzione non è scalabile, e
lavora bene solamente su collegamenti dedicati, è costosa da schierare su grande scala perché bisogna
proteggere separatamente ogni singolo collegamento. Inoltre le due entità coinvolte nella comunicazione devono
essere connesse fisicamente. Può lasciare spazio ad attacchi man-in-the-middle su stazioni intermedie o routers,
ed è di solito una soluzione proprietaria.
Questo tipo di protezione è utile ad esempio nelle macchine bancomat (ATM) dove tutte le macchine sono
connesse attraverso collegamenti dedicati verso un ufficio centrale. Se i bancomat fossero connessi ad una rete
IP invece dei più costosi collegamenti dedicati sicuri, la sicurezza a livello di collegamento dati non basterebbe, e
si dovrebbe trasportare la sicurezza ad un livello superiore per offrire dei servizi di sicurezza affidabili
Un altro vantaggio di implementare la sicurezza a livello rete è che le informazioni di questo livello (ad esempio,
gli indirizzi IP) sono aggiunti in questo livello, e i meccanismi di sicurezza possono proteggere sia i dati all'interno
dei pacchetti (payload) che e le informazioni di IP (header).
Un limite di implementare la sicurezza al livello rete è la difficoltà che ha questo livello nell'occuparsi di problemi
che riguardano i livelli superiori come la non-repudiation dei dati. Questo viene gestito meglio nei livelli più alti
che sono dotati di maggiore intelligenza.
IPsec (IP Security), offre la sicurezza al livello rete. IPsec è attualmente l'unico protocollo che può assicurare tutti i
tipi di traffico Internet.
In questi casi, il pacchetto tunnelizzato con questi protocolli (GRE, L2TP) non fornisce vera riservatezza ai dati, in
quanto privi di protezione crittografica ma, per ottenere la cifratura e l’integrità del pacchetto è possibile
trasportare i pacchetti cifrati da un altro protocollo, IPsec appunto. IPsec viene usato in combinazione con questi
due protocolli di tunneling per cifrare i dati prima che vengano immessi nel tunnel e decifrati alla sua uscita.
Avremo quindi dei tunnel L2TP/IPsec o GRE/IPsec.
Il protocollo IP security (IPsec)
IPsec è un protocollo o meglio un framework (una struttura) di protocolli ideato e progettato dall’IETF durante lo
sviluppo dello standard IPv6 ed in seguito inserito nell’IPv4. Attualmente IPsec è lo Standard IETF per la cifratura
e il tunneling di livello 3. L'architettura di IPsec viene descritta nella attuale terza versione delle RFC riguardanti
IPsec la RFC 4301. IPsec ed è attualmente la scelta migliore per realizzare delle VPN sicure. IPsec non è un singolo
protocollo ma è una struttura/framework di standard aperti che offrono i servizi di Riservatezza, Integrità,
Autenticazione dei dati tra sender e receiver (pari partecipanti). In base alle necessità del traffico che deve
essere trasmesso su una rete bisogna selezionare i migliori protocolli per realizzare una VPN.
IPsec offre questi servizi di sicurezza usando il protocollo Internet Key Exchange (IKE) per gestire la negoziazione
di protocolli ed algoritmi basata su una politica di sicurezza locale per generare la cifratura e l'autenticazione
adatta ad essere usata da IPsec.
Il diagramma di flusso seguente mostra un processo per selezionare un protocollo di tunnelling adatto a
realizzare una VPN in base al tipo di traffico di dati.
autenticazioni degli utenti; sulle diagnosi dei problemi. Quesiti questi, che possono annullare la protezione al
traffico fornita da IPsec.
Al momento i ricercatori della IETF con il Multicast Security Working Group (MSEC) e della IRTF con il Group
Security Research (GSEC) stanno studiando soluzioni fattibili per poter estendere IPsec così da poter supportare il
traffico multicast, almeno per piccoli gruppi senza dover perdere i suoi metodi di autenticazione.
Certificate of Authority (CA) service –Una Certificate Autority è una parte terza agli utenti che
offre un servizio che serve a creare e garantire “fiducia” fra le entità di rete o gli utenti creando ed
assegnando certificati digitali, come certificati a chiave pubblica, per scopi di cifratura. Una CA
attesta, garantisce sulla autenticità dei dati del certificato. La CA a richiesta può creare le chiavi di
cifratura per gli utenti.
Analisi del Traffico – L'analisi del flusso di traffico di una rete o di un collegamento viene fatta allo
scopo di ricavare informazioni che possono essere utili per un attaccante. Esempi di informazioni
che sono ricavabili da un monitoraggio su una rete sono la frequenza di trasmissione, le identità dei
pari comunicanti, la grandezza dei pacchetti e l’identificazione del flusso.
I termini seguenti definiscono protocolli chiave e gli elementi che compongono IPsec:
Authentication Header (AH) –È un protocollo di sicurezza che offre l’autenticazione dei dati,
l'integrità dei dati, e opzionalmente un servizio anti-ripetizione. AH viene inserito all’interno dei
dati per essere protetto.
ncapsulating Security Payload. (ESP) – È un protocollo di sicurezza che fornisce i servizi
di riservatezza dei dati, integrità dei dati, l'autenticazione dell’origine dei dati, offre anche
opzionalmente il servizio anti-ripetizione. ESP viene incapsulato nei dati per essere protetto.
Internet Key Exchange (IKE) –È un protocollo ibrido che implementa parte dei protocolli Oakley
(Oakley key exchange) e la suite di protocolli Skeme (Skeme key exchange) nella struttura di
ISAKMP (Internet Security Association Key Management Protocol). L’Oakley e SKEME ognuno dei
quali definisce un metodo per stabilire uno scambio di chiave autenticato. Questo include la
costruzione del payload, i payload delle informazioni trasportate, l'ordine nel quale sono trattate le
chiavi e come le chiavi sono usate.
Internet Security Association and Key Management Protocol (ISAKMP) –. È una struttura di
protocollo per la negoziazione dei parametri di sicurezza che definisce il formato del payload, le
meccaniche di implementare un protocollo di scambio di chiave, il tipo di crittografia, e la
negoziazione di una SA (Security Association).
Diffie-Hellman Group – È un valore che specifica il tipo di generatore di cifratura (modulus per
[MODP] e curva ellittica per [EC2N]) e la lunghezza della chiave da essere usata per generare un
segreto condiviso. Attualmente sono definiti 10 gruppi. La RFC 2409 definisce i gruppi da 1 a 4.
La RFC 3526, definisce il gruppo 5 e i gruppi da 14 a 18.
Security Association (SA) –È un insieme di parametri che viene usato per mettere su una
connessione logica di tipo simplex (uni-direzionale) per proteggere le informazioni. Tutto il traffico
dei dati che viene fatto passare attraverso una SA tra due pari che si accordano per condividere le
stesse politiche di sicurezza e le chiavi per proteggere le loro comunicazioni.
Security Association Database (SADB) – è un database dove vengono raccolte tutte le Security
Association attive.
Security Policy (SP) – È un elenco di politiche di sicurezza che devono essere applicate.
Security Policy Database (SPDB) – è un database dove vengono raccolte tutte le Security Policy
attive.
Peer Authorization Database (PADB) – è un database che fornisce i collegamenti tra il database
SPDB e un protocollo di gestione delle Security Association come IKE.
Authentication, Authorization, Accounting (AAA) – I servizi di sicurezza di rete che offrono la
struttura primaria che realizzano le tre funzioni di Autenticazione (authentication), il controllo
degli accessi (authorization) e l’(accounting) è settato su routers o su server di
accesso. L'espressione "protocollo AAA" non si riferisce ad un particolare protocollo ma a una
famiglia di protocolli che offrono, anche in modi diversi, i servizi citati. I servizi offerti da AAA sono
specificati nelle RFC 2903, 2904, 2905, 2906, 3539. Le due maggiori alternative per l’AAA sono
TACACS+ e Radius.
Terminal Access Controller Access Control System Plus (TACACS+) – Una applicazione
di sicurezza che offre la conferma centralizzata agli utenti che tentano di guadagnare l’accesso ad
un router o al server di accesso alla rete. TACACS+ è un protocollo che fornisce il controllo di
accesso per routers, NAS (network access servers) e altre apparecchiature di rete attraverso un
server centralizzato. TACACS+ fornisce dei servizi separati di Authentication, Authorization e
Accounting. TACACS+ è un protocollo proprietario CISCO.
Remote Authentication Dial-In User Service (RADIUS) – Un sistema client/server distribuito che
garantisce le reti contro gli accessi non autorizzati. RADIUS è un protocollo che viene usato da
applicazioni per ottenere l’autenticazione e l’accesso a reti sia in da locale che da roaming. Viene
specificato nelle RFC 2865, 2866.
Nonces – Un nonce è l’acronimo di “number used once” cioè, un numero usato una sola volta. Un
nonce è di solito un valore casuale o pseudo-casuale che viene usato come imput in molti tipi di
calcoli crittografici, incluso il supporto per l'integrità della negoziazione. Per esempio, host A invia
un nonce all’host B. l’host B compie i calcoli e invia i risultati all’host A; l’host A poi usa l’originale
valore nonce per con-validare il risultato dell’host B. Nonces sono valori che vengono anche usati
per garantire dagli attacchi di ripetizione e assicura che ogni scambio di pacchetti sia nuovo,
piuttosto che una ripetizione di uno scambio di pacchetto precedente e/o artefatto. Un nonce è un
valore che viene usato negli algoritmi a crittografia simmetrica in modalità CBC, modalità questa
che richiede appunto un valore casuale per sincronizzare i vari blocchi di cifratura chiamato IV
(Initial Value). Un nonce crittograficamente sicuro viene generato da un CSPRNG o da un generatore
Hardware sicuro di numeri pseudo-casuali.
IP Payload Compression Protocol (IPComp) – il protocollo IPComp (RFC 3173) compie una
compressione del pacchetto senza perdite per il payload.
Tipi di cifratura
La cifratura dei dati è una operazione two-way. Cioè, i dati in chiaro possono essere trasformati mediante uno
scrambling digitale in un testo cifrato. Questa operazione di scrambling digitale può essere invertita restituendo il
testo in chiaro originale. Il processo di cifratura/decifratura si avvale durante la sua elaborazione di alcune
particolari stringhe di dati chiamate chiavi che vengono combinate con i dati durante un procedimento
chiamato algoritmo di cifratura. Le chiavi sono delle stringhe di numeri binari che rispettano alcuni principi
matematici molto rigidi. Queste chiavi regolano il processo di funzionamento dell’algoritmo di cifratura. In base
al tipo di chiave utilizzata la cifratura viene distinta in :
Cifratura Simmetrica
Cifratura Asimmetrica
La cifratura Simmetrica
La figura sotto è una rappresentazione del funzionamento della cifratura simmetrica che è anche nota come
cifratura a chiave segreta. In questo tipo di cifratura i due utenti origine e destinazione sono entrambi in possesso
della stessa chiave di cifratura che serve sia a cifrare che a decifrare. La cifratura simmetrica si usa per grandi
volumi di dati. Durante la fase di scambio dei dati, le chiavi possono cambiare molte volte.
La cifratura simmetrica è estesamente usata in informatica poiché ha un relativamente basso carico di lavoro
sulla CPU.
La cifratura Stream
Quando bisogna cifrare uno Stream di dati, avviene che all’algoritmo di cifratura arriva un flusso di dati, uno
stream di dati appunto. L’algoritmo di cifratura stream una volta inizializzato con una chiave, genera
dinamicamente per ogni bit del flusso entrante da cifrare, la chiave di cifratura, che viene chiamata “key-stream”.
A questo punto i bit del flusso verranno cifrati un bit alla volta. Questo tipo di crittografia si offre per la cifratura
di grandi quantità di dati.
La cifratura a blocchi
Quando bisogna cifrare dei dati questi, vengono divisi in piccoli blocchi di lunghezza definita. Su questi blocchi
vengono effettuate una serie di operazioni crittografiche chiamate “round” con l’ausilio di blocchi di chiavi
crittografiche. In genere, la lunghezza dei blocchi di chiavi hanno la stessa lunghezza dei blocchi di dati ma,
possono essere più lunghe.
La cifratura a blocchi può essere eseguita in cinque modalità:
ECB (Electronic Code Book) – In questa modalità ogni blocco è cifrato in modo indipendente dagli altri blocchi.
CBC (Cipher Block Chaining) – In questa modalità ogni blocco viene sincronizzato dall’algoritmo di cifratura con il
blocco precedente, il primo blocco ha un IV (Initial Value) noto come (self-synchronizing) valore questo che viene
ottenuto da un particolare generatore di numeri casuali crittograficamente sicuro il CSPRNG (Cryptographically
Secure Pseudo-Random Number Generator). Non è necessario che gli IV (Initial Value) siano segreti, ma devono
essere impredicibili.
CFB (Cipher FeedBack) – In questa modalità viene generato in interazione con un IV (Initial Value) un blocco
keystream che viene utilizzato per trattare in XOR (OR esclusivo) il blocco di dati in chiaro per realizzare il
Ciphertext.
OFB (Output FeedBack) – In questa modalità che ha delle similarità con il Cipher FeedBack e permette la cifratura
di blocchi di grandezza differenti, con la differenza che l’output della funzione di blocco di cifratura è il FeedBack
(invece del ciphertext). La cifratura viene realizzata trattando in XOR (OR esclusivo) ogni blocco di plaintext per
realizzare il Ciphertext. Per questa modalità viene generato un vettore di inizializzazione IV (Initial Value).
CTR (Counter) – In questa modalità la Cifratura dei blocchi viene implementata attraverso un set di imput di
blocchi, chiamati contatori. Questi contatori producono una sequenza di blocchi che sono un OR esclusivo con il
plaintext da cui si ricava il ciphertext, questa operazione è invertibile. La sequenza di contatori devono avere la
proprietà che ogni blocco nella sequenza sia diverso da ogni altro blocco. Se vi sono più messaggi cifrati dalla
stessa chiave, i contatori devono essere differenti.
In IPsec gli algoritmi di crittografia simmetrica utilizzati vengono eseguiti in modalità CBC.
Il DES
Il DES (Digital Encryption Standard) è uno degli standard di cifratura simmetrici tra i più estesamente usati,
almeno fino a qualche anno fa. Il DES traduce un testo chiaro in un testo cifrato usando un algoritmo di cifratura.
L'algoritmo di decifratura sulla fine remota ripristina il testo in chiaro da un ciphertext. Le Chiavi abilitano la
cifratura e la decifratura.
Il DES opera su blocchi di dati da 64-bit. L'algoritmo usa una serie di passi per trasformare degli blocchi di imput
da 64-bit in blocchi di output da 64-bit. Nella sua forma standard, l'algoritmo usa chiavi da 64-bit dai quali sono
scelte casualmente 56-bit. Il rimanenti 8-bit sono bit di parità, uno per ciascun blocco di 7-bit dei 56-bit scelti
casualmente. Siccome vengono usati in una chiave DES 56-bit, per trovare con un metodo a forza bruta ovvero,
con un metodo che prova tutte le chiavi possibili una a una, fino a trovare la chiave giusta occorrerebbero 2 alla
56 tentativi per trovare la chiave segreta di cifratura. Il numero esatto di tentativi è 2 alla 55. Ovvero il DES
darebbe luogo ad uno spazio delle chiavi di settantadue milioni di miliardi di combinazioni
(72.057.594.037.927.936). Il DES fino al 1998 era lo schema di cifratura simmetrico più estesamente usato. In
seguito ad una sfida scientifica internazionale indetta dalla RSA l’algoritmo DES venne craccato dalla EFF
(Electronic Frontier Foundation) che finanziò, coordinò e costruì una macchina apposita il DES Cracker, finalizzato
a decriptare a forza bruta il DES. Attualmente il DES non viene più utilizzato.
3DES
Ritenendo la lunghezza delle chiavi del DES troppo corta e quindi considerandolo insicuro sono stati progettati
diversi altri algoritmi tra cui il 3DES. Il 3DES (Triple DES) è un algoritmo che preserva l'investimento esistente in
software fatto per implementare il DES ma rende più difficile gli attacchi a brute-force. Questo algoritmo
sviluppato a partire dal DES con struttura a rete di Feistel è molto più robusto del suo predecessore e raddoppia
effettivamente la sua robustezza.
Il 3DES prende un blocco di dati da 64-bit dai quali sono scelti casualmente 56-bit. Il rimanenti 8-bits sono bit di
parità, uno per ciascun blocco di 7-bit dei 56-bit scelti casualmente e compie su questi blocchi di dati per tre volte
di seguito l’operazione di cifratura con due o tre chiavi differenti a 56 bit, operazione questa chiamata “tecnica
EDE (Encryption Decryption Encryption)” (nel caso di due chiavi differenti la prima e l’ultima operazione
utilizzeranno la stessa chiave. Nel caso si usino tre chiavi differenti ogni operazione sul blocco userà una chiave
differente) che rende effettivamente la chiave di cifratura di 168 bit e aumentando enormemente lo spazio di
combinazioni delle chiavi.
Siccome vengono usati in una chiave 3DES 168-bit, per trovare con un metodo a forza bruta la giusta chiave
ovvero, con un metodo che prova tutte le chiavi possibili una a una, fino a trovare la chiave giusta occorrerebbero
2 alla 168 tentativi per trovare la chiave segreta di cifratura. Ovvero il 3DES darebbe luogo ad uno spazio delle
chiavi di 370 trilioni di trilioni di trilioni di trilioni di combinazioni.
Il vantaggio di usare il 3DES è che utilizza lo stesso standard del DES. Un limite nell’usare il 3DES è il tempo di
lavorazione supplementare richiesto rispetto al DES richiede infatti il triplo del tempo sia per la cifratura che per
la decifratura.
AES
L’AES (Advanced Encryption Standard) è un algoritmo di cifratura con struttura a rete di Feistel divenuto standard
nel 2001, conosciuto anche come algoritmo Rijndael (acronimo ottenuto dal nome dei due autori Vincent Rijmen
e Joan Daemen). È un algoritmo pubblico progettato per sostituire il DES e il 3DES. L’AES è il risultato di una gara
internazionale intentata dal NIST (National Institute of Standard and Technology).
Le caratteristiche tecniche di questo algoritmo di cifratura simmetrica sono di prendere blocchi di dati da 128 bit
e di avere chiavi di grandezza variabile tra 128, 192, e 256 bit. I requisiti di utilizzo della memoria sono molto
bassi. Ed ha una grande efficienza computazionale su moti tipi di calcolatori. Il gruppo di sviluppo di IPsec dell’
IETF ha adottato l’AES (Advanced Encryption Standard) come algoritmo di cifratura predefinito per IPsec
sostituendolo ai DES e 3DES.
CAMELLIA
Camellia è un algoritmo di Cifratura simmetrica con struttura a rete di Feistel. Camellia è un algoritmo di
Cifratura simmetrica che è stato sviluppato nel 2000 in collaborazione fra le giapponesi NTT (Nippon Telegraph
and Telephone Corporation) e Mitsubishi Electric Corporation. È un algoritmo che è stato progettato per resistere
ad ogni attacco criptoanalitico noto. Camellia è un algoritmo implementabile sia in software che in hardware,
offrendo lo stesso livello di sicurezza e di velocità di cifratura paragonabili all’AES.
Le caratteristiche tecniche di Camellia sono di prendere blocchi di dati da 128-bit ed avere chiavi di grandezza
variabile tra 128, 192, e 256 bit. La grandezza predefinita delle chiavi è 128 bit. L’algoritmo Camellia liberamente
disponibile è stato standardizzato dall’IETF con laRFC 3657 ed è stato implementato in IPsec RFC 4312.
Gli algoritmi DES, 3DES, AES e CAMELLIA, sono di pubblico dominio e liberamente disponibili.
La cifratura Asimmetrica
Nel 1976 Whitfield Diffie e Martin Hellman due ricercatori crittologi americani pubblicarono un fondamentale
studio teorico dal titolo “New Directions in Cryptography”. In questo studio veniva illustrato la fattibilità di un
nuovo metodo di cifratura “la cifratura asimmetrica” conosciuta anche come la “cifratura a chiave pubblica”. Con
questo tipo di cifratura è stato risolto il problema della gestione delle chiavi che non occorre più trasmettere al
destinatario del messaggio per la decodifica, con il pericolo che possano essere intercettate durante lo scambio.
La realizzazione della cifratura asimmetrica si basa sul concetto fondamentale in cui sono richiesti due differenti
ma, strettamente connessi, valori di chiave. Questi valori sono chiamati chiave pubblica e chiave privata. In cui le
chiavi private sono tenute segrete mentre le chiavi pubbliche vengono diffuse pubblicamente. Questo perché il
modo particolare in cui vengono costruite le chiavi permettono di cifrare un messaggio con la chiave pubblica e di
decifrarlo “solamente” con la corrispondente chiave privata.
Ad esempio, se due utenti Alice e Bob vogliono comunicare usando la cifratura a chiave pubblica, hanno
entrambi bisogno di una coppia di chiavi pubbliche e di chiavi private. Alice deve creare la sua coppia di chiavi
pubblica/privata, e Bob deve creare la sua coppia di chiavi pubblica/privata. Quando devono comunicare l’un
l’altro in sicurezza, Alice e Bob usano chiavi diverse per cifrare e decifrare i dati. Ovvero Alice cifra un messaggio
diretto a Bob con la chiave pubblica di Bob e questo può essere decodificato “solo” dalla corrispondente chiave
privata di Bob che è unica ed strettamente associata a quella pubblica. Bob in risposta ad Alice cifrerà il
messaggio con la chiave pubblica di Alice che solo Alice potrà decifrare con la sua chiave privata.
I meccanismi usati per generare queste coppie di chiavi pubblico/private sono complessi. Loro risultano dalla
generazione di due numeri casuali, due numeri primi molto grandi dell’ordine di 200, 300 cifre circa almeno. Uno
dei due numeri casuali diviene la chiave pubblica e l'altro diviene la chiave privata. Generare questi numeri è un
processo molto pesante per il microprocessore. I numeri, così come il loro prodotto, devono aderire ad un severo
criterio matematico per preservare l'unicità di ogni coppia di chiavi pubblica/privata. Criterio che hanno alcune
funzioni matematiche definite “funzioni a trabocchetto”. Queste funzioni agiscono in modo tale che ad esempio
sia facile calcolare il prodotto di due numeri primi ma, sia estremamente difficile, “impossibile” calcolare i suoi
fattori primi. Gli Algoritmi di cifratura a chiave pubblica sono usati raramente per garantire la riservatezza dei dati
a causa del sovraccarico di lavoro che richiedono alla CPU rispetto alla cifratura simmetrica. Gli Algoritmi di
cifratura a chiave pubblica sono usati tipicamente invece, nelle applicazioni di autenticazione che comportano
l’uso di firme digitali e nella gestione delle chiavi.
Alcuni dei più comuni algoritmi a chiave pubblica sono l’algoritmo RSA (dalle iniziali degli autori Ron Rivest, Adi
Shamir, e Leonard Adleman), l'algoritmo El’Gamal, l’algoritmo DSA (Digital Segnature Algorithm), e l’algoritmo
ECDSA (Elliptic Curve DSA).