BETA


BETA

Copertina
Sommario
Internet ID
Informazioni
Browser
Guida

Indici
Redazione
Mailing
Dove come
Mirror

Licenza
Cerca
Stampa


BETA sul Web

IPv6 ovvero IPng (IP next generation)

Il Protocollo Internet della nuova generazione

di Ermanno Baccarini Articolista, BETA

Introduzione

Già 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 Internet

I 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 IPv4

La 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.
Negli ultimi anni sono stati fatti dei tentativi per ottimizzare le assegnazioni. Per questo motivo sono stati riservati tre blocchi di indirizzi, uno per ogni classe, da utilizzare per le installazioni Intranet. Questo riduce le possibili richieste di numerazioni che poi restano "private" e non interferiscono con Internet in caso di contatto delle due reti. Un altro tentativo di ottimizzazione è stato quello di utilizzare un nuovo sistema di non-classificazione degli indirizzi (CIDR – Classless InterDomain Routing) che utilizza una maschera di sottorete non standardizzata, diversa da quelle delle tre classi, e creata su misura per ogni rete. Questo permette di avvicinarsi al tipo di assegnazione uno per uno, ma non risolve il problema alla radice perché porta dei problemi di identificazione del destinatario dei datagrammi. Se per esempio di un ospite conosciamo solo l'indirizzo IP e non la sua maschera di sottorete in formato CIDR sarà molto probabile che non riusciremo a comunicare.

Cosa cambia con IPv6

Non 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'indirizzamento

L'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).
Le novità riguardano chiaramente anche l'intestazione dei datagrammi.
Purtroppo la versione 6 formula dei pacchetti (datagrammi) incompatibili con la versione 4. Oltre ad una incompatibilità determinata dalla differenza della lunghezza dell'indirizzo del mittente e del destinatario (128 + 128 bit) le nuove intestazioni IPv6 sono studiate in modo di ridurre al massimo il sovraccarico per gli instradatori con l'aggiunta di una intestazione estesa dove sono stati spostati tutti i campi non essenziali. Una intestazione aggiuntiva che cambia a seconda del tipo di dato trasportato e genera così diversi tipi di datagramma, permettendo l'allocazione preliminare delle risorse di rete e garantendo la larghezza di banda necessaria. Un ulteriore vantaggio è rappresentato dalla possibilità di integrare IPv6 con altre funzioni grazie all'aggiunta di intestazioni aggiuntive dopo l'intestazione di base di IPv6, così da garantire il supporto di nuovo hardware e tecnologie applicative.
Gli indirizzi non sono più tutti dello stesso tipo (Broadcast), ma c'è una divisione in tre tipi diversi, con relativi sottotipi: Unicast, Multicast e Anycast. Il tipo Unicast permette di spedire i datagrammi verso un unico indirizzo assegnato ad una singola interfaccia. Verrà usato principalmente dagli utenti locali, per definire una versione compatibile dell'indirizzo IPv4, nell'auto configurazione, etc.
L'indirizzo Multicast identifica un gruppo di interfaccia, solitamente su diversi nodi, permettendo di ricevere i datagrammi alle sole macchine che sono registrate per riceverli. Sostituisce la tipologia Broadcast aggiungendo un controllo sul destinatario che ne limita l'ampiezza nella trasmissione, per diminuire di fatto il traffico ridondante. Ed infine Anycast, completamente nuovo per la tecnologia IP, identifica un gruppo di interfaccia, solitamente su diversi nodi e spedisce i datagrammi verso UNA sola interfaccia, la più vicina determinata da una misurazione dell'instradatore. Un indirizzo Anycast utilizzato come parte di una sequenza di instradatori, permette di individuare e selezionare il nodo che deve ricevere il traffico. Se consideriamo due ISP (Internet Service Provider) con un indirizzo Anycast a testa tutto il traffico che da uno deve raggiungere l'altro viene convogliato verso la via più breve e di conseguenza più veloce.

La sicurezza

La 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.
Purtroppo per noi però questo sistema non garantisce al cento per cento l'intrusione da parte di hacker molto capaci, che eludono la sorveglianza del Firewall e si intrufolano nella Intranet. Per questo motivo nell'IPv6 è stato aggiunto un meccanismo di autenticazione che permette di bloccare questi tentativi di intrusione non autorizzata sulla una singola od su un gruppo di macchine. Altro problema riguarda la codifica dei dati trasmessi. Consideriamo le operazioni di trasferimento dati di una banca, se venissero intercettate da un malintenzionato sarebbero una facile preda se non fosse che queste vengono codificate alla fonte per poi essere decodificate all'arrivo. Questo lavoro viene fatto da software specifico che ha il difetto di non essere standardizzato e di essere diverso nelle varie applicazioni. Con la nuova versione di IP è stato inserito nel protocollo un sistema interno standard di codifica delle informazioni veicolate.

Auto Configurazione

Configurare 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 Transizione

Per 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 IPv6

In 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

  • Broadcast: Sistema di trasmissione che prevede un emittente e tutti riceventi.
  • Datagramma: Elemento generato dal protocollo IP composto da una intestazione, dove vengono registrati gli indirizzi del mittente e del destinatario, e il blocco dei dati da consegnare.
  • DHCP: Servizio di Configurazione Dinamica del Protocollo Internet.
  • CIDR: Instradamento InterDominio senza Classi. E' un sistema di utilizzo e instradamento degli indirizzi IP che non prevede l'uso delle tre classi di rete.
  • Firewall: Software che vigila contro gli attacchi e le intrusioni degli hacker.
  • Host: Vedi Ospite.
  • Indirizzamento: Metodo di definizione di un indirizzo unico globale da assegnare ad un ospite o host.
  • Instradatore: Se consideriamo Internet un sorta di ferrovia mondiale, composta da vari binari sui quali viaggiano i datagrammi, gli instradatori o router funzionano come scambi e permettono ai datagrammi di cambiare binario e raggiungere la destinazione.
  • Instradamento: Noto col nome di routing è il metodo che permette ai vari router di scambiare i datagrammi sui vari tronchi della rete.
  • Ospite: Rappresenta l'interfaccia di una macchina, computer o periferica, collegata ad Internet.
  • Router: Vedi Instradatore.


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.


Copertina Sommario Internet ID Informazioni Browser
BETA, La rivista ipertestuale tecnica - Copyright © 1994-1998. BETA Sul Web: http://www.beta.it.