Sei sulla pagina 1di 30

Pillole di Internet

Orientarsi tra termini come LAN, WAN, Ethernet, HUB, Bridge, Router, Switch, TCP/IP, NAT, ipv4
ed ipv6, MPLS ed altro ancora
Ciro Carbone
Ho cercato di condensare, senza presunzione e per quanto possibile, un compendio riassuntivo degli elementi basilari
per orientarsi tra i fondamenti di Internet e di intranet ed i termini come LAN, WAN, Ethernet, HUB, Bridge, Router,
Switch, TCP/IP, NAT, ipv4 ed ipv6,, MPLS ed altro ancora

Indice:

Capitolo 1 Introduzione alle reti LAN


Capitolo
2.1
2.2
2.3
2.4

2 protocolli Ethernet, TCP/IP, IPv4, ARP, DNS ecc.: la Matrioska!


ARP
DNS
TCP
Conclusioni

Capitolo 3 Bridge e Switch


Capitolo 4 Reti WAN
Capitolo 5 Router
Capitolo 6 MPLS
Capitolo 7 Indirizzi IP, classi e Subnet Mask
Capitolo 8 NAT
Capitolo 9 IPV

1.1

Introduzione alle reti LAN

Il termine LAN un acronimo di Local Area Network (Rete Locale) ed identifica


una piccola o media rete di computers, definiti anche Hosts (ospiti o utenti)
che possono comunicare tra loro e condividerne risorse di natura informatica
(dati, cartelle, files, stampanti, dischi, fax ecc.).
In passato le prime reti LAN utilizzavano una connessione su cavo coassiale,
ovvero tutti gli hosts erano connessi ad un unico cavo (chiamato bus)Il bus era
costituito da un cavo coassiale con una anima interna di rame ed una calza di
rame pi esterna ed isolata dallanima tramite materiale isolante dielettrico.
Il cavo coassiale utilizzato poteva essere un RG-8, di grosso diametro, rivestito
da una guaina di plastica arancione o gialla (da cui il nome di cavo giallo o
thick-cable=cavo grasso) o di altro tipo (RG-58 o altro), pi sottile, di colore
nero o bianco (detto anche thin-cable=cavo magro) e con impedenza tra i
50ohm e i 75 ohm. Per il thin-cable, laggancio dei computer della LAN sul cavo
bus avveniva con derivazioni con connettori BNC detti a T

Originariamente, negli anni settanta, il cavo bus poteva raggiungere lunghezze


di 500 metri e la rete prendeva il nome di 10Base5. Questa dicitura identifica
con 10 il bit rate supportato (10Mbits/sec), Base identifica il tipo di
modulazione dei bit dei dati che viaggiano sul bus (Base identifica una
modulazione in banda base, in inglese BaseBand), 5 codifica la lunghezza di
500 metri di bus per ciascun segmento. Questo cavo veniva fatto scorrere
come una biscione lungo l'intera lunghezza della rete accostandosi alle varie
stazioni che doveva interconnettere ma senza mai toccarle realmente. Il
contatto con queste ultime avviene attraverso un cavo di derivazione,
chiamato drop cable (cavo di spillamento), che poteva essere lungo fino a
massimo di 50 metri e che veniva collegato, a sua volta, ad un connettore
DB15 denominato AUI (Attachment Unit Interface) posto direttamente sulla
scheda di rete del computer. L'unione tra drop cable e cavo coassiale avveniva
tramite una speciale scatoletta che conteneva un trasmettitore/ricevitore di
nome transceiver (transmitter/receiver). Il transceiver usato nelle reti 10Base5 vieniva innestato sul cavo coassiale mediante una complessa operazione di
montaggio meccanico, poich questo di tipo coassiale e quindi devono essere
evitate le possibili interferenze che si generano per contatto tra la maglia
esterna e il filo interno. Tra una macchina e l'altra devono esserci almeno 2,5
metri di cavo coassiale. Infine il cavo talmente rigido e pesante che non
possibile curvarlo se non descrivendo un arco molto ampio.

Linsieme di una rete LAN cos collegata prende il nome di Dominio o meglio
collision-Domain (poi vedremo il perch).
Altri sistemi analoghi erano il 10-Base2 (200 metri) ed il 10-BaseT (con cavo
Twisted, cio intrecciato).
Gli svantaggi del cavo coassiale difficile da stendere, costoso, difficile da
mantenere in caso di interruzioni e guasti, difficile da curvare spron la ricerca
di un sistema pi opportuno: nasce lHUB.
LHUB potrebbe essere tradotto in italiano col termine concentratore; esso
non fa n pi, n meno di quello che fa un cavo coassiale con tutte le sue
derivazioni a T, drop-cable, AUI e transceivers. Lo possiamo immaginare come
uno scatolotto con una parte elettronica interna, una alimentazione
energetica e tanti plugs RJ femmina a cui vanno collegati i computers della
stessa rete LAN

Invece di stendere un cavo coassiale lungo tutto lo spazio della rete LAN, basta
collegarvi ogni host con lapposito plug RJ45. NellHUB della foto sopra potremo
collegare un massimo di 4 hosts, quindi realizzare una piccola rete LAN con
quattro computers. Il cavo dal computer allHUB non pu superare, per, i 100
metri di lunghezza. I 4 computers in rete realizzeranno quindi la propria rete
LAN ed apparterranno, quindi, al proprio collision-Domain. Luso dellHUB rende
molto pi semplice il cablaggio di una rete LAN e sicuramente anche pi
conveniente in termini economici. Inoltre, linturruzione accidentale di un cavo
verso un host non pregiudicherebbe lisolamento di una parte della rete come
nei cablaggi con cavo coassiale. Oggi, per realizzare una LAN si userebbe
esclusivamente un HUB come quello nella figura sopra.

Bench da un punto di vista topologico una rete realizzata con un HUB


fisicamente una rete a stella e non pi a bus, logicamente la topologia rimane
a bus. Infatti in un HUB dobbiamo immaginare ci fosse un bus che
interconnette tutti gli hosts.
Il cavo utilizzato con gli HUB non pi di tipo coassiale ma un multifilare con
almeno 4 anime il cui colore in sequenza arancione, blu, verde, marrone

I connettori sono chiamati plugs e sono del tipo RJ-45. La numerazione parte
da sinistra verso destra. In un cavo LAN RJ-45 ci sono 8 fili ma per il traffico
LAN ne bastano solo 4, cio i cavi numerati 1, 2, 3 e 6.
Pin Assignment
1

Transmit + (TX+)

Transmit - (TX-)

Receive + (RX+)

Reserved

Reserved

Receive - (RX-)

Reserved

I cavi di collegamento RJ-45 possono essere di due tipi: dritti e incrociati.


8
Reserved da una corrispondenza
I cavi dritti sono di tipo pin-to-pin, ovvero caratterizzati
delle anime tra i due plugs estremi (1 con 1, 2 con 2 ecc.), mentre i cavi
incrociati, detti anche cross-cable, hanno linversione del pin 1 col 3 ed il pin 2
col 6 ad una estremit. Questa inversione coincide con linversione tra Tx ed
Rx. Il cavo dritto viene utilizzato quando si devono collegare due apparati di
rete con funzionalit differenti (es. un computer con un hub, un router con uno
switch ecc.), mentre il cross-cable servir per collegare due apparati con le
stesse funzionalit (es. due computers, due HUB, due router, due switch ecc.).
Una domanda lecita potrebbe essere: se ho un piccola rete LAN di 4 computers
ed ho, quindi, un HUB con quattro porte (come quello in figura sopra) ma ora
ho necessit di estendere la mia rete, poich ho altri 3 computer da
aggiungere, cosa faccio? Compro un nuovo HUB con pi porte e butto il
vecchio?
La risposta : non necessariamente
E possibile, infatti, aggiungere pi HUB in cascata ed il cavo che collegher i
due HUB potr avere una lunghezza massima di 100 metri.

I sei host collegati nella figura sopra realizzano una singola rete LAN o una
singola collision-Domain.

2. I protocolli Ethernet, TCP/IP, IPv4, ARP, DNS ecc.: la Matrioska!


