Oggi studieremo il protocollo IPv6. La versione precedente del corso CCNA non richiedeva una conoscenza dettagliata di questo protocollo, ma nella terza versione 200-125, lo studio approfondito è obbligatorio per superare l'esame. Il protocollo IPv6 è stato sviluppato qualche tempo fa, ma per lungo tempo non ha trovato applicazione diffusa. È molto importante per lo sviluppo futuro di Internet, in quanto mira a risolvere le carenze del protocollo IPv4 ampiamente utilizzato.
Poiché il protocollo IPv6 è un argomento piuttosto ampio, l'ho suddiviso in due videolezioni: Giorno 24 e Giorno 25. Nel primo giorno ci concentreremo sui concetti fondamentali, mentre nel secondo tratteremo la configurazione degli indirizzi IP tramite il protocollo IPv6 per i dispositivi Cisco. Oggi, come di consueto, discuteremo tre argomenti: la necessità dell'IPv6, il formato degli indirizzi IPv6 e i tipi di indirizzi IPv6.

Fino ad ora, nelle nostre lezioni abbiamo utilizzato indirizzi IP secondo il protocollo v4, e vi siete abituati a vederli piuttosto semplici. Quando avete visto l'indirizzo visualizzato in questa diapositiva, capivate perfettamente di cosa si stesse parlando.
Tuttavia, gli indirizzi IP v6 appaiono completamente diversi. Se non siete familiari con il modo in cui vengono creati gli indirizzi in questa versione del protocollo Internet, prima di tutto sarete colpiti dal fatto che gli indirizzi IP di questo tipo occupano molto spazio. Nella quarta versione del protocollo avevamo solo 4 numeri decimali, e con essi era tutto semplice, ma immaginate di dover dare a un certo signor X il suo nuovo indirizzo IP del tipo 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Tuttavia, non preoccupatevi - alla fine di questo videolezione ci troveremo in una posizione molto migliore. Iniziamo a vedere perché c'è stata la necessità di utilizzare l'IPv6.

Oggi la maggior parte delle persone utilizza IPv4 ed è abbastanza soddisfatta. Perché dunque è stato necessario passare a una nuova versione? Innanzitutto, gli indirizzi IP della quarta versione sono composti da 32 bit. Questo consente di creare circa 4 miliardi di indirizzi su Internet, il che significa che il numero esatto di indirizzi IP è 2^32. Al momento della creazione di IPv4, gli sviluppatori ritenevano che un numero così elevato di indirizzi fosse più che sufficiente. Se ricordi, gli indirizzi di questa versione sono suddivisi in 5 classi: le classi attive A, B, C e le classi di riserva D (multicast) ed E (ricerca). Così, anche se il numero di indirizzi IP funzionanti era solo il 75% dei 4 miliardi, i creatori del protocollo erano sicuri che sarebbero stati sufficienti per tutta l'umanità. Tuttavia, con lo sviluppo rapido di Internet, si è cominciata a percepire la mancanza di indirizzi IP liberi, e se non fosse stato per l'uso della tecnologia NAT, gli indirizzi IPv4 liberi sarebbero già finiti da tempo. In effetti, la NAT è diventata la salvatrice di questo protocollo Internet. Ecco perché è sorta la necessità di creare una nuova versione del protocollo Internet, priva delle carenze della quarta versione. Potresti chiederti perché si sia passato direttamente dalla quarta alla sesta versione. Questo è dovuto al fatto che la versione 5, così come le versioni 1, 2 e 3, erano sperimentali.
Quindi, gli indirizzi IP v6 hanno uno spazio di indirizzamento di 128 bit. Cosa ne pensate, di quanto è aumentato il numero di indirizzi IP possibili? Probabilmente direte: «quattro volte!». Ma non è così, perché 2^34 è già quattro volte più di 2^32. Quindi, il valore di 2^128 è incredibilmente grande: corrisponde a 340282366920938463463374607431768211456. Questo è il numero di indirizzi IP disponibili tramite il protocollo IPv6. Significa che potete assegnare un indirizzo IP a qualsiasi cosa desideriate: alla vostra auto, al telefono, all’orologio. Un essere umano moderno può avere un portatile, diversi smartphone, un orologio intelligente, una casa intelligente — una TV collegata a Internet, una lavatrice connessa a Internet, un'intera casa collegata alla rete. Un numero così elevato di indirizzi consente di realizzare il concetto di “internet delle cose”, sostenuto da Cisco. Questo significa che nella vostra vita tutte le cose sono collegate a Internet, e ognuna di esse ha bisogno del proprio indirizzo IP. Con IPv6, questo è possibile! Ogni persona sulla Terra può utilizzare milioni di indirizzi di questa versione per i propri dispositivi e ci saranno comunque ancora tantissimi indirizzi disponibili. Non possiamo prevedere come evolveranno le tecnologie, ma possiamo sperare che l'umanità non arrivi mai al punto in cui sulla Terra rimarrà solo un computer. Possiamo supporre che IPv6 durerà ancora per molto, molto tempo. Esaminiamo insieme il formato dell'indirizzo IP della sesta versione.

