1. Il modello Internet e i protocolli TCP/IP

34
1. Il modello Internet e i protocolli TCP/IP Internet nasce negli anni ’80 ed era stata progettata da un dipartimento del Ministero della Difesa americana per creare una rete di comunicazione che funzionasse in modo distribuito senza un vertice gerarchico, per poter far fronte alla distruzione di nodi importanti della rete in caso di attacco nucleare: qualora la via più diretta di collegamento tra due nodi non fosse stata disponibile, appositi dispositivi avrebbero deviato il traffico lungo vie alternative. TCP/IP è una suite di protocolli che prende il nome dai due più importanti tra essi: Transmission Control Protocol (TCP) e Internet Protocol (IP). L’obiettivo più importante raggiunto dal TCP/IP è stata l’interconnessione di reti (Internetworking, o Internet) che fornisce servizi di comunicazione planetaria su reti fisiche di tipo diverso. L’internetworking permette il collegamento tra due computer eterogenei appartenenti a reti diverse, separati anche da grandi distanze. I protocolli TCP/IP utilizzati in Internet si basano su soli 4 livelli: Livello Interfaccia che incorpora le funzioni del livello Fisico e Collegamento dati del modello ISO/OSI, Rete e Trasporto che sono molto simili a quelli del modello ISO/OSI e Applicazione che incorpora i livelli Sessione, Presentazione, Applicazione del modello ISO/OSI. 2. Il livello di Interfaccia nel modello Internet La principale caratteristica del protocollo TCP/IP consiste nel fatto che permette la connessione di differenti tipi di reti. Infatti, esso si occupa soltanto della consegna dei dati, lasciando ai programmi la preoccupazione di stabilire quale linguaggio comune utilizzare. Ad esempio, se un utente vuole usare un programma di chat, è lo stesso programma a organizzare le informazioni secondo un proprio protocollo per poi affidarle al TCP/IP. Quest'ultimo garantisce soltanto che quelle informazioni raggiungano la destinazione stabilita (il server di chat, in questo caso). Si può paragonare questo concetto a quello delle poste. Quando si spedisce una lettera, al postino non interessa il linguaggio in cui essa è scritta o il contenuto della busta: deve soltanto recapitarla alla persona indicata sulla busta. La busta che contiene i dati viene chiamata pacchetto. Nel pacchetto viene specificato, tra le altre cose, chi è il mittente e chi il ricevente dei dati. A livello di interfaccia i bit sono raggruppati in pacchetti chiamati frame (frammento). Ogni frammento contiene l’indirizzo MAC (fisico della scheda) del mittente, l’indirizzo MAC del destinatario e un codice di controllo (CRC) per la rilevazione degli errori sui bit del frame stesso (per la eventuale ritrasmissione del frame). Il codice CRC viene calcolato dal computer mittente

Transcript of 1. Il modello Internet e i protocolli TCP/IP

Page 1: 1. Il modello Internet e i protocolli TCP/IP

1. Il modello Internet e i protocolli TCP/IP

Internet nasce negli anni ’80 ed era stata progettata da un dipartimento del Ministero della Difesa americana per creare una rete di comunicazione che funzionasse in modo distribuito senza un vertice gerarchico, per poter far fronte alla distruzione di nodi importanti della rete in caso di attacco nucleare: qualora la via più diretta di collegamento tra due nodi non fosse stata disponibile, appositi dispositivi avrebbero deviato il traffico lungo vie alternative.

TCP/IP è una suite di protocolli che prende il nome dai due più importanti tra essi: Transmission Control Protocol (TCP) e Internet Protocol (IP). L’obiettivo più importante raggiunto dal TCP/IP è stata l’interconnessione di reti (Internetworking, o Internet) che fornisce servizi di comunicazione planetaria su reti fisiche di tipo diverso. L’internetworking permette il collegamento tra due computer eterogenei appartenenti a reti diverse, separati anche da grandi distanze.

I protocolli TCP/IP utilizzati in Internet si basano su soli 4 livelli: Livello Interfaccia che incorpora le funzioni del livello Fisico e Collegamento dati del modello ISO/OSI, Rete e Trasporto che sono molto simili a quelli del modello ISO/OSI e Applicazione che incorpora i livelli Sessione, Presentazione, Applicazione del modello ISO/OSI.

2. Il livello di Interfaccia nel modello Internet

La principale caratteristica del protocollo TCP/IP consiste nel fatto che permette la connessione di differenti tipi di reti. Infatti, esso si occupa soltanto della consegna dei dati, lasciando ai programmi la preoccupazione di stabilire quale linguaggio comune utilizzare. Ad esempio, se un utente vuole usare un programma di chat, è lo stesso programma a organizzare le informazioni secondo un proprio protocollo per poi affidarle al TCP/IP. Quest'ultimo garantisce soltanto che quelle informazioni raggiungano la destinazione stabilita (il server di chat, in questo caso).

Si può paragonare questo concetto a quello delle poste. Quando si spedisce una lettera, al postino non interessa il linguaggio in cui essa è scritta o il contenuto della busta: deve soltanto recapitarla alla persona indicata sulla busta. La busta che contiene i dati viene chiamata pacchetto. Nel pacchetto viene specificato, tra le altre cose, chi è il mittente e chi il ricevente dei dati.

A livello di interfaccia i bit sono raggruppati in pacchetti chiamati frame (frammento). Ogni frammento contiene l’indirizzo MAC (fisico della scheda) del mittente, l’indirizzo MAC del destinatario e un codice di controllo (CRC) per la rilevazione degli errori sui bit del frame stesso (per la eventuale ritrasmissione del frame). Il codice CRC viene calcolato dal computer mittente

Page 2: 1. Il modello Internet e i protocolli TCP/IP

che esegue una particolare operazione matematica sui bit contenuti nella frame del pacchetto prima della trasmissione. Il valore ricavato viene accodato alla frame medesima così che all'altro estremo il destinatario possa eseguire la stessa operazione sui dati ricevuti, confrontarne il risultato con il valore contenuto nel campo CRC e accertarsi che non ci siano stati errori di trasmissione. Se il valore CRC calcolato dal destinatario è diverso da quello inserito dal mittente nel frame, il frame stesso viene scartato.

HUB E SWITCH

Come già visto nello studio del livello fisico gli hub (che operano a livello fisico) collegano semplicemente fra loro gruppi di utenti e non analizzano il contenuto dei pacchetti ricevuti da una postazione, ma li inviano direttamente a tutte le altre postazioni. Tutte le schede di rete del gruppo ricevono il pacchetto, ciascuna scheda confronta l’indirizzo MAC del destinatario del pacchetto con il proprio indirizzo MAC: se gli indirizzi sono uguali la scheda accetta il pacchetto altrimenti lo scarta. Questo meccanismo produce però un elevato traffico di pacchetti all’interno della rete, riducendone le prestazioni.

Gli switch operano a livello collegamento dati e sono, come gli hub, dispositivi a cui si collegano i computer per realizzare una LAN (punti di aggregazione). Sono però dispositivi più intelligenti rispetto agli hub in quanto conoscono gli indirizzi delle schede relative alle postazioni che sono collegate alle proprie porte, analizzano il contenuto del pacchetto ricevuto da una postazione, leggono l’indirizzo del destinatario del pacchetto e inviano il pacchetto solamente alla postazione avente quell’indirizzo.

Page 3: 1. Il modello Internet e i protocolli TCP/IP

33.. IIll lliivveelllloo ddii rreettee

Internet, che sin dalla sua nascita ha dovuto scontrarsi con l'esigenza di far parlare computer e reti di natura molto diversa, ha partorito e utilizza il protocollo attualmente più diffuso nel mondo: il TCP/IP.

IINNDDIIRRIIZZZZII IIPP

Gli apparati a livello di Rete operano tramite un indirizzamento che è logico e non fisico come avviene ai livelli inferiori (MAC). L'informazione a livello di rete comprende ciò che è chiamato indirizzo logico, che, a differenza dell'indirizzo fisico, è solitamente assegnato dall'amministratore di rete che possono essere usati dall' amministratore di rete per raggruppare un certo numero di apparecchi che hanno determinate caratteristiche in comune. Gli indirizzi fisici (MAC) sono, invece, assegnati dal costruttore dell'hardware.

Un esempio di indirizzo logico è l'indirizzo IP. L'identificazione di mittente e ricevente, nel protocollo TCP/IP, si basa sull'assegnazione di un numero univoco a ogni computer connesso in rete. Detto numero viene definito indirizzo IP.

L’ Indirizzo IP può essere rappresentato come quattro numeri decimali, ciascuno dei quali occupa un byte (8 bit). Vengono scritti separati da punti come 213.198.150.110 e identifica un computer e la rete a cui esso è collegato.

Page 4: 1. Il modello Internet e i protocolli TCP/IP

IINNDDIIRRIIZZZZOO IIPP:: EESSEEMMPPIIOO