Cosa viaggiava sul cavo coassiale o sul cavo twisted prima o ancora oggi
attraverso gli HUB? Ci che viaggia sono bit, quindi impulsi in formato digitale,
organizzati in spezzoni (frame) e pacchetti alle velocit di 10Mbit/sec. (circa 10
milioni di bit al secondo) o 100Mbit/sec. (100 milioni di bit al secondo). Oggi
tuttavia esistono reti Gigabit ben pi veloci con miliardi di bit in un secondo.
Gi negli anni settanta Xerox,Digital e Intel inventando il protocollo
ETHERNET consentirono la nascita delle prime reti locali LAN. Ancora oggi
Ethernet il protocollo universalmente pi utilizzato per le comunicazioni nelle
reti. Altri protocolli furono sviluppati negli anni come il Token Ring . ma
quello che sopravvissuto lEthernet a velocit sempre pi elevate:
10-BaseT, 10-Base2, 10-Base5 ecc. Ethernet a 10Mbits/sec.
100-BaseTx/Fx/Lx, ecc. Ethernet a 100Mbits/sec. o FastEthernet
1000-BaseTx/Fx/Lx Gigabit Ethernet
Ethernet si basa su bit che vengono raggruppati in spezzoni denominati
Frames. Ciascun Frame composto da un minimo di 74 Byte ad un massimo di
1526 Byte. Poich un Byte composto da 8 bit, il frame ethernet composto
da un minimo di 592 bit ad un massimo di 12208 bit. I primi 7 Byte

costituiscono il Preambolo (una serie di bit a 0 ed 1 alternati che avverte le


interfacce LAN dellinizio di un frame e ne consente la sincronizzazione con la
relativa estrazione del clock). Il Byte successivo chiamato SFD o start of
frame ed composto da 8 bit tutti ad 1 che indica linizio del frame. A seguire
troviamo 6 Byte di destination address e 6 Byte di source address. Nei 6
Byte del destination address, troviamo codificato in binario il codice MAC
address dellhost destinatario del frame, mentre nei 6 Byte successivi il MAC
address dellhost che ha generato il frame ethernet. Il MAC address (Media
Access Control) un codice che identifica in modo univoco lindirizzo fisico
dellhost: per intenderci, nel nostro computer sar lindirizzo fisico della nostra
scheda ethernet, rintracciabile digitando dal prompt di una macchina Windows
il comando ipconfig (o winconfig nelle vecchie versioni precedenti a XP):

Come visibile esso costituito da sei gruppi in esadecimale, che verranno


codificati in binario in 6 Byte.
I due Byte successivi sono chiamati Type ed identificano il tipo di frame
ethenet, cio identificano cosa seguir. Se seguir un pacchetto IP il valore di
type sar 800 in esadecimale (0x800 dove 0x indica la rappresentazione
decimale). Dopo il Type seguono i dati o payload, cio il carico informativo
vero e proprio in cui sono inseriti i pacchetti IP del protocollo Internet. Quindi
chiaro che il contenuto dei dati IP inglobato allinterno di un frame Ethernet
come in una matrioska. Poich il Payload deve contenere il pacchetto IP, esso
pu avere lunghezza variabile a seconda del pacchetto IP. Pu, quindi, spaziare
da un minimo di 48 byte ad un massimo di 1500 byte. Il frame termina con un
ultimo campo di 4 Byte detto FCS (Frame Check Sequenze) o CRC (Cyclic
Redundancy Code) che contiene il checksum di tutto il frame consentendone,
entro alcuni limiti, la correzione di bit errati durante la trasmissione da parte
del destinatario del frame senza necessariamente richiedere una
ritrasmissione.

Discutendo di Ethernet e pacchetti IP si sentir spessissimo nominare la parola


livello. Ebbene, ci perch esiste al mondo un modello di riferimento a cui
tutti i protocolli di comunicazione devono attenersi: questo modello si chiama
modello di riferimento ISO OSI. Il modello ISO-OSI uno standard creato
dalla ISO (International Standard Organization) relativo allinterconnessione di
sistemi informatici aperti alla comunicazione (OSI= Open System
Interconnection) ed diviso in sette livelli:

Il modello di riferimento, detto anche pila ISO-OSI, si districa dal livello pi


basso, il livello 1 ovvero quello fisico riferito al protocollo di standardizzazione
del mezzo fisico di trasmissione dellinformazione fino al livello 7, quello
applicativo che nei nostri computer in rete coincide con i software applicativi
(es. il browser che utilizziamo per navigare). Il livello 1 attinente al metodo
di trasmissione, sia esso tramite segnali elettrici su cavo, tramite luce su fibra
ecc. avendo a che fare con i bit. Il livello 7 lapplicazione, cio il software che
gira sul nostro computer in rete e che non si preoccupa di come viaggino i bit e
su quale mezzo ma solo di manipolare linformazione utile. Ad esempio, il
browser per navigare (Internet Explorer, FireFox o Opera), non si preoccuper
di come viaggiano i bit dinformazione sulla rete ma interessato solo a
codificare linformazione utile del pacchetto IP per mostrarci il contenuto delle
pagine web con i suoi testi, immagini, collegamenti ipertestuali.
Se volessimo fare unanalogia con lethernet ed il pacchetto IP, diremo che
Ethernet un protocollo che coincide con il livello 2, mentre il pacchetto IP, o
meglio il TCP/IP, con i livelli successivi, dal livello 3 al livello 7:

Una scheda Ethernet non si preoccuper di andare a leggere il pacchetto IP


dentro il frame ma legger solo il destination address ed il source address
del frame. Il contenuto del pacchetto IP lo ceder, cos come , al computer, o
meglio a chi si dovr occupare dei livelli superiori. Anche lHUB non andr a

spacchettare il payload del frame per osservare il pacchetto IP, ma osserver


solo i MAC addresses contenuti in destination address e source address del
frame Ethernet.
A sua volta il pacchetto (o datagramma) IP cos composto (diviso su due
righe per motivi di spazio):

Tutti i bit che precedono il campo Dati costituiscono lheader (intestazione)


del pacchetto IP.
I primi quattro bit delheader definiscono la versione del protocollo IP: quelle
maggiormente in uso sono la versione 4, nota anche come ipv4 e la versione 6
o ipv6. In questo esempio consideriamo solo la versione 4, cio quella
attualmente in utilizzo ed accenneremo in seguito le differenze sostanziali
dellipv6. I 4 bit HLEN (Header LENght) codificano la lunghezza dellheader
del pacchetto . Il campo HLEN necessario perch essendo il campo
Opzioni di grandezza variabile, di lunghezza variabile anche tutto lheader.
Service Type serve per implementare features di QoS (Qualit of Service),
consta di 8 bit, dove i primi 3 specificano un livello di priorit per i dati
contenuti nel pacchetto che va da 0 (precedenza normale) a 7 (precedenza alta
e controllo totale della rete). Altri tre bit vengono denominati D, T, R. Quando
sono attivati, il bit D richiede un basso ritardo, il bit T un troughput elevato
(grosso flusso di dati), il bit R un'alta affidabilit. Gli altri due bit non sono
usati. Lunghezza totale esprime la lunghezza in bit di tutto il pacchetto, cio
header e dati. Il campo Identificazione contiene un numero intero che
identifica il pacchetto. Serve per riassemblare il pacchetto se viene
frammentato. Questo campo uguale per ogni frammento del datagramma
originale (es. se un pacchetto IP numerato con Identificazione=8 viene
frammentato in quattro parti, questi quattro frammenti avranno nel campo
Identificazione il numero 8, cosicch allaltro capo sar possibile
comprendere come ri-assemblare lintero pacchetto frammentato). La
frammentazione avviene se il pacchetto deve attraversare una rete in cui
esiste un parametro detto di MTU (Maximum Transfer Unit) di valore pi
piccolo della lunghezza totale dello stesso pacchetto IP (vedi anche IP over
ATM). Nel campo Flags ci sono tre bit che specificano se il pacchetto IP pu
essere frammentato oppure se l'ultimo frammento di un pacchetto. Il primo
bit quello di "non frammentazione" (DF), gli altri due indicano se il pacchetto
l'ultimo oppure bisogna aspettarne di ulteriori. I 13 bit di Fragment Offset,
invece, costituiscono la numerazione interna dei frammenti (es. una volta riassemblati, grazie al campo identificazione, tutti i frammenti appartenenti
allo stesso datagramma, c necessit di ordinarli nella giusta sequenza). Il

