Agora que já temos a base de software pronta para implementar nossa rede IPv6, precisamos configurar, iniciar os serviços e testar tudo. É o que vou mostrar neste longo artigo que finaliza esta loooonga série.

Em primeiro lugar, vamos configurar a cadeia formada pelo AICCU, RADVD e clientes IPv6. Depois vamos rodá-los na munheca para validar o funcionamento dos componentes isolados. Em seguida automatizaremos o processo todo (incluindo a segurança) para nos livrar da chatice de fazer tudo na mão toda vez que a conexão com nossos 'primorosos' ISPs cair. Por último, revisaremos as configurações de alguns serviços do NAS para suportar o IPv6 a contento (sem deixar de lado o IPv4). E aí acabou! Sua rede profissa estará tinindo com IPv4 e IPv6.

Configurando e Testando Isoladamente

A primeira coisa a ser configurada para obtermos acesso à internet IPv6 é o AICCU. Para isto, vamos precisar fazer algumas coisas e obter algumas informações do túnel na SixXS.

Obtendo as Informações do SixXS

Acesse o site da SixXS clicando no link acima, faça o login em sua conta e clique nos detalhes do seu túnel. Vamos precisar de:

  1. Nome da conta: Este é o mesmo nome da conta que usamos para o login no SixXS;
  2. ID do túnel: É o nome do túnel mostrado logo no topo da página de informações, no título Tunnel Information for T######. T###### é o ID do túnel;
  3. Verificar o seu endereço IPv6 atribuído pelo túnel: Anotar o endereço IPv6 mostrado no cabeçalho sob o rótulo Your IPv6;
  4. Verificar o Tunnel Type/endpoint: como vamos usar um túnel AYIYA, obviamente o tipo será AYIYA. Se você tem um IP fixo, então o tipo do seu túnel será 6in4-static;
  5. Definir uma senha para o TIC Password for this tunnel: Por padrão, o SixXS libera o acesso ao túnel através do usuário e senha da conta SixXS. Mas isso não é muito seguro. Por isso, vamos definir uma senha só para o túnel, diferente da usada na conta. Essa senha só funciona para o túnel, e não para a conta. Ela também só funciona para túneis AYIYA. Se o seu IP é fixo e o seu túnel é do tipo 6in4-static, pode pular este passo. Ah! E depois de configurar a senha (use algo forte, por favor), clique em change password para salvar e lembre-se dessa senha;
  6. Verificar o prefixo da rede IPv6: Na seção Subnets, você precisa tomar nota do prefixo da rede que termina com /48. Por exemplo: 2001:1291:abcd::/48.

Com base no prefixo de rede acima, precisamos estipular arbitrariamente algumas coisas:

  1. O prefixo /64 da rede IPv6: Tomando como exemplo o prefixo 2001:1291:abcd::/48 obtido do SixXS, para definirmos um segmento /64 utilizamos o mesmo endereço com apenas duas modificações: 2001:1291:abcd:1::/64. Note que acrescentamos um :1 e alteramos o prefixo para /64. Esse será o nosso prefixo para a rede IPv6;
  2. Um IP manual para o NAS: Já dentro do nosso prefixo /64, precisaremos de um IP manual para o NAS. Esse IP pode ser, tomando como base o prefixo acima, 2001:1291:abcd:1::1.

De posse desses dados, vamos configurar o AICCU.

Configuração e Teste: AICCU

Repetindo: As configurações que eu menciono em toda a série se aplica ao uso no NAS da Synology. Se você está usando um outro NAS ou construiu um baseado em Linux, precisa fazer algumas adaptações por conta própria.

A configuração do AICCU é guardada no arquivo /opt/etc/aiccu.conf. Para editá-lo, faça o login via SSH no DSM e já como root:

# vi /opt/etc/aiccu.conf

O conteúdo desse arquivo é:

# AICCU Configuration