Questi indirizzi sono rappresentati da 8 gruppi di numeri esadecimali. Ciò significa che ogni carattere dell'indirizzo ha una lunghezza di 4 bit, così ogni gruppo di 4 di questi caratteri è composto da 16 bit, e l'intero indirizzo ha una lunghezza di 128 bit. Ogni gruppo di 4 caratteri è separato dal gruppo successivo da due punti, a differenza degli indirizzi IPv4, dove i gruppi erano separati da punti, perché il punto è la forma decimale per rappresentare i numeri. Poiché memorizzare un tale indirizzo non è facile, ci sono diverse regole che consentono di abbreviare. La prima regola afferma che i gruppi composti solo da zeri possono essere sostituiti da un doppio due punti. Tale operazione può essere eseguita su ogni indirizzo IP solo una volta. Vediamo cosa significa.
Come vedete, nell'esempio fornito l'indirizzo contiene tre gruppi di 4 zeri. Il numero totale di due punti che separano questi gruppi 0000:0000:0000 è 2. Pertanto, se si utilizza il doppio punto ::, significa che in quel punto dell'indirizzo si trovano gruppi di zeri. Come possiamo capire quante gruppi di zeri rappresenta questo doppio punto? Se guardiamo la forma abbreviata dell'indirizzo, possiamo contare 5 gruppi di 4 caratteri. Ma dato che sappiamo che l'indirizzo completo è composto da 8 gruppi, il doppio punto rappresenta 3 gruppi di 4 zeri. Questa è la prima regola della forma abbreviata dell'indirizzo.

La seconda regola stabilisce che è possibile eliminare gli zeri iniziali in ogni gruppo di caratteri. Ad esempio, il 6° gruppo della forma completa dell'indirizzo appare come 04FF, mentre la sua forma abbreviata sarà 4FF, perché abbiamo eliminato lo zero iniziale. Pertanto, la scrittura 4FF non è nient'altro che 04FF.
Utilizzando queste regole, è possibile abbreviare qualsiasi indirizzo IP. Tuttavia, anche dopo l'abbreviazione, questo indirizzo non appare davvero breve. Più avanti vedremo cosa si può fare al riguardo, per ora ricordate semplicemente queste 2 regole.
Consideriamo cosa rappresentano gli header degli indirizzi delle versioni IPv4 e IPv6.

Questa immagine, che ho preso da Internet, spiega molto bene la differenza tra i due header. Come vedete, l'header dell'indirizzo IPv4 è molto più complesso e contiene più informazioni rispetto all'header IPv6. Se l'header è complesso, il router impiega più tempo per elaborarlo e prendere decisioni di routing, quindi utilizzando indirizzi IP di sesta versione più semplici, i router funzionano in modo più efficiente. Ecco perché IPv6 è molto migliore di IPv4.
La lunghezza dell'header IPv4 da 0 a 31 bit occupa 32 bit. Escludendo l'ultima riga Options e Padding, l'indirizzo IP della versione 4 è un indirizzo di 20 byte, il che significa che la sua dimensione minima è di 20 byte. La lunghezza dell'indirizzo della sesta versione non ha una dimensione minima e tale indirizzo ha una lunghezza fissa di 40 byte.
Nell'intestazione IPv4, all'inizio si indica la versione, poi si specifica la lunghezza dell'intestazione IHL. Di default è di 20 byte, ma se vengono fornite informazioni aggiuntive nell'intestazione Options, può avere una lunghezza maggiore. Utilizzando Wireshark, è possibile leggere il valore della Versione, pari a 4, e il valore dell'IHL, pari a 5, il che significa cinque blocchi verticali di 4 byte (32 bit) ciascuno, escluse le informazioni del blocco Options.