Poiché il TCP/IP è stato creato per far funzionare Internet, che è una rete di reti, è stato necessario rendere identificabili non solo i singoli computer, ma anche le reti a cui essi appartengono. Anche l’identificazione della rete avviene mediante gli indirizzi IP e viene chiamato indirizzo di rete.

I computer connessi alla stessa rete hanno lo stesso indirizzo di rete.

CCLLAASSSSII DDII IINNDDIIRRIIZZZZII IIPP

Come già visto ogni indirizzo IP è composto da quattro cifre separate da un punto ed è diviso in due parti: la parte indirizzo della rete e la parte indirizzo del computer. La parte di indirizzo relativa alla rete non è fissa. Originariamente sono state previste reti di classe A, B e C: ogni classe definisce una rete di diversa grandezza. In linea di principio le grandi reti, come le WAN, utilizzano la classe A, mentre le LAN usano la classe C. Infatti la classe A usa come indirizzo di

Page 5: 1. Il modello Internet e i protocolli TCP/IP

rete soltanto la prima delle quattro cifre dell’indirizzo IP. La classe B utilizza le prime due cifre a sinistra e la classe C le prime tre cifre a sinistra.

Sono state quindi definite delle "classi" di indirizzi IP, ciascuna identificata dal numero di bit che rappresentano l'indirizzo della rete rispetto a quelli che rappresentano l'indirizzo della singola apparecchiatura. Gli indirizzi di classe A hanno meno bit (1 byte) nella porzione della rete e più bit (3 byte) dedicati all'indirizzamento della macchina, ovvero si possono indirizzare più macchine che reti, poiché, utilizzando gli ultimi tre byte, possono essere indirizzate fino a 16.777.216 (=224) macchine nella stessa rete. Questa classe di indirizzi, quindi, è utile per le reti con un gran numero di macchine. La classe B dedica una stessa quantità di bit (2 byte) alle reti e alle macchine. Questo tipo di indirizzi è adatto alle reti amministrate localmente, come le università e le organizzazioni commerciali, che hanno solitamente un numero limitato di computer connessi. Gli indirizzi di classe C hanno più bit (3 byte) nella porzione delle reti e meno bit (1 byte) in quella delle macchine. Essi sono utili soprattutto per le reti di dimensioni limitate con pochi computer.

E` possibile distinguere a quale classe appartiene un indirizzo IP leggendo il primo byte dell'indirizzo stesso; infatti, per convenzione, gli indirizzi di classe A hanno il primo bit uguale a '0', quindi il primo byte è compreso tra 0 e 127. Quindi, in definitiva, possono esistere solo 128 reti di classe A, ciascuna delle quali può contenere oltre 16 milioni di apparecchiature. Le reti di classe B hanno, invece, il primo bit uguale a '1' e il secondo uguale a '0', quindi il primo byte in un indirizzo di classe B è compreso tra 128 e 191. Pertanto possono esistere fino a 16.384 reti di classe B (pari a 64*256, cioè tutte le possibili combinazioni tra i 64 valori che può assumere il primo byte, essendo vincolato ad avere i primi due bit pari a '1' e '0' rispettivamente, e i 256 valori che può assumere il secondo byte). Gli indirizzi di una rete di classe B vanno quindi da 128.0.xxx.xxx fino a 191.255.xxx.xxx, essendo i valori indicati con xxx quelli per l'indirizzamento delle singole macchine all'interno della rete. Infine le reti di classe C hanno i primi tre bit vincolati rispettivamente a '1', '1' e '0', quindi il primo byte può andare da 192 a 223. Poiché le reti di classe C utilizzano 3 byte per l'indirizzo di rete e il primo può assumere solo 32 valori diversi, il numero massimo di reti di classe C è pari a poco più di 2 milioni (esattamente 2.097.152=32*256*256), con indirizzi che vanno da 192.0.0.xxx fino a 223.255.255.xxx.

La classe a cui appartiene un indirizzo IP viene quindi stabilita dal valore del primo numero a sinistra. Nella tabella seguente sono riportate le corrispondenze tra il valore della prima cifra e la classe di appartenenza dell'indirizzo IP.

Page 6: 1. Il modello Internet e i protocolli TCP/IP

Ad esempio, un indirizzo quale 195.216.229.1 è facilmente identificabile come indirizzo di classe C: il valore della prima cifra è compreso tra 192 e 223. Un indirizzo di classe A potrebbe essere 58.112.25.3 dove 58 è l'indirizzo di rete e 112.25.3 l'indirizzo del computer. Quindi nella classe A si possono indirizzare con 7 bit 128 reti (27) , ciascuna con 16.777.216 (224) computer collegati.

Nella classe C, 2.097.152 reti con 256 computer. La classe C, quindi, è la più adatta per indicare un gran numero di reti piccole, mentre la classe A è la più adatta per indicare un piccolo numero di reti di enormi dimensioni.

Per capire meglio lo schema di indirizzamento di Internet basta pensare alla struttura di un normale indirizzo postale. Lo scriviamo come nei paesi anglosassoni, con il numero civico prima: 2, Vicolo Stretto, Roma, Italia. Anche qui abbiamo quattro blocchi di informazioni: 'Vicolo Stretto, Roma, Italia' svolge la funzione di un indirizzo di rete, '2' corrisponde all'indirizzo del computer. Un indirizzo di classe C! Per trovare una analogia con un indirizzo di classe A potremmo pensare a 'Presidenza della Repubblica, Italia'.

SERVER DHCP

Il server DHCP (Dynamic Host Configuration Protocol, cioè Protocollo per la Configurazione Dinamica degli Apparati) distribuisce automaticamente un indirizzo IP diverso a ciascun computer che si connette alla rete. Se in una rete il DHCP è disabilitato è l’amministratore della rete ad attribuire un IP diverso a ciascun computer: in questo caso ogni computer avrà lo stesso indirizzo IP ogni volta che si connette alla rete. Ciò non garantisce però uno sfruttamento ottimale degli indirizzi: anche se un computer non è connesso il suo IP non può essere utilizzato da altri elaboratori. DHCP, invece, permette di automatizzare l'assegnazione degli indirizzi IP agli apparati nella rete di un' organizzazione e può attribuire uno stesso IP, in connessioni diverse, a diversi elaboratori: l’importante è che due computer che lavorano sulla stessa rete contemporaneamente abbiano due indirizzi diversi. Il pc casalingo che di tanto in tanto si connette ad Internet riceve dal provider, solo durante la connessione, un indirizzo temporaneo per poter far parte della Rete. Probabilmente la volta successiva gli verrà assegnato un indirizzo diverso, e lo stesso indirizzo verrà di volta in volta utilizzato da altri pc. Immaginiamo un autoscontro, con le macchine numerate. Una volta ci può capitare la macchina numero 6, ma la volta successiva potremmo guidarne un’altra, e soprattutto quando andiamo via il giostraio non tiene da parte la macchina numero 6 solo per noi, ma la fa usare ad altri clienti. E per quei computer che sono sempre connessi, come per esempio i server delle grandi aziende? Per quelle macchine viene assegnato un indirizzo IP non temporaneo (non dinamico) ma statico.

Il RIPE (Réseau IP Européens) è l’ente preposto all’assegnamento degli indirizzi IP per il continente europeo. Per il continente americano l’ente preposto è l’ARIN, mentre per l’Asia e il Pacifico è l’APNIC. Tutti questi organismi sono coordinati dall’ICANN (Internet Corporation for Assigned Names and Numbers).

Page 7: 1. Il modello Internet e i protocolli TCP/IP

INDIRIZZI IP RISERVATI

Alcuni indirizzi di rete non sono disponibili per l'utilizzo pubblico: sono riservati perché gli è stato assegnato un significato particolare. Nel dettaglio, un indirizzo di rete non può iniziare con il numero 127 (localhost), perché questi indirizzi identificano il proprio computer.

Non esistono indirizzi composti da quattro 0, perché 0.0.0.0 indica la rete locale in senso assoluto (la rete locale su cui ci si trova; cambiando rete, 0.0.0.0 indicherebbe quella nuova).

Non ne esistono neanche da tutti 1, perché ponendo in un pacchetto a 1 tutti i bit il pacchetto stesso ha come indirizzo del destinatario l'indirizzo di broadcast, cioè viene letto da tutte le apparecchiature di rete (indirizzo di broadcast: indica l'intera rete in assoluto).

L’indirizzo di gateway o router di default è` l'indirizzo IP di quel computer a cui vanno indirizzati tutti i pacchetti che non sono destinati alla propria rete. Questo computer riceve i pacchetti e li trasmette attraverso un'altra scheda verso un' altra rete. Le regole di gestione di questo router sono molto semplici: all' atto della ricezione di un pacchetto il router esamina a che rete IP esso sia destinato, quindi lo invia alla scheda che è in contatto con questa rete, sia nel caso in cui questa vi appartenga, sia nel caso in cui il pacchetto debba transitare attraverso altri router o gateway.

IINNDDIIRRIIZZZZII IIPP PPRRIIVVAATTII