campo TTL (Time To Live, cio tempo di vita) un contatore che ogni router
che viene attraversato dal pacchetto decrementa ad ogni passaggio. Quando
scade il pacchetto viene scartato ed il router invia un messaggio di errore al
mittente. Serve per evitare i loopback. E facile accorgersi del TTL: provate a
lanciare il comando ping verso un sito web conosciuto (es. ping www.google.it)
e noterete che comparir un valore TTL ad ogni risposta:

Nel caso della figura sopra il TTL 245, ci significa che il datagramma IP
sopravviver fino ad un massimo di 245 passaggi per i routers della rete
Internet prima di poter giungere al web www.google.it. Se per arrivare al web
di Google dovesse passare per pi di 245 routers, il pacchetto morirebbe e noi
avremmo la risposta di unreachable (irraggiungibilit). A seguire il campo
Protocollo di 8 bit, identifica il protocollo superiore al quale IP deve passare i
dati ovvero, per essere pi chiari, identifica che tipo di protocollo seguir nel
campo Data ad es. UDP, TCP ecc. che analizzeremo meglio di in seguito. Se
nei dati a seguire ci sar un segmento TCP, il valore del campo Protocollo lo
avviser col suo valore a 6, se UDP a 17, se ICMP sar 1 ecc. Checksum il
codice checksum dell'header IP. Source e Destination IP Address sono i
campi a 32 bit per gli indirizzi IP di provenienza e destinazione.
Una nota a parte meritano gli indirizzamenti IP. Il Source IP address (32 bit)
contiene lindirizzo IP dellhost che ha generato il pacchetto IP, mentre
Destination IP address lindirizzo IP del destinatario. E interessante notare
che anche nel frame Ethernet esistono due campi simili (Destination address e
Source address) ma di natura differente: nei campi Destination e Source
address del frame Ethernet troveremo i MAC address delle interfacce di rete,
che sono indirizzi fisici degli host. Diversamente, in Destination e Source IP
address del pacchetto IP entrocontenuto nel frame Ethernet troveremo due
nuovi codici identificativi che identificano gli stessi host non pi a livello fisico
ma ad un livello pi alto: i livelli IP, appunto. Un indirizzo IP, a differenza del
MAC address, non legato fisicamente alla macchina e pu essere facilmente
cambiato, cos come semplice cambiare indirizzo IP al nostro computer in
rete. Il formato di un indirizzo IP classico (quello che viene utilizzato
attualmente) standardizzato in RFC??? Ed chiamato IPv4 (IP versione 4). In
versione 4 il formato degli indirizzi codificato da 32 bit in binario, cio in 4
numeri decimali. Ad esempio il sito www.google.it pu avere tra i suoi indirizzi
disponibili 209.85.129.99 che tradotto in binario equivale a
11010001.1010101.10000001.1100011. Sar proprio questa sequenza di 0 e
di 1 che verr inserito nel campo a 32 bit Destination IP address del
pacchetto IP generato dal nostro computer per interrogare il sito web di
Google. In Source IP address ci sar, invece, lindirizzo IP assegnato alla
nostro computer dallInternet provider al momento della connessione ad
Internet o, se dovesse trattarsi di una macchina in rete Internet con indirizzo

pubblico lIP address, lindirizzo IP assegnato alla macchina dalla IANA


(Internet Assigned Number Authority; lente internazionale che assegna gli
indirizzi IP in tutto il mondo vedi www.iana.org).
Per convertire un qualsiasi numero decimale in binario basta affidarsi allo
schemetto di seguito riportato:
128

64

32

16

Se si desidera convertire il numero decimale 209 baster porre un 1 nelle


caselle la cui somma dei numeri porter a 209

128
1

64
1

32
0

16
1

8
0

4
0

2
0

1
1

Infatti 128+64+16+1 uguale a 209. Ecco perch la conversione binaria di


209 11010001. Se ponessimo, invece, tutte le caselle ad 1 avremmo 255.
128
1

64
1

32
1

16
1

8
1

4
1

2
1

1
1

*In verit per navigare sui siti web, nessuno di noi si sognerebbe di conoscere
a memoria gli indirizzi IP. Sarebbe, infatti, come dire che per raggiungere
www.google.it dovremmo digitare dal nostro browser 209.85.129.99. In realt
potremmo pure farlo e funzioner di sicuro! Ma non potremmo certo ricordarci
a memoria i numeri identificativi degli IP address di tutti i siti ed host che
vorremmo raggiungere: per questo ci viene in aiuto un servizio appartenente
ad IP chiamato DNS (Domain Name Server) di cui si analizzer meglio in
seguito.
Tornando al datagramma IP, dopo Source e Destination IP address c un
campo con numero di bit variabile chiamato Opzioni. In questo campo ci sono
codici che identificano le opzioni necessarie soprattutto per testare la rete e
per il debbunging. Le principali sono: percorso di provenienza, registrazione del
percorso e contrassegno temporale. La prima specifica negli ottetti di dati gli
indirizzi IP che il pacchetto obbligato ad attraversare per giungere a
destinazione. Serve per esempio per testare il troughput di un particolare
percorso. La seconda invece consente ad ogni router che incontra il pacchetto
di inserire il proprio IP Address per registrare il percorso compiuto. La terza
molto simile alla seconda, poich il router inserisce oltre all'IP Address, anche
un contrassegno temporale di 32 bit che fornisce la data e l'ora in cui il
gateway ha elaborato il pacchetto.
Se andiamo ancor pi nello specifico possiamo dettagliare meglio cosa vi
dentro il campo Data del datagramma IP: scopriremo alcuni importanti
servizi dell IP. Dentro il campo Data ci sono i livelli superiori dellIP definiti
anche ULP (Upper Level Protocol). La filosofia : pi si entra nella matrioska
del pacchetto, pi saliamo ai livelli superiori.

Come visibile se torniamo allimmagine comparativa con


riferimento ISO-OSI, il pacchetto IP appena analizzato
(livello rete). Se andiamo ancor pi dentro la matrioska,
del pacchetto IP, scopriremo il livello subito superiore: il
livello 4 quello del TCP UDP ICMP EIGRP.

il modello di
considerato livello 3
cio nel campo Data
livello trasporto o

Prima di analizzare il pacchetto TCP, UDP o ICMP cercher di specificare


brevemente la funzione di questi servizi. TCP ed UDP sono il livelli di trasporto
dell IP: il primo pi affidabile, il secondo meno. UDP (User Datagram
Protocol) un protocollo di livello trasporto di tipo connection-less (senza
connessione). Connection-less significa che il livello si preoccupa solo di
incapsulare i suoi dati e consegnarli al livello pi basso per linvio, dopodich se
i dati arrivino o meno a destinazione e/o in modo corretto non ha importanza.
TCP (Tranfer Control Protocol) invece, come dice il suo nome, si preoccupa di
effettuare opportuni controlli per sincerarsi del giusto trasferimento. TCP,
quindi, a differenza di UDP, stabilisce una connessione con il livello TCP
dellaltro host in comunicazione. Per questo motivo TCP pi affidabile ma pi
lento ed perci pi adatto al trasferimento di files, UDP meno affidabile ma
pi veloce ed , quindi, pi opportuno per il trasferimento di dati voce o
applicazione real-time, dove pur se si verifica la perdita di qualche segmento di
dati o la ricezione non corretta, ci non determina criticit. Se volessimo fare
un paragone banale, diremmo che TCP lequivalente di una lettera. ICMP
(Internet Control Message Protocol) il protocollo utilizzato da alcune
applicazioni per testare funzionalit di rete e di Internet. ICMP non porta dati
utili ad applicazione come il browser o la posta o altri simili, porta dati per
lanalisi della rete: problemi di congestione, analisi dei problemi di rete,
troubleshooting, annunci di timeout. ICMP il protocollo utilizzato da una
classica applicazione come il ping che utile per verificare la raggiungibilit di
un host e prevede una serie di risposte come la raggiungibilit (reply),

lirragiungibilit (unreachable) o sulla congestione (source quench) o i ritardi