# Login information (defaults: none)
username [LOGIN]/[T######]
password [TUNNEL_PASSWORD]

# Protocol and server to use for setting up the tunnel (defaults: none)
#protocol <tic|tsp|l2tp>
#server <server to use>
protocol tic
server tic.sixxs.net

# Interface names to use (default: aiccu)
# ipv6_interface is the name of the interface that will be used as a tunnel interface.
# On *BSD the ipv6_interface should be set to gifX (eg gif0) for proto-41 tunnels
# or tunX (eg tun0) for AYIYA tunnels.
ipv6_interface sixxs

# The tunnel_id to use (default: none)
# (only required when there are multiple tunnels in the list)
tunnel_id [T######]

# Be verbose? (default: false)
verbose true

# Daemonize? (default: true)
# Set to false if you want to see any output
# When true output goes to syslog
#
# WARNING: never run AICCU from DaemonTools or a similar automated
# 'restart' tool/script. When AICCU does not start, it has a reason
# not to start which it gives on either the stdout or in the (sys)log
# file. The TIC server *will* automatically disable accounts which
# are detected to run in this mode.
#
daemonize false

# Automatic Login and Tunnel activation?
automatic true

# Require TLS?
# When set to true, if TLS is not supported on the server
# the TIC transaction will fail.
# When set to false, it will try a starttls, when that is
# not supported it will continue.
# In any case if AICCU is build with TLS support it will
# try to do a 'starttls' to the TIC server to see if that
# is supported.
requiretls true

# PID File
#pidfile /var/run/aiccu.pid

# Add a default route (default: true)
defaultroute true

# Script to run after setting up the interfaces (default: none)
# THIS DOESN'T WORK AT ALL. See: http://www.sixxs.net/forum/?msg=setup-557641
# ipkg's aiccu package version is 20070115-2 (no fix for this yet)
# We run the subnet setup script from /opt/etc/init.d/S50aiccu
#setupscript /opt/bin/aiccu-subnets.sh

# Make heartbeats (default true)
# In general you don't want to turn this off
# Of course only applies to AYIYA and heartbeat tunnels not to static ones
makebeats true

# Don't configure anything (default: false)
#noconfigure true

# Behind NAT (default: false)
# Notify the user that a NAT-kind network is detected
behindnat true

# Local IPv4 Override (default: none)
# Overrides the IPv4 parameter received from TIC
# This allows one to configure a NAT into "DMZ" mode and then
# forwarding the proto-41 packets to an internal host.
#
# This is only needed for static proto-41 tunnels!
# AYIYA and heartbeat tunnels don't require this.
#local_ipv4_override

Lembre-se de alterar as informações acima mostradas entre [] com aquelas obtidas do SixXS. Salve e saia (:wq).

Agora, entre na página do DSM e acesse Painel de Controle > Rede > Network Interface > LAN > Editar > IPv6 e configure conforme segue (lembre-se de usar o IP manual do NAS que definimos lá em cima):

Configuração de IPv6: Manual
Endereço IPv6: 2001:1291:abcd:1::1
Comprimento do Prefix: 64
Gateway Padrão: ['Your IPv6' do SixXS]

Essa não é a configuração final! Precisamos testar antes de finalizar. Façamos isso agora:

# echo "1" > /proc/sys/net/ipv6/conf/all/forwarding
# /sbin/insmod /lib/modules/tun.ko
# /opt/sbin/aiccu test

Serão executados oito testes. Entre cada um deles você será perguntado se tudo correu bem. A saída desse comando será algo do tipo (eu deliberadamente suprimi algumas informações sensíveis):

sock_getline() : "200 SixXS TIC Service on usqas01.sixxs.net ready (http://www.sixxs.net)"
sock_printf()  : "client TIC/draft-00 AICCU/2007.01.15-console-linux Linux/2.6.32.12"
sock_getline() : "200 Client Identity accepted"
sock_printf()  : "get unixtime"
sock_getline() : "200 1399470988"
sock_printf()  : "starttls"
sock_getline() : "200 Go ahead, we are now talking securely"
TLS Handshake completed succesfully
...
sock_getline() : "POP Id: brudi01"
sock_getline() : "IPv4 Endpoint: ayiya"
sock_getline() : "IPv4 POP: 201.48.254.14"
sock_getline() : "UserState: enabled"
sock_getline() : "AdminState: enabled"
...
sock_getline() : "Heartbeat_Interval: 60"
sock_getline() : "202 Done"
...
sock_printf()  : "QUIT This is not our farewell"
...
Tunnel Type : ayiya
Adminstate  : enabled
Userstate   : enabled
[AYIYA-start] : Anything in Anything (draft-02)
...
#######
####### AICCU Quick Connectivity Test
#######

####### [1/8] Ping the IPv4 Local/Your Outer Endpoint
### This should return so called 'echo replies'
### If it doesn't then check your firewall settings
### Your local endpoint should always be pingable
### It could also indicate problems with your IPv4 stack

...
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.120/0.178/0.256 ms

######

Did this work? [Y/n] y

####### [2/8] Ping the IPv4 Remote/PoP Outer Endpoint (201.48.254.14)
### These pings should reach the PoP and come back to you
### In case there are problems along the route between your
### host and the PoP this could not return replies
### Check your firewall settings if problems occur

PING 201.48.254.14 (201.48.254.14): 56 data bytes
64 bytes from 201.48.254.14: seq=0 ttl=56 time=31.460 ms
64 bytes from 201.48.254.14: seq=1 ttl=56 time=33.783 ms
64 bytes from 201.48.254.14: seq=2 ttl=56 time=29.484 ms

--- 201.48.254.14 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 29.484/31.575/33.783 ms

######

Did this work? [Y/n] y

####### [3/8] Traceroute to the PoP (201.48.254.14) over IPv4
### This traceroute should reach the PoP
### In case this traceroute fails then you have no connectivity
### to the PoP and this is most probably the problem

######

Did this work? [Y/n] y

###### [4/8] Checking if we can ping IPv6 localhost (::1)
### This confirms if your IPv6 is working
### If ::1 doesn't reply then something is wrong with your IPv6 stack

PING ::1 (::1): 56 data bytes
64 bytes from ::1: seq=0 ttl=64 time=0.248 ms
64 bytes from ::1: seq=1 ttl=64 time=0.221 ms
64 bytes from ::1: seq=2 ttl=64 time=0.183 ms

--- ::1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.183/0.217/0.248 ms

######

Did this work? [Y/n] y

###### [5/8] Ping the IPv6 Local/Your Inner Tunnel Endpoint
### This confirms that your tunnel is configured
### If it doesn't reply then check your interface and routing tables

...
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.149/0.192/0.249 ms

######

Did this work? [Y/n] y

###### [6/8] Ping the IPv6 Remote/PoP Inner Tunnel Endpoint
### This confirms the reachability of the other side of the tunnel
### If it doesn't reply then check your interface and routing tables
### Don't forget to check your firewall of course
### If the previous test was succesful then this could be both
### a firewalling and a routing/interface problem

...
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 28.695/29.933/31.442 ms

######

Did this work? [Y/n] y

###### [7/8] Traceroute6 to the central SixXS machine (noc.sixxs.net)
### This confirms that you can reach the central machine of SixXS
### If that one is reachable you should be able to reach most IPv6 destinations
### Also check http://www.sixxs.net/ipv6calc/ which should show an IPv6 connection
### If your browser supports IPv6 and uses it of course.

######

Did this work? [Y/n] y

###### [8/8] Traceroute6 to (www.kame.net)
### This confirms that you can reach a Japanese IPv6 destination
### If that one is reachable you should be able to reach most IPv6 destinations
### You should also check http://www.kame.net which should display
### a animated kame (turtle), of course only when your browser supports and uses IPv6

######

Did this work? [Y/n] y

###### ACCU Quick Connectivity Test (done)

### Either the above all works and gives no problems
### or it shows you where what goes wrong
### Check the SixXS FAQ (http://www.sixxs.net/faq/)
### for more information and possible solutions or hints
### Don't forget to check the Forums (http://www.sixxs.net/forum/)
### for a helping hand.
### Passing the output of 'aiccu autotest >aiccu.log' is a good idea.

*** press a key to continue ***

Não há muito o que dar errado neste teste se a conexão foi estabelecida (202 Done, QUIT This is not our farewell). Mas se algo der errado, consulte o FAQ ou os fóruns do SixXS para obter ajuda.

Se tudo correu bem, altere os seguintes parâmetros no arquivo /opt/etc/aiccu.conf:

verbose false
daemonize true

Inicie o AICCU e teste a conexão:

# /opt/sbin/aiccu start
# ping6 -c3 ipv6.br
PING ipv6.br (2001:12ff:0:6172::147): 56 data bytes
64 bytes from 2001:12ff:0:6172::147: seq=0 ttl=55 time=50.884 ms
64 bytes from 2001:12ff:0:6172::147: seq=1 ttl=55 time=50.810 ms
64 bytes from 2001:12ff:0:6172::147: seq=2 ttl=55 time=51.772 ms

--- ipv6.br ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 50.810/51.155/51.772 ms

Seu NAS está na internet IPv6! Você é foda! Dig din, dig din!

A partir de agora, você pode acompanhar a saúde do seu túnel e o volume de dados que está trafegando na internet IPv6 acessando a sua conta no SixXS e clicando nos detalhes do túnel.

Configuração e Teste: RADVD e Clientes IPv6

Agora é a vez do RADVD e dos clientes IPv6 em sua rede entrarem na brincadeira.

Primeiro, vamos configurar o RADVD. A configuração dele é feita no arquivo /opt/etc/radvd.conf.

Com o prefixo /64 em mãos, o conteúdo da configuração do RADVD ficará assim (não esqueça de alterar o prefixo para o que você definiu lá em cima):

interface eth0
{
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        MinDelayBetweenRAs 1;
        prefix 2001:1291:abcd:1::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};

Agora rode o RADVD:

# /usr/local/sbin/radvd

Ele não produzirá saída alguma. Mas podemos verificar sua execução:

# ps w|grep radvd
11996 root      1848 S    radvd

Para testá-lo, precisamos configurar um cliente IPv6. Use uma máquina qualquer na rede. Vou usar como exemplo um Linux com o Network Manager. Você também pode usar um Android 4.2 (ICS) ou superior.

Abra a configuração da sua rede WiFi no Network Manager e clique na aba IPv6. No campo Método, escolha Automático, não preencha nenhum outro campo e ative a opção O IPv6 é necessário para esta conexão. Clique em OK, desconecte o WiFi e torne a reconecá-lo. Daí vá na no terminal e rode isso, onde [IF] é o nome da sua interface de rede WiFi:

$ ifconfig [IF]
[IF]: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.0.2.12  netmask 255.255.255.0  broadcast 192.0.2.255
        inet6 2001:1291:abcd:1:AAAA:BBBB:CCCC:DDDD  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::AAAA:BBBB:CCCC:DDDD  prefixlen 64  scopeid 0x20<link>
        ether 00:0f:54:12:24:fc  txqueuelen 1000  (Ethernet)
        RX packets 6378159  bytes 4249639115 (3.9 GiB)
        RX errors 0  dropped 7  overruns 0  frame 0
        TX packets 4694310  bytes 1195903200 (1.1 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

O que procurar aqui?

  • inet6 2001:1291:abcd:1:AAAA:BBBB:CCCC:DDDD: É o endereço IPv6 da sua interface de rede. Esse endereço é composto pelo prefixo /64 (2001:1291:abcd:1) mais o MAC Address desta interface (AAAA:BBBB:CCCC:DDDD).

Se você está vendo isso, significa que o RADVD está funcionando corretamente em sua rede e os clientes de rede são capazes de se autoconfigurar com um endereço IPv6 na internet IPv6 (scopeid <global>). A partir daqui, basta configurar todos os seus clientes IPv6 de modo semelhante e eles estarão navegando na internet IPv6.

Você tem internet IPv6 em toda a sua rede, meu caro. Você é foda! Dig din, dig din!

Se nenhuma das verificações acima funciona para você, veja o breve FAQ do RADVD no GitHub.

Automatizando a Bagaça

Habemus IPv6. Mas fazer ele funcionar do jeito que está agora é um pé no saco! Vamos automatizar isso?

Vamos precisar de um script de inicialização para o AICCU. Eu gosto de separar as coisas, daí vou usar esse script do AICCU para chamar um outro script que cuidará do RADVD, do firewall e de outras coisinhas.

E já que eu falei em firewall....

Redes IPv4 e IPv6 são dois bichos diferentes! Cada um precisa de um firewall específico!!! No Linux, você vai usar o iptables para o firewall da rede IPv4 e o ip6tables para o firewall da rede IPv6. Se você não fizer isso, sua rede será um queijo suíço, um prato cheio para quem quiser atacá-la!

Vamos criar nosso script de inicialização do AICCU. No NAS, como root:

# mkdir -p /opt/etc/init.d
# vi /opt/etc/init.d/aiccu

O conteúdo desse arquivo é:

#!/bin/sh

prefix="/opt"

[ -e ${prefix}/etc/default/aiccu ] && . ${prefix}/etc/default/aiccu

# Enable aiccu service
AICCU_ENABLE="yes"
if [ "$AICCU_ENABLE" != "yes" ]; then
    exit
fi

DAEMON=${prefix}/sbin/aiccu
HELPER=${prefix}/bin/aiccu-subnets.sh
MODINS=/sbin/insmod
MODDEL=/sbin/rmmod
MODULE=/lib/modules/tun.ko

test -x $DAEMON || exit 0

if [ -z "$1" ] ; then
    case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
        S??*) rc="start" ;;
        K??*) rc="stop" ;;
        *) rc="usage" ;;
    esac