Il campo Tipo di Servizio indica la natura del pacchetto, ad esempio se si tratta di un pacchetto vocale o di un pacchetto dati, poiché il traffico vocale ha la priorità su altri tipi di traffico. In sintesi, questo campo indica la priorità del traffico. La lunghezza totale rappresenta la somma della lunghezza dell'intestazione di 20 byte più la lunghezza del payload, che rappresenta i dati trasmessi. Se questa lunghezza è di 50 byte, la lunghezza totale sarà di 70 byte. L'identificazione del pacchetto serve a verificare l'integrità del pacchetto, utilizzando il parametro del controllo della somma di controllo dell'intestazione. Se il pacchetto è frammentato in 5 parti, ciascuna di esse deve avere lo stesso identificatore; lo spostamento del frammento può variare da 0 a 4 e ogni frammento deve avere lo stesso valore di spostamento. I flag indicano se è consentito lo spostamento dei frammenti. Se non si desidera che i dati vengano frammentati, si imposta il flag DF – non frammentare. Esiste anche il flag MF – più frammenti. Ciò significa che, se il primo pacchetto è frammentato in 5 parti, il secondo pacchetto avrà il valore 0, il che significa – nessun altro frammento! Allo stesso modo, l'ultimo frammento del primo pacchetto sarà contrassegnato come 4, in modo che il dispositivo di ricezione possa facilmente assemblare il pacchetto, applicando quindi la deframmentazione.
Fai attenzione ai colori utilizzati in questa diapositiva. I campi in rosso indicano le parti escluse dall'intestazione IPv6. I parametri mostrati in blu sono quelli migrati dalla quarta alla sesta versione del protocollo in forma modificata. I campi gialli sono rimasti invariati in entrambe le versioni. In verde si evidenzia un campo che è apparso per la prima volta solo in IPv6.
I campi Identification, Flags, Fragment Offset e Header Checksum sono stati esclusi poiché nelle attuali condizioni di trasmissione dei dati non si verifica frammentazione e il controllo della somma di controllo non è necessario. Molti anni fa, durante la trasmissione lenta dei dati, la frammentazione era piuttosto comune, ma oggi si utilizza prevalentemente Ethernet dello standard IEEE 802.3 con MTU di 1500 byte, e la frammentazione non si verifica più.
TTL, o Time to Live, è un contatore a decremento: quando il tempo di vita raggiunge 0, il pacchetto viene scartato. In effetti, rappresenta il numero massimo di salti che possono essere effettuati in una determinata rete. Il campo Protocol indica quale protocollo, TCP o UDP, viene utilizzato in rete.
L'Header Checksum è un parametro obsoleto, quindi è stato escluso dalla nuova versione del protocollo. Seguono i campi dell'indirizzo sorgente a 32 bit e dell'indirizzo di destinazione a 32 bit. Se abbiamo delle informazioni nella stringa Options, il valore dell'IHL cambia da 5 a 6, indicando che nell'intestazione è presente un campo aggiuntivo.
Nell'intestazione IPv6 viene utilizzata anche la versione Version, e la classe del traffico Traffic Class corrisponde al campo Type of Service nell'intestazione IPv4. L'etichetta del flusso Flow Label è simile a Traffic Class e serve a semplificare il routing di un flusso omogeneo di pacchetti. Payload Length indica la lunghezza del carico utile, o la dimensione del campo dati situato sotto l'intestazione. La lunghezza dell'intestazione stessa è di 40 byte ed è quindi costante e non viene menzionata da nessuna parte.
Il campo 'next header', Next Header, indica quale tipo di intestazione avrà il pacchetto successivo. Questa è una funzione molto utile che determina il tipo del successivo protocollo di trasporto – TCP, UDP, ecc., e che sarà molto richiesta nelle successive tecnologie di trasmissione dei dati. Anche se utilizzi un protocollo proprietario, potrai scoprire quale protocollo sarà il successivo.
Il limite massimo di salti, o Hop Limit, è l'equivalente del TTL nell'intestazione IPv4, un meccanismo per prevenire cicli di routing. Seguono i campi dell'indirizzo sorgente a 128 bit e dell'indirizzo di destinazione a 128 bit. L'intera intestazione ha una dimensione di 40 byte. Come ho detto, IPv6 è molto più semplice di IPv4 ed è molto più efficace per prendere decisioni di routing da parte del router.
Esaminiamo i tipi di indirizzi IPv6. Sappiamo che cosa significa unicast: è una trasmissione diretta, quando un dispositivo è collegato direttamente a un altro e entrambi i dispositivi possono comunicare solo tra di loro. Il multicast rappresenta una trasmissione broadcast, il che significa che più dispositivi possono contattare simultaneamente un dispositivo, che a sua volta può mantenere la comunicazione con più dispositivi contemporaneamente. In questo senso, il multicast è simile a una stazione radio, i cui segnali si diffusano ovunque. Se vuoi ascoltare un canale specifico, devi sintonizzare la tua radio su una frequenza specifica. Se ricordi il video tutorial sul protocollo RIP, sai che questo protocollo utilizza il dominio broadcast 255.255.255.255 per inviare aggiornamenti, a cui tutte le sottoreti sono collegate. Ma solo i dispositivi che utilizzano il protocollo RIP riceveranno questi aggiornamenti.
Un altro tipo di broadcasting, che non si trovava in IPv4, è chiamato Anycast. Viene utilizzato quando hai più dispositivi con lo stesso indirizzo IP e consente di inviare pacchetti al destinatario più vicino di un gruppo di destinatari.

