Pillole Di Internet

download Pillole Di Internet

of 14

Transcript of Pillole Di Internet

  • 8/19/2019 Pillole Di Internet

    1/30

    Pillole di InternetOrientarsi 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:

  • 8/19/2019 Pillole Di Internet

    2/30

    Capitolo 1 Introduzione alle reti LAN

    Capitolo 2 protocolli Ethernet, TCP/IP, IPv4, ARP, DNS ecc.: la Matrioska!2.1 ARP2.2 DNS2.3 TCP2.4 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 NATCapitolo 9 IPV

    1.1 Introduzione alle reti LAN

    Il termine LAN è un acronimo di Local Area Network (Rete Locale) ed identificauna 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 eracostituito da un cavo coassiale con una anima interna di rame ed una calza dirame più esterna ed isolata dall’anima tramite materiale isolante dielettrico.

    Il cavo coassiale utilizzato poteva essere un RG-8, di grosso diametro, rivestitoda una guaina di plastica arancione o gialla (da cui il nome di cavo giallo othick-cable=cavo grasso ) o di altro tipo (RG-58 o altro), più sottile, di colorenero o bianco (detto anche thin-cable=cavo magro) e con impedenza tra i50ohm e i 75 ohm. Per il thin- cable, l’aggancio dei computer della LAN sul cavobus avveniva con derivazioni con connettori BNC detti a T

  • 8/19/2019 Pillole Di Internet

    3/30

    Originariamente, negli anni settanta, il cavo bus poteva raggiungere lunghezzedi 500 metri e la rete prendeva il nome di 10Base5. Questa dicitura identificacon 10 il bit rate supportato (10Mbits/sec), Base identifica il tipo dimodulazione dei bit dei dati che viaggiano sul bus (Base identifica unamodulazione in banda base, in inglese BaseBand ), 5 codifica la lunghezza di500 metri di bus per ciascun segmento. Questo cavo veniva fatto scorrerecome una biscione lungo l'intera lunghezza della rete accostandosi alle variestazioni che doveva interconnettere ma senza mai toccarle realmente. Ilcontatto con queste ultime avviene attraverso un cavo di derivazione,chiamato drop cable (cavo di spillamento) , che poteva essere lungo fino amassimo di 50 metri e che veniva collegato, a sua volta, ad un connettoreDB15 denominato AUI ( Attachment Unit Interface ) posto direttamente sullascheda di rete del computer. L'unione tra drop cable e cavo coassiale avvenivatramite una speciale scatoletta che conteneva un trasmettitore/ricevitore dinome transceiver (transmitter/receiver). Il transceiver usato nelle reti 10Base-5 vieniva innestato sul cavo coassiale mediante una complessa operazione dimontaggio meccanico, poiché questo è di tipo coassiale e quindi devono essereevitate le possibili interferenze che si generano per contatto tra la magliaesterna e il filo interno. Tra una macchina e l'altra devono esserci almeno 2,5metri di cavo coassiale. Infine il cavo è talmente rigido e pesante che non èpossibile curvarlo se non descrivendo un arco molto ampio.

  • 8/19/2019 Pillole Di Internet

    4/30

    L’insieme di una rete LAN così collegata prende il nome di Dominio o megliocollision-Domain (poi vedremo il perché).Altri sistemi analoghi erano il 10-Base2 (200 metri) ed il 10-BaseT (con cavoTwisted, cioè intrecciato).Gli svantaggi del cavo coassiale difficile da stendere, costoso, difficile damantenere in caso di interruzioni e guasti, difficile da curvare spronò la ricercadi un sistema più opportuno: nasce l’ HUB .L’HUB 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 suederivazioni a T, drop-cable, AUI e transceivers. Lo possiamo immaginare comeuno “scatolotto” con una parte elettronica interna, una alimentazioneenergetica e tanti plugs RJ femmina a cui vanno collegati i computers dellastessa rete LAN

    Invece di stendere un cavo coassiale lungo tutto lo spazio della rete LAN, bastacollegarvi ogni host con l’apposito plug RJ45. Nell’HUB della foto sopra potremocollegare un massimo di 4 hosts, quindi realizzare una piccola rete LAN conquattro computers. Il cavo dal computer all’HUB non può superare, però, i 100metri di lunghezza. I 4 computers in rete realizzeranno quindi la propria reteLAN ed apparterranno, quindi, al proprio collision-Domain. L’uso dell’HUB rende

    molto più semplice il cablaggio di una rete LAN e sicuramente anche piùconveniente in termini economici. Inoltre, l’inturruzione accidentale di un cavoverso un host non pregiudicherebbe l’isolamento di una parte della rete comenei cablaggi con cavo coassiale. Oggi, per realizzare una LAN si userebbeesclusivamente 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 rimanea bus. Infatti in un HUB dobbiamo immaginare ci fosse un bus cheinterconnette tutti gli hosts.

    Il cavo utilizzato con gli HUB non è più di tipo coassiale ma un “multifilare” conalmeno 4 anime il cui colore in sequenza è arancione, blu, verde, marrone

  • 8/19/2019 Pillole Di Internet

    5/30

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

    I cavi di collegamento RJ-45 possono essere di due tipi: dritti e incrociati.I cavi dritti sono di tipo pin-to-pin, ovvero caratterizzati da una corrispondenzadelle anime tra i due plugs estremi (1 con 1, 2 con 2 ecc.), mentre i caviincrociati, detti anche cross-cable , hanno l’inversione del pin 1 col 3 ed il pin 2col 6 ad una estremità. Questa inversione coincide con l’inversione tra Tx edRx. Il cavo dritto viene utilizzato quando si devono collegare due apparati direte con funzionalità differenti (es. un computer con un hub, un router con unoswitch ecc.), mentre il cross-cable servirà per collegare due apparati con lestesse funzionalità (es. due computers, due HUB, due router, due switch ecc.).

    Una domanda lecita potrebbe essere: se ho un piccola rete LAN di 4 computersed ho, quindi, un HUB con quattro porte (come quello in figura sopra) ma oraho necessità di estendere la mia rete, poiché ho altri 3 computer daaggiungere, cosa faccio? Compro un nuovo HUB con più porte e butto ilvecchio?La r isposta è: non necessariamente… E’ possibile, infatti, aggiungere più HUB in cascata ed il cavo che collegherà idue HUB potrà avere una lunghezza massima di 100 metri.

    Pin Assignment

    1 Transmit + (TX+)

    2 Transmit - (TX-)

    3 Receive + (RX+)

    4 Reserved

  • 8/19/2019 Pillole Di Internet

    6/30

    I sei host collegati nella figura sopra realizzano una singola rete LAN o unasingola 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 oggiattraverso gli HUB? Ciò che viaggia sono bit, quindi impulsi in formato digitale,organizzati in spezzoni (frame) e pacchetti alle velocità di 10Mbit/sec. (circa 10milioni di bit al secondo) o 100Mbit/sec. (100 milioni di bit al secondo). Oggituttavia 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 oggiEthernet è il protocollo universalmente più utilizzato per le comunicazioni nellereti. Altri protocolli furono sviluppati ne gli anni come il Token Ring …. maquello che è sopravvissuto è l’Ethernet 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 FastEthernet1000-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 di1526 Byte. Poiché un Byte è composto da 8 bit, il frame ethernet è compostoda un minimo di 592 bit ad un massimo di 12208 bit. I primi 7 Byte

  • 8/19/2019 Pillole Di Internet

    7/30

    costituiscono il “Preambolo” (una serie di bit a 0 ed 1 alternati che avverte leinterfacce LA N dell’inizio di un frame e ne consente la sincronizzazione con larelativa estrazione del clock). Il Byte successivo è chiamato SFD o “start offrame” ed è composto da 8 bit tutti ad 1 che indica l’inizio del frame. A seguiretroviamo 6 Byte di “destination address” e 6 Byte di “source address”. Nei 6Byte del “destination address”, troviamo codificato in binario il codice MACaddress dell’host destinatario del frame, mentre nei 6 Byte successivi il MACaddress dell’host che ha generato il frame ethernet. Il MAC address (Media

    Access Control) è un codice che identifica in modo univoco l’indirizzo fisicodell’host: per intenderci, nel nostro computer sarà l’indirizzo fisico della nostrascheda ethernet, rintracciabile digitando dal prompt di una macchina Windowsil comando ipconfig (o winconfig nelle vecchie versioni precedenti a XP):

    Come visibile esso è costituito da sei gruppi in esadecimale, che verrannocodificati in binario in 6 Byte.I due Byte successivi sono chiamati “Type” ed identificano il tip o di frameethenet, cioè identificano cosa seguirà. Se seguirà un pacchetto IP il valore di

    “type” sarà 800 in esadecimale (0x800 dove 0x indica la rappresentazionedecimale). Dopo il “Type” seguono i dati o “payload”, cioè il carico informativovero e proprio in cui sono inseriti i pacchetti IP del protocollo Internet. Quindi èchiaro che il contenuto dei dati IP è inglobato all’interno di un frame Ethernetcome in una matrioska . Poiché il “Payload” deve contenere il pacchetto IP, essopuò avere lunghezza variabile a seconda del pacchetto IP. Può, quindi, spaziareda un minimo di 48 byte ad un massimo di 1500 byte. Il frame termina con unultimo campo di 4 Byte detto “FCS” (Frame Check Sequenze) o “CRC” (CyclicRedundancy Code) che contiene il checksum di tutto il frame consentendone,

    entro alcuni limiti, la correzione di bit errati durante la trasmissione da partedel destinatario del frame senza necessariamente richiedere unaritrasmissione.

    Discutendo di Ethernet e pacchetti IP si sentirà spessissimo nominare la parola “livello”. Ebbene, ciò perché esiste al mondo un modello di riferimento a cuitutti i protocolli di comunicazione devono attenersi: questo modello si chiamamodello di riferimento ISO – OSI . Il modello ISO-OSI è uno standard creatodalla ISO (International Standard Organization) relativo all’interconnessione disistemi informatici aperti alla comunicazione (OSI= Open SystemInterconnection) ed è diviso in sette livelli:

  • 8/19/2019 Pillole Di Internet

    8/30

    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 standardizzazionedel mezzo fisico di trasmissione dell’informazione fino al livello 7, quelloapplicativo che nei nostri computer in rete coincide con i software applicativi(es. il browser che utilizziamo per navigare). Il livello 1 è attinente al metododi trasmissione, sia esso tramite segnali elettrici su cavo, tramite luce su fibraecc. avendo a che fare con i bit. Il livello 7 è l’applicazione, cioè il software chegira sul nostro computer in rete e che non si preoccupa di come viaggino i bit esu quale mezzo ma solo di manipolare l’informazione utile. Ad esempio, ilbrowser per navigare (Internet Explorer, FireFox o Opera), non si preoccuperàdi come viaggiano i bit d’ informazione sulla rete ma è interessato solo acodificare l’informazione utile del pacchetto IP per mostrarci il contenuto dellepagine web con i suoi testi, immagini, collegamenti ipertestuali.Se volessimo fare un’analogia con l’ethernet ed il pacchetto IP, diremo cheEthernet è un protocollo che coincide con il livello 2, mentre il pacchetto IP, omeglio 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 i l frame ma leggerà solo il “destination address” ed il “source address”del frame. Il contenuto del pacchetto IP lo cederà, così come è, al computer, omeglio a chi si dovrà occupare dei livelli superiori. Anche l’HUB non andrà a

  • 8/19/2019 Pillole Di Internet

    9/30

    “spacchettare” il payload del frame per osservare il pacchetto IP, ma osserveràsolo i MAC addresses contenuti in “destination address” e “source address” delframe Ethernet.

    A sua volta il pacchetto (o datagramma) IP è così composto (diviso su duerighe per motivi di spazio):

    Tutti i bit che precedono il campo “Dati” costituiscono l’header (intestazione)del pacchetto IP.I primi quattro bit del’header definiscono la versione del protocollo IP: quellemaggiormente in uso sono la versione 4, nota anche come ipv4 e la versione 6o ipv6. In questo esempio consideriamo solo la versione 4, cioè quellaattualmente in utilizzo ed accenneremo in seguito le differenze sostanzialidell’ipv6. I 4 bit “HLEN” (Header LENght) codificano la lunghezza dell’headerdel pacchetto . Il campo “HLEN” è necessario perché essendo il campo

    “Opzioni” di grandezza variabile, è di lunghezza variabile anche tutto l’header. “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 daticontenuti nel pacchetto che va da 0 (precedenza normale) a 7 (precedenza altae controllo totale della rete). Altri tre bit vengono denominati D, T, R. Quandosono 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 sonousati. “Lunghezza totale” esprime la lunghezza in bit di tutto il pacchetto, cioèheader e dati. Il campo “Identificazione” contiene un numero intero cheidentifica il pacchetto. Serve per riassemblare il pacchetto se vieneframmentato. Questo campo è uguale per ogni frammento del datagrammaoriginale (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é all’altro capo sarà possibilecomprendere come ri- assemblare l’intero pacchetto frammentato). Laframmentazione avviene se il pacchetto deve attraversare una rete in cuiesiste 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 primobit è 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 ri-a ssemblati, grazie al campo “identificazione”, tutti i frammenti appartenentiallo stesso datagramma, c’è necessità di ordinarli nella giusta sequenza). Il

  • 8/19/2019 Pillole Di Internet

    10/30

    campo “TTL” (Time To Live, cioè tempo di vita) è un contatore che ogni routerche viene attraversato dal pacchetto decrementa ad ogni passaggio. Quandoscade il pacchetto viene scartato ed il router invia un messaggio di errore almittente. Serve per evitare i loopback. E’ facile accorgersi del TTL: provate alanciare 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 IPsopravviverà fino ad un massimo di 245 passaggi per i routers della reteInternet prima di poter giungere al web www.google.it . Se per arrivare al webdi Google dovesse passare per più di 245 routers, il pacchetto morirebbe e noiavremmo la risposta di unreachable (irraggiungibilità). A seguire il campo

    “Protocollo” di 8 bit, identifica il protocollo superiore al quale IP deve passare idati ovvero, per essere più chiari, identifica che tipo di protocollo seguirà nelcampo “Data” ad es. UDP, TCP ecc. che analizzerem o meglio di in seguito. Senei dati a seguire ci sarà un segmento TCP, il valore del campo “Protocollo” loavviserà col suo valore a 6, se UDP a 17, se ICMP sarà 1 ecc. “Checksum” è ilcodice checksum dell'header IP. “Source” e “Destination IP Address” so no icampi 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 l’indirizzo IP dell’host che ha generato il pacchetto IP, mentre “Destination IP address” l’i ndirizzo IP del destinatario. E’ interessante notareche anche nel frame Ethernet esistono due campi simili (Destination address eSource address) ma di natura differente: nei campi Destination e Sourceaddress del frame Ethernet troveremo i MAC address delle interfacce di rete,che sono indirizzi fisici degli host. Diversamente, in “Destination” e “Source IPaddress” del pacchetto IP entrocontenuto nel frame Ethernet troveremo duenuovi codici identificativi che identificano gli stessi host non più a livello fisicoma 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 facilmentecambiato, così come è semplice cambiare indirizzo IP al nostro computer inrete. Il formato di un indirizzo IP classico (quello che viene utilizzatoattualmente) è standardizzato in RFC??? Ed è chiamato IPv4 (IP versione 4). Inversione 4 il formato degli indirizzi è codificato da 32 bit in binario, cioè in 4numeri decimali. Ad esempio il sito www.google.it può avere tra i suoi indirizzidisponibili 209.85.129.99 che tradotto in binario equivale a11010001.1010101.10000001.1100011. Sarà proprio questa sequenza di 0 edi 1 che verrà inserito nel campo a 32 bit “Destination IP address” delpacchetto IP generato dal nostro computer per interrogare il sito web di

    Google. In “Source IP address” ci sarà, invece, l’indirizzo IP assegnato allanostro computer dall’Internet provider al momento della connessione a dInternet o, se dovesse trattarsi di una macchina in rete Internet con indirizzo

    http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/http://www.google.it/

  • 8/19/2019 Pillole Di Internet

    11/30

    pubblico l’IP address, l’indirizzo IP assegnato alla macchina dalla IANA(Internet Assigned Number Authority; l’ente internazionale che assegna gliindirizzi IP in tutto il mondo – vedi www.iana.org ).Per convertire un qualsiasi numero decimale in binario basta affidarsi alloschemetto di seguito riportato:

    128 64 32 16 8 4 2 1

    Se si desidera convertire il numero decimale 209 basterà porre un 1 nellecaselle la cui somma dei numeri porterà a 209

    128 64 32 16 8 4 2 11 1 0 1 0 0 0 1

    Infatti 128+64+16+1 è uguale a 209. Ecco perchè la conversione binaria di209 è 11010001. Se ponessimo, invece, tutte le caselle ad 1 avremmo 255.

    128 64 32 16 8 4 2 11 1 1 1 1 1 1 1

    *In verità per navigare sui siti web, nessuno di noi si sognerebbe di conoscerea memoria gli indirizzi IP. Sarebbe, infatti, come dire che per raggiungerewww.google.it dovremmo digitare dal nostro browser 209.85.129.99. In realtàpotremmo pure farlo e funzionerà di sicuro! Ma non potremmo certo ricordarcia memoria i numeri identificativi degli IP address di tutti i siti ed host che

    vorremmo raggiungere: per questo ci viene in aiuto un servizio appartenentead IP chiamato DNS (Domain Name Server) di cui si analizzerà meglio inseguito.

    Tornando al datagramma IP, dopo “Source” e “Destination IP address” c’è uncampo con numero di bit variabile chiamato “Opzioni”. In questo c ampo ci sonocodici che identificano le opzioni necessarie soprattutto per testare la rete eper il debbunging. Le principali sono: percorso di provenienza, registrazione delpercorso e contrassegno temporale. La prima specifica negli ottetti di dati gliindirizzi IP che il pacchetto è obbligato ad attraversare per giungere a

    destinazione. Serve per esempio per testare il troughput di un particolarepercorso. La seconda invece consente ad ogni router che incontra il pacchettodi inserire il proprio IP Address per registrare il percorso compiuto. La terza èmolto simile alla seconda, poiché il router inserisce oltre all'IP Address, ancheun contrassegno temporale di 32 bit che fornisce la data e l'ora in cui ilgateway ha elaborato il pacchetto.

    Se andiamo ancor più nello specifico possiamo dettagliare meglio cosa vi èdentro il campo “Data” del datagramma IP: scopriremo alcuni importantiservizi dell’ IP. Dentro il campo “Data” ci sono i livelli superiori dell’IP definiti

    anche ULP (Upper Level Protocol). La filosofia è: più si entra nella matrioskadel pacchetto, più saliamo ai livelli superiori.

    http://www.iana.org/http://www.iana.org/http://www.google.it/http://www.google.it/http://www.google.it/http://www.iana.org/

  • 8/19/2019 Pillole Di Internet

    12/30

    Come visibile se torniamo all’immagine comparativa con il modello diriferimento ISO-OSI, il pacchetto IP appena analizzato è considerato livello 3(livello r ete). Se andiamo ancor più dentro la matrioska, cioè nel campo “Data”del pacchetto IP, scopriremo il livello subito superiore: il livello trasporto olivello 4 è quello del TCP – UDP – ICMP – EIGRP.

    Prima di analizzare il pacchetto TCP, UDP o ICMP cercherò di specificarebrevemente la funzione di questi servizi. TCP ed UDP sono il livelli di trasportodell’ IP: il primo è più affidabile, il secondo meno. UDP (User DatagramProtocol) è un protocollo di livello trasporto di tipo connection-less (senzaconnessione). Connection-less significa che il livello si preoccupa solo diincapsulare i suoi dati e consegnarli al livello più basso per l’invio, dopodichè sei 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 dieffettuare opportuni controlli per sincerarsi del giusto trasferimento. TCP,quindi, a differenza di UDP, stabilisce una connessione con il livello TCP

    dell’altro host in comunicazione. Per quest o motivo TCP è più affidabile ma piùlento ed è perciò più adatto al trasferimento di files, UDP è meno affidabile mapiù veloce ed è, quindi, più opportuno per il trasferimento di dati voce oapplicazione real-time, dove pur se si verifica la perdita di qualche segmento didati o la ricezione non corretta, ciò non determina criticità. Se volessimo fareun paragone banale, diremmo che TCP è l’equivalente di una lettera. ICMP(Internet Control Message Protocol) è il protocollo utilizzato da alcuneapplicazioni per testare funzionalità di rete e di Internet. ICMP non porta datiutili ad applicazione come il browser o la posta o altri simili, porta dati perl’analisi della rete: problemi di congestione, analisi dei problemi di rete,

    troubleshooting, annunci di timeout. ICMP è il protocollo utilizzato da unaclassica applicazione come il ping che è utile per verificare la raggiungibilità diun host e prevede una serie di risposte come la raggiungibilità (reply),

  • 8/19/2019 Pillole Di Internet

    13/30

    l’irragiungibilità (unreachable) o sulla congestion e (source quench) o i ritardi(timeout). Attenzione! ICMP non viene utilizzato dall’applicazione 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 nonricevere un reply pingando un server non significa che il server siamalfunzionante: può darsi che sia stato disabilitato ICMP su quel server per

    motivi di sicurezza. Volendo potremmo banalizzare associando adraccomandata con ricevuta di ritorno il TCP, mentre UDP è una semplice letterain posta ordinaria.Volendo addentrarsi ancora di più nella matrioska, ed analizzare come leapplicazioni scelgono i protocolli di livello 4, sarebbe molto interessanteinstallare sul proprio PC Windows un cosiddetto “sniffer” ethernet: unprogramma che legge e cattura tutto quello che accade su una rete LAN conEthernet. Da www.wireshark.org è possibile scaricare WireShark e dawww.ethereal.com lo sniffer Ethereal. Entrambi sono software free ma iopreferisco 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 dicasa. Attualmente la mia rete wireless è composta da un wireless ADSL routerUSRobotics (IP 192.168.1.1) a cui mi collego con un computer portatile conhostname Solomone (192.168.1.3) via WiFi. Al router USRobotics è anchecollegato via cavo un disco autonomo di rete (quelli generalmente chimati NASNetwork Attached Storage) con IP 192.168.1.4 ed un computer desktop conLinux Ubuntu 6.10 avente indirizzo IP 192.168.1.2 ma temporaneamentespento.

    Router ADSL gateway 192.168.1.1

    Computer Desktop Linux 192.168.1.2Computer portatile 192.168.1.3Disco di rete NAS 192.168.1.4

    Con il desktop spento, provo a catturare il traffico di questa piccola LANdomestica per poco più di un minuto collegandomi prima al sitowww.flamenetworks.com e poi con una seconda sessione di Internet Explorer awww.cirocarbone.it , poi infine mi collego al mio disco di rete. Catturo edanalizzo 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 catturazionedi WireShark. ARP (Address Resolution Protocol) è il protocollo utilizzato nelmondo IP per associare il MAC Address di un host al suo indirizzo IP. Provate anavigare un po’ in Internet e subito dopo digitate dalla vostra macchinaWindows il comando arp –a; noterete probabilmente un output simile aquesto:

    http://www.wireshark.org/http://www.wireshark.org/http://www.wireshark.org/http://www.ethereal.com/http://www.ethereal.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.cirocarbone.it/http://www.cirocarbone.it/http://www.cirocarbone.it/http://www.flamenetworks.com/http://www.ethereal.com/http://www.wireshark.org/

  • 8/19/2019 Pillole Di Internet

    14/30

    In questa tabellina di due righe, detta tabella ARP, il mio computer contienel’associazione dei MAC address di due host aventi indirizzo IP 192.168.1.1 e192.168.1.4. Si badi bene che queste informazioni sono di tipo dinamico, cioèpermangono in memoria solo per un po’, dopodichè verranno aut omaticamentecancellate da ogni computer (su Windows dovrebbero durare circa 10 minuti).A cosa serve questa tabella ARP? Questa tabella è indispensabile a ciascun hostin rete, poiché se il computer A vuole parlare con B dovrà conoscere innanzitutto il M AC address per costruire la frame Ethernet ed anche l’indirizzo IP di Bper costruire, poi, il pacchetto IP da inserire nella frame. Come fa un host aconoscere gli indirizzi IP e i MAC address della sua rete LAN? Semplice: ciascunhost invia sulla rete LAN, automaticamente e senza che ve ne accorgiate,alcuni frame e pacchetti chiamati broadcast (cioè diretti a tutti) a cui gli altrihost della rete LAN rispondono comunicando il proprio MAC address ed ilproprio indirizzo IP. Questi due dati verranno poi memorizzati nella tabella ARPda tutti gli host che ascoltano questa doppietta di dati sulla rete. I frameEthernet 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 (valoreesadecimale FF). Esistono, inoltre, due tipi di broadcast: il directed broadcasted il local broadcast. Il local broadcast si verifica quando l’host interroga tutti echiunque è libero di rispondere. Il directed broadcast è inviato fisicamente achiunque sulla rete solo perché il mittente del broadcast ha cancellato(probabilmente per inattività o rimozione) l’associazione indirizzo IP e MACaddress di un determinato host. Pur leggendolo tutti, il directed broadcast, è

    come se fosse un urlo ad un determinato host sulla rete.

  • 8/19/2019 Pillole Di Internet

    15/30

    Nella prima, seconda e terza riga del print-screen, il router(USRoboti_20:4c:bb – gli ultimi dati corrispondono agli ultimi byte inesadecimale del suo MAC address), che funge da gateway e server, chiamal’host 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é quest’ultimo è stato volutamente spento.L’host 192.168.1.2 (computer Desktop Linux), e ssendo stato spento edassente dalla rete, non può rispondere e quindi il broadcast sarà disatteso. Ilpacchetto IP entrocontenuto nel frame è di tipo ARP e ciò si intuirà dal codice0x806 nel campo “type” del frame. Comunque, lo sniffer correda comodament edei commenti abbastanza chiari: Who has 192.168.1.2? Tell 192.168.1.1 … chetradotto è: Chi ha indirizzo 192.168.1.2? Dica a me 192.168.1.1. Notare nellaparte bassa il “Destination” della frame Ethernet a ff:ff:ff:ff:ff:ff (non siconosce, infatti, il MAC del destinatario e perciò viene generato questo directedbroadcast) 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 quintariga il router risponde al portatile dandogli il suo MAC address. A questo puntoil portatile, avendo aggiornato la sua tabella ARP, può comunicare col routerqualora 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 averele associazioni tra indirizzo IP e MAC address. ARP è un protocollo nonutilizzato direttamente dalle applicazioni IP ma su cui le applicazioni siappoggiano indirettamente. E’ direttamente implementato in Ethernet (livello

    2) ma può essere invocato automaticamente e/o indirettamente dalleapplicazioni IP.

  • 8/19/2019 Pillole Di Internet

    16/30

    2.2 DNS

    Si è già accennato al protocollo DNS. Ora lo osserviamo con maggiore dettaglionella sesta e settima riga dell’immagine sopra. In concomitanza con la sestariga ho aperto il browser Internet ed ho digitato l’indirizzowww.flamenetworks.com Il mio computer portatile non ha però l’indirizzo IP né

    il MAC address del sito web in questione ed allora chiede al router delucidazioni(il router funge anche da DNS server, poiché l’ho settato io come server DNSnelle impostazioni TCP/IP di Windows quando ho messo “in piedi” la rete ). Ilrouter riponde al portatile (riga 7) dandogli l’ip address del sito web(84.200.25.7) ma non il MAC address. Quest’ultimo dato, il router se loconserva per se, poiché essendo lui il gateway verso l’esterno della rete LAN enon essendo, l’host 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 è quellodel 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 l’indirizzo IP diwww.flamenetworks.com , magari perché non ero mai andato su questo sitoprima di allora. Allora, come ha fatto, il router, a procurare questo indirizzo ip84.200.25.7 al mio pc portatile?

    Per rispondere a questa domanda dobbiamo aprire un parentesi e spiegarecome funziona il meccanismo di ricerca degli indirizzi IP a partire dal nome deldominio web.

    Facciamo attenzione quando parliamo di DNS (Domain Name Server): per DNS si identifica impropriamente sia il protocollo usato dall’applicativo (vedi righe 6 e 7), sia un oggetto fisico vero e proprio. L’oggetto 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 relativiindirizzi IP (ad esempio www.repubblica.it 213.92.16.191). I server DNS sono sparsi per il mondo e si dividonodue tipologie: autoritativi e non autoritativi. I server DNS autoritativi sono quelli ufficiali, gestiti da enti e riconosciutiuniversalmente. I server DNS non autoritativi non contengono informazioni ufficiali e sono creati e gestiti dai providersche forniscono la connettivita’ alla rete internet.

    I DNS autoritativi sono strutturati gerarchicamente e sono di tre tipi, chiamati rispettivamente:

    1) root DNS

    2) DNS del le Regis t ra t ion Auth or i ty

    3) DNS Auth or i ta t ive

    I DNS non autoritativi (quelli dei providers) sono, invece, i DNS di comun icazione

    I server DNS principali e gerarchicamente piu’ importanti sono i root DNS (detti anche DNS di primo livello) e checostituiscono la struttura base della rete Internet. I root DNS sono server autoritativi, gestiti da enti ufficiali e hanno laresponsabilità di indirizzare la ricerca verso altri DNS, gerarchicamente inferiori, sulla base del primo livello del nome deldominio, cioè di ciò che viene evidenziato dopo il punto del nome del servizio web ricercato. Ad esempio, un root Serverconterra’ informazioni relative a tutti i domini di primo livello come i .com, .net, .org, .it, .fr, .info ecc. ed i riferime nti persmistare l’indirizzamento ai Serve r DNS di secondo livello. Ciascun root DNS ha un indirizzo nel formato x.root-server.net, in cui x e’ una lettera che varia da “a” a “m” (quindi esistono 13 root server in tutto il mondo vedihttp://www.root-servers.org/ ). Sotto i root DNS ci sono i DNS del le Regis t rat ion A uthor i ty , gestiti da vari entiriconosciuti anch’essi a livello internazionale e quindi anch’essi autoritativi. I DNS del le Regis t ra t ion Auth or i ty contengono tutti i domini di una specifica competenza: ad esempio tutti i domini .it su tutto il territorio italiano sono

    http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.repubblica.it/http://www.repubblica.it/http://www.repubblica.it/http://www.root-servers.org/http://www.root-servers.org/http://www.root-servers.org/http://www.repubblica.it/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/

  • 8/19/2019 Pillole Di Internet

    17/30

    contenuti nei DNS di secondo livello gestiti da enti come CNR (Consiglio Nazionale Ricerche), NIC ( www.nic.it ), lasocieta’ COGENT ( www.cogentco.com ) ecc.. Continuando, sotto i DNS di Regis t rat ion Au thor i ty , ci sono i DNSAuthor i ta t ive che contengono i dati specifici dei domini. Essi sono gestiti dagli MNT’s (mainteners), cioe’ dalle aziendeche effettuano housing ed hosting degli spazi web (ad esempio www.sarkom.it o www.aruba.it ). Esistono, poi, iserver DNS di conn ess ione che sono quelli che utilizziamo puntualmente noi utenti navigatori durante le varieoperazioni su Internet. I DNS di conn ess ione sono gestiti dai providers di connessione che ci garantiscono, quindi, laconnettivita’ ad Internet (es. Telecom Italia, Tele2, Libero, Tiscali, Vodafone ecc.) e non sono di tipo autorita tivo.

    Per meglio comprendere come avviene l’interrogazione dei vari tipi di DNS assumiamo un esempio banale in cui si vuolevisitare 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 conness io ne del nostro provider. I DNS di conn ess ione dei

    providers hanno una cache interna che memorizza per un tempo determinato l’associazione nome IP address. Se ilnome del sito web e’ ancora presente nella tabella dinamica della cache del DNS del nostro provider, il processo siconcludera’ con la restituzione diretta dell’IP address interessato. Se il nome del sito web non’è presente nel DNS diconness ione , quest’ultimo effettuerà in sequenza i tre passi sotto elencati:

    1) contattera’ tutti i root DNS e questi ultimi notificheranno al nostro DNS di conn ess ione i DNS di Registratio nAuthor i ty che gestiscono i domini di primo livello .it;

    2) il nostro DNS di conn ess ione contatta allora, uno per uno, tutti i DNS di Regis t ra t ion Auth or i ty comunicatiinviandogli il nome “repubblica.it” finche non trova il DNS di Regis t ra t ion Au thor i ty che gli risponde comunicandogli i DNS auto ritativi che contengono gli indirizzi IP del sito www.repubblica.it ;

    3) il DNS di conness ion e , allora contettera’, uno dopo l’altro, i DNS Autho r i ta t ive del maintener del sito direpubblica.it per ottenere finalmente l’indiriz zo IP del sito web che vogliamo visitare.

    Ecco un esempio pratico di ciò che accade analizzato con l’ausilio di un codice:

    quando inserisco questo indirizzo nel mio browser e premo il tasto invio, il DNS del mio provider di connessione interrogai 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 recordRecursive query: Yes Authoritative answer: NoQuery 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.4b.root-servers.net. 13284 A 192.228.79.201c.root-servers.net. 13284 A 192.33.4.12d.root-servers.net. 13284 A 128.8.10.90e.root-servers.net. 13284 A 192.203.230.10f.root-servers.net. 13284 A 192.5.5.241g.root-servers.net. 13284 A 192.112.36.4h.root-servers.net. 13284 A 128.63.2.53i.root-servers.net. 13284 A 192.36.148.17

    j.root-servers.net. 13284 A 192.58.128.30k.root-servers.net. 13284 A 193.0.14.129l.root-servers.net. 13284 A 198.32.64.12m.root-servers.net. 13284 A 202.12.27.33

    http://www.nic.it/http://www.nic.it/http://www.nic.it/http://www.cogentco.com/http://www.cogentco.com/http://www.cogentco.com/http://www.sarkom.it/http://www.sarkom.it/http://www.sarkom.it/http://www.aruba.it/http://www.aruba.it/http://www.aruba.it/http://www.prozone.it/http://www.prozone.it/http://www.prozone.it/http://www.repubblica.it/http://www.repubblica.it/http://www.repubblica.it/http://www.repubblica.it/http://www.prozone.it/http://www.aruba.it/http://www.sarkom.it/http://www.cogentco.com/http://www.nic.it/

  • 8/19/2019 Pillole Di Internet

    18/30

    Questi roo t DNS rispondono, quindi, che tutti i domini “.it” sono gestiti dai seguenti DNS dove il primo è primario e tutti glialtri sono secondari:

    CODE

    Query: IT. Query type: Any recordRecursive 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.5dns2.it.net. 172800 A 151.1.2.1ns.ripe.net. 172800 A 193.0.0.193server2.infn.it. 172800 A 131.154.1.3dns2.iunet.it. 172800 A 192.106.1.31auth2.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” sonodisclocati su diversi continenti, e diverse reti, così che nel caso di guasto di un singolo server o di non raggiungibilità diuna 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 RegistrationAuthor i ty che nel caso di prozone.it rispondono come segue:

    CODE Query: prozone.it. Query type: Any recordRecursive query: Yes Authoritative answer: NoQuery 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 l’agognato indirizzo IP che ci serviva.

    CODE Query: prozone.it. Query type: Any recordRecursive query: Yes Authoritative answer: YesQuery time: 2329 ms. Server name: ns1.th.seeweb.it

    Answer:prozone.it. 172800 SOA ns1.th.seeweb.it.

    hostmaster.seeweb.it.2004100500; serial86400; 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.

  • 8/19/2019 Pillole Di Internet

    19/30

    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.170ns2.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 analizziamole righe 6 e 7. Il primo passo (riga 6 di WireShark) mostra una prima rigacontrassegnata come D NS (qui si intende l’utilizzo del protocollo da partedell’applicazione Internet Explorer per le funzionalita’ di query sui DNS). Qui ilmio portatile effettua una query standard di tipo A (Any record) al router (chefunge anche da piccolo DNS locale). Que st’ultimo potrebbe avere o menol’associazione dei dati per questo sito desiderato. Se l’associazione esiste già,risponde direttamente al portatile comunicando l’indirizzo IP 84.200.25.7 delsito che volevamo visitare, cioe’ www.flamenetworks.com , altrimenti nel lassotemporale tra la riga 6 e la riga 7, la “patata bollente” verrà scaricata dal miorouter al DNS di comunicazione del mio provider che si dovrànecessariamente impegnare a sviluppare tutto il fluss o poc’anzi descritto.

    2.3 TCP (continuare)

    Proseguendo con il tracciamento effettuato con WireShark, poiché ho deciso diaprire la pagina del sito web www.flamenetworks.com , l’applicazione (cioè ilbrowser) , ottenuto l’indirizzo IP dal DNS, è pronto per instaurare unaconnessione TCP con questo sito web. Volendo essere piu’ preciso, cio’ che siinstaura e’ uno “streaming” (flusso) o per dirla tecnicamente un Socket.Affinche’ si possa stabilire questa connes sione virtuale tra il mio computer ed ilweb server che contiene le pagine di www.flamenetworks.com e’ indispensabileintrodurre il concetto di porte Si immagini che il web server stia servendocontemporaneamen te piu’ utenti i quali stanno navigando, nello stesso lassotemporale, 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 idifferenti Socket?La discriminazione av viene grazie all’utilizzo del TCP delle porte. Una porta none’ affatto un qualcosa di fisico ma virtuale: altro non e’ che un numeroidentificativo di un Socket. Questo numero di porta e’ valore che seguel’indirizzo IP, sia di destinazione che sorgente. Avremmo, quindi, cheinterrogando www.flamenetworks.com , l’indirizzo completo di destinazione,comprensivo di porta, potrebbe essere www.flamenetworks.com:80 . Viceversase un qualche host del mondo esterno genera dei pacchetti destinati a noi,questi pacchetti avranno il nostro indirizzo IP nel destination address seguitoda un numero di porta :1513

    Figura pacchetto TCP

    La porta diviene l’identificatore della sessione tra noi e l’altro, ovvero delSocket, ovvero del flusso di comunicazione. Supponiamo, ad esempio, di aprireil nostro internet browser e di iniziare a navigare sul sito www.repubblica.it ;

    http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.repubblica.it/http://www.repubblica.it/http://www.repubblica.it/http://www.repubblica.it/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/http://www.flamenetworks.com/

  • 8/19/2019 Pillole Di Internet

    20/30

    contemporaneamente, supponiamo di aprirne un secondo e di avviare unanuova navigazione sempre sullo stesso sito internet www.repubblica.it :avremmo due Socket differenti con porte differenti, ovvero due flussi differentidistinti ed indipendenti tra due host identici (il nostro computer ed il webserver di repubblica.it). E’ grazie alle porte distinte che il nostro computerdiscriminera’ i flussi di dati provenienti dal medesimo web server direpubblica.it per dirigerli verso le appropriate sessioni di navigazione internet:se cosi’ non fosse, i contenuti si mischierebbero.

    L’uso della scelta della porta e’ in parte nota ed in parte casuale. In verita’ laIANA ha stabilito un certo numero di porte definendole well-known-ports (porteben conosciute): le porte dalla 0 alla 1023 sono well-known-ports e sonouniversalmente associate a determinati servizi IP. Se consultiamo la paginahttp://www.iana.org/assignments/port-numbers troveremo una lunghissimalista di porte tra cui le prime 1024 riservate a specifici servizi. Volendoriassumere i servizi piu’ conosciuti tra le well -known ports si osservi la tabellinasottostante.

    Per meglio comprendere il significa to delle porte di questa tabella, e’ benechiarire che, generalmente, queste porte sono quelle utilizzate dai server, cioe’

    da tutte quelle macchine che in Internet svolgono la funzione di prestatore diservizi agli utenti. Ad esempio, se vogliamo scaricare la posta tramite il nostroclient di posta elettronica (Outlook, Evolution, Eudora e quant’altro),configureremo quest’ultimo col nome del server e se il nostro mail Serverlavorasse in pop- 3, l’interrogazione dal nostro computer verso il mail Server,av verra’ di sicuro sulla porta 110.

    Questo è il motivo per cui TCP e UDP hanno il concetto di porte. Ogni pacchettocontiene un campo per la `porta destinazione' che serve a indicare a qualeservizio è diretto il pacchetto (l’insieme dell’indirizzo e la por ta prende il nomedi Socket). Per esempio, alla porta TCP 25 corrisponde il mail server, alla portaTCP 80 corrisponde il web server (sebbene qualche volta si possa trovare ilweb server anche su porte differenti). Una lista delle porte si può trovare nelfile `/etc/services'.

    Inoltre se due finestre di Netscape stanno entrambe accedendo allo stesso sitoweb ma a pagine differenti, come fa la Linux box che esegue Netscape aindirizzare correttamente i pacchetti di ritorno provenienti dal web server ?

    E' a questo punto che interviene la `porta sorgente': ogni nuova connessioneTCP si appropria sempre di una porta sorgente diversa, in questo modopossono comunicare indipendentemente, anche se devono utilizzare lo stessoindirizzo e porta di destinazione. Di solito la prima porta sorgente assegnata

    http://www.repubblica.it/http://www.repubblica.it/http://www.iana.org/assignments/port-numbershttp://www.iana.org/assignments/port-numbershttp://www.iana.org/assignments/port-numbershttp://www.repubblica.it/

  • 8/19/2019 Pillole Di Internet

    21/30

    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 postaelettronica per inviare mail (smtp) o per riceverle (pop3 o imap), per testare laraggiungibilità di un host (ping), per testare il percorso fatto dal pacchetto(tracert), per aprire una sessione terminale (telnet), per scaricare file (ftp otftp) ecc.

    Livello applicazioni HTTP , HTTPS , SMTP , POP3 , IMAP, FTP , DNS , SSH , IRC , SNMP , SIP , RTSP , Rsync , Telnet , HSRP , BitTorrent , ...

    Livello di trasporto TCP , UDP , SCTP , DCCP , RTP , ICMP , ... Livello di rete IPv4 , IPv6 , DHCP , BGP , OSPF ,

    RIP , IGRP , IGMP , ARP ,IPsec ... Livello di collegamento o linea Ethernet , WiFi, PPP , Token ring , ATM ,

    FDDI , LLC, SLIP ... Livello fisico 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, possiamorealizzare una rete LAN anche abbastanza estesa con molti host ma semprecon un grosso svantaggio: tutti gli host appartengono sempre alla stessa

    collision-Domain. Il problema esposto della collisione si ingigantisceesponenzialmente nelle reti LAN in cui coesistono molti host poiché, come ècomprensibile, si incrementa notevolmente la probabilità di maggiori collisioni,

    http://it.wikipedia.org/wiki/Livello_applicazionihttp://it.wikipedia.org/wiki/Livello_applicazionihttp://it.wikipedia.org/wiki/HTTPhttp://it.wikipedia.org/wiki/HTTPhttp://it.wikipedia.org/wiki/HTTPShttp://it.wikipedia.org/wiki/HTTPShttp://it.wikipedia.org/wiki/HTTPShttp://it.wikipedia.org/wiki/SMTPhttp://it.wikipedia.org/wiki/SMTPhttp://it.wikipedia.org/wiki/SMTPhttp://it.wikipedia.org/wiki/Post_Office_Protocolhttp://it.wikipedia.org/wiki/Post_Office_Protocolhttp://it.wikipedia.org/wiki/Post_Office_Protocolhttp://it.wikipedia.org/wiki/IMAPhttp://it.wikipedia.org/wiki/IMAPhttp://it.wikipedia.org/wiki/IMAPhttp://it.wikipedia.org/wiki/FTPhttp://it.wikipedia.org/wiki/FTPhttp://it.wikipedia.org/wiki/FTPhttp://it.wikipedia.org/wiki/DNShttp://it.wikipedia.org/wiki/DNShttp://it.wikipedia.org/wiki/Secure_shellhttp://it.wikipedia.org/wiki/Secure_shellhttp://it.wikipedia.org/wiki/Secure_shellhttp://it.wikipedia.org/wiki/Internet_Relay_Chathttp://it.wikipedia.org/wiki/Internet_Relay_Chathttp://it.wikipedia.org/wiki/Internet_Relay_Chathttp://it.wikipedia.org/wiki/Simple_Network_Management_Protocolhttp://it.wikipedia.org/wiki/Simple_Network_Management_Protocolhttp://it.wikipedia.org/wiki/Simple_Network_Management_Protocolhttp://it.wikipedia.org/wiki/Session_Initiation_Protocolhttp://it.wikipedia.org/wiki/Session_Initiation_Protocolhttp://it.wikipedia.org/wiki/Session_Initiation_Protocolhttp://it.wikipedia.org/wiki/Real_Time_Streaming_Protocolhttp://it.wikipedia.org/wiki/Real_Time_Streaming_Protocolhttp://it.wikipedia.org/wiki/Real_Time_Streaming_Protocolhttp://it.wikipedia.org/wiki/Rsynchttp://it.wikipedia.org/wiki/Rsynchttp://it.wikipedia.org/wiki/Rsynchttp://it.wikipedia.org/wiki/Telnethttp://it.wikipedia.org/wiki/Telnethttp://it.wikipedia.org/wiki/HSRPhttp://it.wikipedia.org/wiki/HSRPhttp://it.wikipedia.org/wiki/HSRPhttp://it.wikipedia.org/wiki/BitTorrenthttp://it.wikipedia.org/wiki/BitTorrenthttp://it.wikipedia.org/wiki/BitTorrenthttp://it.wikipedia.org/wiki/Livello_di_trasportohttp://it.wikipedia.org/wiki/Transmission_Control_Protocolhttp://it.wikipedia.org/wiki/Transmission_Control_Protocolhttp://it.wikipedia.org/wiki/User_Datagram_Protocolhttp://it.wikipedia.org/wiki/User_Datagram_Protocolhttp://it.wikipedia.org/wiki/User_Datagram_Protocolhttp://it.wikipedia.org/wiki/Stream_Control_Transmission_Protocolhttp://it.wikipedia.org/wiki/Stream_Control_Transmission_Protocolhttp://it.wikipedia.org/wiki/Stream_Control_Transmission_Protocolhttp://it.wikipedia.org/wiki/DCCPhttp://it.wikipedia.org/wiki/DCCPhttp://it.wikipedia.org/wiki/DCCPhttp://it.wikipedia.org/wiki/Real-time_Transport_Protocolhttp://it.wikipedia.org/wiki/Real-time_Transport_Protocolhttp://it.wikipedia.org/wiki/Real-time_Transport_Protocolhttp://it.wikipedia.org/wiki/ICMPhttp://it.wikipedia.org/wiki/ICMPhttp://it.wikipedia.org/wiki/ICMPhttp://it.wikipedia.org/wiki/IPv4http://it.wikipedia.org/wiki/IPv4http://it.wikipedia.org/wiki/IPv6http://it.wikipedia.org/wiki/IPv6http://it.wikipedia.org/wiki/DHCPhttp://it.wikipedia.org/wiki/DHCPhttp://it.wikipedia.org/wiki/Border_Gateway_Protocolhttp://it.wikipedia.org/wiki/Border_Gateway_Protocolhttp://it.wikipedia.org/wiki/Open_Shortest_Path_Firsthttp://it.wikipedia.org/wiki/Open_Shortest_Path_Firsthttp://it.wikipedia.org/wiki/Routing_Information_Protocolhttp://it.wikipedia.org/wiki/Routing_Information_Protocolhttp://it.wikipedia.org/wiki/IGRPhttp://it.wikipedia.org/wiki/IGRPhttp://it.wikipedia.org/wiki/IGRPhttp://it.wikipedia.org/wiki/Internet_Group_Management_Protocolhttp://it.wikipedia.org/wiki/Internet_Group_Management_Protocolhttp://it.wikipedia.org/wiki/Address_Resolution_Protocolhttp://it.wikipedia.org/wiki/Address_Resolution_Protocolhttp://it.wikipedia.org/wiki/IPsechttp://it.wikipedia.org/wiki/IPsechttp://it.wikipedia.org/wiki/IPsechttp://it.wikipedia.org/wiki/Livello_datalinkhttp://it.wikipedia.org/wiki/Livello_datalinkhttp://it.wikipedia.org/wiki/Ethernethttp://it.wikipedia.org/wiki/Ethernethttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/PPPhttp://it.wikipedia.org/wiki/PPPhttp://it.wikipedia.org/wiki/PPPhttp://it.wikipedia.org/wiki/Token_ringhttp://it.wikipedia.org/wiki/Token_ringhttp://it.wikipedia.org/wiki/Token_ringhttp://it.wikipedia.org/wiki/Asynchronous_Transfer_Modehttp://it.wikipedia.org/wiki/Asynchronous_Transfer_Modehttp://it.wikipedia.org/wiki/Asynchronous_Transfer_Modehttp://it.wikipedia.org/wiki/Fiber_distributed_data_interfacehttp://it.wikipedia.org/wiki/Fiber_distributed_data_interfacehttp://it.wikipedia.org/wiki/Logical_link_controlhttp://it.wikipedia.org/wiki/Logical_link_controlhttp://it.wikipedia.org/wiki/Logical_link_controlhttp://it.wikipedia.org/wiki/SLIPhttp://it.wikipedia.org/wiki/SLIPhttp://it.wikipedia.org/wiki/SLIPhttp://it.wikipedia.org/wiki/Livello_fisicohttp://it.wikipedia.org/wiki/Livello_fisicohttp://it.wikipedia.org/wiki/Doppino_telefonicohttp://it.wikipedia.org/wiki/Doppino_telefonicohttp://it.wikipedia.org/wiki/Fibra_otticahttp://it.wikipedia.org/wiki/Fibra_otticahttp://it.wikipedia.org/wiki/Fibra_otticahttp://it.wikipedia.org/wiki/Cavo_coassialehttp://it.wikipedia.org/wiki/Cavo_coassialehttp://it.wikipedia.org/wiki/Cavo_coassialehttp://it.wikipedia.org/wiki/Codifica_Manchesterhttp://it.wikipedia.org/wiki/Codifica_Manchesterhttp://it.wikipedia.org/wiki/Codifica_4B/5Bhttp://it.wikipedia.org/wiki/Codifica_4B/5Bhttp://it.wikipedia.org/wiki/Codifica_4B/5Bhttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Codifica_4B/5Bhttp://it.wikipedia.org/wiki/Codifica_Manchesterhttp://it.wikipedia.org/wiki/Cavo_coassialehttp://it.wikipedia.org/wiki/Fibra_otticahttp://it.wikipedia.org/wiki/Doppino_telefonicohttp://it.wikipedia.org/wiki/Livello_fisicohttp://it.wikipedia.org/wiki/SLIPhttp://it.wikipedia.org/wiki/Logical_link_controlhttp://it.wikipedia.org/wiki/Fiber_distributed_data_interfacehttp://it.wikipedia.org/wiki/Asynchronous_Transfer_Modehttp://it.wikipedia.org/wiki/Token_ringhttp://it.wikipedia.org/wiki/PPPhttp://it.wikipedia.org/wiki/Wi-Fihttp://it.wikipedia.org/wiki/Ethernethttp://it.wikipedia.org/wiki/Livello_datalinkhttp://it.wikipedia.org/wiki/IPsechttp://it.wikipedia.org/wiki/Address_Resolution_Protocolhttp://it.wikipedia.org/wiki/Internet_Group_Management_Protocolhttp://it.wikipedia.org/wiki/IGRPhttp://it.wikipedia.org/wiki/Routing_Information_Protocolhttp://it.wikipedia.org/wiki/Open_Shortest_Path_Firsthttp://it.wikipedia.org/wiki/Border_Gateway_Protocolhttp://it.wikipedia.org/wiki/DHCPhttp://it.wikipedia.org/wiki/IPv6http://it.wikipedia.org/wiki/IPv4http://it.wikipedia.org/wiki/ICMPhttp://it.wikipedia.org/wiki/Real-time_Transport_Protocolhttp://it.wikipedia.org/wiki/DCCPhttp://it.wikipedia.org/wiki/Stream_Control_Transmission_Protocolhttp://it.wikipedia.org/wiki/User_Datagram_Protocolhttp://it.wikipedia.org/wiki/Transmission_Control_Protocolhttp://it.wikipedia.org/wiki/Livello_di_trasportohttp://it.wikipedia.org/wiki/BitTorrenthttp://it.wikipedia.org/wiki/HSRPhttp://it.wikipedia.org/wiki/Telnethttp://it.wikipedia.org/wiki/Rsynchttp://it.wikipedia.org/wiki/Real_Time_Streaming_Protocolhttp://it.wikipedia.org/wiki/Session_Initiation_Protocolhttp://it.wikipedia.org/wiki/Simple_Network_Management_Protocolhttp://it.wikipedia.org/wiki/Internet_Relay_Chathttp://it.wikipedia.org/wiki/Secure_shellhttp://it.wikipedia.org/wiki/DNShttp://it.wikipedia.org/wiki/FTPhttp://it.wikipedia.org/wiki/IMAPhttp://it.wikipedia.org/wiki/Post_Office_Protocolhttp://it.wikipedia.org/wiki/SMTPhttp://it.wikipedia.org/wiki/HTTPShttp://it.wikipedia.org/wiki/HTTPhttp://it.wikipedia.org/wiki/Livello_applicazioni

  • 8/19/2019 Pillole Di Internet

    22/30

    maggiori tempi di attesa dei timer e maggiori ritrasmissioni di frame. Tuttoquesto si traduce in un semplice inconveniente: rallentamento dellecomunicazioni in rete. Più host collegheremo in una collision-Domain, più larete LAN rallenterà e diverrà meno efficiente.Per ovviare all’inconveniente si pensò di dividere una rete LAN in più collision -Domain e ciò fu possibile tramite un apparato con funzionalità specifichechiamato 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 nosulla 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 funzionifondamentali di cui la prima è chiamata “Learning” che tradotto significaimparare.

    Nella figura sopra, si è supposto di dividere una rete LAN a bus in due busdistinti, cosicché da avere un miglioramento delle performances. Cerchiamoora di capire come può un Bridge dividere una singola LAN in due collision-Domai n migliorando le prestazione della LAN stessa. Se l’host A genera unaframe Ethernet destinata all’host C, questo frame si propagherà su tutto ilprimo bus e verrà inequivocabilmente letto da tutti gli host che condividono il

    primo bus (cioè B, C e l’inter faccia I1 del Bridge). Supponiamo inoltre che ilBridge sia nuovo e non abbia nulla nella sua bridging table. Il Bridge, leggendoil frame generato da A (ed in particolare leggendo il campo “Source Address”),comprenderà che sul bus che si affaccia sull’in terfaccia I1 esiste un host conun 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 ilBridge, dopo un po’ avrà completato la sua fase di learning, comp letando lasua bridging table per questa rete LAN. Questi dati, il Bridge, li terrà nella suatabella per un tempo determinato, dopodichè, se non vede traffico da parte dideterminati host li cancella. La sua bridging table sarà somigliante a qualcosadel genere:

  • 8/19/2019 Pillole Di Internet

    23/30

    Interface MAC Address

    I1 MAC dell’host A I2 MAC dell’host D I1 MAC dell’host C I1 MAC dell’host B I2 MAC dell’host E

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

    forwarding”. Con l’ausilio di questa sua t abella il Bridge può capire se un framedeve passare o meno sull’altro bus (filtering) e, nel caso il frame debbapassare, lo inoltra (forwarding). Ad esempio, se A vuole parlare con E, generail suo frame che verrà letto dal Bridge sull’interfaccia I1. Il Bridge leggedestination e source address del pacchetto e comprenderà che il frame ègenerato da A e destinato ad E. Consulta, allora, la sua tabella e comprendeche E è attestato all’interfaccia I2 per cui propagherà il frame da I1 ad I2. Lostesso frame verrà letto anche da B e C e dopo la propagazione anche da D maB, C e D, leggendo il destination address si accorgeranno di non essere idestinatari 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 econsultando sempre la sua tabella, comprende che il destinatario è sullostersso bus del mittente e quindi non applica il forwarding sul secondo bus. Inquest’ultimo caso si può ben comprendere che gli host D ed E non verrannooberati del traffico di A, B e C e in complesso diminuiranno drasticamente leprobabilità di collisione. In sostanza A, B e C potranno parlare tra loro senzaoberare inutilmente l’altro bus e così anche D ed E. La situazione, però, noncambia se due host dei due bus distinti devono parlare tra loro, poiché colforwarding, la rete LAN è come se non avesse alcun Brige.Col Bridge, in sostanza, abbiamo due o più collision-Domain su una stessaLAN.

    Al giorno d’oggi trovare un Bridge è come cercare un quadrifoglio in un prato ditrifogli. Di Bridge non se ne usano più perché questa macchina è nata comefunzione software da far girare su un normale computer: in pratica non esiste

  • 8/19/2019 Pillole Di Internet

    24/30

    una vera e propria macchina chiamata Bridge; piuttosto esiste un software chegira su un computer che lo trasforma in un Bridge. Per questo motivo il Bridge,ovvero computer con software di Bridging, è una macchina sostanzialmentelenta per le esigenze odierne. La sua evoluzione è un dispositivo dedicatovelocissimo e praticissimo e che lo ha sostituito quasi immediatamente: loSwitch !

    Lo Switch fonda la sua potenzialità sull’hardware: è una macchina totalmente

    dedicata alle funzioni di commutazione dei pacchetti Non hanno un vero eproprio software; anzi parlare di software su uno switch è un po’ anacronistico:è meglio parlare di firmware! Tutto ciò la rende una macchina velocissima chenon 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 nelletematiche inerenti al mondo IP. E’ acronimo di Multi -Protocol Label Switchingche tradotto potrebbe somigliare a “Commutazione multi -protocollo su baseetichetta”. MPLS è sostanzialm ente il tentativo di migliorare la qualità diservizio del mondo IP e di renderlo più affidabile per il trasporto di nuovi servizicon caratteristiche real-time come la voce e i flussi video. In altre parolecostituisce 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 spintoalla ricerca di sistemi migliorativi circa l'affidabilità di consegna delleinformazioni da parte del mondo IP. Ad esempio, per poter garantire un flussodi streaming video o di streaming audio senza scollamenti e senza interruzionioltre 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 indirizzisecondo il classico formato a 4 ottetti che tutti conosciamo come ipv4. Senon fosse stato per il NAT, l’indirizzamento ipv4 sarebbe già morto entro il2000/2002, secondo quanto dichiarava la IANA nel 1998. NAT è acronimo di

  • 8/19/2019 Pillole Di Internet

    25/30

    Network Address Translation, ovvero Traduzione dell'indirizzo di rete.Pensate a tutti i routers domestici, i codiddetti routers SOHO (Small OfficeHome Office), che i produttori hanno venduto in giro per il mondo in tutte levarianti con o senza file (WiFi). Ma non solo... pensate a tutte le periferichedi rete vendute in seguito allo sviluppo di queste reti domestiche: dallestampanti di rete, ai dischi NAS (Network Atached Storage, cioè i dischi direte). Ebbene, se ciascuna periferica necessita di un proprio indirizzo IP, lospazio che IANA avrebbe assegnato alle reti private non sarebbe

    sicuramente stato sufficiente.Per ovviare all’impossibilità di connettere ad Internet e di interconnetteretra loro, reti con indirizzi identici, gli stessi produttori dei prodotti per retiSOHO hanno escogitato ed implementato la funzione NAT. La funzione NATè sempre implementata nel dispositivo terminale collegato alla reteInternet: tipicamente il modem. Tuttavia oggi si è largamente diffuso uncongegno che integra tutte le funzioni di router, Access Point WiFi, e modemDSL: 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 pacchettiIP ed in particolare il campo Source IP address dei frame uscenti dallapropria rete verso il mondo Internet. Mentre all’interno della propria rete

    SOHO i pacchetti generati dai vari Host avranno nel campo Source Addressil 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-ADSL-Router o il modem, applicando la NAT, non farà altro che cancellare il suoindirizzo privato che inizierà con 192.168.1 con quello pubblico assegnatodal provider, che ci garantisce la connettività ad Internet, al momento dellaconnessione.

    Avrete notato che quasi tutti i routers SOHO hanno un indirizzo univoco paria 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 mask255.255.255.0. Finché tutte le reti SOHO con classe 192.168.1.1/24 fosseroindipendenti ed isolate tra loro e dal mondo Internet non avremmo alcun

  • 8/19/2019 Pillole Di Internet

    26/30

    problema ma volendo, inoltre, consentire la connettività su internet, ilproblema si incontrerebbe nella non univocità degli indirizzi IP: nonpotrebbero coesistere su Internet duo o più indirizzi 192.168.1.1 ogeneralmente più dispositivi con gli stessi indirizzi in classe 192.168.1.1/24.E’ bene chiarire comunque che per direttive IANA mai dovrebberopresentarsi su Internet dispositivi con indirizzi che rientrano nella gammadegli indirizzi privati.

    Nell’esempio del disegno qui in alto, il NAT del router manipola il pacchettoIP proveniente dal computer desktop 192.168.1.2 della sua rete,sostituendogli il Source Address 192.168.1.2 con l’IP pubblico83.190.11.132 assegnato durante la fase di connessione Internet. Ilcomputer desktop, difatti, vuole aprire una sessione per interrogare un sitoweb con indirizzo 83.190.11.132. Il router, svolgendo la funzione digateway, inoltra sulla rete WAN Internet il pacchetto ma sostituendogli ilsource IP address 192.168.1.2 (che non potrebbe essere inoltratoall’esterno, sulla rete Internet, perché è un indirizzo privato) con l’indirizzopubblico che il provider, garante della connessione Internet, gli haassegnato per consentirgli l’accesso in Internet. La funzione NAT è quindi assimilabile ad una sorta di “multiplessaggio” deimolteplici indirizzi in una rete privata SOHO verso l’unica porta (gateway)che conduce al mondo esterno di Internet.

  • 8/19/2019 Pillole Di Internet

    27/30

    La funzione di Virtual Server, anch’essa implementata nei WiFi -ADSL-Router, è 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 mondoesterno di Internet, è identificabile genericamente tramite l’indirizzopubblico assegnatoci dal provider di connessione, ovvero 83.190.11.132.

    Nell’esempio, riportato sopra in figura, qualsiasi dato provenientedall’esterno e diretto a noi, come può essere il contenuto web in risposta aduna nostra interrogazione, può raggiungerci grazie all’univocitàdell’indirizzo IP assegnatoci dal provider al momento della connessione.Cosicché se il nostro indirizzo è 83.190.11.132, chiunque dall’esterno puòraggiungerci (grazie ai DNS di connessione del provider e grazie alle tabelledi routing dei routers dello stesso provider). Supponiamo, però, che larichiesta di dati l’abbia fatta il computer desktop con indirizzo IP192.168.1.2 e che, quindi, quest’ultimo stia aspettando i dati di rispostadall’esterno.Come può il router discriminare quale dispositivo della sua rete, fra i cinque(poiché il destinatario potrebbe essere anche lui), debba essere ildestinatario ? Di sicuro non potrebbe capirlo subito, dal momento in cui sivede arrivare pacchetti IP con destination address 83.190.11.132 cheidentifica 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

  • 8/19/2019 Pillole Di Internet

    28/30

    notebook 192.168.1.3, il quale non ha effettuato nessuna richiesta. Nétantomeno al NAS o la stampante.La soluzione sta nell’uso delle porte!Quando il router si è fatto da tramite per inoltrare la richiesta del computerdesktop (vedi figura su argomento NAT) oltre ad aver applicato la funzioneNAT ed inoltrato il pacchetto verso Internet ha anche memorizzato la portacon cui il computer desktop ha inoltrato la richiesta. La risposta con i datiproveniente dall’esterno 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 cheimmagazzinano i contenuti dei siti web, sfruttano la funzione di VirtualHosts. Un Web Server è un software che gira su un computer condeterminate caratteristiche (a volte anche apparentemente meno potentidei nomali pc e workstation da tavolo). I software di Web Server sonosvariati e dipendono dalla piattaforma del sistema operativo. Ad esempio seil 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ù diffusoal mondo! Il Web Server prevede la divisione dello spazio del disco rigido odei 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 trequote, ove ciascuna quota è relativa ai contenuti web di ciascun sito. Il WebServer, essendo montato su un singolo computer, potrà avere un soloindirizzo IP, ovvero l’indirizzo IP assegnato a quel computer. Supponiamoche questo indirizzo equivale a 85.200.150.83 che è un indirizzo pubblicoche 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 sitoweb contenuto nel Web Server in questione avremo dai DNS Serversl’indirizzo IP 85.200.150.83. La domanda lecita è: se io voglio interrogare

    http://www.cirocarbone.it/http://www.cirocarbone.it/http://www.cirocarbone.it/http://www.mercatino.net/http://www.mercatino.net/http://www.pincopalla.com/http://www.pincopalla.com/http://www.pincopalla.com/http://www.pincopalla.com/http://www.mercatino.net/http://www.cirocarbone.it/

  • 8/19/2019 Pillole Di Internet

    29/30

    www.cirocarbone.it ed otten go l’IP di destinazione 85.200.150.83 comeriesce il Web Server a capire che il mio interesse è verso questo specificosito e non verso gli altri due? Infatti, anche se volessi interrogarewww.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 WebServer avviene grazie ad un software chiamato Virtual Host.

    Ciascuna richiesta, proveniente dall’esterno, dovrà passare prima perl’analisi del Virtual Host che discriminerà con precisione a quale servizio,ovvero a quale quota, del Web Server la richiesta vuole indirizzarsi. Ilmeccanismo di discriminazione avviene tramite la lettura di alcuni header,ovvero di alcuni campi di livello 5 in cui i programmi applicativi, che noiutenti utilizziamo su Internet, scrivono/leggono per notificare informazionidettagliate che vanno ben aldilà del semplice indirizzo IP di livello 3. Adesempio nel caso della navigazione web, i nostri browser scrivono negliheader HTTP 1.1 il nome dell’host che vogliamo visitare (il cosiddetto URI Uniform Resource Identifier), il tipo di browser, la risoluzione dello schermo

    ecc.. Il Virtual Host legge l’URI nell’ header HTTP 1.1 e, quindi, legge ilnome del sito web che vogliamo visitare.

    La funzione di Virtual Host è praticamente analoga a quella Virtual Server econsente di condividere più quote su un’unica macchina Web Server con unsolo indirizzo IP. Anche ciò si traduce in un risparmio di indirizzi IP darichiedere a IANA. La differenza tra Virtual Host e Virtual Server consistenell’uti lizzo del primo su dispositivi ad uso server e con elementi

    http://www.cirocarbone.it/http://www.cirocarbone.it/http://www.mercatino.net/http://www.mercatino.net/http://www.mercatino.net/http://www.cirocarbone.it/

  • 8/19/2019 Pillole Di Internet

    30/30

    discriminanti di livello 5, del secondo su dispositivi ad uso client conelementi 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,l’esigenza di disporre di molti più indirizzi IP, porterà all’esaurimento degliindirizzi potenzialmente disponibili nello standard ipv4.