else
    rc="$1"
fi

case "$rc" in
    start)
        echo "Starting: aiccu"
        $MODINS $MODULE
        sleep 1
        $DAEMON $rc
        sleep 5
        $HELPER $rc
        ;;
    stop)
        if [ -n "`pidof aiccu`" ]; then
            echo "Stopping: aiccu"
            $HELPER $rc
            sleep 5
            $DAEMON $rc
            sleep 1
            $MODDEL $MODULE
        fi
        ;;
    restart)
        "$0" stop
        sleep 1
        "$0" start
        ;;
    *)
        echo "Usage: $0 (start|stop|restart|usage)"
        ;;
esac

exit 0

Agora, vamos ao script do RADVD e do firewall da rede IPv6:

# vi /opt/bin/aiccu-subnets.sh

Cujo conteúdo é:

#!/bin/sh

case "$1" in
    start)
        # Enable IPv6 forwarding
        echo "Enabling: IPv6 kernel forwarding"
        echo "1" > /proc/sys/net/ipv6/conf/all/forwarding

        # Set up the LAN prefix and enable SLAAC
        echo "Starting: The Router Advertisement Daemon (radvd)"
        radvd

        # Set up IPv6 firewall rules for the NAS and LAN
        echo "Configuring: firewall rules for IPv6 tunnel interface"
        ip6tables -A INPUT -i sixxs -p icmpv6 -j ACCEPT
        ip6tables -A INPUT -i sixxs -p tcp -m multiport --dports 8443 -j ACCEPT
        ip6tables -A INPUT -i sixxs -j DROP
        ;;

    stop)
        # Remove LAN prefix and disable SLAAC
        echo "Stopping: The Router Advertisement Daemon (radvd)"
        killall radvd 2> /dev/null

        # Remove IPv6 firewall rules for the NAS and LAN
        echo "Removing: firewall rules for IPv6 tunnel interface"
        ip6tables -D INPUT -i sixxs -p icmpv6 -j ACCEPT
        ip6tables -D INPUT -i sixxs -p tcp -m multiport --dports 8443 -j ACCEPT
        ip6tables -D INPUT -i sixxs -j DROP
        ;;

    restart)
        "$0" stop
        sleep 1
        "$0" start