Tipicamente le reti locali si connettono ad Internet tramite un’ unica macchina. Ma ogni computer della rete locale deve avere un IP? La risposta è sì, ma c’è un trucco. Dato che in effetti il Web “vede” solo il dispositivo della rete locale che è connesso, è necessario un solo indirizzo pubblico, cioè unico in tutto il mondo in quel momento. Per ogni computer presente nella rete locale si utilizza un indirizzo IP privato, visto cioè solo all’interno di quella LAN. Il vantaggio evidente è quello di poter utilizzare lo stesso IP privato per tutti i computer che si vogliono, a patto che facciano parte di reti locali diverse (non si “vedono”).

In pratica, l’assegnamento di un indirizzo privato è a discrezione dell’amministratore della rete locale; egli non si deve preoccupare del fatto che sta sicuramente utilizzando un indirizzo già usato in altre reti locali.

In ogni classe ci sono dei gruppi di indirizzi riservati. Essi servono per essere utilizzati in reti che non necessitano di collegamenti con l'esterno. Queste reti sono dette Intranet e gli indirizzi riservati vengono chiamati privati e non è possibile utilizzarli su Internet. Gli indirizzi privati di classe A vanno da 10.0.0.0 a 10.255.255.255, quelli di classe B da 172.16.0.0 a 172.31.255.255, quelli di classe C da 192.168.0.0 a 192.168.255.255. Dal momento che questi indirizzi non vengono riconosciuti su Internet, in caso di allacciamento alla Rete delle reti bisogna assicurarsi di avere un gateway avente un IP valido verso l’esterno (IP pubblico, non privato) che mascheri la rete interna a quella esterna, cioè un oggetto che agisca da intermediario fra i clienti della rete interna ed i serventi della rete esterna.

Page 8: 1. Il modello Internet e i protocolli TCP/IP

SUBNET MASK

La SUBNET MASK (maschera di sottorete) è un indirizzo a 32 bit (simile all’indirizzo IP) che indica quali bit dell’indirizzo IP rappresentano le porzioni della rete. Quando una stazione mittente deve inviare un pacchetto a una certa destinazione usa la maschera di sottorete per determinare se il destinatario si trova su una stessa rete locale o su una rete remota.

Le maschere predefinite sono:

o Classe A: 255.0.0.0 (in binario: 11111111.0.0.0) o Classe B: 255.255.0.0 (in binario: 11111111.11111111.0.0) o Classe C: 255.255.255.0 (in binario: 11111111.11111111.11111111.0)

Applicando una maschera di sottorete a un indirizzo IP si permette l’identificazione della sottorete di appartenenza con la semplice comparazione dell’indirizzo e della maschera. L’operazione per individuare la rete di appartenenza è un AND tra i bit del numero IP e della sua maschera (i bit vengono confrontati ad uno ad uno; se i due valori confrontati sono ambedue 1 il risultato è 1 , altrimenti è 0). Per esempio se il mittente deve inviare un pacchetto al seguente indirizzo IP e ha la seguente subnet mask: indirizzo IP 150.10.32.1 10010110.00001010.00100000.00000001 subnet mask 255.255.255.192 11111111.11111111.11111111.11000000 risultato: 150.10.32.0 10010110.00001010.00100000.00000000

il mittente stesso confronta il risultato con il proprio indirizzo di rete: se sono uguali significa che mittente e destinatario si trovano sulla stessa rete locale, quindi il pacchetto può essere inviato direttamente. Se il destinatario si trova su una rete diversa il pacchetto è inviato a un router che

provvede a smistarlo in una rete remota.

Page 9: 1. Il modello Internet e i protocolli TCP/IP
Page 10: 1. Il modello Internet e i protocolli TCP/IP

INCAPSULAMENTO DI PACCHETTI

I dati viaggiano nelle reti in forma di pacchetti. Il termine è appropriato perché si tratta di una sorta di confezionamento delle informazioni attraverso cui si definisce il mittente e il destinatario dei dati trasmessi. Il confezionamento e le dimensioni dei pacchetti dipendono dal tipo di rete fisica utilizzata.

I dati 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 una 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 (destinati allo stesso livello di un altro nodo) vengono inseriti all'interno di altri pacchetti in un livello sottostante dello stesso nodo.

A questo punto, dovrebbe essere evidente che il significato del termine pacchetto può avere valore sono in riferimento a un contesto preciso.

Normalmente TCP/IP viene usato su reti locali Ethernet e quindi i pacchetti TCP/IP vengono inseriti dentro i pacchetti Ethernet. Per fare tutto ciò si utilizza un altro protocollo, detto ARP (Address Resolution Protocol), che permette di abbinare automaticamente il MAC address di una scheda Ethernet all'indirizzo IP a lei assegnato.

Il Protocollo per la Risoluzione degli Indirizzi (ARP, Address Resolution Protocol) traduce dinamicamente gli indirizzi IP in indirizzi fisici (MAC) e quindi si pone come tramite tra il livello di rete e i livelli inferiori. ARP opera cercando dapprima in una tabella di mappatura (ARP cache) che lega gli indirizzi IP con i corrispondenti indirizzi fisici e se l'indirizzo IP cercato non è presente, trasmette per mezzo di una comunicazione a tutti i computer della rete (comunicazione broadcast) un messaggio di richiesta che lo contiene. Tutti i dispositivi ascoltano questo messaggio e quel dispositivo che riconosce in tale messaggio il proprio indirizzo IP invierà una risposta contenente il corrispondente indirizzo fisico in base alla quale la tabella ARP verrà aggiornata.

FFRRAAMMEE IIPP

Page 11: 1. Il modello Internet e i protocolli TCP/IP
Page 12: 1. Il modello Internet e i protocolli TCP/IP

ROUTER

Page 13: 1. Il modello Internet e i protocolli TCP/IP

Il livello di rete svolge le funzioni volte a indirizzare i dati verso i nodi più prossimi nella rete, anteponendo nei pacchetti un'intestazione che contiene gli indirizzi di mittente e destinatario (i pacchetti che vengono utilizzati a questo livello contengono solo informazioni legate agli indirizzi IP e non a quelli fisici di competenza del livello inferiore).

Un router quindi determina il successivo punto della rete a cui un pacchetto di dati deve essere inviato per poter raggiungere la sua destinazione. Il router è connesso almeno a due reti distinte e decide verso quale via instradare ogni pacchetto di informazioni sulla base della sua conoscenza dello stato delle reti a cui è collegato.

Un router opera creando e mantenendo una tabella dei percorsi disponibili (routing table), delle distanze e delle condizioni dei collegamenti che lo raggiungono. Esso è in grado di elaborare queste informazioni per mezzo di algoritmi di calcolo delle distanze e dei costi in modo da poter determinare quale sia il percorso migliore per un dato pacchetto. Tipicamente, un pacchetto può viaggiare attraverso un certo numero di nodi di rete dotati di router prima di raggiungere la sua destinazione.

I router selezionano il percorso più adatto (instradamento). Le funzioni di indirizzamento offerte dai protocolli che operano a questo livello permettono di stabilire se i dati in transito lungo la rete sono destinati al dominio locale o se devono essere inoltrati verso altre reti, mentre le funzioni di instradamento permettono l'individuazione del percorso verso cui inoltrare i pacchetti in transito. I cammini possono essere basati su tabelle statiche o dinamiche

Le tabelle dinamiche prendono in considerazione il carico di lavoro corrente sulla rete per determinare il percorso da seguire. Infatti il routing dinamico è più utile del routing statico, perché permette a un pacchetto di avere a disposizione più percorsi per giungere alla destinazione finale. Il routing dinamico permette ai router di instradare le informazioni in base al traffico presente in rete, dirottandole su percorsi e router meno impegnati. Nel routing dinamico, la tabella di routing cambia non appena cambiano le condizioni di traffico. Le tabelle sono costruite dinamicamente da protocolli di routing e si adeguano costantemente al traffico e allo stato della rete.

Anche per interconnettere una rete locale a una rete geografica come Internet è possibile utilizzare un router.

Un pacchetto di dati che viene generato nel livello di applicazione, per esempio da un programma di posta elettronica, viene passato ai livelli di trasporto e di rete dove vengono inserite le corrette intestazioni di trasporto e di rete. Una volta inserite le informazioni della rete, il pacchetto viene inviato al sottolivello per il controllo dell' accesso ai mezzi di trasmissione (MAC), nel quale vengono aggiunte le informazioni di intestazione e di coda MAC. Il pacchetto viene quindi inviato lungo il mezzo di trasmissione della rete e trasferito fino al router. Una volta ricevuto il pacchetto, il router non ha bisogno dell'intestazione e della coda MAC e quindi tali informazioni vengono eliminate. Ora, il router estrae dall'intestazione l'indirizzo della rete di destinazione e determina che il pacchetto deve uscire su Internet. Il router quindi aggiunge al pacchetto la corretta intestazione per la rete geografica e invia il pacchetto su Internet. Da quel momento, il pacchetto percorrerà il suo cammino su Internet fino alla sua destinazione finale.