Nel caso di Internet, dove abbiamo reti CDN, possiamo fare l'esempio del servizio YouTube. Questo servizio è utilizzato da molte persone in diverse parti del mondo, ma ciò non significa che tutti si connettano direttamente al server dell'azienda in California. Il servizio YouTube ha molti server in tutto il mondo; ad esempio, il server del mio YouTube indiano è situato a Singapore. Allo stesso modo, il protocollo IPv6 ha un meccanismo incorporato per effettuare trasmissioni tramite la tecnologia CDN con una rete geograficamente distribuita, cioè utilizza l'Anycast.
Come hai notato, qui manca un altro tipo di broadcasting, il Broadcast, perché il protocollo IPv6 non lo utilizza. Ma il Multicast in questo protocollo funziona in modo simile al Broadcast in IPv4, solo in maniera più efficiente.
La sesta versione del protocollo utilizza tre tipi di indirizzi: Link Local, Unique Site Local e Global. Ricordiamo che in IPv4 un'interfaccia ha solo un indirizzo IP. Supponiamo di avere due router collegati tra loro; in questo caso, ciascuna delle interfacce di connessione avrà solo 1 indirizzo IP. Con l'uso di IPv6, ogni interfaccia riceve automaticamente un indirizzo IP di tipo Link Local. Questi indirizzi iniziano con FE80::/64.

Questi indirizzi IP sono utilizzati solo per connessioni locali. Gli utenti di Windows conoscono indirizzi simili come 169.254.Х.Х – indirizzi configurati automaticamente tramite il protocollo IPv4.
Se un computer si connette a un server DHCP per ottenere un indirizzo IP, ma per qualche motivo non riesce a comunicare con esso, i dispositivi Microsoft hanno un meccanismo che consente al computer di assegnarsi autonomamente un indirizzo IP. In questo caso, l'indirizzo sarà circa 169.254.1.1. Si presenterà una situazione simile se abbiamo un computer, uno switch e un router. Supponiamo che il router non riceva un indirizzo IP dal server DHCP e si assegni autonomamente lo stesso indirizzo IP 169.254.1.1. Successivamente, attraverso lo switch, invierà in rete una richiesta ARP di broadcast, chiedendo se qualche dispositivo di rete possiede questo indirizzo. Ricevendo la richiesta, il computer risponderà: "Sì, ho lo stesso indirizzo IP!", dopodiché il router si assegnerà un nuovo indirizzo casuale, per esempio, 169.254.10.10, e reinvierà nuovamente una richiesta ARP in rete.

Se nessuno comunica di avere lo stesso indirizzo, manterrà l'indirizzo 169.254.10.10 per sé. In questo modo, i dispositivi nella rete locale possono non utilizzare affatto il server DHCP, approfittando del meccanismo di assegnazione automatica degli indirizzi IP per comunicare tra loro. Ecco di cosa si tratta la configurazione automatica degli indirizzi IP, con la quale ci siamo imbattuti molte volte, ma che non abbiamo mai utilizzato.
Analogamente, nel protocollo IPv6 esiste un meccanismo di assegnazione di indirizzi IP locali Link Local, che iniziano con FE80::. Lo slash 64 indica la separazione tra l'indirizzo di rete e l'indirizzo host. In questo caso i primi 64 rappresentano la rete, mentre i secondi 64 rappresentano l'host.

FE80:: indica indirizzi del tipo FE80.0.0.0/, dove dopo la barra si trova la parte degli indirizzi host. Questi indirizzi sono diversi per il nostro dispositivo e l'interfaccia connessa e vengono configurati automaticamente. In questo caso, la parte host utilizza l'indirizzo MAC. Come è noto, l'indirizzo MAC è un indirizzo IP a 48 bit, composto da 6 blocchi di 2 numeri esadecimali. Microsoft utilizza questo sistema, mentre Cisco utilizza 3 blocchi di 4 numeri esadecimali.

