jump to navigation

Attenzione:
Questa guida non viene più aggiornata!

Disabilitare IPv6 e velocizzare Internet con Ubuntu

IPv6 IPv4Senza più bisogno ricompilare il kernel o fare modifiche temporanee, nelle ultime versioni di Linux esiste ormai la possibilità di velocizzare la risoluzione dei domini tramite DNS evitando di utilizzare IPv6, che in ogni caso è attualmente abbastanza inutile.

La procedura è semplicissima, basta modificare il file di configurazione di GRUB e aggiungere l’apposita opzione ipv6.disable, ma perché ciò funzioni bisogna necessariamente installare un Kernel più recente di quello distribuito con Ubuntu 9.04 Jaunty Jackalope.

Va benissimo la versione 2.6.30, appena uscita al momento della scrittura di questi appunti. Per installare sempre la versione più recente del kernel Linux con comodi pacchetti basta seguire la mia guidaAggiornare il kernel su Ubuntu [deb]“.

[toc]

Disabilitare IPv6 tramite GRUB

Aprite il file di configurazione di GRUB che ci interessa:

$ sudo nano /boot/grub/menu.lst

Non modificate direttamente la riga di comando del vostro kernel a fine file, perché perdereste la configurazione al primo aggiornamento, piuttosto facciamo le cose per bene ;) Alla riga 85 c’è la sezione “# defoptions“, che serve appunto ad indicare a GRUB (e anche all’aggiornatore di GRUB) le opzioni da utilizzare per tutti i kernel installati e/o aggiornati. Ecco come appare la mia dopo la modifica:

# defoptions=ipv6.disable=1 quiet splash

Notare che il “#” rimane, non bisogna eliminarlo! “Quiet” e “Splash” c’erano già, invece ipv6.disable=1 l’ho aggiunto io. Dopo che lo avrete aggiunto anche voi, potete salvare e chiudere il file. A questo punto basta aggiornare

$ sudo update-grub

È tutto!

Verifica

Una volta riavviato il PC vi auto-convincerete che la risoluzione dei nomi è più veloce ed efficiente e quindi ad esempio in firefox il tempo che passa tra un click su un link e la visualizzazione della pagina richiesta è ridotto :) Per verificare:

$: ip a | grep inet6

Se IPv6 è disabilitato il comando non dovrebbe restituire nulla. Esistono anche altri modi per compiere l’operazione, li elenco qui sotto.

Alternativa: disattivare IPv6 tramite /proc

Ferma restando la necessità di effettuare queste operazioni su un kernel molto recente, si può disattivare IPv6 anche con questo comando:

$: sudo -s
#: echo  1 > /proc/sys/net/ipv6/disable_ipv6

Comando che si può aggiungere a qualche script da eseguire all’avvio.

Alternativa: disattivare IPv6 tramite SysCtl

Sempre con un kernel ultrarecente, dovrebbe funzionare anche questo comando

$: sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1

Mentre per rendere permanente l’opzione si può agire creando una voce in /etc/sysctl.d/.

Ma serve?

Tecnicamente IPv6 non è ancora in uso e non serve a niente. Normalmente (leggi: nel 99% dei casi) in mancanza delle condizioni propizie a supportare IPv6 viene utilizzato IPv4 come riserva. Si potrebbe anche sostenere che le modifiche per disabilitarlo siano superflue, chissà. In ogni caso il kernel offre da poco la possibilità di disattivarlo…

…e noi ne approfittiamo ;)