esac

Note as regras do firewall. Faça-as semelhantes àquelas do firewall da rede IPv4. Note que aqui eu tirei a porta da VPN, pois a VPN não é usada na rede IPv6. Lembre-se que as portas abertas na rede IPv6 não precisam ser as mesmas da rede IPv4. Abra somente as que forem realmente necessárias.

Atualização em 10/05/2013 Esqueci de mencionar na redação original deste artigo que as regras de firewall acima se aplicam exclusivamente à interface virtual (sixxs) criada pelo túnel IPv6 da SixXS. Essas regras protegerão o NAS do tráfego que estiver entrando por esta interface, e somente o NAS. Essa regra NÃO protege o NAS dos outros dispositivos conectados em sua própria rede IPv6 (no caso 2001:1291:abcd:1::/64, que usa, por exemplo, a interface eth0). Essa regra TAMBÉM NÃO protege os outros dispositivos conectados em sua rede IPv6 de acessos vindos da internet IPv6, do próprio NAS ou de outros dispositivos conectados na mesma rede. Por isso, volto a enfatizar a importância do firewall em cada dispositivo que for conectado a sua nova rede IPv6.

Para verificar o funcionamento de tudo, eu uso um script apropriado:

# vi /opt/bin/ip6check

Seu conteúdo é:

#!/bin/sh
echo "SixXS IPv6 tunnel interface:"
/sbin/ifconfig sixxs|head -8

echo "Router Advertisement Daemon:"
/opt/bin/ps -o pid,cmd -C radvd

echo "IPv6 filter rules:"
/opt/bin/sudo /sbin/ip6tables -S|grep sixx

Definimos os scripts acima como executáveis com:

# chmod 755 /opt/etc/init.d/aiccu /opt/bin/aiccu-subnets.sh /opt/bin/ip6check

Por fim, colocamos a inicialização do AICCU para rodar no boot do NAS:

# vi /etc/rc.local

O conteúdo deve ser:

#!/bin/sh

# Mount bootstrap directory to /opt
mount -o bind /volume1/@optware /opt

# Optware setup
[ -x /etc/rc.optware ] && /etc/rc.optware start

# Enable SixXS IPv6 tunnel
[ -x /opt/etc/init.d/aiccu ] && /opt/etc/init.d/aiccu start

exit 0

Agora vamos executar:

# /opt/etc/init.d/aiccu start
Starting: aiccu
Enabling: IPv6 kernel forwarding
Starting: The Router Advertisement Daemon (radvd)
Configuring: firewall rules for IPv6 tunnel interface

# /opt/bin/ip6check
SixXS IPv6 tunnel interface:
sixxs     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet6 addr: 2001:1291:abcd:efa::b/64 Scope:Global
          inet6 addr: fe80::1291:abcd:efa:b/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:941 errors:0 dropped:0 overruns:0 frame:0
          TX packets:695 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:1060045 (1.0 MiB)  TX bytes:61481 (60.0 KiB)