(timeout). Attenzione! ICMP non viene utilizzato dallapplicazione traceroute
(comando tracert su Windows) per controllare il percorso di un pacchetto IP:
traceroute utilizza UDP!
ICMP spesso viene disabilitato su alcuni server poich questo protocollo
notoriamente utilizzato come ABC per le analisi degli Hacker. Il fatto di non
ricevere un reply pingando un server non significa che il server sia
malfunzionante: pu darsi che sia stato disabilitato ICMP su quel server per
motivi di sicurezza. Volendo potremmo banalizzare associando ad
raccomandata con ricevuta di ritorno il TCP, mentre UDP una semplice lettera
in posta ordinaria.
Volendo addentrarsi ancora di pi nella matrioska, ed analizzare come le
applicazioni scelgono i protocolli di livello 4, sarebbe molto interessante
installare sul proprio PC Windows un cosiddetto sniffer ethernet: un
programma che legge e cattura tutto quello che accade su una rete LAN con
Ethernet. Da www.wireshark.org possibile scaricare WireShark e da
www.ethereal.com lo sniffer Ethereal. Entrambi sono software free ma io
preferisco ed uso WireShark e qui di seguito incoller alcuni print-screen
prelevati da una catturazione di poco pi di un minuto sulla mia rete wireless di
casa. Attualmente la mia rete wireless composta da un wireless ADSL router
USRobotics (IP 192.168.1.1) a cui mi collego con un computer portatile con
hostname Solomone (192.168.1.3) via WiFi. Al router USRobotics anche
collegato via cavo un disco autonomo di rete (quelli generalmente chimati NAS
Network Attached Storage) con IP 192.168.1.4 ed un computer desktop con
Linux Ubuntu 6.10 avente indirizzo IP 192.168.1.2 ma temporaneamente
spento.
Router ADSL gateway
Computer Desktop Linux
Computer portatile
Disco di rete NAS

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

Con il desktop spento, provo a catturare il traffico di questa piccola LAN


domestica per poco pi di un minuto collegandomi prima al sito
www.flamenetworks.com e poi con una seconda sessione di Internet Explorer a
www.cirocarbone.it, poi infine mi collego al mio disco di rete. Catturo ed
analizzo e noto subito che i primi pacchetti sono di tipo ARP.

2.1 ARP
ARP spessissimo utilizzato in IP e ne troveremo pieni i buffer di catturazione
di WireShark. ARP (Address Resolution Protocol) il protocollo utilizzato nel
mondo IP per associare il MAC Address di un host al suo indirizzo IP. Provate a
navigare un po in Internet e subito dopo digitate dalla vostra macchina
Windows il comando arp a; noterete probabilmente un output simile a
questo:

In questa tabellina di due righe, detta tabella ARP, il mio computer contiene
lassociazione dei MAC address di due host aventi indirizzo IP 192.168.1.1 e
192.168.1.4. Si badi bene che queste informazioni sono di tipo dinamico, cio
permangono in memoria solo per un po, dopodich verranno automaticamente
cancellate da ogni computer (su Windows dovrebbero durare circa 10 minuti).
A cosa serve questa tabella ARP? Questa tabella indispensabile a ciascun host
in rete, poich se il computer A vuole parlare con B dovr conoscere innanzi
tutto il MAC address per costruire la frame Ethernet ed anche lindirizzo IP di B
per costruire, poi, il pacchetto IP da inserire nella frame. Come fa un host a
conoscere gli indirizzi IP e i MAC address della sua rete LAN? Semplice: ciascun
host invia sulla rete LAN, automaticamente e senza che ve ne accorgiate,
alcuni frame e pacchetti chiamati broadcast (cio diretti a tutti) a cui gli altri
host della rete LAN rispondono comunicando il proprio MAC address ed il
proprio indirizzo IP. Questi due dati verranno poi memorizzati nella tabella ARP
da tutti gli host che ascoltano questa doppietta di dati sulla rete. I frame
Ethernet di tipo broadcast partono da un mittente ma, essendo diretti a tutti,
hanno come destinatario il campo Destination Address con i bit tutti a 1 (valore
esadecimale FF). Esistono, inoltre, due tipi di broadcast: il directed broadcast
ed il local broadcast. Il local broadcast si verifica quando lhost interroga tutti e
chiunque libero di rispondere. Il directed broadcast inviato fisicamente a
chiunque sulla rete solo perch il mittente del broadcast ha cancellato
(probabilmente per inattivit o rimozione) lassociazione indirizzo IP e MAC
address di un determinato host. Pur leggendolo tutti, il directed broadcast,
come se fosse un urlo ad un determinato host sulla rete.

Nella prima, seconda e terza riga del print-screen, il router


(USRoboti_20:4c:bb gli ultimi dati corrispondono agli ultimi byte in
esadecimale del suo MAC address), che funge da gateway e server, chiama
lhost 192.168.1.2, aspettandosi che risponda col suo MAC address, cosicch
poter aggiornare la sua tabella ARP. In realt, il router non ha la tabella
aggiornata per 192.168.1.2 poich questultimo stato volutamente spento.
Lhost 192.168.1.2 (computer Desktop Linux), essendo stato spento ed
assente dalla rete, non pu rispondere e quindi il broadcast sar disatteso. Il
pacchetto IP entrocontenuto nel frame di tipo ARP e ci si intuir dal codice
0x806 nel campo type del frame. Comunque, lo sniffer correda comodamente
dei commenti abbastanza chiari: Who has 192.168.1.2? Tell 192.168.1.1 che
tradotto : Chi ha indirizzo 192.168.1.2? Dica a me 192.168.1.1. Notare nella
parte bassa il Destination della frame Ethernet a ff:ff:ff:ff:ff:ff (non si
conosce, infatti, il MAC del destinatario e perci viene generato questo directed
broadcast) ed, inoltre, il Destination del pacchetto IP settato a 192.168.1.2 e
del Source a 192.168.1.1.
Nella quarta riga subentra un nuovo host, il portatile con indirizzo 192.168.1.3,
che chiede con un directed broadcast il MAC address del router. Nella quinta
riga il router risponde al portatile dandogli il suo MAC address. A questo punto
il portatile, avendo aggiornato la sua tabella ARP, pu comunicare col router
qualora volesse. Si noti che queste prime cinque righe sono tutte di tipo ARP,
ovvero utilizzate dagli host di rete per aggiornare le loro tabelle ARP ed avere
le associazioni tra indirizzo IP e MAC address. ARP un protocollo non
utilizzato direttamente dalle applicazioni IP ma su cui le applicazioni si
appoggiano indirettamente. E direttamente implementato in Ethernet (livello
2) ma pu essere invocato automaticamente e/o indirettamente dalle
applicazioni IP.

2.2 DNS
Si gi accennato al protocollo DNS. Ora lo osserviamo con maggiore dettaglio
nella sesta e settima riga dellimmagine sopra. In concomitanza con la sesta
riga ho aperto il browser Internet ed ho digitato lindirizzo
www.flamenetworks.com Il mio computer portatile non ha per lindirizzo IP n
il MAC address del sito web in questione ed allora chiede al router delucidazioni
(il router funge anche da DNS server, poich lho settato io come server DNS
nelle impostazioni TCP/IP di Windows quando ho messo in piedi la rete). Il
router riponde al portatile (riga 7) dandogli lip address del sito web
(84.200.25.7) ma non il MAC address. Questultimo dato, il router se lo
conserva per se, poich essendo lui il gateway verso lesterno della rete LAN e
non essendo, lhost di www.flamenetworks.com , riconosciuto sulla rete LAN,
dovr essere lui a fare da tramite verso il mondo Internet. Il portatile allora,
comincia a costruire frame Ethernet in cui il Destination MAC address quello
del router mentre il Destination IP address del pacchetto IP quello di
www.flamenetworks.com (riga 8). In verit quello che ci racconta lo sniffer
solo limitato alla mia rete locale LAN. Quello che accade fuori, verso Internet,
non viene visto. Il router avrebbe potuto non avere lindirizzo IP di
www.flamenetworks.com, magari perch non ero mai andato su questo sito
prima di allora. Allora, come ha fatto, il router, a procurare questo indirizzo ip
84.200.25.7 al mio pc portatile?
Per rispondere a questa domanda dobbiamo aprire un parentesi e spiegare
come funziona il meccanismo di ricerca degli indirizzi IP a partire dal nome del
dominio web.

