IPv6, successore di IPv4, è una nuova versione del protocollo IP progettata per correggere i suoi difetti, in particolare la scarsità di indirizzi IP disponibili. Questo protocollo gestisce il livello di rete, il suo scopo è di fornire indirizzi alle macchine, di trasmettere dati verso la destinazione finale e di gestire la frammentazione dei dati se necessario (in altre parole, di dividere i pacchetti in blocchi con una dimensione che dipende dai collegamenti di rete da utilizzare sul percorso e di ricomporre i pezzi nel loro giusto ordine all'arrivo).
I kernel Debian includono la gestione IPv6 nel nucleo centrale del kernel (con l'eccezione di alcune architetture compilate con un modulo chiamato ipv6
). Strumenti di base come ping
e traceroute
hanno i loro equivalenti IPv6 in ping6
e traceroute6
, disponibili rispettivamente nei pacchetti iputils-ping e iputils-tracepath.
La rete IPv6 è configurata in modo simile a IPv4, in /etc/network/interfaces
. Se si vuole rendere questa rete accessibile a livello globale, è necessario assicurarsi di avere un router che supporti il traffico dati IPv6 verso la rete globale IPv6.
Esempio 10.10. Esempio di configurazione IPv6
iface eth0 inet6 static
address 2001:db8:1234:5::1:1/64
# Disabling auto-configuration
# autoconf 0
# The router is auto-configured and has no fixed address
# (accept_ra 1). If it had:
# gateway 2001:db8:1234:5::1
Le sottoreti IPv6 di solito hanno una maschera a 64 bit. Questo significa che esistono 2
64 indirizzi distinti all'interno della sottorete. Questo permette a Stateless Address Autoconfiguration (
SLAAC) di scegliere un indirizzo in base all'indirizzo MAC dell'interfaccia di rete. Per impostazione predefinita, se
SLAAC è attivato nella rete e IPv6 sul computer, il kernel troverà automaticamente i router IPv6 e configurerà le interfacce di rete.
Questo comportamento può avere implicazioni per la privacy. Se si passa di frequente tra le reti, per esempio con un computer portatile, si potrebbe desiderare che il proprio indirizzo
MAC non sia parte del proprio indirizzo IPv6 pubblico. Questo rende più facile identificare lo stesso dispositivo attraverso le reti. Una soluzione a questo problema sono le estensioni della privacy di IPv6 (che Debian abilita di default se non viene rilevata la connettività IPv6 durante l'installazione iniziale), che assegneranno un ulteriore indirizzo generato in modo casuale all'interfaccia, cambiato periodicamente e questo verrà preferito per le connessioni in uscita. Connessioni in entrata possono ancora utilizzare l'indirizzo generato da SLAAC. L'esempio che segue, per l'uso in
/etc/network/interfaces
, attiva queste estensioni della privacy.
Esempio 10.11. estensioni della privacy di IPv6
iface eth0 inet6 auto
# Prefer the randomly assigned addresses for outgoing connections.
privext 2
Le connessioni IPv6 possono essere limitate, allo stesso modo di IPv4: i kernel standard di Debian contengono un adattamento di netfilter per IPv6. Questo netfilter abilitato a IPv6 è configurato in modo simile alla sua controparte IPv4, salvo che per il programma da utilizzare che è ip6tables
invece di iptables
.
If a native IPv6 connection is not available, the fallback method is to use a tunnel over IPv4. Hurricane Electric is one (free) provider of such tunnels:
To use a Hurricane Electric tunnel, you need to register an account, login, select a free tunnel and edit the file /etc/network/interfaces
with the generated code.
You can install and configure the radvd
daemon (from the similarly-named package) if you want to use the configured computer as a router for a local network. This IPv6 configuration daemon has a role similar to dhcpd
in the IPv4 world.
The /etc/radvd.conf
configuration file must then be created (see /usr/share/doc/radvd/examples/simple-radvd.conf
as a starting point). In our case, the only required change is the prefix, which needs to be replaced with the one provided by Hurricane Electric; it can be found in the output of the ip a
command, in the block concerning the he-ipv6
interface.
Then run systemctl start radvd
. The IPv6 network should now work.