Page 14: 1. Il modello Internet e i protocolli TCP/IP

Una funzionalità molto comune presente in numerosi router è una forma di protezione con firewall. Un firewall è un nodo configurato come barriera per impedire l'attraversamento del traffico da un segmento all'altro. Migliora la sicurezza della rete e funge da barriera tra le reti pubbliche e private collegate. Impiegando un firewall è possibile impedire gli accessi indesiderati, monitorare le sedi alle quali si accede più di frequente ed analizzare la quantità di larghezza di banda che la connessione Internet sta utilizzando.

I router più avanzati possono anche eseguire funzioni di gestione quali il monitoraggio del traffico di rete misurando la frequenza di trasmissione dei dati, la frequenza di errore e altre caratteristiche.

I router e il routing giocano un ruolo importante in una rete geografica quale Internet. Durante il trasferimento dei pacchetti di dati su Internet, questi passano da una rete all' altra. I punti di connessione tra queste reti sono i router. Ciascun router esamina il pacchetto dei dati e determina il passo successivo del percorso del pacchetto. I router svolgono questo importante ruolo nelle reti geografiche e in Internet.

Page 15: 1. Il modello Internet e i protocolli TCP/IP

SSTTRRUUMMEENNTTII DDII DDIIAAGGNNOOSSII TTCCPP//IIPP

Page 16: 1. Il modello Internet e i protocolli TCP/IP

IPCONFIG: COMANDO PER VISUALIZZARE L’IMPOSTAZIONE IP DEL

COMPUTER

Page 17: 1. Il modello Internet e i protocolli TCP/IP

IILL CCOOMMAANNDDOO TTRRAACCEERRTT

Il comando tracert digitato al prompt dei comandi permette di verificare i punti di passaggio attraversati dai nostri dati prima di raggiungere un sito Internet.

Page 18: 1. Il modello Internet e i protocolli TCP/IP
Page 19: 1. Il modello Internet e i protocolli TCP/IP

SOTTORETI E NUOVA VERSIONE IP (VERSIONE 6)

Da molti anni ormai esiste il serio problema della scarsità di indirizzi IP disponibili, soprattutto in certe zone del mondo. Per ovviare a questo problema (ma non solo), è già in fase avanzata la versione 6 di Internet Protocol: IPv6 (oggi stiamo usando IPv4). La principale novità sarà l’aumento della dimensione degli indirizzi da 32 a 128 bit. Questo

permetterà la gestione di circa 3,4x1038 indirizzi diversi.

La notazione tipica sarà quella esadecimale. Ecco un esempio di indirizzo IPv6: 2001:0DB8:85A3:08D3:1319:8A2E:0370:7344

Il web dovrebbe essere già in grado di supportare entrambe le versioni, ma si pensa che IPv4 sarà ancora in uso almeno fino al 2025.

Nell’IPv4 la suddivisione in classi non offre una gestione efficiente degli indirizzi IP: un'organizzazione con poche macchine non necessita di un 'intera classe C nè una con poco più di 256 apparati necessita di un'intera classe B. Quindi l'assegnazione di un'intera classe a un'organizzazione come quelle appena citate porta a uno spreco di indirizzi che restano inutilizzati.

Inoltre una rete di classe A è sempre troppo grande perché una qualsiasi organizzazione sia in grado di giustificarne la necessità, mentre le reti di classe C sono spesso troppo piccole per la gran parte delle organizzazioni. Pertanto le classi B sono state quelle maggiormente richieste e, nel momento in cui hanno iniziato a essere scarse, le autorità preposte all' allocazione degli indirizzi IP hanno cercato di forzare le organizzazioni di minori dimensioni a richiedere un insieme di classi C, in luogo di un 'unica classe B.

Inizialmente questi problemi sono stati aggirati utilizzando principalmente tre meccanismi:

• la suddivisione delle reti in sottoreti per consentire una saturazione degli indirizzi offerti dalle classi A e B, generalmente fin troppo ampie;

• l'assegnazione dinamica degli indirizzi IP (DHCP) per le apparecchiature non costantemente connesse;

• l'utilizzo di indirizzi privati e di tecniche di traduzione degli indirizzi (NAT, Network Address Translation) per quelle reti che possono accedere a Internet tramite un'unica macchina (NAT Proxy) che maschera molti indirizzi privati su pochi pubblici (vedi address proxy nel livello del trasporto)

Generalmente una sottorete (subnet, abbreviazione di subnetwork) identifica una parte separata della rete di un' organizzazione: una subnet tipicamente rappresenta tutte le macchine presenti in una particolare posizione geografica, in un edificio, o in una stessa LAN.

Le subnet utilizzano alcuni dei bit che nell'indirizzo IP sono dedicati a identificare la singola macchina per rappresentare, invece, la sottorete. Ad esempio, consideriamo una rete di classe C che è necessario suddividere in sottoreti da 2 macchine ciascuna. Naturalmente si usano i primi 24 bit (3 byte) dell'indirizzo IP per identificare la rete, mentre dei successivi 8, invece di essere tutti usati per identificare le singole macchine, ne vengono usati 6 per identificare la sottorete e 2 per identificare il singolo apparato. Può sembrare strano che siano necessari 2 bit per identificare 2 macchine, dato che la combinazione di 2 bit permette di avere 4 valori diversi ('00', '01', '10' e '11'), ma si ricordi che il primo valore, '00', è per convenzione l'indirizzo di rete, mentre l'ultimo, '11', è l'indirizzo di broadcast. Quindi '01' e '10' sono le due macchine sulla subnet. Si noti che all'esterno della rete di classe C non è necessario che sia conosciuta la struttura delle subnet interne, per le quali l' instradamento viene gestito in modo completamente autonomo e internamente. Quindi, all'esterno dell' organizzazione l'instradamento verso la rete di classe C avviene in modo assolutamente inalterato indipendentemente dal numero e dall'estensione delle subnet create all'interno. Questo inoltre è valido per ciascun tipo di classe, anche per classi A o B, diverse dalla C considerata nel nostro esempio. Va notato, però, un effetto "collaterale" del

Page 20: 1. Il modello Internet e i protocolli TCP/IP

subnetting: nel nostro esempio, una classe C, che generalmente ha 254 indirizzi utilizzabili per gli apparati (256 complessivi a cui vanno tolti lo O e il 255, che, come detto, sono l'indirizzo di rete e di broadcast), si è ridotta a un insieme di 64 sottoreti ciascuna delle quali può contenere 2 macchine, per un totale di 128 macchine indirizzabili. Una notevole perdita di indirizzi disponibili! Infatti, la creazione di ogni subnet fa "perdere", rendendoli indisponibili, i due indirizzi di rete e di broadcast; d'altra parte, però permette una maggior saturazione di quelli utilizzabili portando complessivamente a una maggior efficienza nell' assegnazione degli indirizzi. I problemi dovuti alla scarsità di indirizzi nel protocollo TCP/IP hanno portato alla definizione della nuova versione 6 del protocollo IP (IPv6 che aumenta il numero degli indirizzi disponibili).

IPv6 introduce alcuni nuovi servizi e semplifica molto la configurazione e la gestione delle reti IP. La sua caratteristica più appariscente è il più ampio spazio di indirizzamento: poiché riserva 128 bit per gli indirizzi, IPv6 gestisce 2128 (circa 3,4 × 1038) indirizzi, mentre IPv4, che consente un numero di bit per l'indirizzamento pari ad un quarto di quelli per IPv6, ossia 32, gestisce soltanto 232 (circa 4 × 109) indirizzi. Quantificando con un esempio, per ogni metro quadrato di superficie terrestre, ci sono 666.000.000.000.000.000.000.000 indirizzi IPv6 unici (cioè 666 mila miliardi di miliardi), ma solo 0,000007 IPv4 (cioè solo 7 IPv4 ogni milione di metri quadrati).

L'ICANN rese disponibile il protocollo IPv6 sui root server DNS dal 20 luglio 2004, ma solo dal 4 febbraio 2008 iniziò l'inserimento dei primi indirizzi IPv6 nel sistema di risoluzione dei nomi. Si prevede che il protocollo IPv4 verrà utilizzato fino al 2025 circa, per dare il tempo necessario ad adeguarsi e correggere gli eventua li errori.

Il motivo più pressante dietro l'adozione del protocollo IPv6 è stato l'insufficienza di spazio per l'indirizzamento dei dispositivi in rete, in particolar modo nei paesi altamente popolati dell'Asia come l'India e la Cina.

Luglio 2007 è datato l'Internet Draft che presenta un piano di transizione per trasformare la rete Internet principalmente basata su IPv4 in quella principalmente basata su IPv6. La data di termine proposta da alcuni per la transizione è il 1º gennaio 2011, ma è praticamente certo che molti vecchi calcolatori rimarranno online senza venire aggiornati, e macchine IPv6 ed IPv4 convivranno sulla rete per decenni.

Sino a quando la connettività non sarà largamente disponibile e supportata nativamente in IPv6 dall'infrastruttura di rete, è necessario utilizzare un meccanismo di trasporto dei pacchetti IPv6 su rete IPv4 tramite la tecnologia del tunneling (l'incapsulamento dei pacchetti IPv6 in pacchetti IPv4).

