IPv6 – Tunnel Broker

Descrita na RFC 3053, essa técnica permite que dispositivos isolados, ou toda uma rede IPv4, obtenham conectividade IPv6 por meio do estabelecimento de um túnel com um provedor, tornando-se, na prática, dispositivos, ou uma rede, pilha dupla.

Seu funcionamento é bastante simples: primeiramente é necessário realizar um cadastro, normalmente via Web, em um provedor que ofereça esse serviço, chamado, neste contexto, de Tunnel Broker. O provedor realizará de forma automática, ou semi automática, a configuração do seu lado do túnel e permitirá o download de instruções, ou de um software ou script de configuração, para configurar o lado do usuário. Os Tunnel Brokers normalmente oferecem blocos fixos IPv6 que variam de /64 a /48.

Dentre as opções existentes, recomenda-se:

  • http://tunnelbroker.net/ – serviço oferecido pela Hurricane Electric, que provê túneis para usuários domésticos ou corporativos, inclusive com a possibilidade de se fechar sessões BGP para provimento de trânsito IPv6 via túnel.
  • http://www.sixxs.net/main/ – serviço oferecido de forma colaborativa por um grande número de organizações. Não é possível fechar sessões BGP, mas é possível obter redes fixas de tamanho /48 roteadas através do túnel. A Algar Telecom/CTBC é responsável por um dos POPs em que são configurados os túneis, no Brasil, de forma que para usuários em redes brasileiras os túneis funcionam com qualidade e velocidade próximas às de conexões nativas.

Os Tunnel Brokers podem usar tecnologias diversas para prover os túneis. Podem usar, por exemplo, túneis 6in4, encapsulamento em UDP, o protocolo AYIYA, que significa Anything in Anything (draft-massar-v6ops-ayiya-02), ou TSP (Tunnel Setup Protocol), definido na RFC 5572.

A utilização de Tunnel Brokers é recomendada para usuários domésticos e corporativos que querem testar o IPv6, ou começar um processo de implantação em suas redes, mas cujos provedores de acesso ainda não oferecem suporte ao protocolo. Muitos Sistemas Autônomos brasileiros têm utilizado com sucesso túneis com a Hurricane Electric para anunciar seus blocos em caráter de teste e muitas empresas e usuários domésticos têm utilizado túneis SixXS para familiarizar-se com o IPv6.

A implantação de um serviço de Tunnel Broker em um provedor Internet não é trivial, pois não há softwares abertos disponíveis para a funcionalidade de Servidor Broker.

As figuras abaixo mostram a topologia lógica e física do Tunnel Broker.

img17

1 – Cliente pilha dupla solicita túnel (pode ser solicitada autenticação) via IPv4
2 – Broker cadastra usuário no Servidor de túnel
3 – Broker informa cliente parametros para criação do túnel
4 – Túnel estabelecido

Figura 17: Topologia lógica do Tunnel Broker

img18

Figura 18: Topologia física do Tunnel Broker

O exemplo de implementação de Tunnel Broker será baseado no OpenWRT (openwrt.org). Ele é um firmware opensource para roteadores sem fio SOHO (small office / home office). Como provedor do túnel será utilizada a solução da Hurricane Eletric (tunnelbroker.com). Abaixo o passo a passo da instalação:

1. Criar um usuário em tunnelbroker.com e solicitar um túnel
2. Instalar os pacotes necessários no OpenWRT:

opkg install ip ip6tables kmod-sit kmod-iptunnel6 radvd

3. Criar o arquivo /etc/hotplug.d/iface/15-ipv6 com o seguinte código (ele considera que a conexão com o provedor utiliza PPP, se for outro tipo de conexão o código necessita pequenas alterações):

. /etc/functions.sh
NAME=ipv6
COMMAND=/usr/sbin/ip