Router Advertisement Daemon:
  PID CMD
19129 radvd
IPv6 filter rules:
-A INPUT -i sixxs -p icmpv6 -j ACCEPT
-A INPUT -i sixxs -p tcp -m multiport --dports 8443 -j ACCEPT
-A INPUT -i sixxs -j DROP

Se a sua saída é semelhante, você é triplamente foda! Dig din, dig din, dig din, dig din, dig din, dig din!!!

Saia espetando clientes IPv6 a vontade em sua nova rede e seja feliz. Eles funcionarão tanto por WiFi quanto no cabo espetado direto no switch. Se você NÃO quiser IPv6 em um determinado dispositivo, então deverá desabilitar o IPv6 nesse dispositivo. Do contrário, todos os dispositivos receberão um IPv6.

Outro detalhe importante: os IPs da rede IPv6 que configuramos aqui são sempre quentes. Não há NAT na rede IPv6. Isso significa que a partir do momento que um dispositivo receber um IPv6, ele estará prontamente disponível em toda a internet IPv6, sem qualquer proteção!

Só não vá me esquecer de configurar os firewalls desses clientes, pois ao entrarem na rede IPv6 eles estarão completamente desprotegidos! Aqui vale uma dica: eu uso o FirewallBuilder para manter meus firewalls. Ajuda pácacete!

Revisando as Configurações dos Serviços

Bom, agora precisamos rever umas poucas coisas nos serviços que rodam no NAS para que eles usem a rede IPv6. A maioria deles vai simplesmente funcionar quando a rede IPv6 entrar no ar e o DNS souber disso (ver abaixo).

Primeiro vamos às exceções:

  • NFS: como eu disse, não funcionava com IPv6 no DSM 4 e eu ainda não testei no 5 (apesar da Synology dizer que já suporta);
  • NTP: precisa ter o prefixo da rede IPv6 reconfigurado e ser reiniciado.
  • PXE e TFTP: Não parei para ver se rodam em IPv6 no Synology (e nem vou por agora);
  • VPN: não faz sentido em IPv6 e por isso não se aplica;

Todos os demais serviços são dual-stack, ou seja, vão funcionar tanto em IPv4 como em IPv6.

Somente um deles requer atenção especial: o DNS.

Lá na configuração do DNS na rede IPv4, nós criamos as zonas e configuramos o DNS somente para IPv4. Agora precisamos fazê responder também na rede IPv6. Para isso vamos complementar sua configuração (tomando como base as que já existem).