Page 21: 1. Il modello Internet e i protocolli TCP/IP

4. Il livello del trasporto

I protocolli a questo livello si occupano del controllo e della preparazione dei dati preliminare alla trasmissione vera e propria (che viene effettuata dai protocolli del livello sottostante).

Il livello di trasporto fornisce servizi al livello applicazione e per raggiungere il suo scopo sfrutta i servizi del livello rete. Garantisce il trasferimento dei dati tra le applicazioni che devono comunicare presenti sulle macchine mittente e destinatario attraverso l'utilizzo dei servizi offerti dal sottostante livello di rete. Assicura la consegna dei messaggi e fornisce meccanismi di verifica degli errori e di controllo del flusso dei dati.

Il TCP è il principale protocollo di trasporto utilizzato in Internet; accetta messaggi di qualsiasi lunghezza dai protocolli di livello superiore e fornisce un servizio di trasporto verso un'entità di pari livello in una postazione remota. Il TCP, infatti, suddivide la stringa dei dati da trasmettere ricevuta da un’applicazione del livello superiore (es. e-mail), se troppo lunga, in un certo numero di datagrammi che verranno poi spediti separatamente. A ciascun datagramma viene aggiunta un'intestazione (header) contenente informazioni di controllo del flusso (dimensione del pacchetto e checksum per verificare se l'informazione è stata alterata durante la trasmissione, quindi per la rilevazione degli errori e ritrasmissione). L'insieme del datagramma e dell'intestazione è comunemente detto pacchetto. Nel pacchetto vi può anche essere un indicatore di urgenza che indica al destinatario di leggere immediatamente il pacchetto in arrivo lasciando perdere eventuali pacchetti arrivati in precedenza e ancora in attesa di essere letti e trattati; il pacchetto contiene anche informazioni sulla sua età, così da impedire che un pacchetto di dati possa girare troppo a lungo in rete.

LLiivveelllloo ddeell ttrraassppoorrttoo

Di seguito vengono riportati i servizi che vengono, in genere, offerti dal livello di trasporto; è bene ricordare che nessuno di tali servizi è obbligatorio. Di conseguenza, per ciascuna applicazione è possibile scegliere il protocollo più adatto allo scopo.

Page 22: 1. Il modello Internet e i protocolli TCP/IP

• Servizio orientato alla connessione. In genere il livello rete non stabilisce una connessione persistente verso l'host di destinazione. Il livello di trasporto si incarica, quindi, di realizzare una connessione persistente che, in caso di sospensione, non viene riparta dall’inizio ma venga ripresa dal punto in cui è stata sospesa e venga poi chiusa quando non è più necessaria.

• Corretto ordine di consegna. Poiché i pacchetti possono seguire percorsi diversi all'interno della rete, non c'è alcuna garanzia che i dati vengano recapitati nello stesso ordine in cui sono stati inviati. Il livello di trasporto verifica che i pacchetti vengano riordinati nella giusta sequenza in ricezione prima di passarli al livello superiore.

• Trasferimento affidabile. Il protocollo si occupa di garantire che tutti i dati inviati vengano ricevuti; nel caso il servizio di rete utilizzato perda pacchetti, il protocollo di trasporto si occupa di ritrasmetterli.

• Controllo di flusso. Se gli host coinvolti nella comunicazione hanno prestazioni molto differenti può capitare che un pc più veloce "inondi" di dati uno più lento. Mediante il controllo di flusso, un host in "difficoltà" può chiedere di abbassare il tasso di trasmissione in modo da poter gestire le informazioni in ingresso.

• Controllo di Congestione: il protocollo riconosce uno stato di congestione della rete, e adatta di conseguenza la velocità di trasmissione.

� Multiplazione. Il protocollo permette di stabilire diverse connessioni contemporanee tra gli stessi due host. A questo livello si introduce, a fianco dell'indirizzo IP, il numero di porta, o socket. Il percorso di un pacchetto ha un'origine identificata dal numero IP e dalla porta e una destinazione identificata da un altro numero IP e dalla porta. Diversi servizi utilizzano porte diverse: dovendo scambiare messaggi da un'applicazione locale ad un'applicazione remota i protocolli a questo livello aggiungono un indirizzamento di processo: una volta arrivati alla macchina destinataria devono essere presi in carico dall'applicazione (tra le tante eventualmente in funzione sulla macchina) cui effettivamente sono diretti. L'indirizzamento verso il singolo processo avviene tramite l'utilizzo di PORTE che sono uniche sul singolo host.

Protocollo N° Porta utilizzata FTP (File Transfer Protocol) 21 TELNET (Remote Login Protocol) 23 SMTP (Simple Mail Transfer Protocol) 25 POP-3 (Post Office Protocol 3) 110 Domain (Domain Name Server) 53 Http (World Wide Web) 80 HttpS (Secure HTTP) 443 NNTP (Network News Transport Protocol) 119

I protocolli di trasporto più utilizzati in Internet sono TCP e UDP. TCP è il più complicato fra i due con verifica del corretto ordine di consegna, controllo di errore e di flusso. Il nome è un acronimo per Transmission Control Protocol. UDP (User Diagram Protocol) è un altro protocollo a livello di trasporto non affidabile in quanto non è garantita la consegna dei pacchetti e nemmeno la protezione contro la loro duplicazione. Per contro, però, riduce la quantità di informazioni da trasmettere eliminando la necessità di dati di controllo: ciò può essere la soluzione più adeguata per lo streaming di oggetti multimediali tolleranti alla perdita di alcuni datagrammi, ma molto sensibili al tasso di trasferimento dei dati, come ad esempio applicazioni di telefonia via Internet.

Page 23: 1. Il modello Internet e i protocolli TCP/IP

SICUREZZA NEL TRASPORTO

A livello di trasporto possono essere implementati numerosi meccanismi che favoriscono una maggior sicurezza delle reti. I più comuni consistono nel controllare le connessioni e le tipologie di dati che raggiungono le diverse porte (e di conseguenza le applicazioni abilitate a comunicare sulla rete) sulle macchine presenti sulla rete.

PROXY SERVER: Address Proxy

Spesso si installa sulla rete interna un server proxy, cioè un oggetto che agisce da intermediario fra i clienti della rete interna ed i serventi della rete esterna. In un' organizzazione che usa Internet, un server proxy è un server che funge da intermediario tra l'utente di una workstation e Internet.

Gli address proxy rispondono a due differenti necessità:

• ridurre il numero di indirizzi IP utilizzati dalla rete; • rendere meno visibile la rete interna.

Per fare questo si inizia utilizzando, per la rete interna, degli indirizzi privati. Questi indirizzi non vengono mai impiegati direttamente in Internet e possono essere scelti nelle seguenti reti:

• 10.0.0.0 (classe A);

• 172.16.0.0 (classe B);

• 192.168.0.0 (classe C).

Il proxy che serve la rete esterna dispone di un 'interfaccia esterna con un indirizzo IP pubblico come 213.198.150.107 e opera cambiando gli indirizzi dei pacchetti TCP/IP (o UDP/IP) modificando l'indirizzo di rete interna (192.168.1.x) in quello esterno (213.198.150.107).

PROXY SERVER: Application-level Gateways

Un application gateway entra nel merito del contenuto dei dati in transito. Ad esempio, un mail

gateway può decidere se lasciar passare un messaggio di posta elettronica sulla base di subject, o destinatario, o addirittura esaminando il contenuto del messaggio (ad esempio, se c'è la parola "bomb" lo ferma).

Page 24: 1. Il modello Internet e i protocolli TCP/IP

Gli Aplication-level Gateway sono dispositivi programmati per analizzare il traffico di rete al livello applicativo. Essi conferiscono un ulteriore strumento per la sicurezza di rete. Possono esistere vari application gateway, uno per ogni protocollo di livello application che si vuole controllare.

Ad esempio, nel caso di un server proxy per il protocollo HTTP (HTTP proxy) si ha tipicamente una situazione come questa:

• i client della rete interna vengono configurati in modo da fare riferimento all'HTTP proxy; • il firewall viene configurato per lasciar transitare il traffico HTTP da e per l'HTTP proxy.

Quando un utente attiva un link che punta a un server Web della rete esterna succede questo:

1. il client apre una connessione col proxy e gli invia la richiesta; 2. il proxy (che può passare dal firewall) apre una connessione con il server Web esterno e gli

invia la richiesta del client; 3. il server Web esterno invia la risposta al proxy; 4. il proxy "gira" la risposta al client.

Figura 2-2: Uso di un HTTP proxy

I proxy server hanno anche una funzione di caching delle pagine più recenti, in modo da poterle offrire immediatamente se vengono richieste più di una volta anche da utenti diversi, aumentando così l'efficienza e diminuendo l'uso di banda trasmissiva.

In altre parole un proxy applicativo riceve una richiesta per un servizio Internet (ad esempio la richiesta di una pagina Web) da un utente. Se tale richiesta supera le funzioni di filtraggio, allora, assumendo che il proxy svolga anche servizio di caching, esso cerca la pagina richiesta nella cache locale in cui si trovano le pagine Web richieste in precedenza. Se la pagina è presente, viene trasmessa all'utente senza che la sua richiesta venga inoltrata su Internet. In caso contrario il proxy server, agendo da client per conto dell'utente, utilizza uno dei propri indirizzi IP per effettuare la richiesta al server che si trova in Internet. Una volta ricevuta la pagina il proxy la collega alla richiesta originale e la inoltra all'utente finale. Un proxy permette, quindi, sia di aumentare le prestazioni della rete nelle connessioni verso l'esterno eliminando quelle inutili, sia di ottenere un maggior livello di sicurezza interponendo un filtro tra le comunicazioni tra la rete interna e l'esterno. Esso da un lato maschera verso l' esterno la reale origine della richiesta, sostituendosi al client originale, dall'altro permette di imporre delle regole relative a quali siano i servizi e le macchine effettivamente accessibili dall'interno verso l'esterno.

Page 25: 1. Il modello Internet e i protocolli TCP/IP

Firewall

In molte situazioni in cui esiste una rete aziendale connessa con una rete esterna (ad esempio Internet), può sorgere la necessità di:

• proteggere le informazioni riservate (sensitive data: ad esempio piani strategici, dati finanziari, dati del personale, ecc.) da accessi provenienti dall'esterno della rete aziendale, consentendo solo l'accesso a informazioni pubbliche (ad esempio listino prodotti) e far si che utenti legittimi usino in modo "trasparente" tali insiemi di dati e tutte le altre risorse di rete;

• limitare l'accesso, da parte degli elaboratori posti sulla rete aziendale, alle informazioni presenti sulla rete esterna

Un firewall (parete tagliafuoco) è l'incarnazione moderna del fossato pieno d'acqua (e magari anche di coccodrilli) e del ponte levatoio che proteggevano gli antichi castelli. Il principio di funzionamento è quello di forzare il passaggio di tutto ciò che transita (esseri umani nell'antichità, traffico di rete oggi) attraverso un unico punto di ingresso e uscita, dove si provvede ad effettuare gli opportuni controlli: un sistema o una combinazione di sistemi per il controllo degli accessi fra due reti (di solito una rete aziendale interna e una rete esterna, come per esempio Internet). Un firewall può impedire a utenti che si trovano in Internet l'accesso a certe parti di una rete aziendale e può impedire a utenti interni di accedere a varie parti di Internet.

Sistemi always on come l'Adsl, la fibra ottica e le reti mobili si prestano maggiormente ad attacchi indesiderati. Per questo si utilizzano personal firewall, da installare anche su un singolo PC usato in casa.

In un contesto aziendale nel quale una rete locale è connessa con Internet, la società può consentire che entrino in rete messaggi e-mail provenienti dall'esterno, ma non è disposta ad accettare il login remoto alla rete aziendale. Se consentisse login di questo tipo, qualche intruso potrebbe scoprire come farsi accettare da un'applicazione gestionale e danneggiare il sistema. Nello stesso spirito, la società può proibire il trasferimento di file all'esterno della rete aziendale per timore di perdere dati essenziali o segreti commerciali.

Un firewall è un insieme di programmi correlati, localizzati su un server di rete, che protegge le risorse di una rete privata dagli utenti di altre reti. Un 'impresa con una intranet che permette ai

Page 26: 1. Il modello Internet e i protocolli TCP/IP

dipendenti di accedere anche a Internet può installare un firewall per evitare che utenti esterni accedano ai suoi dati privati e per controllare a quali risorse esterne accedono i suoi utenti interni.

Un firewall, che lavora in stretta connessione con un programma di routing, esamina ogni pacchetto per determinare se è il caso di inoltrarlo alla sua destinazione o meno. Un firewall, inoltre, include o lavora associato a un proxy server che effettua richieste di servizi di rete per conto dei suoi utenti. Un firewall è spesso installato su un computer separato dal resto della rete, in modo che nessuna richiesta entrante possa giungere direttamente alle risorse della rete privata aggirando il firewall stesso.

I firewall utilizzano due metodi per garantire la sicurezza: a livello di rete, detti packet filtering (filtri di pacchetti) e a livello di applicazione i proxy services (server delegato).

Il packet filtering consiste, invece, nell' ispezione di ogni singolo pacchetto di dati trasmesso attraverso l'interfaccia tra rete interna ed esterna per valutare, in funzione degli indirizzi di mittente e destinatario e dei numeri di porta dei processi mittente e destinatario, se il pacchetto ha diritto di essere lasciato passare o meno. Ciascun pacchetto può essere inoltrato o bloccato a seconda di una serie di regole logiche definite dall'amministratore di sistema. I proxy services sono l'estensione di quanto detto sui proxy applicativi a tutti i servizi accessibili da e verso la rete interna, interponendo quindi una macchina che mascheri le macchine interne, effettui eventualmente il caching e, soprattutto, permetta la definizione di politiche di filtraggio delle richieste.

Sebbene il proxy server fornisca un livello di sicurezza più elevato, è più lento di un filtro di pacchetti, perché si deve creare un proxy per ciascun tipo di applicazione che potrebbe chiedere dati dall'interno della rete aziendale.

Efficacia dei firewall

Il firewall si inserisce fra la rete aziendale e quella esterna. In tal modo, tutto il traffico dall'una all'altra parte deve per forza transitare attraverso il firewall.

Quali sono i tipi di transazioni che un firewall è in grado di fermare e quali i tipi che non può bloccare? Un firewall è in grado di arrestare posta elettronica in arrivo o in partenza, login da posizioni remote e trasferimenti di file da e verso l'esterno. Un firewall può anche limitare richieste di accesso a pagine Web interne o esterne. Dopo che un'impresa ha creato una politica per la sicurezza che stabilisce quel che è vincolato e quello che è consentito, è possibile creare un firewall che consente o inibisce una gamma piuttosto ampia di transazioni.

Per esempio, i numeri delle porte TCP indicano quale servizio applicativo si intende utilizzare. Quando una transazione entra in un sistema ed è destinata a una particolare applicazione, nella transazione è compreso il numero della porta appropriata. I numeri che di solito si assegnano alle porte più comuni sono:

• Telnet (login da remoto) utilizza di solito la porta 23 • USENET (il servizio per i newsgroup) usa la porta 119 • SMTP (la posta elettronica) di solito lavora sulla porta 25 • HTTP (i browser Web) stanno sulla porta 80

Page 27: 1. Il modello Internet e i protocolli TCP/IP

Se una società desidera impedire a chiunque dall' esterno di collegarsi utilizzando Telnet, dovrebbe configurare il suo firewall in modo che arresti tutte le transazioni in arrivo che fanno richiesta della porta 23. Oppure una società potrebbe impedire ai suoi impiegati di "sprecare" tempo in USENET configurando il firewall in modo che blocchi le transazioni uscenti che chiamano la porta 119.

I firewall, sfortunatamente, non proteggono una rete da tutte le possibili forme di attacco. Un virus, che si può nascondere dentro un documento, con tutta probabilità non sarà rilevato da un firewall, se il documento al quale il virus è allegato viene ammesso nel sistema. Esistono, è vero, sistemi firewall che si vantano di riuscire a rilevare virus all'interno di documenti, ma sono sistemi piuttosto rari e, come abbiamo visto in precedenza, potrebbero non rilevare tutti i virus. Un firewall, inoltre, non potrà proteggere adeguatamente un sistema se esiste la possibilità di entrare nel sistema senza passare per il firewall. Per esempio, se un sistema di rete ha uno o più modem collegati alla rete telefonica che non sono protetti dal sistema di firewall, un malintenzionato può evitare il firewall ed entrare illegalmente. Un dispositivo fax fornisce un altro modo per far uscire dall'azienda informazioni delicate. Il miglior sistema firewall del mondo non potrà impedire a un impiegato di mandare per fax un documento riservato a un complice esterno servendosi di una linea telefonica standard. Affinché un sistema di firewall funzioni è necessario creare, installare e far rispettare una politica complessiva per la sicurezza. Debbono far parte di una politica per la sicurezza tutte le possibili forme di ingresso e di uscita di informazioni dall'ambiente aziendale, compresi sistemi di computer, sistemi telefonici, fax e persone che portano fisicamente supporti di dati dentro e fuori dagli edifici.

Page 28: 1. Il modello Internet e i protocolli TCP/IP

5. Il livello di Applicazione del modello Internet

L'ultimo livello del modello Internet, il livello di applicazione dove risiede il programma utente che usa la rete. Questo livello supporta le applicazioni e i servizi di rete e di presentazione, quali la codifica e la compressione dei dati, necessari per presentare o supportare in modo appropriato l'applicazione.

Fra le applicazioni che operano a livello di applicazione Internet troviamo parecchi programmi molto diffusi:

• File Transfer Protocol (FTP), per trasferire file fra macchine di architettura

diversa; è un protocollo a livello delle applicazioni che dà il proprio nome a una serie

di programmi che consentono il collegamento a server remoti. In questo caso

l'utilizzo del programma è legato alla necessità di inviare copia di un file al server

(upload), in modo da mantenervelo memorizzato, oppure di scaricare (download)

il file dal server.

• HyperText Transfer Protocol (HTTP), permette ai browser e ai server del Web di

inviare e ricevere pagine del World Wide Web (WWW). E' il protocollo che

interconnette quella vastissima collezione di siti Internet del World Wide Web. Non

ha molta funzionalità in più rispetto a FTP: permette in più di richiedere l'esecuzione

di procedure via rete. E' però forse oggi il protocollo di alto livello di IP più utilizzato

in assoluto, perché viene utilizzato per veicolare i documenti codificati in HTML

(HyperText Markup Language). E' la funzionalità di questo linguaggio, unita

all'interfaccia grafica fornita dai browser, la vera ragione della praticità d'uso, e

quindi del successo di WWW. HTTP (Hypertext Transfer Protocol) è il protocollo

Page 29: 1. Il modello Internet e i protocolli TCP/IP

fondamentale per il World Wide Web (WWW) e può essere utilizzato in ogni

applicazione di tipo client/server che impieghi ipertesti. Esso è un protocollo per la

trasmissione di informazioni con l'efficienza necessaria per rendere possibili i salti

ipertestuali. I dati trasferiti per mezzo di questo protocollo possono essere sotto

forma di testo, di ipertesto, audio, immagini, o ogni altra forma accessibile tramite

internet. Un Web browser è un cliente HTTP che invia richieste alle macchine che

fungono da server. Quando l'utente del browser immette richieste di apertura di file

aprendo un Web file (digitando la corrispondente URL) o cliccando su un link

ipertestuale, il browser costruisce una richiesta HTTP e la invia all'indirizzo IP

indicato dall'URL. Il daemon HTTP presente nella macchina server di destinazione

riceve la richiesta e, dopo l' elaborazione necessaria, restituisce il file richiesto. Il

secure HTTP (S-HTTP) è un' estensione di HTTP che permette lo scambio sicuro di

file sul Web.

• Telnet, per creare una sessione interattiva su una macchina remota, del tutto

simile ad una normale sessione di lavoro su un terminale collegato direttamente alla

macchina remota stessa (consente a un utente di collegarsi a un calcolatore

distante). Il suo utilizzo deriva dalla necessità di poter sfruttare le risorse di calcolo

di un server remoto, sia perchè il computer locale non dispone di potenza sufficiente

in termini di elaborazione e di quantità di memoria, sia perché il programma da

utilizzare non è compatibile con il sistema operativo presente sul computer locale.

• Simple Mail Transfer Protocol (SMTP), per consentire all'utente di inviare messaggi e-mail (fra host che "parlano" TCP/IP). Ogni indirizzo Internet segue una regola precisa di composizione, che consente di capire dove il messaggio deve essere indirizzato. La struttura di un indirizzo di posta elettronica è nome-utente @ nome-dominio, dove nome-utente è il nome dell' utente a cui viene indirizzato il messaggio, mentre nome-dominio è il nome del dominio di posta verso cui inviare il messaggio. Tra nome-utente e nome-dominio è presente il carattere @, che in inglese viene detto "at", cioè "presso".

• Post Office Protocol 3 (POP3) e IMAP, utilizzati per leggere i messaggi di posta elettronica conservati su un host remoto. Dato che la mail ricevuta con il protocollo SMTP rimane sul server che l 'ha ricevuta, memorizzata nelle caselle postali degli utenti, è stato necessario definire un protocollo per lo scarico di questa posta dalle caselle ai PC degli utenti. In realtà i protocolli sono due:

� POP3, ovvero la versione 3 del Postal Office Protocol: protocollo client-server in cui l'e-mail è ricevuta e conservata per l'utente nel suo server Internet; periodicamente l'utente (o il suo client di ricezione di posta) controlla la casella di posta sul server ed effettua il download delle eventuali e-mail;

� IMAP, ovvero Internet Mail Access Protocol: permette più operazioni ed è più flessibile, a prezzo di una maggior complicazione. Permette di esaminare una casella remota di posta elettronica senza trasferire i messaggi.

• Point to Point Protocol (PPP), permette di trasferire traffico IP su una linea seriale per gestire i collegamenti transitori via modem.

� Domain Name System (DNS), che permette a un utente di immettere un indirizzo Web, del tipo www.depaul.edu, e di convertirlo nella forma binaria riconosciuta dal computer. I server presenti su Internet, e in generale tutti i computer collegati direttamente a Internet, dispongono di un indirizzo IP fisso e non duplicato (es Google: http://209.85.135.104 ; Virgilio: http://62.211.65.12 ). Tuttavia la navigazione tra i diversi server sarebbe quasi impossibile, se si dovessero ricordare

Page 30: 1. Il modello Internet e i protocolli TCP/IP

gli indirizzi IP delle singole macchine: gli indirizzi numerici infatti si possono confondere, non hanno riferimenti mnemonici a cui appoggiarsi. Per poter raggiungere una URL di cui si conosce l'indirizzo sotto forma di nome di dominio, è necessario sapere anche l'indirizzo IP del server su cui tale URL è collocata. A questo scopo viene utilizzato un servizio denominato DNS, o Domain Name Server, che si occupa di associare a ogni nome di dominio richiesto il corrispondente indirizzo IP.

Poiché mantenere un elenco centralizzato di tutte le corrispondenze tra nomi di dominio e indirizzi IP sarebbe praticamente impossibile, le liste dei nomi di dominio e degli indirizzi IP vengono distribuite su diversi server in Internet attraverso una struttura gerarchica. Il meccanismo utilizzato per ottenere la trasformazione di un nome di dominio in indirizzo IP è abbastanza semplice.

1. Il computer locale inoltra la richiesta di accedere a un nome di dominio al server DNS definito come più vicino (in genere l'indirizzo di questo server DNS viene impostato nelle proprietà di rete del computer locale).

2. Se il server DNS conosce l'indirizzo IP legato al nome di dominio, lo restituisce al computer richiedente; se invece non lo conosce, inoltra a sua volta la richiesta a uno o più server DNS che nella scala gerarchica si trovano a un livello superiore al suo.

3. Allo stesso modo, se i server DNS di livello superiore conoscono l'associazione nome dominio-indirizzo IP, restituiscono l'informazione al server DNS che l 'ha richiesta, altrimenti inoltrano a loro volta la richiesta ad altri server DNS; e così via.

In questo modo non è necessario che un solo server mantenga un gigantesco database contenente tutte le coppie nome dominio-indirizzo IP: è molto più sicuro che questo compito venga svolto da diversi server, con l'ulteriore vantaggio che nel momento in cui si verifica un problema su uno di essi, gli altri sono comunque in grado di dare risposta alle varie richieste.

� IMAP: sistemi di chat e di messaggistica si possono considerare come una naturale estensione scritta alla comunicazione verbale in tempo reale tra due o più persone, nel senso che contrariamente alle mail, l'uso di queste applicazioni prevede che le persone che desiderano chiacchierare devono essere collegate contemporaneamente. Esistono diverse applicazioni di chat su Internet che si basano su un'architettura di tipo client-server, denominata IRC (Internet Relay Chat), in cui un client di chat si collega a un server, che rappresenta il punto di raccolta di tutti i messaggi e che si occupa di smistarli verso i client corretti. In una struttura di questo genere si possono avere più client collegati allo stesso server (caso più semplice) oppure più client collegati a server diversi, che sono in collegamento diretto tra loro per consentire un interscambio di messaggi indirizzati ai vari client. E` interessante notare come non esista alcuna possibilità per i client di collegarsi direttamente tra loro, se non passando attraverso un server di chat. I client di chat possono comunicare tra loro in due modi diversi:

o collegamento uno a uno;

o collegamento uno a molti.

Page 31: 1. Il modello Internet e i protocolli TCP/IP

Il collegamento uno a uno è la modalità di dialogo più semplice: due utenti si accordano per dialogare tra loro e non consentono ad altri utenti li intervenire nel dialogo.

Il collegamento uno a molti prevede diverse modalità di esecuzione: la più semplice è l'utilizzo di un canale, cioè uno degli utenti coinvolti attiva una "chiacchierata" a cui assegna un nome e gli altri utenti si collegano a questo nome di "chiacchierata". I messaggi che vengono scambiati sono normalmente di tipo testuale, ma è anche possibile inviare altro tipo di materiale, come immagini, filmati o file audio, esattamente come avviene per le mail.

� VoIP (Voice over IP) : Voce tramite protocollo Internet, acronimo VoIP, è una tecnologia che rende possibile effettuare una conversazione telefonica sfruttando una connessione Internet o un'altra rete dedicata che utilizza il protocollo IP. Più specificamente con VoIP si intende l'insieme dei protocolli di comunicazione di strato applicativo che rendono possibile tale tipo di comunicazione. Grazie a numerosi provider VoIP è possibile effettuare telefonate anche verso la rete telefonica tradizionale (PSTN). Il vantaggio principale di questa tecnologia sta nel fatto che essa elimina l'obbligo di riservare della banda per ogni telefonata (commutazione di circuito), sfruttando l'allocazione dinamica delle risorse, caratteristica dei protocolli IP (commutazione di pacchetto). Vengono instradati sulla rete pacchetti di dati contenenti le informazioni vocali, codificati in forma digitale, e ciò solo nel momento in cui è necessario, cioè quando uno degli utenti collegati sta parlando.

Fra gli altri vantaggi rispetto alla telefonia tradizionale si annoverano:

o minore costo per chiamata, specialmente su lunghe distanze; o minori costi delle infrastrutture: quando si è resa disponibile una

rete IP nessun'altra infrastruttura è richiesta; o nuove funzionalità avanzate; o l'implementazione di future opzioni non richiederà la sostituzione

dell'hardware.

Le conversazioni VoIP non devono necessariamente viaggiare su Internet, ma possono anche usare come mezzo trasmissivo una qualsiasi rete privata basata sul protocollo IP, per esempio una LAN all'interno di un edificio o di un gruppo di edifici. I protocolli usati per codificare e trasmettere le conversazioni VoIP sono solitamente denominati Voice over IP protocols.

Uno dei vantaggi di questa tecnologia è che permette di fare leva su risorse di rete preesistenti, consentendo una notevole riduzione dei costi in ambito sia privato che aziendale, specialmente per quanto riguarda le spese di comunicazione interaziendali e tra sedi diverse. Una rete aziendale, infatti, può essere sfruttata anche per le comunicazioni vocali, permettendo di semplificare l’installazione e il supporto e di aumentare il grado di integrazione di uffici dislocati sul territorio, ma collegati tramite l’infrastruttura di rete. Il consumatore privato, utilizzando un collegamento ad Internet a banda larga (ad alta velocità e sempre attivo), può effettuare e ricevere chiamate telefoniche, potendo contare su tariffe molto economiche, soprattutto per le chiamate internazionali.

Il VoIP può offrire un significativo vantaggio per la tutela della privacy. Infatti, in molte implementazioni VoIP, il traffico vocale viaggia direttamente tra i terminali dei due utenti e non attraversa una struttura di centrali di commutazione, su cui si ha la possibilità di installare un sistema di intercettazione. Tuttavia questo non è sempre vero, talvolta per motivi tecnici e altre volte per le pressioni degli organi di polizia sui gestori di sistemi VoIP perché permettano l'intercettazione delle chiamate VoIP.

Page 32: 1. Il modello Internet e i protocolli TCP/IP

Inoltre, utilizzando una connessione via Internet è possibile adottare una comunicazione sicura, con crittografia a chiave asimmetrica e firma digitale, che impediscono a terzi di intercettare la conversazione e manipolarla (a meno che siano in possesso di una grande potenza di calcolo).

Le reti IP non dispongono di per sé di alcun meccanismo in grado di garantire che i pacchetti di dati vengano ricevuti nello stesso ordine in cui vengono trasmessi, né alcuna garanzia relativa in generale alla qualità di servizio. Le attuali applicazioni nel mondo reale della telefonia VoIP si trovano a dover affrontare problematiche legate a problemi di lentezza (sostanzialmente si deve ridurre il tempo di transito e di elaborazione dei dati durante le conversazioni) e di integrità dei dati (prevenire perdite e danneggiamenti delle informazioni contenute nei pacchetti).

Il problema di fondo della tecnologia VoIP è la corretta ricostruzione dei pacchetti di dati ricevuti, tenuto conto del fatto che durante la trasmissione può cambiare la sequenza dei pacchetti e che alcuni pacchetti possono aver subito perdite o danneggiamenti delle informazioni contenute, e assicurare così che lo stream audio (flusso audio) mantenga la corretta coerenza temporale. Altro importante problema è mantenere il tempo di latenza dei pacchetti sufficientemente basso, in modo che l'utente non debba aspettare troppo tempo prima di ricevere le risposte durante le conversazione.

L'utilizzo del VoIP consente una tariffazione delle chiamate che è indipendente dalla durata (tariffa Internet flat) e, se il destinatario è un computer, dal luogo chiamato (locale o internazionale). Costituisce, dunque, un consistente risparmio per le utenze e per le stesse compagnie telefoniche quando devono impegnare (e pagare) reti proprietarie di altri gestori.

Page 33: 1. Il modello Internet e i protocolli TCP/IP

Un esempio più particolareggiato, che descrive il percorso di una richiesta che passa attraverso i diversi livelli di un modello di comunicazioni, sarà utile per rendere più chiari i relativi concetti. Esaminate la Figura 1.16, in cui un utente che naviga su Internet richiede lo scaricamento di una certa pagina Web, che poi viene visualizzata sul suo personal computer. Partendo dall' alto a sinistra nella figura, abbiamo l'utente che fa click su un collegamento della pagina Web corrente. In risposta, il software del browser (l'applicazione) crea un comando "Acquisisci pagina Web", che viene passato al livello del trasporto, il TCP. Questo aggiunge varie informazioni di intestazione usate dal livello TCP all'estremo ricevente. Queste informazioni aiutano nel controllo degli errori da un estremo all' altro e nel controllo del flusso, e forniscono l'indirizzo dell' applicazione (il server Web). Il pacchetto così integrato viene poi inviato al livello Internet, dove l'IP aggiunge la propria intestazione. Le informazioni contenute in questa intestazione sono utilizzate dal livello IP del destinatario e dai livelli IP dei nodi intermedi attraversati mentre i dati vengono trasferiti su Internet. Questa assistenza include l'indirizzo Internet della postazione di lavoro che contiene la pagina Web richiesta. Il pacchetto viene ora passato al livello di interfaccia. Dato che il computer dell'utente è collegato a una rete locale (LAN), vengono aggiunte anche le intestazioni appropriate della rete locale. Potete notare che a volte al pacchetto di dati, oltre alle intestazioni, vengono aggiunte anche delle code. Una delle informazioni più importanti incluse nell'intestazione della rete locale è l'indirizzo del dispositivo (il router) che collega la rete locale alla rete geografica (Internet). A questo punto, gli 1 e gli 0 binari del pacchetto dei dati vengono trasmessi attraverso la rete locale dell'utente,

6. Il modello Internet in azione

Page 34: 1. Il modello Internet e i protocolli TCP/IP

dove trovano un router che costituisce la porta verso Internet. Il router elimina le intestazioni e le code della rete locale. Vengono esaminate le informazioni dell'intestazione Ip, stabilendo così che il pacchetto deve proseguire verso Internet. Vengono quindi applicate nuove informazioni per la rete geografica (Wide Area Network, WAN), necessarie affinchè il pacchetto dei dati possa viaggiare attraverso la WAN. Alla fine, gli 1 e 0 binari del pacchetto dati vengono immessi nella rete geografica. Dopo che il pacchetto dei dati ha viaggiato lungo Internet finisce per arrivare al router connesso alla rete locale che contiene il server Web desiderato. Questo router elimina le informazioni di rete geografica, riconosce che il pacchetto va immesso nella rete locale e inserisce le opportune intestazioni e code per la rete locale. Il pacchetto viene immesso sulla rete locale e, utilizzando le informazioni di indirizzo dell'intestazione, viaggia fino al computer che contiene l'applicazione server Web. Mentre il pacchetto si sposta attraverso i livelli del server Web, vengono progressivamente eliminate le intestazioni di rete, IP e TCP. Infine, l'applicazione server Web riceve il comando Acquisisci pagina Web, identifica là pagina Web richiesta e crea un nuovo pacchetto di dati, che contiene le informazioni richieste. Il nuovo pacchetto di dati ora si muove giù per i vari livelli e poi all'indietro, tramite i router, fino alla rete locale e alla stazione di lavoro dell'utente. Infine, la pagina Web viene visualizzata sul monitor del computer dell'utente. È interessante notare che, quando un pacchetto di dati viene trasferito attraverso un modello e passa attraverso tutti i livelli del sistema, aumenta gradualmente di dimensioni. Questo incremento va attribuito al fatto che ogni livello aggiunge proprie informazioni ai dati originali. Queste informazioni aggiunte dai vari livelli sono necessarie quando i dati arrivano alla loro destinazione e aiutano a fornire servizi quali il rilevamento e il controllo degli errori, il controllo del flusso e gli indirizzamenti della rete. L'aggiunta di informazioni di controllo a un pacchetto che si sposta attraverso i vari livelli viene detto incapsulamento.