IPv6, sucessor do IPv4, é a nova versão do protocolo IP desenhado para consertar suas falhas, mais notadamente a excasses de endereços IP disponíveis. Esse protocolo lida com a camada de rede; seu propósito é fornecer uma maneira de endereçar máquinas, para direcionar dados para o destino pretendido, e lidar com fragmentação de dados se necessário (em outras palavras, dividir pacotes em pedaços de tamanho que depende dos links de rede a serem usados pelo caminho e juntar esses pedaços na ordem apropriada na chegada).
Os núcleos Debian incluem o manejo do IPv6 no "core" do núcleo (com exceção de algumas arquiteturas que tem esse suporte compilado como um módulo de nome ipv6
). Ferramentas básicas como ping
e traceroute
tem seu equivalente IPv6 como ping6
e traceroute6
, disponíveis, respectivamente, nos pacotes iputils-ping e iputils-tracepath.
A rede IPv6 é configurada de maneira similar a IPv4, em /etc/network/interfaces
. Mas se você quer que a rede esteja disponível globalmente, você tem que garantir que você tenha um roteador de retransmissão de tráfego IPv6 com capacidade para a rede IPv6 global.
Exemplo 10.10. Exemplo de configuração IPv6
iface eth0 inet6 static
address 2001:db8:1234:5::1:1
netmask 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
Sub-redes IPv6 geralmente tem uma máscara de rede de 64 bits. Isso significa que endereços distintos 2
64 existem dentro da sub-rede. Isso permite a "Stateless Address Autoconfiguration" (
SLAAC) pegar um endereço baseando-se no endereço MAC da interface de rede. Por padrão, se
SLAAC estiver ativada em sua rede e o IPv6 em seu computador, o núcleo irá automaticamente encontrar os roteadores IPv6 e configurar as interfaces de rede.
Esse comportamento pode ter implicações de privacidade. Se você muda de rede com frequência, por exemplo com um laptop, você talvez não queira que seu endereço
MAC faça parte do seu endereço IPv6 público. Isso faz com que seja fácil identificar o mesmo dispositivo através das redes. Uma solução para isso são as extensões de privacidade do IPv6 (que o Debian habilita por padrão se a conectividade IPv6 é detectada durante a instalação inicial), as quais irão definir um endereço adicional para a interface de forma aleatória, periodicamente alterá-lo e usá-los para conexões de saída. Conexões de entrada podem continuar a usar os endereços gerados pelo SLAAC. O exemplo a seguir, para uso em
/etc/network/interfaces
, ativa essas extensões de privacidade.
Exemplo 10.11. Extensões de privacidade IPv6
iface eth0 inet6 auto
# Prefer the randomly assigned addresses for outgoing connections.
privext 2
As conexões IPv6 podem ser restringidas, da mesma maneira que as conexões IPv4: os núcleos Debian padrão incluem uma adaptação do netfilter para o IPv6. Esse netfilter habilitado para IPv6 é configurado de maneira similar a contraparte IPv4, excerto que o programa a ser usado é o ip6tables
ao invés do iptables
.
Se uma conexão IPv6 nativa não está disponível, o método de recuperação (fallback) é usar o encapsulamento sobre o IPv4. Gogo6 é um fornecedor (livre) desses encapsulamentos:
Para usar o encapsulamento Freenet6, você precisa se registrar no website abrindo uma conta Freenet6 Pro, e depois instalar o pacote gogoc e configurar o encapsulamento. Isso requer editar o arquivo /etc/gogoc/gogoc.conf
: as linhas userid
e password
recebidas por email devem ser adicionadas, e server
deve ser substituída por authenticated.freenet6.net
.
A conectividade IPv6 é oferecida para todas as máquinas de uma rede local adicionando-se as três seguintes diretivas ao arquivo /etc/gogoc/gogoc.conf
(assumindo que a rede local esteja conectada a interface eth0):
host_type=router
prefixlen=56
if_prefix=eth0
A máquina se torna então o roteador de acesso para a subrede com prefixo 56-bit. Uma vez que o túnel esteja ciente dessa alteração, a rede local deve ser avisada sobre isso; isso implica em instalar o daemon radvd
(do pacote de nome similar). Esse daemon de configuração IPv6 desempenha papel similar ao do dhcpd
no mundo IPv4.
O arquivo de configuração /etc/radvd.conf
deve então ser criado (veja /usr/share/doc/radvd/examples/simple-radvd.conf
como um ponto de partida). No nosso caso, a única alteração necessária é o prefixo, o qual precisa se substituído pelo fornecido pela Freenet6; ele pode ser encontrado pela resultado do comando ifconfig
no bloco referente à interface tun
.
Então execute service gogoc restart
e service radvd start
, e a rede IPv6 deve funcionar.