Facciamo attenzione quando parliamo di DNS (Domain Name Server): per DNS si identifica impropriamente sia il
protocollo usato dallapplicativo (vedi righe 6 e 7), sia un oggetto fisico vero e proprio. Loggetto fisico altro non e che un
particolare server, inserito nella rete Internet, che contiene tabelle con la corrispondenza tra i nomi dei siti ed i relativi
indirizzi IP (ad esempio www.repubblica.it 213.92.16.191). I server DNS sono sparsi per il mondo e si dividono
due tipologie: autoritativi e non autoritativi. I server DNS autoritativi sono quelli ufficiali, gestiti da enti e riconosciuti
universalmente. I server DNS non autoritativi non contengono informazioni ufficiali e sono creati e gestiti dai providers
che forniscono la connettivita alla rete internet.
I DNS autoritativi sono strutturati gerarchicamente e sono di tre tipi, chiamati rispettivamente:
1) root DNS
2) DNS delle Registration Authority
3) DNS Authoritative
I DNS non autoritativi (quelli dei providers) sono, invece, i DNS di comunicazione
I server DNS principali e gerarchicamente piu importanti sono i root DNS (detti anche DNS di primo livello) e che
costituiscono la struttura base della rete Internet. I root DNS sono server autoritativi, gestiti da enti ufficiali e hanno la
responsabilit di indirizzare la ricerca verso altri DNS, gerarchicamente inferiori, sulla base del primo livello del nome del
dominio, cio di ci che viene evidenziato dopo il punto del nome del servizio web ricercato. Ad esempio, un root Server
conterra informazioni relative a tutti i domini di primo livello come i .com, .net, .org, .it, .fr, .info ecc. ed i riferimenti per
smistare lindirizzamento ai Server DNS di secondo livello. Ciascun root DNS ha un indirizzo nel formato x.rootserver.net, in cui x e una lettera che varia da a a m (quindi esistono 13 root server in tutto il mondo vedi
http://www.root-servers.org/). Sotto i root DNS ci sono i DNS delle Registration Authority, gestiti da vari enti
riconosciuti anchessi a livello internazionale e quindi anchessi autoritativi. I DNS delle Registration Authority
contengono tutti i domini di una specifica competenza: ad esempio tutti i domini .it su tutto il territorio italiano sono

contenuti nei DNS di secondo livello gestiti da enti come CNR (Consiglio Nazionale Ricerche), NIC ( www.nic.it), la
societa COGENT (www.cogentco.com) ecc.. Continuando, sotto i DNS di Registration Authority, ci sono i DNS
Authoritative che contengono i dati specifici dei domini. Essi sono gestiti dagli MNTs (mainteners), cioe dalle aziende
che effettuano housing ed hosting degli spazi web (ad esempio www.sarkom.it o www.aruba.it). Esistono, poi, i
server DNS di connessione che sono quelli che utilizziamo puntualmente noi utenti navigatori durante le varie
operazioni su Internet. I DNS di connessione sono gestiti dai providers di connessione che ci garantiscono, quindi, la
connettivita ad Internet (es. Telecom Italia, Tele2, Libero, Tiscali, Vodafone ecc.) e non sono di tipo autoritativo.
Per meglio comprendere come avviene linterrogazione dei vari tipi di DNS assumiamo un esempio banale in cui si vuole
visitare il sito internet www.prozone.it digitandolo nella barra degli indirizzi del nostro browser. La prassi normale e
che il primo DNS che verr interrogato e il DNS di connessione del nostro provider. I DNS di connessione dei
providers hanno una cache interna che memorizza per un tempo determinato lassociazione nome IP address. Se il
nome del sito web e ancora presente nella tabella dinamica della cache del DNS del nostro provider, il processo si
concludera con la restituzione diretta dellIP address interessato. Se il nome del sito web non presente nel DNS di
connessione, questultimo effettuer in sequenza i tre passi sotto elencati:
1)
contattera tutti i root DNS e questi ultimi notificheranno al nostro DNS di connessione i DNS di Registration
Authority che gestiscono i domini di primo livello .it;
2)
il nostro DNS di connessione contatta allora, uno per uno, tutti i DNS di Registration Authority comunicati
inviandogli il nome repubblica.it finche non trova il DNS di Registration Authority che gli risponde comunicandogli i
DNS autoritativi che contengono gli indirizzi IP del sito www.repubblica.it;
3)
il DNS di connessione, allora contettera, uno dopo laltro, i DNS Authoritative del maintener del sito di
repubblica.it per ottenere finalmente lindirizzo IP del sito web che vogliamo visitare.
Ecco un esempio pratico di ci che accade analizzato con lausilio di un codice:
quando inserisco questo indirizzo nel mio browser e premo il tasto invio, il DNS del mio provider di connessione interroga
i root DNS che rispondono all'indirizzo x.root-servers.net dove x e' una lettera che pu essere variabile dalla a alla
m.

CODE
Query: IT. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 46 ms. Server name: dnsti.interbusiness.it
Answer:
Authority:
. 3600000 NS j.root-servers.net.
. 3600000 NS k.root-servers.net.
. 3600000 NS l.root-servers.net.
. 3600000 NS m.root-servers.net.
. 3600000 NS a.root-servers.net.
. 3600000 NS b.root-servers.net.
. 3600000 NS c.root-servers.net.
. 3600000 NS d.root-servers.net.
. 3600000 NS e.root-servers.net.
. 3600000 NS f.root-servers.net.
. 3600000 NS g.root-servers.net.
. 3600000 NS h.root-servers.net.
. 3600000 NS i.root-servers.net.
Additional:
a.root-servers.net. 13284 A 198.41.0.4
b.root-servers.net. 13284 A 192.228.79.201
c.root-servers.net. 13284 A 192.33.4.12
d.root-servers.net. 13284 A 128.8.10.90
e.root-servers.net. 13284 A 192.203.230.10
f.root-servers.net. 13284 A 192.5.5.241
g.root-servers.net. 13284 A 192.112.36.4
h.root-servers.net. 13284 A 128.63.2.53
i.root-servers.net. 13284 A 192.36.148.17
j.root-servers.net. 13284 A 192.58.128.30
k.root-servers.net. 13284 A 193.0.14.129
l.root-servers.net. 13284 A 198.32.64.12
m.root-servers.net. 13284 A 202.12.27.33

Questi root DNS rispondono, quindi, che tutti i domini .it sono gestiti dai seguenti DNS dove il primo primario e tutti gli
altri sono secondari:

CODE
Query: IT. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 172 ms. Server name: h.root-servers.net
Answer:
Authority:
it. 172800 NS nameserver.cnr.it.
it. 172800 NS dns.nic.it.
it. 172800 NS dns2.it.net.
it. 172800 NS ns.ripe.net.
it. 172800 NS server2.infn.it.
it. 172800 NS dns2.iunet.it.
it. 172800 NS auth2.dns.cogentco.com.
it. 172800 NS it2.mix-it.net.
Additional:
nameserver.cnr.it. 172800 A 194.119.192.34
dns.nic.it. 172800 A 193.205.245.5
dns2.it.net. 172800 A 151.1.2.1
ns.ripe.net. 172800 A 193.0.0.193
server2.infn.it. 172800 A 131.154.1.3
dns2.iunet.it. 172800 A 192.106.1.31
auth2.dns.cogentco.com. 172800 A 66.28.0.30
it2.mix-it.net. 172800 A 217.29.76.4

Da queste due schermate e possibile notare che sia i Root DNS che i DNS delle Registration Authority sono
disclocati su diversi continenti, e diverse reti, cos che nel caso di guasto di un singolo server o di non raggiungibilit di
una certa rete non vengano oscurati in un colpo decine di migliaia di siti web.
Andando avanti, i DNS del nostro provider interrogano, quindi, a partire dal primo in lista, i DNS della Registration
Authority che nel caso di prozone.it rispondono come segue:

CODE
Query: prozone.it. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 47 ms. Server name: nameserver.cnr.it.
Answer:
Authority:
prozone.it. 86400 NS ns2.th.seeweb.it.
prozone.it. 86400 NS ns1.th.seeweb.it.

Ora che finalmente hanno trovato i DNS autoritativi per il nome a dominio vanno ad interrogare i DNS di cui sopra
(ns1.th.seeweb.it e ns2.th.seeweb.it) a partire dal primo in elenco, ottenendo lagognato indirizzo IP che ci serviva.

