Carlo Loris Ghiraldello Progetto “Didattica Ennova Services S.r.l. ” Teoria delle reti informatiche Ver.nr.1 del 10/03/2015 Il documento è scaricabile al seguente indirizzo: http://www.ghiraldello.it/blog (C.so di Teoria sulle reti Informatiche - Ennova Services S.r.l.) Pag. 1 di 25 Carlo Loris Ghiraldello Sommario Progetto “Didattica Ennova Services S.r.l.” Teoria delle reti informatiche ................................ 1 1 Cos’è una rete di calcolatori ......................................................................................................................... 3 2 Apparati di interconnessione ....................................................................................................................... 4 2.1 Hub e Switch........................................................................................................................................... 4 2.2 Firewall, Router e Gateway ................................................................................................................... 5 2.2.1 2.3 3 Bit, Byte, Download e Ping .......................................................................................................... 6 Access Point, Bridge e Range Extender ............................................................................................. 8 Identificazione dei calcolatori in una rete ................................................................................................ 10 3.1 Il protocollo IPv4 ................................................................................................................................. 11 4 Classificazione delle reti e organismi di controllo ................................................................................... 12 5 Reti pubbliche e Reti private ...................................................................................................................... 14 6 7 8 5.1 Individuazione delle reti Private e Pubbliche ................................................................................... 14 5.2 Casi particolari ...................................................................................................................................... 15 Comprensione dei problemi legati all’ottimizzazione degli indirizzi IP .............................................. 16 6.1 Concetti base delle sottoreti ............................................................................................................... 16 6.2 Approfondimento: limitare il traffico di rete ................................................................................... 17 I servizi di rete .............................................................................................................................................. 21 7.1 Il DNS ................................................................................................................................................... 21 7.2 Il DHCP ................................................................................................................................................ 22 Cenni sui servizi applicativi ........................................................................................................................ 25 Pag. 2 di 25 Carlo Loris Ghiraldello 1 Cos’è una rete di calcolatori Una rete di calcolatori, in informatica e telecomunicazioni, è un sistema o un particolare tipo di rete di telecomunicazioni che permette lo scambio o condivisione di dati informativi e risorse (hardware e/o software) tra diversi calcolatori (Wikipedia). Una rete per potersi dire tale, deve essere composta da almeno 2 devices o altrimenti detti host o calcolatori (computer). Le reti sono costruite in base a tre architetture, o topologie, fondamentali: a stella, ad anello e a bus. Figura 1. – Rappresentazioni grafiche delle 3 topologie di rete più usate. In una topologia a stella ogni computer è collegato da un cavo dedicato ad un dispositivo centrale: il concentratore ovvero un hub, uno switch, un router switch o un router con access point wifi. In una rete a stella, se un cavo si guasta o viene disconnesso, solo un computer risulta scollegato dalla rete. Se si guasta il concentratore cade l’intera rete, ma i problemi di cablaggio sono facili da individuare e riparare e molto meno frequenti che in una rete a bus e ad anello. La topologia a stella rappresenta lo standard industriale attuale di implementazione di una rete dati. Figura 2. – Esempio di Rete a Stella dove il router con switch e access point integrati rappresentano il centro. Pag. 3 di 25 Carlo Loris Ghiraldello 2 Apparati di interconnessione Gli elementi usati per l’interconnessione possono prendere nomi diversi: bridge, access point, range extender, hub, switch, firewall, router, gateway. La distinzione nasce dalle funzioni necessarie a collegare le varie reti e quindi dalle differenze tra le varie reti. Le scelte nell’utilizzo degli apparati sono subordinate a fattori come la posizione dei computer, la dimensione della rete e l’ampiezza di banda ovvero alla capacità di trasferimento dati in un determinato periodo di tempo. Maggiore la quantità di dati da trasferire in un periodo di tempo ristretto, maggiore l’ampiezza di banda richiesta. 2.1 Hub e Switch Un hub è un dispositivo che inoltra i dati in arrivo da una qualsiasi delle sue porte su tutte le altre, cioè in maniera diffusiva. Lo switch invece agisce sull'indirizzamento e sull'instradamento all'interno delle reti LAN mediante indirizzo fisico (MAC), selezionando i frame ricevuti e dirigendoli verso il dispositivo corretto (leggendo il MAC di destinazione). L'instradamento avviene per mezzo di una corrispondenza univoca porta-indirizzo. Per chiarire le idee: l’hub prende le richieste di un calcolatore dirette ad un altro specifico calcolatore e per portale a destinazione le distribuisce a tutti i calcolatori della rete in quanto non ha una mappa dei computer collegati. E’ evidente che in questa condizione il traffico di rete aumenta in misura proporzionale al numero delle macchine connesse. Lo switch invece mappa tutti i calcolatori collegati e indirizza le richieste dati di uno specifico calcolatore solo al computer di destinazione evitando di affollare la rete. Oramai lo standard attuale per le reti a stella prevede solo l’utilizzo di switch con un’ampiezza di banda di 1 Gbps Figura 3. – Rappresentazione grafica del funzionamento a confronto di un Hub e uno Switch Pag. 4 di 25 Carlo Loris Ghiraldello 2.2 Firewall, Router e Gateway Nella creazione di una rete occorre anche aver ben presente la regola fondamentale del routing che impedisce a computer posizionati su reti diverse (esempio la rete di casa e internet) di comunicare fra loro. Lo scambio di dati tra calcolatori posizionati su reti diverse è consentito solo per mezzo di apparati detti Router. Quindi uno dei dispositivi più importanti è il router (instradatore) che sceglie il percorso dei dati in base a precise “regole di instradamento” che tengono conto dei costi e dei tempi di trasmissione. Il router incorpora sempre uno switch e sempre più frequentemente anche un access point per le connessioni wifi. Diversamente da un semplice switch, il quale sceglie unicamente da che parte mandare l’informazione solo in base all'indirizzo del destinatario che deve essere nella stessa rete o sottorete, il router consente di trasmettere e ricevere dati attraverso 2 o più reti diverse generando quella che viene comunemente definita come una porta d’accesso o gateway. Il router permette inoltre di condividere l’accesso a reti diverse, con tutti i devices ad esso collegati. Il router rappresenta quindi il Gateway ossia la porta di accesso verso altre reti, tipicamente verso Internet nella maggior parte dei casi. Figura 4. – Vodafone Station e alice, 2 esempi di router più utilizzati in ambito home. Figura 5. – Il router in ambito home è il centro della rete e rappresenta il gateway per Internet Pag. 5 di 25 Carlo Loris Ghiraldello Se il router rappresenta la porta di accesso (gateway) verso altre reti come per esempio Internet, è anche vero che se le reti a cui ci si collega non sono conosciute è molto probabile incappare in comportamenti ostili che potrebbero mettere a rischio l’integrità dei dispositivi sulla nostra rete. A tal proposito un firewall è sicuramente di aiuto. Un firewall è un componente passivo software (a volte identificabile con un device hardware specifico) di difesa perimetrale di una rete informatica, che può anche svolgere funzioni di collegamento tra due o più tronconi di rete (router), garantendo dunque una protezione in termini di sicurezza informatica della rete stessa. Usare un Firewall è come chiudere a chiave la porta di ingresso di casa: il firewall, infatti, evita che eventuali intrusi (in questo caso rappresentati da hacker e software dannoso) possano accedere ai computer della nostra rete o ai dati in essi conservati. Quasi tutti i più moderni router in commercio integrano anche un firewall, per esempio nella Vodafone Station è possibile attivare un firewall per controllare il traffico in entrata e in uscita e permettere solo quello ritenuto affidabile. Nell’ambito Home è difficile trovare qualcuno che abbia un dispositivo hardware separato dal router che funga da firewall, la sua gestione è in effetti ritenuta piuttosto complessa e solitamente è delegata a personale specializzato. 2.2.1 Bit, Byte, Download e Ping Quando si ha a che fare con un dispositivo di routing come un firewall o un router è molto importante sapere la differenza tra bit e byte in quanto le unità di misura usate per misurare le loro prestazioni potrebbero creare confusione. Per esempio se noi abbiamo un file della dimensione di 8 mega byte e abbiamo una connessione ADSL a 8 mbps, saremo comunemente portati a credere che tale file possiamo scaricarlo in 1 secondo esatto. In realtà poi accade che il tempo necessario per scaricare tale file sia attorno ai 10 secondi. Ma allora c’è un problema con l’ADSL? NO, nessun problema, 10 secondi sono più o meno il tempo necessario per scaricare un file da 8 mega byte con una velocità di download di 8 mbps. Ma allora dov’è il trucco? Beh, non c’è trucco, semplicemente stiamo confrontando 2 unità di misura differenti, i byte (usati per misurare il file) e i bit (usati per misurare le prestazioni). L’equivalenza è la seguente: 1 byte = 8 bit. Detto questo è facile capire che per calcolare l’effettivo tempo di download di un file occorre prima convertirlo in bit. Dunque nell’esempio qui sopra, un file di 8 mega byte corrisponde ad una dimensione di 64 mbps, ovvero 8 mega bye x 8 bit. Ora si che possiamo calcolare il tempo reale di download che corrisponde a 64 mbps / 8 mbps, ovvero 8 secondi. Se consideriamo che la velocità di download dell’ADSL non è mai perfettamente costante, 10 secondi per scaricare un file da 8 mega byte è un tempo corretto, almeno per una ADSL da 8 mbps in download. Figura 6. – Risultati dello speed test. Notare i valori espressi in mbps per il download e l’upload. Il ping è sempre espresso in millisecondi. Pag. 6 di 25 Carlo Loris Ghiraldello Un altro parametro da valutare con attenzione durante i test di velocità effettuati per la verifica del buon funzionamento dell’ADSL è il Ping. (Packet internet goper). Il Ping è un'utility di amministrazione per reti di computer usata per misurare il tempo, espresso in millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un dispositivo di rete (attraverso una qualsiasi rete informatica basata su IP) e a ritornare indietro all'origine. È prettamente utilizzato per verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le latenze di trasmissione di rete, ovvero la velocità di risposta. Quindi, anche in questo caso, contrariamente a quanto potrebbe essere automatico pensare, più basso è il valore di risposta in millisecondi e migliori sono le performance del sistema. Per esempio valori che si aggirano sui 20ms o minori sono da considerarsi eccellenti, valori minori di 40ms buoni, valori che si aggirano sui 50ms normali, valori tra 100ms e 150ms invece mediocri, valori superiori a 150ms pessimi. Pag. 7 di 25 Carlo Loris Ghiraldello 2.3 Access Point, Bridge e Range Extender In alcuni casi si potrebbe essere costretti ad effettuare dei collegamenti wireless perché non vi è alcuna possibilità di stendere un cavo per le connessioni oppure molto più semplicemente perché i dispositivi che si vuole collegare alla rete sono dotati della sola interfaccia di rete WiFi. A tale scopo esistono gli access point che possono anche essere usati come Bridge. Gli AP sono dei dispositivi che offrono la possibilità di collegare computer, stampanti, smartphone e in generale tutti i devices dotati di apparato di radio frequenza capaci di trasmettere a 2,4 o 5 GHz con il protocollo standard IEEE 802.11. Il punto di forza di questi apparati è anche il loro punto debole, le trasmissioni in radio frequenza sono infatti soggette a interferenze come il sovraffollamento e gli ostacoli che ne riducono l’efficacia. La maggior parte degli AP in commercio trasmettono sulle frequenze di 2,4 GHz, quindi le probabilità che 2 o più AP si disturbino a vicenda sono molto elevate dato che non è per nulla difficile che più apparecchi di questo tipo, nei condomini, si trovino nel proprio raggio d’azione. Contro il sovraffollamento o inquinamento da onde radio dovuto ad altri apparecchi che trasmetto sulle stesse frequenze, l’unico rimedio è provare a trasmettere su canali radio meno affollati. E’ un’operazione che solitamente avviene automaticamente alla riaccensione dell’AP, ma non sempre risolve i problemi e molto spesso le comunicazioni con il resto della rete domestica avvengono a velocità e prestazioni molto al di sotto dei livelli massimi consentiti. Molti AP di ultima generazione hanno trovato una soluzione portando la frequenza di trasmissione a 5GHz, ma anche in questo caso è solo una questione di tempo, infatti quando il mercato avrà rimpiazzato i vecchi ripetitori con i nuovi, saremo di nuovo punto a capo. Contro il problema degli ostacoli invece interviene il range extender ovvero un ripetitore di segnale radio e via wifi ritrasmette con maggior potenza il segnale ricevuto ampliando così il raggio d’azione del segnale radio originale. Chiaramente Implica che esista già un access point o un router wifi. La banda in radio frequenza a disposizione viene però divisa in 2, una parte per la ricezione e una parte per la ritrasmissione del segnale. In questo modo si ha un dimezzamento delle prestazioni ed inoltre esiste solo la possibilità di collegarsi con devices provvisti di interfaccia di rete WiFi. Figura 7. – Il range extender, posizionato in un punto poco coperto dalla radio frequenza del router Wifi, consente, amplificando il segnale, di estendere il raggio d’azione della copertura wifi del router. Pag. 8 di 25 Carlo Loris Ghiraldello Similmente al range extender il bridge estende il segnale radio originato da un AP, ma contrariamente al range extender, non ritrasmette il segnale in radio frequenza, ma lo converte per un utilizzo con il cavo. Si tratta quindi molto più semplicemente di un ponte radio tra due punti della rete. La banda radio a disposizione non viene divisa tra ricezione e ritrasmissione per cui non c’è alcuna perdita di prestazioni, la velocità di connessione sarà sempre la massima possibile. I devices che vi si possono collegare devono essere cablati, non esiste un punto di accesso Wifi. Solitamente viene utilizzato in campi aperti per collegare due edifici tra loro o due stanze del medesimo edificio che magari abbiano una finestra su un cortile interno. Infatti, come ogni trasmissione in RF, anche i bridge soffrono dei problemi relativi alle interferenze e agli ostacoli, per cui più isolati sono e più campo aperto hanno e meglio funzionano. Figura 8. – Due esempi di utilizzo dell’access point come bridge Pag. 9 di 25 Carlo Loris Ghiraldello 3 Identificazione dei calcolatori in una rete Internet è un immenso insieme di reti diverse collegate l'una con l'altra. Ci sono reti Macintosh, reti Microsoft, reti SUN, reti IBM e così via. Ciascuna di loro parla una lingua diversa. Ma allora come fanno a parlarsi l'una con l'altra? Immaginiamo un tizio cinese che vuole parlare con un tizio italiano oppure un tizio francese che vuole parlare con un tizio spagnolo...hanno bisogno di un traduttore. Oppure potrebbero usare una lingua comune: la lingua inglese per esempio. Bene, le reti di computer usano infatti un linguaggio comune: il suo nome è TCP (Transmission Control Protocol). Quando un computer all'interno di una rete vuole parlare con un computer all'interno di un'altra rete, deve conoscere l'indirizzo dell'altro computer (IP) e deve usare un linguaggio comune (TCP). Perciò le comunicazioni tra reti di computer fanno uso del protocollo TCP/IP. Figura 9. – Il protocollo TCP/IP è il “linguaggio” comune a tutti i sistemi operativi e dispositivi hardware per scambiarsi informazioni. Affinché possa avvenire questa comunicazione o scambio di dati tra devices di reti differenti, innanzitutto è necessario che ognuno di essi possa essere identificabile univocamente. Dal settembre del 1981 è il protocollo TCP/IP il metodo più diffuso e universalmente riconosciuto come il più adatto per questo scopo. Oltre ad essere implementato da ogni sistema operativo e su ogni tipo di hardware, è anche il protocollo più usato in ambienti eterogenei. Pertanto, TCP/IP è la scelta più giusta per collegare il proprio computer a altre macchine a casa o alla rete aziendale o universitaria. La versione corrente del protocollo TCP/IP è la 4 (IPv4). Pag. 10 di 25 Carlo Loris Ghiraldello 3.1 Il protocollo IPv4 Il protocollo IPv4, in termini pratici, consiste di 4 triplette di cifre separate da punti (es.192.168.010.012) Ciascuna tripletta è la rappresentazione decimale di un byte e per ciò sono necessari 4 byte per definire un indirizzo IP. Siccome ogni byte è composto da 8 bit (8 cifre del sistema di numerazione binario le cui uniche combinazioni sono 0 e 1), se ne deduce che ogni tripletta consente un massimo di 256 combinazioni (da 0 a 255) equivalenti alle 2 possibili combinazioni di ogni bit elevate all’ottava potenza ovvero al numero di bit di cui si compone ogni tripletta. Gli indirizzi ip dunque vanno da 0.0.0.0 a 255.255.255.255 ovvero un totale di 232 corrispondenti a poco più di 4 miliardi di combinazioni totali. Gli indirizzi IPv4, nonostante agli albori della Rete (anno 1981) sembrassero in numero più che sufficiente, sono oggi ormai esauriti ed è ormai avviato, già da qualche tempo, la progressiva migrazione verso IPv6 che mette a disposizione un numero di IP pubblici “sconfinato” (2128 indirizzi ossia circa 280 mila miliardi). Importante sapere che il traffico di rete viaggia a pacchetti e che ogni pacchetto viene identificato oltre che dall’indirizzo ip anche dalla porta. Ma che cos’è una porta? Banalmente potremmo dire che è come un'etichetta che identifica e discrimina il traffico dati di una connessione da quello di un'altra. Infatti le porte sono lo strumento utilizzato per realizzare la multiplazione delle connessioni a livello di trasporto, ovvero per permettere ad un calcolatore di effettuare più connessioni contemporanee verso altri calcolatori, facendo in modo che i dati contenuti nei pacchetti in arrivo vengano indirizzati al processo che li sta aspettando. Perché è importante sapere dell’esistenza delle “porte”? Sono di vitale importanza per capire il meccanismo delle intrusioni di malintenzionati hacker e quindi difendersi. Lo strumento comune di difesa per questi tipi di “infrazioni” è il firewall. Attenzione, il firewall non è un antivirus, è solo uno strumento per “chiudere” le porte, soprattutto quelle in ingresso da Internet impedendo di fatto a qualunque malintenzionato di intrufolarsi nei nostri computer. Figura 10. –Il sistema operativo Windows offre un’interfaccia grafica per consentire la gestione del protocollo IPv4. Pag. 11 di 25 Carlo Loris Ghiraldello 4 Classificazione delle reti e organismi di controllo Esiste un organismo internazionale libero, composto da tecnici, specialisti e ricercatori interessati all'evoluzione tecnica e tecnologica di Internet denominato IETF (Internet Engineering Task Force) che si occupa di regolamentare le interazioni tra i devices che usano il protocollo IP. Definiscono gli standard di comunicazione e sono descritti nei documenti come l’RFC 791, 919, 922, 950, 1918, 1349 ecc.. redatti appunto da questa organizzazione. Per permettere una migliore organizzazione della rete, gli indirizzi disponibili sono stati suddivisi in classi in base alle dimensioni del network da gestire. In questo modo verranno utilizzate le classi più adatte alla dimensioni della rete, con conseguente minore spreco di IP address. Sono disponibili cinque classi di indirizzi IP, di cui solo le prime tre possono essere utilizzate per assegnare indirizzi agli host. CLASSE RANGE PRIMO OCTET IP NETWORK UTILIZZABILI A 1-126 da 1.0.0.0 a 126.0.0.0 B 128-191 da 128.0.0.0 a 191.255.0.0 C 192-223 da 192.0.0.0 a 223.255.255.0 D (multicast) 224-239 da 224.0.0.0 a 239.255.255.255 E (reserved) 240-255 da 240.0.0.0 a 255.255.255.255 Figura 11. – Elenco degli indirizzi IP per la definizione delle reti suddivisi in classi. Le reti di classe A hanno indirizzi il cui primo numero va da 1 a 126 (127 é un valore riservato); Queste reti sono 126 e, con la loro maschera di rete di default di 255.0.0.0, possono contenere 16.777.214 computer sulla stessa rete. Per esempio i computer sulla rete 4.xxx.yyy.zzz sono tutti sulla medesima rete, mentre i computer sulla rete 5.xxx.yyy.zzz sono su una rete di classe A diversa. L'indirizzo IP xxx.0.0.0 indica l'intera rete e l'indirizzo IP xxx.255.255.255 indica una diffusione a tutti i computer della rete (broadcast) ed ecco perché anziché essere 16.777.216 ovvero 256x256x256 per ogni rete i computer sono 2 in meno. Le reti di classe B hanno indirizzi il cui primo numero va da 128 a 191. Queste reti sono 16.384 (64 x 256) e con la loro maschera di rete di default di 255.255.0.0, possono contenere 65.534 computer sulla stessa rete. Per esempio i computer sulla rete 190.4.yyy.zzz sono sulla medesima rete. Mentre i computer sulla rete 190.5.yyy.zzz sono su una rete di classe B diversa. L'indirizzo IP xxx.yyy.0.0 indica l'intera rete e l'indirizzo IP xxx.yyy.255.255 indica una diffusione a tutti i computer della rete (broadcast) ed ecco perché anziché essere 16.536 ovvero 256x256 per ogni rete i computer sono 2 in meno. Le reti di classe C hanno indirizzi il cui primo numero va da 192 a 223. Queste reti sono 2.097.152, con la loro maschera di rete di default di 255.255.255.0, possono contenere 254 computer sulla stessa rete. Per esempio i computer sulla rete 193.4.6.zzz sono sulla medesima rete. Mentre i computer sulla rete 193.4.5.zzz sono su una rete di classe C diversa. L'indirizzo IP xxx.yyy.zzz.0 indica l'intera rete e l'indirizzo IP xxx.yyy.zzz.255 indica una diffusione a tutti i computer della rete (broadcast) ed ecco perché anziché essere 256 per ogni rete i computer sono 2 in meno. Pag. 12 di 25 Carlo Loris Ghiraldello Utilizzando la tabella di figura 9 e le informazioni qui sopra, vediamo alcuni esempi di riconoscimento della classe e delle reti. Indirizzo IP Net Mask 2.150.30.21 255.0.0.0 Rete 2.0.0.0 Classe A ID Computer 150.30.21 Indirizzo IP Net Mask 132.150.30.21 255.255.0.0 Rete 132.150.0.0 Classe B ID Computer 30.21 Indirizzo IP Net Mask 192.168.30.21 255.255.255.0 Rete 192.168.30.0 Classe C ID Computer 21 Le classi A,B,C,D sono utilizzate nelle reti attuali, anche se la classe D non è utilizzabile per gli host. La classe E invece è riservata e quindi non utilizzabile per il routing dei pacchetti. In buona sostanza, le reti utilizzabili per collegare i computer tra di loro sono solo quelle di classe A, B e C. Pag. 13 di 25 Carlo Loris Ghiraldello 5 Reti pubbliche e Reti private Trasversalmente alle classi, gli indirizzi ip si dividono in 2 grandi gruppi: Indirizzi IP Pubblici; Indirizzi IP Privati. Un indirizzo IP pubblico rappresenta un indirizzo univoco al mondo potenzialmente raggiungibile da qualunque posto e/o altro indirizzo. Il rilascio di un indirizzo pubblico o di un blocco di indirizzi IP viene effettuato da parte dell'ICANN (Internet Corporation for Assigned Names and Numbers), un ente sotto il diretto controllo del Ministero del commercio degli Stati Uniti che gestisce l'indirizzamento e i nomi di dominio di primo livello come .it .com .eu ecc. Per saperne di più consultare il sito web www.InterNIC.net , un sito che serve per fornire informazioni pubbliche relative ai servizi di registrazione dei nomi a dominio di Internet. L’insieme dei dispositivi con un indirizzo IP pubblico collegati fra loro formano una rete WAN (Wide Area Network) che è geograficamente distribuita e viene comunemente identificata come Internet. Un indirizzo IP privato invece, rappresenta un indirizzamento di rete destinato a reti locali. La sua assegnazione non è regolamentata da parte di nessun organismo, infatti è possibile decidere arbitrariamente che indirizzo associare ad un componente della propria rete locale. L’unico vincolo è assegnare gli indirizzi ip con numerazioni riservate alle reti private (elencate nel capitolo successivo), in quanto, essendo riservati, non vengono utilizzati per l'indirizzamento e l’instradamento tramite protocollo IP dai router sulla rete Internet, quindi non generano conflitti con analoghi indirizzi posti su altre reti locali. I devices con indirizzi IP privati collegati fra loro generano le reti LAN (local area network) e possono essere collegati a Internet solo attraverso il sistema di routing che “nasconde” gli indirizzi IP privati con un sistema detto NAT (network address translation). Il NAT multipla (o mappa o maschera) più indirizzi IP privati su un solo indirizzo IP pubblico, visibile all'esterno della sottorete ed utilizzabile per l'instradamento dei router sulla rete Internet. La scelta di definire gruppi di indirizzi IP privati è nata proprio dall'esigenza iniziale di ridurre l'utilizzo degli indirizzi IPv4 “pubblici” che sono limitati a 232 ossia poco meno di 4 miliardi e fino ad oggi il sistema NAT ha svolto egregiamente questo compito. 5.1 Individuazione delle reti Private e Pubbliche Come si identifica una rete privata e una rete pubblica? Possiamo dire che tutte le combinazioni delle 3 classi di indirizzi ip (A-B-C) sono reti pubbliche ad eccezione di alcune combinazioni per ogni singola classe che sono appunto le reti private. lo IANA (Internet Assigned Number Authority) prima di confluire nell’ICANN, ha riservato 3 domini di indirizzi IP (uno per ogni classe) specifici da utilizzare per le reti private: Indirizzo iniziale Indirizzo finale Nr.Reti Disponibili Numero di indirizzi disponibili 10.0.0.0 10.255.255.255 1 di classe A 16.777.216(-2) 172.16.0.0 172.31.255.255 16 di classe B contigue 1.048.576(-2*16) 192.168.0.0 192.168.255.255 256 di classe C contigue 65.536(-2*256) Pag. 14 di 25 Carlo Loris Ghiraldello Gli indirizzi 10.x.x.x (reti di classe A) sono pensati per grandi reti vale a dire reti fino a 16.777.214 differenti devices o hosts. Gli indirizzi da 172.16.x.x a 172.31.x.x (reti di classe B) sono pensati per reti più piccole e possono gestire fino a 16 reti diverse, ciascuna delle quali può contenere fino a 65.534 diversi devices ovvero fino ad un massimo di 1.048.544 diversi devices o hosts. Gli indirizzi 192.168.x.x sono pensati per piccole reti come quelle domestiche e possono gestire fino a 256 reti di classe C, ciascuna delle quali può contenere fino a 254 computer diversi per un totale di 65.024 devices diversi . 5.2 Casi particolari Tra le regole base definite dall’IETF (Internet Engineering Task Force) vanno elencate quelle per cui non tutte le 232 possibili combinazioni delle 4 triplette che compongono gli indirizzi ip sono utilizzabili per l’identificazione di un calcolatore o host. Alcuni indirizzi ip saranno utilizzati per identificare una rete o una sotto rete, altri per identificare un indirizzo di broadcast ovvero per inviare messaggi a TUTTI i computer collegati ad una specifica rete. Tipicamente in una rete definita dalla subnet mask, il primo indirizzo identifica la rete e l’ultimo è l’indirizzo di broadcast, entrambe inutilizzabili per l’identificazione di un calcolatore. Tra i casi particolari ce ne sono anche altri 2, ovvero l’indirizzo IP 0.0.0.0 (il default route) e l’intera rete di classe A 127.0.0.0. Su questa rete qualunque indirizzo IP destinato agli Host è considerato da tutti i calcolatori come il local loop o loop back ovvero il proprio identificativo base che può essere usato dalle applicazioni per comunicare con lo stesso sistema su cui sono in esecuzione. Essere in grado di comunicare con la propria macchina locale come se fosse una macchina remota è utile a scopo di test, nonché per contattare servizi che si trovano sulla propria macchina, ma che il client si aspetta siano remoti. Pag. 15 di 25 Carlo Loris Ghiraldello 6 Comprensione dei problemi legati all’ottimizzazione degli indirizzi IP Le ragioni della suddivisione in classi degli indirizzi ip, sono unicamente dovute a motivi di ottimizzazione nell’assegnazione degli stessi indirizzi. Infatti, dopo l’assegnazione delle prime classi A ad intere aziende (a questo link http://en.wikipedia.org/wiki/List_of_assigned_/8_IPv4_address_blocks è possibile vedere l’elenco completo) si è capito che gli indirizzi per definire le reti e i computer sulle reti, si sarebbero esauriti in breve tempo, ecco perché esistono la classe B e la classe C. Con queste classi infatti è possibile definire un minor numero di computer, ma un maggior numero di reti. Infatti praticamente nessuna delle aziende a cui è stata assegnata una classe A ha 16 milioni di host collegati fra loro, nemmeno Apple che detiene la rete 17.0.0.0. Per visualizzare come lo spazio di indirizzamento IP sia suddiviso, è utile fare riferimento alla seguente figura: Figura 12. – Rappresentazione della suddivisione dello spazio disponibile per ogni classe di indirizzo IP Come si nota, gli indirizzi IP di Classe A occupano metà dello spazio di indirizzamento totale. La Classe B occupa la metà del rimanente spazio, e così via per classe C e Classe D. (Quest’ultima è usata per il multicast, una tecnologia per la trasmissione in streaming di dati a destinazioni multiple, come ad esempio un video in tempo reale). Il restante spazio è assegnato alla classe E per scopi sperimentali, ma mai utilizzato per il routing del traffico. Ad ogni modo, anche con l’ulteriore suddivisione delle classi in B e C, con il crescere della domanda di indirizzi IP, ci si è accorti che avere solo tre classi di IP Address A-B-C causava un enorme spreco di indirizzi. Per tale motivo è stata introdotta la Subnet mask che suddivide ulteriormente le classi iniziali per ottenere un maggior numero di reti. 6.1 Concetti base delle sottoreti La suddivisione delle classi è definita dalla subnet mask o "maschera di sottorete" che, nell'ambito delle reti di telecomunicazioni, indica il metodo utilizzato per definire il range di appartenenza di un host (computer o device in generale) all'interno di una sottorete IP al fine di ridurre il traffico di rete e facilitare la ricerca e il raggiungimento di un determinato host con relativo indirizzo IP della subnet mask (wikipedia). Ovvero? In buona sostanza si è cercato di risolvere 2 problemi con una sola soluzione: avere a disposizione un numero maggiore di reti e diminuire, o quanto meno contenere, il traffico di rete. Avere un numero maggiore di reti consente agli ISP (Internet Service Provider) come per esempio Vodafone, Telecom, Wind, ecc di assegnare una rete pubblica ad un cliente con uno spreco di spazio quasi nullo. Ma come avviene questa suddivisione senza sprechi? Per esempio partiamo da una rete di classe C con indirizzo ip 202.15.15.0 e net mask 255.255.255.0, in questo caso senza lo stratagemma che tra poco illustreremo, l’ISP alla richiesta di un cliente di avere 2 o 3 indirizzi ip pubblici si Pag. 16 di 25 Carlo Loris Ghiraldello vedrebbe costretto ad assegnare al cliente l’intera rete 202.15.15.0 con 254 indirizzi utili per i comupter di cui solo 2 o 3 verrebbero effettivamente usati, un vero delitto in fatto di spreco di indirizzi IP! Si è allora pensato di suddividere in piccole parti anche la classe C. La suddivisione avviene alla potenza di 2, ovvero 2, 4, 8, 16, 32, 64 ma non 128, perché? La tabella della pagina successiva ci aiuta a comprendere. Indirizzi IP totali 256 256 256 256 256 256 256 Rete in classe C con indirizzo 202.15.15.0 Nr.Reti Nr. IP per rete Nr.Host disponibili per rete 2 128 126 4 64 62 8 32 30 16 16 14 32 8 6 64 4 2 128 2 0 Subnet mask 128 192 224 240 248 252 254 Come già detto in precedenza, ogni rete “brucia” 2 indirizzamenti, il primo (riservato per la rete) e l’ultimo (riservato per il broadcast). Quindi si deduce che non è possibile suddividere le reti di classe C oltre il numero di 64, anche perché già in questo modo si hanno a disposizione solo 2 indirizzi IP per gli hosts e come detto all’inizio, l’unità minima per considerare una rete come tale è appunto 2, ovvero 2 devices comunicanti. Gli ISP tendono infatti a fornire ai clienti che ne fanno richiesta, indirizzi IP pubblici a pacchetti di 4 o 8 proprio per il motivo spiegato qui sopra. Ma perché ci stiamo affannando tanto per suddividere le reti in tanti piccoli pezzi? Non sarebbe più facile e soprattutto più ottimizzato fornire a un cliente i soli indirizzi ip richiesti partendo da un'unica grande rete di classe A? NO! Il problema di fondo è che se fornissimo un solo indirizzo di una rete molto ampia e per errore o volontariamente venisse implementato un indirizzo diverso della stessa rete, potrebbero venire “oscurate” altre macchine di altri clienti con il medesimo indirizzo e si creerebbe il caos. Infatti, come annunciato a proposito dell’identificazione degli hosts, gli indirizzi IP devono essere univoci e l’unico modo sicuro per ottenere ciò è isolarli a piccoli pacchetti in modo da essere controllabili più facilmente. Così facendo se forniamo un pacchetto di 8 indirizzi ip ad un cliente e per errore o volontariamente venisse implementato un indirizzo diverso della stessa rete, le uniche macchine a venire oscurate sarebbero quelle del cliente stesso perché l’errore sarebbe circoscritto alla rete formata dagli 8 indirizzi ip. Inoltre non sarebbe possibile interferire, sempre per errore o volontariamente, nemmeno con altre reti dello stesso dominio di indirizzi ip (nell’esempio qui sopra 202.15.15.xxx), perché un altro principio base è che gli hosts su reti diverse non comunicano, per farlo occorre un router e gli ISP, se non espressamente richiesto e pianificato, non forniscono a nessuno la possibilità di comunicare con altre reti anche se adiacenti. 6.2 Approfondimento: limitare il traffico di rete Per chi volesse approfondire, è utile sapere come mai, oltre a risolvere il problema degli sprechi, la suddivisione in piccole reti risolve anche il problema del contenimento del traffico. Parte del traffico di rete è determinato dagli instradamenti dei pacchetti di dati per determinare quale strada scegliere per andare da un punto a) ad un punto b) su reti diverse. Questo traffico è smistato dai router e dove è possibile, è bene evitare di generarlo. La subnet mask ha anche questo compito, ovvero evitare, per quanto possibile, di “affaticare” i routers. Ma in che modo? Pag. 17 di 25 Carlo Loris Ghiraldello Per esempio supponiamo che il protocollo IP del nostro computer sia configurato come segue: indirizzo IP: 192.168.32.97 subnet mask: 255.255.255.224 e che richiediamo di connetterci all'indirizzo IP 192.168.32.100, come facciamo a sapere se l’host a cui ci vogliamo collegare appartiene o meno alla rete del nostro computer senza interrogare il router evitando così di generare inutilmente del traffico di rete? Prima di tutto trasformiamo in notazione binaria gli indirizzi IP e la subnet mask (tutti i computer lavorano in binario): 192.168.032.097 = 11000000.10101000.00100000.01100001 192.168.032.100 = 11000000.10101000.00100000.01100100 255.255.255.224 = 11111111.11111111.11111111.11100000 allora il livello IP (lo strato software a bordo di ogni host) dovrà trovare la rete di appartenenza e per farlo dovrà mettere in un AND Logico l’indirizzo IP del nostro computer con la subnet mask: 11000000.10101000.00100000.01100001 AND 11111111.11111111.11111111.11100000 = ------------------------------------11000000.10101000.00100000.01100000 (192.168.032.097) (255.255.255.224) (192.168.032.096) Rete di appartenenza Poi ripete l'operazione con l'IP di destinazione e la subnet mask per trovare la rete di appartenenza: 11000000.10101000.00100000.01100100 AND 11111111.11111111.11111111.11100000 = ------------------------------------11000000.10101000.00100000.01100000 (192.168.032.100) (255.255.255.224) (192.168.032.096) Rete di appartenenza A questo punto il livello IP dovrà solo confrontare i 2 risultati che essendo uguali (192.168.32.96) indicano due sottoreti identiche, e quindi le macchine appartengono alla stessa sottorete. Ecco quindi dimostrato come questo sistema di individuazione delle reti sia in grado di “snellire” il traffico di rete in quanto per calcolare la destinazione non c’è bisogno di interrogare nessun dispositivo come per esempio un router. Le informazioni andranno all’interfaccia di rete del router solo quando ce ne sarà realmente bisogno. Di seguito si possono trovare le tabelle ASCII complete con tutte le possibili combinazioni binarie delle 8 cifre di bit che compongono 1 byte e le relative rappresentazioni grafiche utilizzate dai sistemi di editing nel caso ci si volesse cimentare in esercizi di calcolo o anche solo per mera curiosità. Pag. 18 di 25 Carlo Loris Ghiraldello Figura 13. – Tabella standard codici ASCII. Pag. 19 di 25 Carlo Loris Ghiraldello Figura 14. – Tabella estesa codici ASCII. Pag. 20 di 25 Carlo Loris Ghiraldello 7 I servizi di rete 7.1 Il DNS Quando due computer sono collegati l'uno con l'altro, si dice che compongono una rete. Internet è un immenso insieme di reti diverse collegate l'una con l'altra. Internet è una rete pubblica. Ciascun computer in tale immensa rete è raggiungibile mediante un indirizzo IP univoco. È possibile immaginare un indirizzo IP come il numero di una via, la città è la rete, le strade sono i cavi e le case sono i computer. Quando si deve raggiungere una casa che non si conosce, è necessario avere il suo indirizzo. Un indirizzo consiste di una strada e di un numero civico. Non è possibile raggiungere quella casa se non si conosce il suo numero civico. Nel nostro esempio i 'numeri civici' delle reti sono rappresentati dagli indirizzi IP. Per esempio 64.233.167.99 è un indirizzo IP. Se si apre il browser web (Firefox, Internet Explorer, Google Chrome o qualsiasi altro) e si digita: http://www.google.com, si raggiunge la casa di Google. Ora, dimentichiamoci 'http://www.google.com' e digitiamo invece 64.233.167.99. Come è possibile vedere, le cose non cambiano: si raggiunge la casa di Google di nuovo. Quando si digita l'indirizzo di Google, in realtà si sta chiedendo al browser web: “per favore, portami alla casa di Google”. Poiché ci sono milioni di case là fuori, gli indirizzi IP vengono assegnati da una organizzazione centralizzata: ICANN (Internet Corporation for Assigned Names and Numbers). Si supponga di attivare un sito web personale: non sarebbe possibile usare l'indirizzo IP 64.233.167.99 dal momento che tale indirizzo è già stato assegnato a Google. Si provi ora ad immaginare un mondo di numeri: Google è 64.233.167.99, IANA è 192.0.34.162, Yahoo è 68.142.226.47. I bookmark personali: 64.233.167.99, 192.0.34.162, 68.142.226.47 e così via. Non esiste uomo capace di ricordare tutti quei numeri! Per questo motivo, nel giugno del 1983, Paul Mockapetris, Jon Postel e Craig Partridgegli inventarono uno strumento come ausilio per la loro memoria. Una specie di rubrica telefonica. Tale tipo di rubrica telefonica si chiama DNS (Domain Name Service, Servizio Nomi Domini). Cosa è il DNS? È un servizio di rete mediante il quale gli indirizzi Internet in formato mnemonico tipo http://www.google.com vengono convertiti nell'equivalente indirizzo IP numerico (in questo caso: 64.233.167.99). La casa di Google è uno specifico computer il cui indirizzo IP è 64.233.167.99 Il nome della casa di Google è un “nome di dominio” (Domain Name). Esso è composto da un nome di dominio di “primo livello” (.com) e da un nome di dominio di “secondo livello” (google). Tempo fa IANA, prima di confluire nell’ICANN, assegnò 7 diversi nomi di dominio di “primo livello”: .com per organizzazioni commerciali, .edu per organizzazioni educative (come le universita'), .gov per organizzazioni governative, .int per organizzazioni internazionali, .mil per organizzazioni militari, .net per organizzazioni relative alle reti e .org per organizzazioni varie (di solito organizzazioni senza scopo di lucro). Inoltre ci sono parecchi domini di primo livello composti da due lettere per tutti i paesi del mondo: 'it' per l'Italia, 'hk' per Hong Kong, 'dk' per la Danimarca e così via (consultare il documento ISO3166 per maggiori informazioni). Se si vuole avere il proprio nome di dominio personale, è possibile sceglierne uno e registrarlo. Una volta registrato, nessuno a parte il proprietario potrà mai usare quel nome. Ci sono delle organizzazioni alle quali è stata concessa la Pag. 21 di 25 Carlo Loris Ghiraldello facoltà di registrare i nomi di dominio. Tali organizzazioni vengono chiamate Registrar. I registrar memorizzano i nomi di dominio all'interno dei loro archivi. Ma come fa il browser a sapere che www.google.com è l'equivalente di 64.233.167.99? Beh, non lo sa affatto! Infatti ogni volta che si digita www.google.com nel campo degli indirizzi del browser web, accade qualcosa di nascosto: il browser web chiede ad un server DNS la traduzione dell'indirizzo mnemonico (www.google.com) nel vero indirizzo IP numerico. Il server DNS è un servizio software specializzato che si occupa di tradurre gli indirizzi mnemonici in reali indirizzi IP. Per fare ciò effettua delle interrogazioni sugli archivi dei registrar. Il DNS è un sistema gerarchico. 7.2 Il DHCP In una rete basata sul protocollo IP, ogni calcolatore ha bisogno di un indirizzo IP, scelto in modo tale che appartenga all'insieme di indirizzi possibili assegnati all'intera sottorete (cioè al Net_ID) a cui è collegato e che sia univoco, cioè non ci siano altri calcolatori che stiano già utilizzando quell'indirizzo. Il compito di assegnare manualmente gli indirizzi IP ai calcolatori comporta infatti un rilevante onere per gli amministratori di rete, soprattutto in reti di grandi dimensioni o in caso di numerosi computer che si connettono a rotazione solo a ore o giorni determinati. Inoltre gli indirizzi IPv4 (attualmente usati nella quasi totalità delle reti al mondo) con l'aumentare dei computer connessi a Internet hanno cominciato a scarseggiare, diminuendo la disponibilità di IP fissi per eventuali configurazioni statiche. DHCP supporta questo compito automaticamente e in maniera dinamica, cioè solo quando richiesto dall'host. Viene utilizzato soprattutto in reti locali, in particolare su reti Ethernet. Una volta ricevuta la configurazione di rete la stazione o computer della rete locale diventa a tutti gli effetti un host (ospite) della rete locale e può intraprendere sessioni di navigazione Web e tutti gli altri servizi offerti dalla Rete stessa. Per delle ragioni di ottimizzazione delle risorse di rete, gli indirizzi IP sono rilasciati con una data di inizio e una data di fine della validità. E' quello che viene chiamato "lease time". Un client che vede arrivare il suo lease time al termine può richiedere al server una proroga. Allo stesso modo, quando il server vedrà un lease time al termine di validità, emetterà una richiesta al client per capire se vuole prolungare il suo contratto. Se il server non riceve una risposta valida, rende disponibile l'indirizzo IP per altri client. Questo meccanismo è utile soprattutto per gli ISP che contano molto sul fatto che non tutte le connessioni ADSL sono attive nello stesso momento per cui possono distribuire più connessioni che indirizzi IP, che come abbiamo detto in precedenza sono oramai un bene in via di esaurimento. I sistemi Windows offrono un comando da digitare direttamente da prompt di Ms-Dos, detto ipconfig, che permette di conoscere la configurazione IP del proprio computer. I comandi sono: ipconfig ipconfig /all ipconfig /release ipconfig /renew Pag. 22 di 25 Carlo Loris Ghiraldello Con il comando ipconfig si ottengono informazioni sulla configurazione degli indirizzi ip di tutte le interfacce di rete presenti sul computer. Nell’esempio qui sotto, di tutte le interfacce di rete presenti, solo quella wifi ha un indirizzo ip valido. Figura 15. – Risultato del comando ipconfig. Con il comando ipconfig /all si ottengono informazioni complete sulla configurazione degli indirizzi ip di tutte le interfacce di rete presenti sul computer. Nell’esempio qui sotto, di tutte le interfacce di rete presenti, solo quella wifi ha un indirizzo ip valido e di essa vengono restituiti oltre all’indirizzo IP: Subnet mask, Gateway, DNS e DHCP. Figura 16. – Risultato del comando ipconfig /all. Pag. 23 di 25 Carlo Loris Ghiraldello Con il comando ipconfig /all è possibile determinare se l’indirizzo ip è stato assegnato dinamicamente da un DHCP oppure se è stato registrato manualmente, in quanto solo nel primo caso si avrà l’indicazione dell’indirizzo ip del DHCP. Se l’indirizzo ip è stato assegnato dinamicamente da un DHCP, è possibile usare i comandi le opzioni /release e /renew, se invece è stato assegnato manualmente, per apportare eventuali modifiche è necessario entrare nell’interfaccia di rete e apporre manualmente le modifiche necessarie. Con il comando ipconfig /release si impartisce al sistema l’istruzione per rilasciare gli indirizzi acquisiti, mentre con il comando ipconfig /renew si impartisce al sistema l’istruzione per rinnovare la registrazione dell’indirizzo IP, la subnet mask, il gateway e il DNS. Queste ultime 2 istruzioni sono il primo livello di “ soccorso” verso il computer nel caso presentasse problemi di condivisione e navigazione. Se il comando di rinnovo ha successo, molto probabilmente il problema di connessione si sarà automaticamente risolto. Pag. 24 di 25 Carlo Loris Ghiraldello 8 Cenni sui servizi applicativi Il termine applicazione in informatica individua un programma o una serie di programmi in fase di esecuzione su un computer con lo scopo e il risultato di rendere possibile una o più funzionalità, servizi o strumenti utili e selezionabili su richiesta dall'utente tramite interfaccia utente, spesso attraverso un'elaborazione a partire da un input fornito dall'utente interagendo con esso. È dunque il risultato a livello utente dalla combinazione di risorse software e rispettive risorse hardware di processamento per la loro esecuzione. Con i servizi applicativi si parla del trasferimento dell' informazione invece che del semplice trasferimento dei dati. Vengono detti anche “infrastruttura dei livelli superiori” perchè permettono di costruire facilmente applicazioni di rete. Soltanto i sistemi operativi e i loro componenti non sono considerati applicazioni, in quanto necessari al funzionamento intrinseco degli strumenti di base della piattaforma informatica. La componente hardware, nei tempi moderni ha perso la sua rilevanza, tanto che un sinonimo di applicazione è software. L'assunto di partenza può quindi anche essere espresso in termini di software applicativo, ossia programmi non necessari al funzionamento del computer (come la suite Microsoft Office), in contrapposizione al software di base, cioè tutte le istruzioni di base di cui un computer ha bisogno (ad esempio il sistema operativo Microsoft Windows). Nelle prossime lezioni analizzeremo più nel dettaglio alcune di queste applicazioni come per esempio la posta elettronica che è certamente uno dei servizi applicativi più importanti. Pag. 25 di 25