IPv6, successore di IPv4, è una più recente versione del protocollo IP progettata per correggere i suoi difetti, in particolar modo la scarsità di indirizzi IP disponibili. Questo protocollo gestisce il livello di rete, il suo scopo è di fornire una modalità per raggiungere le macchine, di trasmettere i dati verso la loro destinazione prevista e di gestire la frammentazione dei dati se necessario (in altre parole, di dividere i pacchetti in frammenti con una dimensione che dipende dai collegamenti di rete che devono essere utilizzati sul percorso e di ricomporre tali frammenti 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 enp7s0 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 cambia di frequente la rete a cui si è connessi, 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 tra reti diverse. Una soluzione a questo problema sono le estensioni per la privacy di IPv6 (che Debian abilita di default se viene rilevata la connettività IPv6 durante l'installazione iniziale), che assegneranno un ulteriore indirizzo generato in modo casuale all'interfaccia, cambiato periodicamente e il suo uso verrà preferito per le connessioni in uscita. Le 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 per la privacy per l'interfaccia
enp7s0.
Esempio 10.11. estensioni della privacy di IPv6
iface enp7s0 inet6 auto
# Preferisce gli indirizzi assegnati casualmente per le connessioni in uscita.
privext 2
Le connessioni IPv6, possono essere limitate allo stesso modo di quelle IPv4.
nft
può essere utilizzato per creare regole firewall per IPv4 e IPv6 (vedere
Sezione 14.2.3, «Sintassi di nft
»).
Se non è disponibile una connessione IPv6 nativa, il metodo alternativo è quello di utilizzare un tunnel su IPv4. Hurricane Electric è un fornitore (gratuito) di questi tunnel:
Per utilizzare un tunnel Hurricane Electric, è necessario registrare un account, effettuare l'accesso, selezionare un tunnel libero e modificare il file /etc/network/interfaces
con il codice generato.
Se si vuole utilizzare e configurare il computer come un router per la rete locale, è possibile installare e configurare il demone radvd
(dal pacchetto omonimo). Questo demone di configurazione per IPv6 ha un ruolo simile a dhcpd
nel mondo IPv4.
Il file di configurazione /etc/radvd.conf
deve essere creato (vedere /usr/share/doc/radvd/examples/simple-radvd.conf
come punto di partenza). Nel nostro caso, l'unico cambiamento richiesto è il prefisso, che deve essere sostituito con quello fornito da Hurricane Electric e può essere trovato nell'output del comando ip a
, nel blocco relativo all'interfaccia he-ipv6
.
Quindi eseguire systemctl start radvd
e la rete IPv6 ora dovrebbe funzionare correttamente.