CODE
Query: prozone.it. Query type: Any record
Recursive query: Yes Authoritative answer: Yes
Query time: 2329 ms. Server name: ns1.th.seeweb.it
Answer:
prozone.it. 172800 SOA ns1.th.seeweb.it.
hostmaster.seeweb.it.
2004100500; serial
86400; refresh (1 day)
7200; retry (2 hours)
2592000; expire (30 days)
86400; minimum (1 day)
prozone.it. 172800 NS ns2.th.seeweb.it.
prozone.it. 172800 NS ns1.th.seeweb.it.
prozone.it. 172800 MX 20 smtp-f3.seeweb.it.
prozone.it. 172800 MX 20 smtp-f4.seeweb.it.
prozone.it. 172800 MX 10 m-01b.th.seeweb.it.

prozone.it. 172800 MX 20 smtp-f1.seeweb.it.


prozone.it. 172800 MX 20 smtp-f2.seeweb.it.
Additional:
ns1.th.seeweb.it. 172800 A 217.64.201.170
ns2.th.seeweb.it. 172800 A 217.64.202.202
m-01b.th.seeweb.it. 172800 A 217.64.202.206

Torniamo al nostro esempio tracciato col programma WireShark ed analizziamo


le righe 6 e 7. Il primo passo (riga 6 di WireShark) mostra una prima riga
contrassegnata come DNS (qui si intende lutilizzo del protocollo da parte
dellapplicazione Internet Explorer per le funzionalita di query sui DNS). Qui il
mio portatile effettua una query standard di tipo A (Any record) al router (che
funge anche da piccolo DNS locale). Questultimo potrebbe avere o meno
lassociazione dei dati per questo sito desiderato. Se lassociazione esiste gi,
risponde direttamente al portatile comunicando lindirizzo IP 84.200.25.7 del
sito che volevamo visitare, cioe www.flamenetworks.com, altrimenti nel lasso
temporale tra la riga 6 e la riga 7, la patata bollente verr scaricata dal mio
router al DNS di comunicazione del mio provider che si dovr
necessariamente impegnare a sviluppare tutto il flusso pocanzi descritto.

2.3 TCP (continuare)


Proseguendo con il tracciamento effettuato con WireShark, poich ho deciso di
aprire la pagina del sito web www.flamenetworks.com , lapplicazione (cio il
browser), ottenuto lindirizzo IP dal DNS, pronto per instaurare una
connessione TCP con questo sito web. Volendo essere piu preciso, cio che si
instaura e uno streaming (flusso) o per dirla tecnicamente un Socket.
Affinche si possa stabilire questa connessione virtuale tra il mio computer ed il
web server che contiene le pagine di www.flamenetworks.com e indispensabile
introdurre il concetto di porte Si immagini che il web server stia servendo
contemporaneamente piu utenti i quali stanno navigando, nello stesso lasso
temporale, le sue pagine: come fa il web server a discriminare i vari client ?
Come puo il web server distinguere i vari flussi di connessione, ovvero i
differenti Socket?
La discriminazione avviene grazie allutilizzo del TCP delle porte. Una porta non
e affatto un qualcosa di fisico ma virtuale: altro non e che un numero
identificativo di un Socket. Questo numero di porta e valore che segue
lindirizzo IP, sia di destinazione che sorgente. Avremmo, quindi, che
interrogando www.flamenetworks.com , lindirizzo completo di destinazione,
comprensivo di porta, potrebbe essere www.flamenetworks.com:80. Viceversa
se un qualche host del mondo esterno genera dei pacchetti destinati a noi,
questi pacchetti avranno il nostro indirizzo IP nel destination address seguito
da un numero di porta <nostro_indirizzo_IP>:1513
Figura pacchetto TCP
La porta diviene lidentificatore della sessione tra noi e laltro, ovvero del
Socket, ovvero del flusso di comunicazione. Supponiamo, ad esempio, di aprire
il nostro internet browser e di iniziare a navigare sul sito www.repubblica.it ;

contemporaneamente, supponiamo di aprirne un secondo e di avviare una


nuova navigazione sempre sullo stesso sito internet www.repubblica.it:
avremmo due Socket differenti con porte differenti, ovvero due flussi differenti
distinti ed indipendenti tra due host identici (il nostro computer ed il web
server di repubblica.it). E grazie alle porte distinte che il nostro computer
discriminera i flussi di dati provenienti dal medesimo web server di
repubblica.it per dirigerli verso le appropriate sessioni di navigazione internet:
se cosi non fosse, i contenuti si mischierebbero.
Luso della scelta della porta e in parte nota ed in parte casuale. In verita la
IANA ha stabilito un certo numero di porte definendole well-known-ports (porte
ben conosciute): le porte dalla 0 alla 1023 sono well-known-ports e sono
universalmente associate a determinati servizi IP. Se consultiamo la pagina
http://www.iana.org/assignments/port-numbers troveremo una lunghissima
lista di porte tra cui le prime 1024 riservate a specifici servizi. Volendo
riassumere i servizi piu conosciuti tra le well-known ports si osservi la tabellina
sottostante.

Per meglio comprendere il significato delle porte di questa tabella, e bene


chiarire che, generalmente, queste porte sono quelle utilizzate dai server, cioe
da tutte quelle macchine che in Internet svolgono la funzione di prestatore di
servizi agli utenti. Ad esempio, se vogliamo scaricare la posta tramite il nostro
client di posta elettronica (Outlook, Evolution, Eudora e quantaltro),
configureremo questultimo col nome del server e se il nostro mail Server
lavorasse in pop-3, linterrogazione dal nostro computer verso il mail Server,
avverra di sicuro sulla porta 110.
Questo il motivo per cui TCP e UDP hanno il concetto di porte. Ogni pacchetto
contiene un campo per la `porta destinazione' che serve a indicare a quale
servizio diretto il pacchetto (linsieme dellindirizzo e la porta prende il nome
di Socket). Per esempio, alla porta TCP 25 corrisponde il mail server, alla porta
TCP 80 corrisponde il web server (sebbene qualche volta si possa trovare il
web server anche su porte differenti). Una lista delle porte si pu trovare nel
file `/etc/services'.
Inoltre se due finestre di Netscape stanno entrambe accedendo allo stesso sito
web ma a pagine differenti, come fa la Linux box che esegue Netscape a
indirizzare correttamente i pacchetti di ritorno provenienti dal web server ?
E' a questo punto che interviene la `porta sorgente': ogni nuova connessione
TCP si appropria sempre di una porta sorgente diversa, in questo modo
possono comunicare indipendentemente, anche se devono utilizzare lo stesso
indirizzo e porta di destinazione. Di solito la prima porta sorgente assegnata

sar la 1024, poi saranno assegnate le successive.

2.4 Conclusioni
La applicazioni decideranno se scegliere TCP o UDP o ICMP. Le applicazioni,
come gi accennato, sono il browser per navigare in Internet (http), la posta
elettronica per inviare mail (smtp) o per riceverle (pop3 o imap), per testare la
raggiungibilit di un host (ping), per testare il percorso fatto dal pacchetto
(tracert), per aprire una sessione terminale (telnet), per scaricare file (ftp o
tftp) ecc.

Livello applicazioni

Livello di trasporto
Livello di rete
Livello di collegamento o linea
Livello fisico

HTTP, HTTPS , SMTP, POP3, IMAP, FTP,


DNS, SSH, IRC, SNMP, SIP, RTSP, Rsync,
Telnet, HSRP, BitTorrent, ...
TCP, UDP, SCTP, DCCP, RTP, ICMP, ...
IPv4,
IPv6,
DHCP,
BGP,
OSPF,
RIP, IGRP, IGMP,ARP,IPsec...
Ethernet, WiFi, PPP, Token ring, ATM,
FDDI, LLC, SLIP ...
Doppino, Fibra ottica, Cavo coassiale,
Codifica Manchester, Codifica 4B/5B, WiFi

3. Bridge e Switch
Con le reti di tipo BUS, sia realizzate con bus coassiale che con HUB, possiamo
realizzare una rete LAN anche abbastanza estesa con molti host ma sempre
con un grosso svantaggio: tutti gli host appartengono sempre alla stessa
collision-Domain. Il problema esposto della collisione si ingigantisce
esponenzialmente nelle reti LAN in cui coesistono molti host poich, come
comprensibile, si incrementa notevolmente la probabilit di maggiori collisioni,

maggiori tempi di attesa dei timer e maggiori ritrasmissioni di frame. Tutto


