4.1. Kernel pronto per IPv6

Le moderne ditribuzioni Linux già contengono kernel pronti per IPv6; la funzionalità IPv6 è generalmente compilata come modulo ma è possibile che questo non venga caricato automaticamente all'avvio del sistema.

Si veda la pagina IPv6+Linux-Status-Distribution per le informazioni più aggiornate.

Nota: non si dovrebbero più usare i kernel della serie 2.2.x perché non sono più aggiornati per IPv6.

4.1.1. Controllare il supporto IPv6 nel kernel corrente

Per controllare se il kernel corrente supporta IPv6, si dia un occhiata al proprio filesystem /proc. Deve esistere la seguente voce:

/proc/net/if_inet6
   

Un semplice test automatico potrebbe essere:

# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
   

Se esso fallisce è ovvio che il modulo IPv6 non è stato caricato.

4.1.2. Provare a caricare il modulo IPv6

Si può provare a caricare il modulo IPv6 eseguendo

# modprobe ipv6
   

Se tale comando ha successo, questo modulo dovrebbe essere caricato; lo si può controllare con il seguente comando:

# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"
   

Il comando precedente dovrebbe quindi funzionare con successo.

Nota: lo scaricamento del modulo non è attualmente supportato e può causare, in alcune circostanze, il crash del kernel.

4.1.3. Compilare il kernel con le funzionalità IPv6

Se entrambe le operazioni precedenti avessero esito negativo e il kernel considerato non avesse il supporto IPv6, si hanno le seguenti possibilità:

Se si decide di compilare un kernel, si dovrebbero avere precedenti esperienze in questa operazione e si dovrebbe leggere il Linux Kernel HOWTO.

Un confronto abbastana aggiornato tra il kernel puro (vanilla) e quello con le estensioni USAGI è disponibile su IPv6+Linux-Status-Kernel.

4.1.3.1. Compilazione di un kernel "vanilla"

Consigli più dettagliati sulla compilazione di un kernel con IPv6 possono essere reperiti, per esempio, su IPv6-HOWTO-2#kernel.

Nota: quando possibile si dovrebbero usare kernel della serie 2.4.x o superiori, poiché il supporto IPv6, nella serie 2.2.x non è così aggiornato e necessita di alcune patch per ICMPv6 e per il supporto 6to4 (che si possono trovare su kernel series 2.2.x IPv6 patches).

4.1.4. Dispositivi di rete pronti per IPv6

Non tutti i dispositivi di rete esistenti hanno già (o avranno mai) la capacità di trasportare pacchetti IPv6. Lo stato attuale è reperibile presso IPv6+Linux-status-kernel.html#transport.

Una questione importante è che a causa della struttura dei livelli di rete nell'implementazione del kernel, un pacchetto IPv6 non viene effettivamente riconosciuto dal suo numero di intestazione IP (6 invece di 4) ma piuttosto dal numero di protocollo di trasporto di livello 2. Pertanto ogni protocollo di trasporto che non usa tale numero di protocollo, non può inviare pacchetti IPv6. Nota: il pacchetto viene comunque trasportato sul collegamento, ma dal lato ricevente il recapito non funziona (come si può vedere, per esempio, con tcpdump).

4.1.4.1. Collegamenti che non saranno mai "idonei IPv6"

  • Serial Line IP (SLIP, RFC 1055 / SLIP), attualmente dovrebbe essere più correttamente detto SLIPv4, dispositivo chiamato: slX

  • Parallel Line IP (PLIP), simile a SLIP, nome del dispositivo: plipX

  • ISDN con incapsulazione rawip, nome del dispositivo: isdnX