![]() |
![]()
Copertina |
![]() |
![]() |
![]() |
IPv6 ovvero IPng (IP next generation)Il Protocollo Internet della nuova generazionedi Ermanno Baccarini Articolista, BETAIntroduzioneGià all'inizio degli anni novanta la comunità informatica che opera su Internet ha cominciato a porsi il problema sui limiti imposti dall'attuale Protocollo Internet (IP versione 4), alla base del collegamento dei computer sulla Rete e su come superarli. Il problema principale che ha cominciato a preoccupare gli esperti riguardava in particolare il sistema di indirizzamento dell'IPv4. Questo ha portato ad una serie di proposte che nel 1994 hanno permesso di sviluppare le specifiche di una nuova versione del protocollo IP, in seguito definito standard col nome di IPv6. Il nuovo protocollo per Internet non è ancora operativo, ma non mancherà molto al giorno in cui sarà attiva parte della famiglia dei protocolli per Internet.Lo sviluppo di InternetI tecnici che vent'anni fa cominciarono a mettere insieme l'architettura della rete Internet non potevano certo immaginare lo sviluppo che questa avrebbe poi raggiunto. Scelsero di adottare un protocollo di comunicazione composto da due distinti protocolli. Il protocollo IP per la definizione dei datagrammi e dei metodi di instradamento(routing) per gli instradatori (router) e il Protocollo di Controllo della Trasmissione (TCP) per la trasmissione e la comunicazione coi programmi. Li misero insieme e realizzarono il protocollo comunemente noto con il nome di TCP/IP.L'indirizzamento del protocollo IP consente l'assegnazione di un indirizzo unico globale ad ogni macchina Ospite (Host) della Rete e determina il meccanismo di scambio (instradamento) delle informazioni, tra un mittente e un destinatario. La scelta di IP versione 4 venne determinata principalmente per le sue caratteristiche di compattezza e capacità di "organizzare" le informazioni in pacchetti chiamati datagrammi, controllando la loro integrità durante il trasporto. IP non si preoccupa direttamente del trasporto la cui responsabilità viene lasciata al protocollo di Trasmissione. La grande potenzialità dell'IPv4 viene dal suo sistema di indirizzamento, definito da un numero di 32 bit che permette fino a 4.294.967.295 indirizzi. L'indirizzo IP viene rappresentato da quattro gruppetti di numeri decimali di otto bit (byte) divisi da punti. ![]() Figura 1 - Conversione di un indirizzo IP in numero decimale. Con un valore massimo per ogni gruppetto o ottetto di numeri pari a 255. Come possiamo vedere (figura 1) abbiamo un indirizzo IP 1.1.1.1, dopo determinate operazioni di conversione diventa il numero decimale 16843009. La possibilità di rappresentazione di un indirizzo IP inizia con 0.0.0.0 e finisce con 255.255.255.255, per un totale massimo di 4.294.967.295 indirizzi disponibili. Quattro miliardi è un numero enorme di possibili assegnazioni, che vent'anni fa poteva sembrare spropositato per le esigue esigenze dell'epoca, ma non riuscirà lo stesso a garantire uno sviluppo adeguato ad Internet nei prossimi dieci/venti anni. Nel 1993 i computer con un indirizzo Internet assegnato non superavano di molto il milione, nel 1995 erano 5 milioni, all'inizio del 1997 circa 15 milioni e attualmente dovrebbero superare di poco i 20 milioni di unità. Non siamo arrivati ancor neanche al 5% dei quattro miliardi disponibili. Ma allora qual è il problema? Sembra logico che prima di riuscire ad esaurire quattro miliardi di indirizzi probabilmente la rete Internet avrà finito di esistere. Considerando della popolazione del pianeta solo quella che occupa le aree con uno sviluppo industriale dove l'uso del computer e di Internet possono assumere una rilevanza strategica ed economica nei prossimi quarant'anni i 4 miliardi di possibili assegnazioni dovrebbero garantirci collegamento sufficienti. Ed invece non sarà così. Stime ottimistiche dicono che questo limite sarà raggiunto non più tardi del 2015, altre meno ottimistiche addirittura nel 2005. Ma allora perché questo limite che sembra così "lontano" invece sarà raggiunto così presto? Il problema non sta nel numero di indirizzi a disposizione, ma riguarda il suo metodo di divisione per reti, o per meglio dire di classificazione. Questi numeri non vengono assegnati uno per uno, ma adottano uno schema di classificazione che obbliga ad raggrupparli in reti (network). Così quando si richiede un'assegnazione invece di un singolo numero viene assegnato un o più blocchi che contengono ciascuno 254 oppure 65.000 o 16 milioni di indirizzi di rete. Questo perché la numerazione IP è divisa in tre Classi: A, B, C. La classificazione è resa necessaria alla creazione di sottoreti che non siano visibili direttamente, ma solo attraverso l'uso di un instradatore. Gli indirizzi che nel primo ottetto (byte) vanno dal numero 1 al 126 appartengono alla classe A, quelli che nel primo ottetto vanno dal 128 al 191 appartengono alla classe B e quelli che nel primo ottetto vanno dal 192 al 223 appartengono alla classe C. Tecnicamente gli indirizzi delle tre classi sono uguali, differiscono tra loro solo per come vengono considerati i quattro ottetti che li compongono. Una parte viene utilizzata per definire il numero della Rete (Network) e l'altra per il numero dell'Ospite (Host). Nella classe A il primo ottetto è il numero di Rete e il secondo con terzo e il quarto rappresentano il numero di Ospite. Così da avere una rete che ha a disposizione circa 16 milioni di indirizzi da utilizzare per i relativi Ospiti. Nella classe B il primo e il secondo ottetto rappresentano il numero di Rete e il terzo e quarto quello di Ospite, in modo da definire più di 65.000 indirizzi di Ospite. La classe C prende i primi tre ottetti per il numero di Rete e l'ultimo per quelli di Ospite, con 254 Ospiti disponibili. Maschera di sottorete per definire l'appartenenza ad una classe di indirizzi IPv4La maschera di sottorete definisce l'appartenenza di un indirizzo ad una classe. Per la Classe A la maschera è 255.0.0.0, per la B 255.255.0.0 e 255.255.255.0 per la C. Nell'ottetto che sarà composto da tutti 1 (esempio: 255 decimale in binario diventa 1111111) avremo il numero di rete, in quello composto da 0 il numero di ospite. Se prendiamo un numero di classe B 130.100.3.1 abbiamo i primi due ottetti che contengono tutti 1 e quindi l'indirizzo di rete sarà 130.100 che riportato in binario dà il numero 1000001001100100 che tradotto in decimale dà 33380. Il terzo e il quarto sono a uguali 0 e determinano l'indirizzo di ospite 3.1 che da il numero binario 0000001100000001 quindi in decimale abbiamo 769. L'indirizzo di classe B 130.100.3.1 corrisponde al numero di rete 33380 e di ospite 769.Per permettere di definire l'appartenenza ad una classe il numero IP viene letto tramite una maschera di sottorete (submask)(figura 2) standard per ogni classe, composta sempre da quattro numeri di 8-bit divisi da punti (255.0.0.0 classe A, 255.255.0.0 classe B, 255.255.255.0 classe C). Ora se consideriamo di avere una società con circa 1100 macchine da collegare ad Internet si pone il problema di quale classe di rete scegliere. Se consideriamo di richiedere un blocco di classe B riceveremo dal gestore locale 65.000 indirizzi con uno spreco enorme di indirizzi superflui (circa 64.000). Se invece richiediamo un blocco di classe C ne riceveremo solo 254. Per colmare il nostro fabbisogno dovremo allora richiedere almeno cinque blocchi di classe C arrivando a circa 1.250 indirizzi.
![]() Figura 2 -Rete composta con 5 blocchi di classe C da 254 indirizzi.
Questa soluzione comunque comporta un piccolo spreco, oltre a questo ci obbliga a definire/dividere la nostra rete in 5 sottoreti, da ricollegare in una unica con degli instradatori. Soluzione ottimale dal punto di vista del numero di IP assegnati, ma che presenta alcuni problemi di prestazioni e di rischio per eventuali guasti, oltre a costi aggiuntivi per l'acquisto degli instradatori. Il traffico della rete è costretto a passare tutto per i quattro instradatori e basta che uno di essi non funziona correttamente perché un intero troncone di sottorete non venga più visto dal resto della rete.
Ecco allora dove sta il problema. Tutto è determinato dall'effettivo numero di indirizzi che vengono assegnati generalmente superiore all'effettivo fabbisogno del richiedente, che in alcuni casi è causa di uno spreco enorme di IP. Cosa cambia con IPv6Non si può ignorare lo sviluppo che Internet ha subito negli ultimi anni. Il numero delle assegnazioni raddoppia ogni otto mesi e ha assunto un andamento logaritmico. Le considerazioni futuristiche su come evolverà il "mercato globale", dove anche gli "elettrodomestici" avranno un'interfaccia per collegarsi in rete, fanno prevedere che le esigenze di collegamento delle grandi compagnie, ma anche dei singoli utenti, aumenteranno molto più di quanto riusciamo ad immaginare in questo momento. Ed allora diviene indispensabile garantire una soluzione a lungo termine per la carenza di spazio di indirizzi. Fin dal 1991 le varie proposte formulate a tale scopo hanno però cercato risolvere oltre al problema dell'indirizzamento, anche gli aspetti negativi e le carenze più importanti dell'attuale IP, modificando anche le funzionalità dell'instradamento e aggiungendo funzionalità di sicurezza, auto configurazione e qualità del servizio. Dall'unione di un certo numero di queste proposte è stata sviluppata la nuova versione di IP, chiamata IPv6, nota in passato col nome di IP Next Generation (IPng).L'indirizzamentoL'indirizzamento IPv6 passa da 32 bit a 128 bit (16 ottetti). Un bel salto quadruplo, che rende disponibili ben 340.282.366.920.938.463.463.374.607.431.768.211.456 indirizzi, 340 miliardi di miliardi di miliardi di possibili ospiti. Più o meno 1500 indirizzi per metro quadrato di superficie terrestre.
![]() Figura 3 - Esempio di visualizzazione del nuovo formato di rappresentazione per IPv6
Nella rappresentazione del nuovo IP i 16 ottetti vengono raggruppati in 8 coppie (8 + 8 bit = 16 bit) di numeri esadecimali da 16 bit separate da due punti (figura 3). FAAE:0:0:0:0:1:345:4321 è il nuovo metodo di rappresentazione di uno dei possibili indirizzi IPv6. La nuova sintassi dà anche la possibilità di scrivere l'indirizzo in modo contratto, permettendo di mettere al posto degli zero :0:0:0:0: solo :: quindi FAAE::1:345:4321.
E' evidente che la vecchia versione di indirizzo a 32 bit è diversa dalla nuova versione 6, ma è possibile riscrivere gli indirizzi IPv4 in un formato che li rende compatibili con il nuovo IPv6. Aggiungendo alla testa del vecchio indirizzo sei numeri esadecimali uguali a zero avremo il nuovo formato compatibile 0:0:0:0:0:0:190.243.2.27 (in forma compressa ::190.243.2.27). La sicurezzaLa sicurezza è sempre stato il tallone d'Achille dell'attuale IP che non prevede nessuna funzionalità di autenticazione o codifica. Per questo gli attuali meccanismi di sicurezza su Internet vengono demandati allo strato delle applicazioni. Se non ci fossero infatti applicazione come i Firewall sarebbe relativamente semplice introdursi all'interno di una rete privata (Intranet) che è collegata con Internet. La funzione del Firewall è appunto quella di controllare il traffico in entrata e in uscita dalla Intranet e fare in modo che il traffico verso Internet passi tutto attraverso un servizio chiamato Proxy, che si occupa di lanciare le richieste al posto dei "client privati", come se fosse il Firewall a farle. Immaginiamo che dei datagrammi arrivino al Proxy da uno dei client della Intranet, viene cambiato l'indirizzo del mittente con quello del Firewall e spedito sulla Rete. Al ritorno i datagrammi di risposta verranno riconvertiti a loro volta e convogliati nella Intranet per andare dal client che li aveva richiesti.
![]() Figura 4 - Rete Intranet che utilizza un Firewall per collegarsi ad Internet
Al contrario il traffico in entrata nella Intranet viene attentamente controllato dal Firewall e se non è abilitato ad entrare viene scartato. Auto ConfigurazioneConfigurare IPv4 è sempre stato difficoltoso e problematico. E' frequente che in rete LAN di grosse dimensioni dove gli indirizzi vengono assegnati manualmente alle singole macchine vi siano conflitti dovuti ad errori di duplicazione. Per ovviare a questo tipo di problema è stato messo a punto il servizio DHCP (Dinamic Host Configuration Protocol) che si occupa di assegnare indirizzi agli ospiti che ne fanno richiesta. Questo è un buon punto di partenza e nel nuovo IPv6 viene potenziato in vera e propria funzionalità Plug and Play. Ogni interfaccia Ethernet (o Token Ring) ha registrato in una locazione di memoria un indirizzo unico "globale" che non trova corrispondenza con nessun altro indirizzo registrato nelle altre schede prodotte in tutto il mondo. A questo numero viene aggiunto un Prefisso riservato alla funzione di auto configurazione in modo da ottenere l'assegnazione di un indirizzo dinamica.Capacità di Qualità del Servizio (Quality of Service)Nell'IPv6 è stata implementata la Qualità del Servizio con l'introduzione dei Flussi (Flow) e della Priorità. Insieme all'intestazione nel datagramma viene inserita una etichetta relativa al flusso. Un flusso non è nient'altro che una sequenza di pacchetti correlati tra loro. Per esempio, possiamo definire un flusso tutti i datagrammi generati dalla stessa applicazione, dallo stesso mittente e per la stessa destinazione. Questa informazione aggiuntiva permette a tutti i pacchetti nel flusso di avere le stesse prerogative di uno qualsiasi dei pacchetti del flusso. Se uno dei pacchetti ha un'intestazione di instradamento tutti i pacchetti includono un'intestazione di instradamento. La priorità di un datagramma rispetto ad un altro permette invece di stabilire quale dei due va instradato prima. Il traffico viene così diviso in traffico con controllo di congestione e traffico senza controllo di congestione, dove viene controllata la possibilità di congestione per tutte quelle categorie di applicazione che per così dire "hanno la possibilità attendere", mentre non viene controllata per quelle in "tempo reale". Insieme all'intestazione nel datagramma viene inserita una etichetta che indica ad esempio la possibilità per un datagramma con priorità 4 (proveniente da un'applicazione di tipo FTP, HTTP, etc.), a traffico con controllo di congestione, di attendere e lasciare passare un datagramma con priorità 15 (video a bassa fedeltà), a traffico senza controllo di congestione, che a sua volta dovrà attendere rispetto ad un datagramma con priorità 8 (video ad alta fedeltà) anch'esso a traffico senza controllo di congestione.La TransizionePer passare da IPv4 a IPv6 non si può stabilire un'ora o un giorno X, staccare la spina a uno a attaccarla a l'altro. Si deve affrontare un periodo di transizione e mettere in parallelo i due sistemi (protocolli) permettendo loro di interagire (figura 6).
![]() Figura 5 – Schema di transizione dove i pacchetti IPv4 e IPv6 viaggiano sui canali diversi. Nel contempo aumentare la diffusione di instradatori e ospiti IPv6 su Internet o aggiornare i vecchi alla nuova tecnologia. Aggiornare il software, programmi server e client. Fare in modo di aggiornare i vecchi indirizzi nel nuovo formato senza doverne assegnare di nuovi. In parole povere bisogna fare in modo che questa transizione sia più facile possibile per gli utenti finali, gli amministratori di sistemi e per gli operatori di rete. Perché passare a IPv6In un futuro non troppo lontano avremo televisori che non saranno molto diversi da un computer. Forni a microonde collegati a Internet ai quali comandare di cuocere il pollo direttamente dall'ufficio o l'impianto di irrigazione da attivare telefonando dalla spiaggia con il cellulare. Ora tutti questi apparecchi avranno bisogno di un indirizzo per poter essere presenti sulla Rete. Avremo allora probabilmente bisogno di 256 indirizzi IP personali, senza considerare quelli che useremo per lavoro. Lasciando le cose come sono il rischio di arrivare ad un collasso totale diventa molto alto. Oltre a questo con l'aumento del traffico le infrastrutture di collegamento si troveranno sempre più sovraccariche e rischieranno la congestione. L'adozione dell'IPv6 risolve in gran parte questi problemi. Il numero degli indirizzi disponibili sarà sufficiente a soddisfare la globalità delle esigenze presenti e future. Il sistema di instradamento diverrebbe meno pesante e le prestazioni generali sarebbero significativamente migliori. Resta il problema della transizione. Non penso che un cambiamento di questa portata potrà essere indolore. Lo sappiamo bene cosa succede solo aggiornando la versione del nostro programma di scrittura. Funzionalità che cambiano, file nel formato precedente che non vengono più riconosciuti. Etc. Non è mai semplice come sembra. C'è però da considerare che l'informatica e Internet in particolare non possono tornare indietro e dovranno continuare a svilupparsi. Quindi bisogna buttarsi alle spalle i se e i ma ed andare oltre, perché se l'informatica negli anni ci ha insegnato una lezione questa sicuramente può essere riassunta in poche parole: evolvere equivale a sopravvivere. Per la maggior parte degli utenti si tratterà solo di un aggiornamento del software di sistema e dei client, ma non obbliga a farlo immediatamente perché il nuovo IPv6 potrà interagire con l'attuale protocollo IPv4. La strategia di aggiornamento delle infrastrutture sarà fatta in modo da non avere un cambiamento netto, ma solo una transizione. IPv6 sarà sicuramente più efficiente, leggero e permetterà alte prestazioni e aggiungerà nuove funzionalità che saranno essenziali al futuro di Internet.L'ultima considerazione riguarda lo stato attuale raggiunto nello sviluppo di IPv6. Le più importanti aziende del settore informatico (IBM, Microsoft, Apple, etc.) hanno già messo a punto le prime implementazione e altri come Digital e Sun le hanno già incluse nei prodotti in vendita, anche se non è ancora stato deciso quando in realtà saranno iniziate le "trasmissioni" IPv6. Questo ci porta a pensare che si sia ormai superato il punto di non ritorno e che non ci resta che aspettarne le conseguenze, cercando di "evolvere" senza troppi traumi. L'IP della Nuova Generazione è arrivato. Glossario
Copyright © 1998 Ermanno Baccarini, tutti i diritti sono riservati.
Questo Articolo di BETA, insieme alla Rivista, è distribuibile secondo i termini e le
condizioni della Licenza Pubblica Beta, come specificato nel file
LPB.
|
![]() |
|