questo si traduce in un semplice inconveniente: rallentamento delle
comunicazioni in rete. Pi host collegheremo in una collision-Domain, pi la
rete LAN rallenter e diverr meno efficiente.
Per ovviare allinconveniente si pens di dividere una rete LAN in pi collisionDomain e ci fu possibile tramite un apparato con funzionalit specifiche
chiamato Bridge.
Il Bridge (in italiano ponte) una macchina che, interposta tra due bus o due
HUB di una rete LAN, stabilisce quali frame Ethernet far passare e quali no
sulla base si una sua tabella interna chiamata Bridging table.
Cos facendo, il Bridge riesce a scindere una LAN in due o pi collision-Domain.
Il Bridge una macchina ad auto-apprendimento ed ha insita due funzioni
fondamentali di cui la prima chiamata Learning che tradotto significa
imparare.

Nella figura sopra, si supposto di dividere una rete LAN a bus in due bus
distinti, cosicch da avere un miglioramento delle performances. Cerchiamo
ora di capire come pu un Bridge dividere una singola LAN in due collisionDomain migliorando le prestazione della LAN stessa. Se lhost A genera una
frame Ethernet destinata allhost C, questo frame si propagher su tutto il
primo bus e verr inequivocabilmente letto da tutti gli host che condividono il
primo bus (cio B, C e linterfaccia I1 del Bridge). Supponiamo inoltre che il
Bridge sia nuovo e non abbia nulla nella sua bridging table. Il Bridge, leggendo
il frame generato da A (ed in particolare leggendo il campo Source Address),
comprender che sul bus che si affaccia sullinterfaccia I1 esiste un host con
un determinato MAC address: questo dato se lo segna nella sua bridging table.
Allo stesso modo anche gli altri host genereranno, prima o poi, dei frame ed il
Bridge, dopo un po avr completato la sua fase di learning, completando la
sua bridging table per questa rete LAN. Questi dati, il Bridge, li terr nella sua
tabella per un tempo determinato, dopodich, se non vede traffico da parte di
determinati host li cancella. La sua bridging table sar somigliante a qualcosa
del genere:

Interface MAC Address


I1
I2
I1
I1
I2

MAC dellhost A
MAC dellhost D
MAC dellhost C
MAC dellhost B
MAC dellhost E

La seconda operazione fatta da un Bridge, oltre al learning, il filtering &


forwarding. Con lausilio di questa sua tabella il Bridge pu capire se un frame
deve passare o meno sullaltro bus (filtering) e, nel caso il frame debba
passare, lo inoltra (forwarding). Ad esempio, se A vuole parlare con E, genera
il suo frame che verr letto dal Bridge sullinterfaccia I1. Il Bridge legge
destination e source address del pacchetto e comprender che il frame
generato da A e destinato ad E. Consulta, allora, la sua tabella e comprende
che E attestato allinterfaccia I2 per cui propagher il frame da I1 ad I2. Lo
stesso frame verr letto anche da B e C e dopo la propagazione anche da D ma
B, C e D, leggendo il destination address si accorgeranno di non essere i
destinatari e quindi lo scarteranno. La situazione cambia, per, se A vuole
parlare con B o con C: in tal caso il Bridge leggendo il frame generato da A e
consultando sempre la sua tabella, comprende che il destinatario sullo
stersso bus del mittente e quindi non applica il forwarding sul secondo bus. In
questultimo caso si pu ben comprendere che gli host D ed E non verranno
oberati del traffico di A, B e C e in complesso diminuiranno drasticamente le
probabilit di collisione. In sostanza A, B e C potranno parlare tra loro senza
oberare inutilmente laltro bus e cos anche D ed E. La situazione, per, non
cambia se due host dei due bus distinti devono parlare tra loro, poich col
forwarding, la rete LAN come se non avesse alcun Brige.
Col Bridge, in sostanza, abbiamo due o pi collision-Domain su una stessa
LAN.

Al giorno doggi trovare un Bridge come cercare un quadrifoglio in un prato di


trifogli. Di Bridge non se ne usano pi perch questa macchina nata come
funzione software da far girare su un normale computer: in pratica non esiste

una vera e propria macchina chiamata Bridge; piuttosto esiste un software che
gira su un computer che lo trasforma in un Bridge. Per questo motivo il Bridge,
ovvero computer con software di Bridging, una macchina sostanzialmente
lenta per le esigenze odierne. La sua evoluzione un dispositivo dedicato
velocissimo e praticissimo e che lo ha sostituito quasi immediatamente: lo
Switch!
Lo Switch fonda la sua potenzialit sullhardware: una macchina totalmente
dedicata alle funzioni di commutazione dei pacchetti Non hanno un vero e
proprio software; anzi parlare di software su uno switch un po anacronistico:
meglio parlare di firmware! Tutto ci la rende una macchina velocissima che
non pu essere paragonata a Bridge ed Hub.
4. Reti WAN
5. Router
(mettere in evidenza in questo capitolo la connectionless del mondo IP)
6. MPLS
MPLS un termine che ascolteremo e leggeremo sempre pi spesso nelle
tematiche inerenti al mondo IP. E acronimo di Multi-Protocol Label Switching
che tradotto potrebbe somigliare a Commutazione multi-protocollo su base
etichetta. MPLS sostanzialmente il tentativo di migliorare la qualit di
servizio del mondo IP e di renderlo pi affidabile per il trasporto di nuovi servizi
con caratteristiche real-time come la voce e i flussi video. In altre parole
costituisce un tentativo di forzare una connessione come la IP che nativamente
di tipo connectionless in un surrogato di connessione connection-oriented.
L'avvento di servizi di telefonia mobile con contenuti Internet, voce su IP (VoIP
Voice over IP), messenger con funzionalit di videochiamata hanno spinto
alla ricerca di sistemi migliorativi circa l'affidabilit di consegna delle
informazioni da parte del mondo IP. Ad esempio, per poter garantire un flusso
di streaming video o di streaming audio senza scollamenti e senza interruzioni
oltre che senza perdit significativa di dati, anche su lunghissime distanze,
significa dover garantire maggiore qualit di servizio (QoS Quality of Service)
su rete IP.
7. Indirizzi IP, classi e Subnet Mask

8. NAT, Virtual Server e Virtual Host


E il NAT che ha salvato Internet, o meglio, che ha salvato gli indirizzi
secondo il classico formato a 4 ottetti che tutti conosciamo come ipv4. Se
non fosse stato per il NAT, lindirizzamento ipv4 sarebbe gi morto entro il
2000/2002, secondo quanto dichiarava la IANA nel 1998. NAT acronimo di

Network Address Translation, ovvero Traduzione dell'indirizzo di rete.


Pensate a tutti i routers domestici, i codiddetti routers SOHO (Small Office
Home Office), che i produttori hanno venduto in giro per il mondo in tutte le
varianti con o senza file (WiFi). Ma non solo... pensate a tutte le periferiche
di rete vendute in seguito allo sviluppo di queste reti domestiche: dalle
stampanti di rete, ai dischi NAS (Network Atached Storage, cio i dischi di
rete). Ebbene, se ciascuna periferica necessita di un proprio indirizzo IP, lo
spazio che IANA avrebbe assegnato alle reti private non sarebbe
sicuramente stato sufficiente.
Per ovviare allimpossibilit di connettere ad Internet e di interconnettere
tra loro, reti con indirizzi identici, gli stessi produttori dei prodotti per reti
SOHO hanno escogitato ed implementato la funzione NAT. La funzione NAT
sempre implementata nel dispositivo terminale collegato alla rete
Internet: tipicamente il modem. Tuttavia oggi si largamente diffuso un
congegno che integra tutte le funzioni di router, Access Point WiFi, e modem
DSL: il WiFi-ADSL-Router

In tutti i Wifi-ADSL-Router sicuramente implementata la funzione NAT.


