Túneis 6to4
Escrito por Ailton Soares Rocha e Rodrigo Regis dos Santos
Roteador
Linux
Primeiramente deverá ser instalado o suporte ao IPv6:
# modprobe ipv6
Em seguida ative o roteamento IPv6, editando o arquivo
/etc/sysctl.conf e adicionando a seguinte linha:
net.ipv6.conf.default.forwarding=1
Faça o download do script de configuração utilizando o seguinte comando:
# wget -c http://sites.inka.de/bigred/sw/6to4
Instale o serviço de router advertisement:
Para o Debian e Ubuntu utilize o seguinte comando:
# apt-get install radvd
Configure o Radvd editando ou criando o arquivo
/etc/radvd.conf com o seguinte conteúdo:
# ajuste de acordo com a interface conectada a sua rede local
interface eth0 {
AdvSendAdvert on;
MinRtrAdvInterval 20;
MaxRtrAdvInterval 60;
# ajuste de acordo com suas necessidades
AdvLinkMTU 1400;
prefix 2002::/64 {
AdvOnLink off;
AdvAutonomous on;
AdvRouterAddr on;
Base6to4Interface tun64;
AdvPreferredLifetime 90;
AdvValidLifetime 120;
};
};
Caso utilize um relay diferente do padrão
192.88.99.1, é necessário que se modifique a configuração do script de inicialização do roteador 6to4. Para configurá-lo, converta o endereço do relay para o formato do 6to4, para isto, utilize o seguinte comando:
Exemplo de conversão do IPv4
207.192.20.30 para 6to4:
# printf "2002:%02x%02x:%02x%02x::\n" 207 192 20 30
Depois disso, edite o script e altere as seguintes variáveis:
REMOTE4="IPv4 do Relay"
REMOTE6="IPv6 6to4 do Relay"
Após essas configurações, inicie o roteador executando o seguinte comando:
# 6to4 up "IPv4 da Interface ligada à Internet" "interface ligada à rede local"
Exemplo:
# 6to4 up 200.192.170.10 eth0
Para testar se o roteador 6to4 está com conectividade à rede IPv6, execute o seguinte comando:
# traceroute6 ipv6.google.com
ou se o DNS não estiver resolvendo IPv6
# traceroute6 2001:4860:0:2001::68
Para testar se o roteador esta funcionando corretamente, coloque um computador com suporte a IPv6 na rede local e execute novamente o comando acima, ela deverá pegar automaticamente um IPv6 6to4 conforme o prefixo anunciado pelo Radvd.
Para finalizar o túnel e o serviço radvd, execute o seguinte comando:
# 6to4 down "IPv4 da Interface ligada à Internet" "interface ligada à rede local"
Exemplo:
# 6to4 down 200.192.170.10 eth0
Freebsd
Primeiramente, converta o endereço IPv4 da interface externa para o formato 6to4/IPv6:
Exemplo de conversão do IPv4
207.192.20.30 para IPv6/6to4:
# printf "2002:%02x%02x:%02x%02x::\n" 207 192 20 30
Converta o endereço IPv4 do Relay 6to4 para o formato 6to4/IPv6:
Exemplo de conversão do IPv4
192.88.99.1 para IPv6/6to4:
# printf "2002:%02x%02x:%02x%02x::\n" 192 88 99 1
Acrescente ou altere as seguintes linhas no arquivo
/etc/rc.conf para ativar o suporte ao IPv6 e a interface virtual 6to4. Os itens em vermelho devem ser configurados de acordo com sua configuração de rede:
#### IPv4 #####
ifconfig_lnc0="inet 123.123.123.123 netmask 255.255.255.0" # IPv4 Externo
#### IPv6 #####
# habilita o suporte ao IPv6
ipv6_enable="YES"
# Interfaces onde o IPv6 será ativado.
ipv6_network_interfaces="auto"
# Ativa o roteamento
ipv6_gateway_enable="YES"
#### 6to4 #####
# Interface virtual 6to4
ipv6_default_interface="stf0"
# habilita o mapeamento IPv4->IPv6,
# possibilitando a utilização
# de endereços do tipo ::ffff:a.b.c.d
ipv6_ipv4mapping="YES"
# Endereço do Relay 6to4 geralmente 192.88.99.1
ipv6_defaultrouter="2002:c058:6301::"
# ipv6 da rede interna, baseado no IPv4 externo
ipv6_ifconfig_lnc1="2002:7b7b:7b7b:1::1 prefixlen 48"
# Mesmo IPv4 da interface Internet IPv4
stf_interface_ipv4addr="123.123.123.123"
# Tamanho do prefixo do endereço 6to4/IPv4, geralmente 0
stf_interface_ipv4plen="0"
# Número final do IP a ser utilizado na interface stf0.
stf_interface_ipv6_ifid="0:0:0:2"
#### Router Advertisement #####
# Habilita o anuncio de roteador
rtadvd_enable="YES"
# Ativa na interface interna
rtadvd_interfaces="lnc1"
Configure o serviço rtadvd editando o arquivo
/etc/rtadvd.conf e acrescentado as seguintes linhas:
lnc1::\
:addr="2002:7b7b:7b7b:1::":prefixlen#64
Sendo que:
-
lnc1 é a interface interna (IPv6) do roteador;
-
2002:7b7b:7b7b:1:: é o prefixo a ser utilizado na rede interna, sendo que o
1:: especifica a subrede da rede 6to4, e é o IPv4 da interface externa convertido para IPv6/6to4;
-
Prefixlen#64 é comprimento do prefixo da subrede.
Após realizar os procedimentos acima, reinicie o computador e verifique se a interface virtual 6to4 foi criada, se o serviço rtadvd foi iniciado e se as rotas foram criadas.
Para verificar o funcionamento, coloque um cliente na sua rede interna e verifique se ele irá pegar o endereço 6to4 conforme a configuração do rtadvd, e se estiver tudo correto, execute o seguinte comando para testar a conectividade à rede IPv6:
# traceroute6 ipv6.google.com
ou se o DNS não estiver resolvendo IPv6
# traceroute6 2001:4860:0:2001::68
Cisco(IOS 12.3)
O primeiro passo é converter o endereço IPv4 da interface externa para o formato 6to4/IPv6:
Exemplo de conversão do endereço IPv4
207.192.20.30 para IPv6/6to4:
# printf "2002:%02x%02x:%02x%02x::\n" 207 192 20 30
Também é necessário converter o endereço IPv4 do Relay 6to4 para o formato 6to4/IPv6:
Exemplo de conversão do endereço IPv4
192.88.99.1 para IPv6/6to4:
# printf "2002:%02x%02x:%02x%02x::\n" 192 88 99 1
Isto feito, coloque a seguinte configuração no roteador alterando os itens em vermelho de acordo com a sua configuração de sua rede:
memory-size iomem 10
no aaa new-model
ip subnet-zero
!
ip cef
# servidor DNS
ip name-server 123.123.123.1
ipv6 unicast-routing
!
interface Tunnel2002
description tunel 6to4 para o relay
no ip address
no ip redirects
# IPv4 público convertido para IPv6 mais o sufixo ::1 (subrede 0)
ipv6 address 2002:7b7b:7b7b::1/128
# Interface conectada à Internet IPv4
tunnel source FastEthernet0/0
tunnel mode ipv6ip 6to4
!
interface FastEthernet0/0
description conexao a internet ipv4
# End. IPv4 da interface conectada à Internet IPv4
ip address 123.123.123.123 255.255.255.0
ip nat outside
speed auto
full-duplex
# Não faz router advertisement nesta interface
ipv6 nd suppress-ra
!
interface FastEthernet1/1
description conexao a rede interna
# Endereço IPv4 da rede Interna para o NAT de IPv4
ip address 192.168.1.1 255.255.255.0
ip nat inside
duplex auto
speed auto
# Endereço IPv6 baseado no IPv6 que foi formado a partir
# do endereço público, mas, na subrede 1
ipv6 address 2002:7b7b:7b7b:1::1/64
# Prefixo a ser utilizado na configuração automática do
# IPv6 na rede Interna, baseado no IPv6 que foi formado a
# partir do endereço público
ipv6 nd prefix 2002:7b7b:7b7b:1::/64
!
ip nat pool INTERNET 123.123.123.123 123.123.123.123 prefix-length 24 # endereço IPv4 público ip nat inside source list NAT pool INTERNET overload
ip classless
# gateway para internet IPv4
ip route 0.0.0.0 0.0.0.0 123.123.123.1
!
ip access-list standard NAT
# Permite todos os IPs da rede Interna
permit 192.168.1.0 0.0.0.255
ipv6 route 2002::/16 Tunnel2002
# Endereço IPv4 do Relay 6to4 a ser utilizado, neste caso o
# 192.88.99.1, que é o endereço de anycast convertido para IPv6
ipv6 route ::/0 2002:C058:6301::
Para verificar o funcionamento, coloque um cliente na sua rede interna e verifique se ele irá pegar o endereço 6to4 conforme a configuração do prefixo especificado, e se estiver tudo correto, execute o seguinte comando para testar a conectividade à rede IPv6:
# traceroute6 ipv6.google.com
ou se o DNS não estiver resolvendo IPv6
# traceroute6 2001:4860:0:2001::68
Última atualização 28/11/2008 15h03