Na zona sararacrioulo, adicione uma entrada do tipo AAAA para o NAS e, de preferência, outra para a sua própria máquina. O arquivo de zona atualizado ficará assim:

$ORIGIN sararacrioulo.
$TTL 86400
sararacrioulo. IN SOA xibiu.sararacrioulo. eu.sararacrioulo.com.br. (
  2013122710
  86400
  180
  2419200
  10800
)
sararacrioulo.                 86400 NS    xibiu.sararacrioulo.
localhost.sararacrioulo.       86400 A     127.0.0.1
xibiu.sararaciroulo.           86400 A     192.0.2.1
xibiu.sararaciroulo.           86400 AAAA  2001:1291:abcd:1::1
notebook1.sararacrioulo.       86400 A     192.0.2.2
notebook1.sararacrioulo.       86400 AAAA  2001:1291:abcd:1:AAAA:BBBB:CCCC:DDDD
cabo.notebook1.sararacrioulo.  86400 A     192.0.2.3
celular.sararacrioulo.         86400 A     192.0.2.4
wifi.sararacrioulo.            86400 A     192.0.2.13
roteador.sararacrioulo.        86400 A     192.0.2.14
horacerta.sararacrioulo.       86400 CNAME xibiu.sararacrioulo.
mexapi.sararacrioulo.          86400 CNAME notebook1.sararacrioulo.

Crie também uma zona reversa para a rede IPv6. A zona reversa para o IPv6 é explicada em detalhes aqui. Vou mostrar apenas a configuração pronta, sem dar os detalhes do porquê ser assim.

$ORIGIN d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa.
$TTL 86400
d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa. IN SOA 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa. eu.sararacrioulo.com.br. (
  2013122707
  86400
  180
  2419200
  10800
)
d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa.                                         86400 NS xibiu.sararacrioulo.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa. 86400 PTR xibiu.sararacrioulo.
d.d.d.d.c.c.c.c.b.b.b.b.a.a.a.a.1.0.0.0.d.c.b.a.1.9.2.1.1.0.0.2.ip6.arpa. 86400 PTR notebook1.sararacrioulo.

E por fim, na zona da malandragem, adicione uma entrada AAAA. Ela ficará assim:

$ORIGIN xibiu.sararacrioulo.com.br.
$TTL 86400
xibiu.sararacrioulo.com.br. IN SOA xibiu.sararacrioulo.com.br.
eu.sararacrioulo.com.br. (
  2013110101
  86400
  180
  2419200
  10800
)
xibiu.sararacrioulo.com.br. 86400 NS   xibiu.sararacrioulo.com.br.
xibiu.sararacrioulo.com.br. 86400 A    192.0.2.1
xibiu.sararaciroulo.com.br  86400 AAAA 2001:1291:abcd:1::1

Opcionalmente, você pode alterar o endereço dos encaminhadores de DNS para:

2001:4860:4860::8888
2001:4860:4860::8844

Aplique as configurações no DNS e renicie-o. Depois disso, quando os dispositivos obterem o endereço IPv6 do seu NAS via DNS, eles passarão a utilizá-lo na rede IPv6 automaticamente.

E é isso! A partir daí, todos os clientes que chegarem na sua rede e suportarem configuração automática de IPv6 estarão navegando na internet em IPv6. Eles também estarão disponíveis para os outros clientes locais também em IPv6. Toda a sua vida será em IPv6. E se você dúvida, acesse esse teste de conectividade IPv6 e confirme se o seu resultado é 10/10. O meu é! ;)

Este artigo é o mais complexo e chatinho de toda a série. Se eu comi bola em alguma configuração ou no português, se a coisa toda não ficou clara ou se você está tendo dificuldade com algo, dispare um comentário para que eu possa tentar ajudá-lo. Não garanto que vou, mas tento. E por favor, use os comentários para isso. Quero que o seu eventual problema, uma vez resolvido, esteja prontamente disponível para outros que procurarem ajuda.

E com isso encerro esta loooonga série! Semana que vem vou fazer uma atualização no engine do MexApi (pelican) e por isso ficarei uns dias sem postar, vai dar trabalho. Mas terminado isso retomo com o backlog de artigos, que está interessantíssimo e grandão! Até lá.