Detto in parole povere, la funzione NAT consiste nel manipolare i pacchetti
IP ed in particolare il campo Source IP address dei frame uscenti dalla
propria rete verso il mondo Internet.Mentre allinterno della propria rete
SOHO i pacchetti generati dai vari Host avranno nel campo Source Address
il proprio indirizzo IP appartenente alla gamma 192.168.1.1-192.168.1.254,
se uno dei dispositivi vuole comunicare verso la rete Internet, il WiFi-ADSLRouter o il modem, applicando la NAT, non far altro che cancellare il suo
indirizzo privato che inizier con 192.168.1 con quello pubblico assegnato
dal provider, che ci garantisce la connettivit ad Internet, al momento della
connessione.
Avrete notato che quasi tutti i routers SOHO hanno un indirizzo univoco pari
a 192.168.1.1 e possono realizzare reti domestiche, sfruttando una classe C
con indirizzi da 192.168.1.1 a 192.168.1.254, quindi con subnet mask
255.255.255.0. Finch tutte le reti SOHO con classe 192.168.1.1/24 fossero
indipendenti ed isolate tra loro e dal mondo Internet non avremmo alcun

problema ma volendo, inoltre, consentire la connettivit su internet, il


problema si incontrerebbe nella non univocit degli indirizzi IP: non
potrebbero coesistere su Internet duo o pi indirizzi 192.168.1.1 o
generalmente pi dispositivi con gli stessi indirizzi in classe 192.168.1.1/24.
E bene chiarire comunque che per direttive IANA mai dovrebbero
presentarsi su Internet dispositivi con indirizzi che rientrano nella gamma
degli indirizzi privati.

Nellesempio del disegno qui in alto, il NAT del router manipola il pacchetto
IP proveniente dal computer desktop 192.168.1.2 della sua rete,
sostituendogli il Source Address 192.168.1.2 con lIP pubblico
83.190.11.132 assegnato durante la fase di connessione Internet. Il
computer desktop, difatti, vuole aprire una sessione per interrogare un sito
web con indirizzo 83.190.11.132. Il router, svolgendo la funzione di
gateway, inoltra sulla rete WAN Internet il pacchetto ma sostituendogli il
source IP address 192.168.1.2 (che non potrebbe essere inoltrato
allesterno, sulla rete Internet, perch un indirizzo privato) con lindirizzo
pubblico che il provider, garante della connessione Internet, gli ha
assegnato per consentirgli laccesso in Internet.
La funzione NAT quindi assimilabile ad una sorta di multiplessaggio dei
molteplici indirizzi in una rete privata SOHO verso lunica porta (gateway)
che conduce al mondo esterno di Internet.

La funzione di Virtual Server, anchessa implementata nei WiFi-ADSLRouter, invece la funzione opposta alla NAT, ovvero comparabile ad un
de-multiplessaggio dal mondo Internet alla nostra rete SOHO.
Difatti, qualsiasi dispositivo della nostra piccola rete domestica, dal mondo
esterno di Internet, identificabile genericamente tramite lindirizzo
pubblico assegnatoci dal provider di connessione, ovvero 83.190.11.132.

Nellesempio, riportato sopra in figura, qualsiasi dato proveniente


dallesterno e diretto a noi, come pu essere il contenuto web in risposta ad
una nostra interrogazione, pu raggiungerci grazie allunivocit
dellindirizzo IP assegnatoci dal provider al momento della connessione.
Cosicch se il nostro indirizzo 83.190.11.132, chiunque dallesterno pu
raggiungerci (grazie ai DNS di connessione del provider e grazie alle tabelle
di routing dei routers dello stesso provider). Supponiamo, per, che la
richiesta di dati labbia fatta il computer desktop con indirizzo IP
192.168.1.2 e che, quindi, questultimo stia aspettando i dati di risposta
dallesterno.
Come pu il router discriminare quale dispositivo della sua rete, fra i cinque
(poich il destinatario potrebbe essere anche lui), debba essere il
destinatario ? Di sicuro non potrebbe capirlo subito, dal momento in cui si
vede arrivare pacchetti IP con destination address 83.190.11.132 che
identifica genericamente tutta la nostra rete domestica e che non discrimina
quale dispositivo della nostra rete il destinatario. Il router non pu
sbagliare inviando, magari dati non desiderati di una pagina web, al

notebook 192.168.1.3, il quale non ha effettuato nessuna richiesta. N


tantomeno al NAS o la stampante.
La soluzione sta nelluso delle porte!
Quando il router si fatto da tramite per inoltrare la richiesta del computer
desktop (vedi figura su argomento NAT) oltre ad aver applicato la funzione
NAT ed inoltrato il pacchetto verso Internet ha anche memorizzato la porta
con cui il computer desktop ha inoltrato la richiesta. La risposta con i dati
proveniente dallesterno avr sicuramente una porta che progressiva a
quella della richiesta (ad esempio se la richiesta del computer desktop
iniziata su porta 80??? la risposta avr valore di porta 80+1=81).

Analogamente alla funzione Virtual Server, anche i Web Server che


immagazzinano i contenuti dei siti web, sfruttano la funzione di Virtual
Hosts. Un Web Server un software che gira su un computer con
determinate caratteristiche (a volte anche apparentemente meno potenti
dei nomali pc e workstation da tavolo). I software di Web Server sono
svariati e dipendono dalla piattaforma del sistema operativo. Ad esempio se
il server dispone di un sistema operativo Windows Server, disporr
sicuramente del Web Server di Microsoft, chiamato IIS. Se gira sotto Linux,
molto probabilmente utilizzer Apache che anche il Web Server pi diffuso
al mondo! Il Web Server prevede la divisione dello spazio del disco rigido o
dei dischi rigidi in quote; ciascuna quota coincide con un web-host-name.
Ad esempio, se il Web Server contiene tre siti web (www.cirocarbone.it,
www.mercatino.net, www.pincopalla.com ) avr il suo disco diviso in tre
quote, ove ciascuna quota relativa ai contenuti web di ciascun sito. Il Web
Server, essendo montato su un singolo computer, potr avere un solo
indirizzo IP, ovvero lindirizzo IP assegnato a quel computer. Supponiamo
che questo indirizzo equivale a 85.200.150.83 che un indirizzo pubblico
che il maintener (il gestore di servizi di hosting ed housing di siti web) ha
acquistato da IANA. Quando noi utenti di Internet vogliamo visitare un sito
web contenuto nel Web Server in questione avremo dai DNS Servers
lindirizzo IP 85.200.150.83. La domanda lecita : se io voglio interrogare

www.cirocarbone.it ed ottengo lIP di destinazione 85.200.150.83 come


riesce il Web Server a capire che il mio interesse verso questo specifico
sito e non verso gli altri due? Infatti, anche se volessi interrogare
www.mercatino.net, ricever lo stesso indirizzo IP 85.200.150.83, poich
questo secondo sito sullo stesso Web Server.
Come avviene, allora, questa discriminazione?
La risposta : la discriminazione di differenti servizi web di uno stesso Web
Server avviene grazie ad un software chiamato Virtual Host.
Ciascuna richiesta, proveniente dallesterno, dovr passare prima per
lanalisi del Virtual Host che discriminer con precisione a quale servizio,
ovvero a quale quota, del Web Server la richiesta vuole indirizzarsi. Il
meccanismo di discriminazione avviene tramite la lettura di alcuni header,
ovvero di alcuni campi di livello 5 in cui i programmi applicativi, che noi
utenti utilizziamo su Internet, scrivono/leggono per notificare informazioni
dettagliate che vanno ben aldil del semplice indirizzo IP di livello 3. Ad
esempio nel caso della navigazione web, i nostri browser scrivono negli
header HTTP 1.1 il nome dellhost che vogliamo visitare (il cosiddetto URI
Uniform Resource Identifier), il tipo di browser, la risoluzione dello schermo
ecc.. Il Virtual Host legge lURI nell header HTTP 1.1 e, quindi, legge il
nome del sito web che vogliamo visitare.

La funzione di Virtual Host praticamente analoga a quella Virtual Server e


consente di condividere pi quote su ununica macchina Web Server con un
solo indirizzo IP. Anche ci si traduce in un risparmio di indirizzi IP da
richiedere a IANA. La differenza tra Virtual Host e Virtual Server consiste
nellutilizzo del primo su dispositivi ad uso server e con elementi

discriminanti di livello 5, del secondo su dispositivi ad uso client con


elementi discriminanti di livello 4??? Ed in particolare le porte.

9. IPv6
In effetti la migrazione verso un sistema differente da ipv4 avverr
comunque poich con la diffusione dei servizi internet della telefonia mobile,
lesigenza di disporre di molti pi indirizzi IP, porter allesaurimento degli
indirizzi potenzialmente disponibili nello standard ipv4.