Nel nostro esempio utilizzeremo la sequenza Microsoft del tipo 11:22:33:44:55:66. Come viene assegnato l'indirizzo MAC al dispositivo? Questa sequenza di numeri nell'indirizzo host che rappresenta l'indirizzo MAC è suddivisa in due parti: a sinistra ci sono tre gruppi 11:22:33, a destra ci sono tre gruppi 44:55:66, e tra di essi viene aggiunto FF e FE. In questo modo si crea un blocco di 64 bit dell'indirizzo IP dell'host.

Come noto, la sequenza del tipo 11:22:33:44:55:66 rappresenta un indirizzo MAC, unico per ogni dispositivo. Inserendo FF:FE tra le due gruppi di numeri dell'indirizzo MAC otteniamo un indirizzo IP unico per questo dispositivo. In questo modo si crea un indirizzo IP di tipo Local Link, utilizzato solo per stabilire una connessione tra vicini senza configurazione speciale e senza server specifici. Tale indirizzo IP può essere utilizzato solo all'interno di un singolo segmento di rete e non può essere usato per comunicazioni esterne al di fuori di questo segmento.
Il tipo successivo di indirizzo è il Unique Site Local Scope, che corrisponde agli indirizzi IP interni (privati) del protocollo IPv4 di tipo 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. Il motivo per cui si utilizzano indirizzi IP privati interni e indirizzi pubblici esterni è legato alla tecnologia NAT, di cui abbiamo parlato nelle lezioni precedenti. Il Unique Site Local Scope è una tecnologia che crea indirizzi IP interni. Potreste dire: «Imran, hai detto che ogni dispositivo può avere il proprio indirizzo IP, ecco perché siamo passati all'IPv6», e avreste ragione. Ma alcune persone preferiscono usare il concetto di indirizzi IP interni per motivi di sicurezza. In questo caso, il NAT viene utilizzato come firewall e i dispositivi esterni non possono connettersi liberamente ai dispositivi all'interno della rete, poiché hanno indirizzi IP locali non accessibili dalla rete Internet esterna. Tuttavia, il NAT crea numerosi problemi legati alla VPN, ad esempio per il protocollo ESP. Per garantire la sicurezza, il protocollo IPv4 utilizzava IPSec, ma nel protocollo IPv6 esiste un meccanismo di sicurezza integrato, quindi la connessione tra indirizzi IP interni ed esterni viene stabilita in modo molto semplice.
A tal fine, l'IPv6 ha due diversi tipi di indirizzi: se gli indirizzi Unique Local corrispondono agli indirizzi IP interni IPv4, gli indirizzi Global corrispondono agli indirizzi esterni IPv4. Molte persone preferiscono non usare affatto indirizzi di tipo Unique Local, mentre altre non possono fare a meno di essi, quindi questo è un argomento di dibattito costante. Ritengo che otterrete molti più vantaggi usando solo indirizzi IP esterni, soprattutto per quanto riguarda la mobilità. Ad esempio, il mio dispositivo avrà sempre lo stesso indirizzo IP, indipendentemente da dove mi trovo – a Bangalore o a New York, quindi potrò usare senza problemi i miei dispositivi in qualsiasi parte del mondo.
Come ho già detto, l'IPv6 ha un meccanismo di sicurezza integrato che consente di creare un tunnel VPN sicuro tra il luogo in cui si trova il vostro ufficio e i vostri dispositivi. In passato avevamo bisogno di un meccanismo esterno per creare un tunnel VPN di questo tipo, ma in IPv6 è un meccanismo standard integrato.
Poiché oggi abbiamo discusso di un numero sufficiente di argomenti, interrompo la nostra lezione per continuare la discussione sulla sesta versione del protocollo Internet IP nel prossimo video. Come compito a casa, vi chiedo di studiare bene cosa sia il sistema di numerazione esadecimale, perché per comprendere l'IPv6 è molto importante capire la conversione da una numerazione binaria a quella esadecimale e viceversa. Ad esempio, dovete sapere che 1111=F, e così via, fate riferimento a Google per chiarire questo punto. Nel prossimo video cercherò di praticare con voi questa conversione. Vi consiglio di rivedere questa lezione video diverse volte in modo da non avere domande sugli argomenti trattati.

Grazie per rimanere con noi. Ti piacciono i nostri articoli? Vuoi vedere più contenuti interessanti? Supportaci effettuando un ordine o raccomandandoci ai tuoi amici, Sconto del 30% per gli utenti di Habra su un'analoga unica di server entry-level, che abbiamo ideato per te: (sono disponibili opzioni con RAID1 e RAID10, fino a 24 core e fino a 40GB DDR4).
Dell R730xd a metà prezzo? Solo da noi nei Paesi Bassi! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — a partire da $99! Leggi di
Fonte: habr.com