[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" -a "$DEVICE" = "ppp0" ] && {

[ -x $COMMAND ] && {

# setup tunnel

logger "HE-IPv6: starting tunnel..."

IPADDR=$(ip -4 addr show dev $DEVICE |

awk '/inet / {print $2}' |
cut -d/ -f1)
username="abcdef1234567890abcdef1234567890" # MD5 of your username
password="abcdef1234567890abcdef1234567890" # MD5 of your password
tunnelid="69999" # global tunnel-ID

# update tunnel to use dynamic ipv4
wget -q -O /dev/null "http://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=
$IPADDR&pass=$password&user_id=$username&tunnel_id=$tunnelid"

SERVER_IPv4_ENDPOINT=216.66.80.30  # change this IP to your option
CLIENT_IPv6_ENDPOINT=2001:470:1f0a:9999::2/64 # change this, too

# setup tunnel
ip tunnel add he-ipv6 mode sit remote $SERVER_IPv4_ENDPOINT local $IPADDR ttl 255
ip link set he-ipv6 up
ip addr add $CLIENT_IPv6_ENDPOINT dev he-ipv6
ip route add ::/0 dev he-ipv6
} &
}
[ "$ACTION" = "ifdown" -a "$INTERFACE" = "wan" -a "$DEVICE" = "ppp0" ] && {
[ -x $COMMAND ] && {
# destroy tunnel

logger "HE-IPv6: destroying tunnel..."
ip route del ::/0 dev he-ipv6
ip tunnel del he-ipv6
} &
}

# You got a routed /64

4. Adicionar um IP para a interface do túnel:


uci set network.lan.ip6addr=2001:470:1f0b:9999::1/64

uci commit

5. Configurar o firewall do OpenWRT para aceitar pacotes com protocolo 41 vindos da interface WAN
6. Configurar o anúncio da rede IPv6 na LAN, editando o arquivo /etc/config/radvd :

config interface

option interface        ’lan’

option AdvSendAdvert    1

option AdvManagedFlag   0

option AdvOtherConfigFlag 0

option ignore           0

config prefix

option interface        ’lan’

# If not specified, a non-link-local prefix of the interface is used

option prefix           ’2001:470:1f0b:9999::/64′

option AdvOnLink        1

option AdvAutonomous    1

option AdvRouterAddr    0

option ignore           0

config rdnss

option interface        ’lan’

# If not specified, the link-local address of the interface is used

option addr             ’2001:470:1f0b:9999::/64′

option ignore           1

Alterar o endereço “:9999” para a rota que você utilizou. Salvar o arquivo e executar os comandos para que as alterações sejam aplicadas:

/etc/init.d/radvd enable

/etc/init.d/radvd start

7. A configuração está completa. Reiniciar o roteador e testar o túnel. Pode-se executar o ping6 diretamente no roteador e funcionando corretamente executá-lo a partir de um computador na LAN:


ping6 ipv6.google.com

Em caso de dúvidas, os tutoriais da Hurricane Eletric ou do OpenWRT podem ser consultados em:

http://www.tunnelbroker.net/forums/index.php?topic=1016.0

http://wiki.openwrt.org/doc/uci/network#dynamic.ipv6-in-ipv4.tunnel.he.net.only

Outro exemplo de confuguração é a utilização de Tunnel Broker no Windows. É possível utilizá-lo em diversas versões do WIndows (2000, XP, 2008, Vista e 7) desde que o suporte IPv6 seja instalado nas versões que não o suportam nativamente. A configuração deve ser feita através do console usando um usuário com permissões administrativas. As configurações para estas versões do Windows são:


Explicação das variáveis usadas:

$ipv4a = IPv4 do servidor do túnel

$ipv4b = IPv4 do usuário do túnel

$ipv6a = rede /64 alocada ao lado do servidor do túnel

$ipv6b = rede /64 alocada ao lado do usuário do túnel

Windows 2000/XP:

ipv6 install

ipv6 rtu ::/0 2/::$ipv4a pub

ipv6 adu 2/$ipv6b

Windows 2008/Vista/7

netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel $ipv4b $ipv4a

netsh interface ipv6 add address IP6Tunnel $ipv6b

netsh interface ipv6 add route ::/0 IP6Tunnel $ipv6a

Deixe um comentário