Esiste più di una possibilità per inviare pacchetti IPv6 su link IPv4.
Questo è un tipo di tunnel dedicato verso un estremo esterno, il quale è a conoscenza della vostra rete IPv6 (per l'instradamento di ritorno) e dell'indirizzo IPv4 del vostro estremo del tunnel come definito in RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers. Requisiti:
L'indirizzo IPv4 del proprio estremo del tunnel deve essere statico, globalmente unico (pubblico) e raggiungibile dall'altro estremo (esterno) del tunnel
Si deve avere un prefisso globale IPv6 assegnato (si veda il 6bone registry)
L'estremo esterno di un tunnel deve essere in grado di instradare il vostro prefisso IPv6 al vostro estremo del tunnel (il più delle volte è richiesta una configurazione manuale sull'estremo esterno)
Il tunneling automatico avviene quando un nodo si connette direttamente ad un altro nodo dopo averne prima ottenuto il relativo indirizzo IPv4.
Il tunneling 6to4 (RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds) utilizza un semplice meccanismo per creare un tunnel in maniera automatica. Ogni nodo con un indirizzo IPv4 globalmente unico, può essere un estremo di un tunnel 6to4 (se nessu firewall IPv4 ne vieta il traffico). Il tunneling 6to4 non è generalmente uno-a-uno. Questo caso di tunneling può essere suddiviso in upstream e downstream. Inoltre, uno speciale indirizzo IPv6 indica che il nodo in questione utilizza il tunneling 6to4 per connettersi alla rete IPv6 pubblica.
L'indirizzo 6to4 viene definito dal seguente schema (preso da RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds):
| 3+13 | 32 | 16 | 64 bits | +---+------+-----------+--------+--------------------------------+ | FP+TLA | V4ADDR | SLA ID | Interface ID | | 0x2002 | | | | +---+------+-----------+--------+--------------------------------+ |
Il campo formato da FP e TLA (16 bit) ha il valore 0x2002. V4ADDR è l'indirizzo IPv4 globalmente unico del nodo (in notazione esadecimale). SLA ID è l'identificatore della sottorete (65536 sottoreti locali possibili) ed è utilizzabile per rappresentare la propria struttura di rete locale.
Per i gateway questo prefisso viene generato normalmente usando uno SLA ID "0000" ed il suffisso "::1" (non è un obbligo, può essere anche di tipo arbitrario con ambito di applicazione locale) quindi l'indirizzo viene assegnato all'interfaccia del tunnel 6to4. Da notare che Microsoft Windows utilizza anche V4ADDR per il suffisso.
Il nodo deve sapere a quale estremo esterno del tunnel devono essere inviati i suoi pacchetti IPv6 incapsulati in IPv4. Nei "primi" giorni del tunneling 6to4, vennero definiti dei router dedicati in grado di accettare upstream, si veda informazioni 6to4 di NSayer per un elenco dei router.
Oggigiorno, i router upstream possono essere trovati automaticamente, utilizzando l'indirizzo anycast 192.88.99.1. Dietro le quinte, i protocolli di routing sono in grado di gestire tale meccanismo, si veda RFC 3068 / An Anycast Prefix for 6to4 Relay Routers per i dettagli.
Il downstream (da 6bone -> il proprio nodo abilitato 6to4) non è esattamente fissato e può variare dipendentemente dall'host esterno al quale i pacchetti vengono inviati. Esistono due possibilità:
L'host esterno usa il 6to4 e rispedisce indietro i pacchetti direttamente al vostro nodo (si veda in basso)
L'host esterno rispedisce indietro i pacchetti verso la rete pubblica IPv6 dipendentemente dall'instradamento dinamico, un relay router crea un tunnel automatico verso il vostro nodo.
da 6to4 a 6to4: è di solito in un tunnel diretto tra i due host abilitati al 6to4
da 6to4 ad un non 6to4: è inviato tramite tunneling upstream
da non 6to4 a 6to4: è inviato tramite tunneling downstream