Técnica de utilização do mecanismo de transição “Tunnel Broker” para a comunicação do protocolo IPv6 em redes IPv4. Everton Bergamin 10189160086-1 José Oséas Ferreira 10189134248-1 Curso de Pós Graduação em Redes e Segurança de Sistemas Pontifícia Universidade Católica do Paraná Curituba-PR, Fevereiro de 2013 Resumo O objetivo é oferecer a proposta de utilização do mecanismo de transição “Tunnel Broker” em ambiente Linux para a comunicação do protocolo IPv6 sobre uma rede de comunicação IPv4. O artigo é orientado a desenvolvedores e pesquisadores que querem uma plataforma de túnel IPv6 estável. 1. Tunel Broker TABELA 1 - Siglas do Tunnel Broker TC Tunnel Client TB Tunnel Broker TS Tunnel Server Tunnel Broker é uma alternativa para se conseguir conectar a internet via IPv6, quando ela ainda não está disponível em sua rede ou em seu provedor de Internet. Esta é uma técnica onde permite que hosts IPv6/IPv4 isolados em uma rede IPv4 acessem redes IPv6. Essa abordagem é útil para estimular o crescimento de redes IPv6, aumentando os host que possuam suporte ao novo protocolo de IP. A ideia do Túnel Broker é uma abordagem alternativa baseada na oferta de servidores dedicados, a gerenciar automaticamente os pedidos vindos dos túneis dos usuários. O túnel pode ser visto como um provedor virtual, que proporciona conectividade para os usuários já conectados na rede IPv4. QUADRO 1 - Topologia Lógica do Tunnel Broker [1] +------+ /| | / |server| / | | / +------+ Autenticação +----------+ +------+/ +------+ | Nó | | | |túnel | |Pilha Dupla|<--->| TB |<--->|server| | (TC) | | | | | +----------+ +------+\ +------+ | \ +------+ túnel end-point v \ |túnel | /\ +---+ \ |server| || |DNS| \| | || +---+ +------+ || || túnel end-point || /\ || || Pacotes IPv6 Encapsulados na Rede IPv4 |+---------------------------+| +-----------------------------+ IPv6 sobre túnel IPv4 O TC envia um pacote pela Internet IPv4 para autenticar-se e requisitar o serviço do TB. O TB é onde o usuário se conecta para registrar e ativar o túnel. Na continuidade, o TB gerencia a criação, alteração e exclusão do túnel pelo usuário e cria registros para utilizar de nomes de IPv6 no DNS. 1.2 Tunnel Server O TS é um roteador de pilha dupla (IPv4 e IPv6) conectado a Internet global. Após a recepção de uma ordem do TB, o TS cria, modifica ou excluí o servidor de cada túnel, podendo também manter as estatísticas dos mesmos. O TS é o servidor que fecha o túnel com o cliente do túnel, trabalhando para fazer o interfaceamento entre o IPv6 e o IPv4. 1.3 Utilizando o Tunnel Broker O usuário do Tunel Broker é um roteador IPv6 de Pilha-Dupla (dual-stack) conectado a internet IPv4. Antes do usuário se conectar com o TB, o cliente deve se identificar e inserir as credenciais de autenticação do usuário, de modo que o túnel seja adequado conforme a configuração. O TB é o responsável por receber as requisições de túnel e autenticação dos seus clientes e também é o responsável por fazer as trocas de pacotes IPv6 e IPv4 entre o TS e o TC para o fechamento do túnel. Após a autorização do cliente a acessar o serviço, se a maquina cliente conter um serviço de roteamento IPv6, ela estará disposta a distribuir endereços de IPv6 para vários host. O TS gerencia o cliente da seguinte maneira: Escolhe o prefixo IPv6 a ser alocado para o cliente; Determina uma vida útil para o túnel; Registra automaticamente no DNS os endereços de IPv6 globais; Configura o TB; Notifica informações relevantes para a configuração do cliente, incluindo parâmetros do túnel e registros de DNS. O cliente deve especificar a quantidade de endereços IPv6 que será utilizado, possibilitando assim que o roteador possa resolver a conectividade para vários host na rede. Os tipos de endereçamento IPv6 recebido pelo tuunel broker são unicast global, o mesmo que receberia diretamente do provedor de Internet. Após as etapas de configuração serem concluídas, o túnel IPv6 sobre IPv4 estará ativado e operando, permitindo que o usuário possa ter acesso ao 6bone ou qualquer outra rede IPv6. 2. Configuração e Cenário do Tunnel Broker Figura 2 – Cenário do Tunnel Broker TS Miami, FL, EUA [209.51.161.58] 3 A figura 2 demonstra o cenário que envolve as configurações presentes neste artigo. 1 - O Tunnel Client (TS) envia um pacote por sua rota IPv4 (Internet IPv4), autenticando-se e requisitando serviço de túnel para o Tunnel Broker (TB); 2 - O TB envia um pacote ao Tunnel Server (TS), indicando o endereço IPv4 e o IPv6 que o TC utilizará para ser adicionado em sua tabela de roteamento; 3 - O TB envia um pacote para TS, indicando o endereço IPv4 e IPv6 do TS para que se feche o túnel entre os dois pontos pela Internet IPv4. O túnel é então estabelecido entre o TC e o TS. Após o fechamento túnel nas duas pontas, no TC, os pacotes IPv6 são encapsulados e enviados no túnel via Internet IPv4 utilizando o protocolo 41, o protocolo é utilizado tanto para o TS quanto para o BC; A partir deste ponto as estações da LAN podem utilizar o prefixo (obtido por RA do BC) e auto-configurar seus endereços IPv6 de escopo global para que possam se comunicar com o servidor WEB IPv6 como se estivessem conectados ao backbone IPv6; Toda a comunicação interna em IPv6 da LAN continua a ser realizada normalmente pelo endereço “FE80::/10” de escopo link-local possibilitando seu uso juntamente com o cenário de pilha-dupla (IPv4/IPv6) e todos os recursos e serviços IPv6 disponíveis. Os túneis utilizados para testes foram disponibilizados pela organização Hurricane Eletric (HE) – Internet Service [3]. A empresa disponibiliza túneis gratuitos, permitindo o acesso a Internet via tunelamento a partir dos seus roteadores IPv6. Os serviços de TB da HE são orientados para desenvolvedores e pesquisadores que querem utilizar um túnel estável nos estudos e implementação em seus aplicativos. Algumas vantagens foram encontradas, o que motivou a escolha na utilização do tunelamento da HE. Principais vantagens de utilizar os serviços da HE: Disponibiliza prefixo /48, se necessário; Disponibiliza a visão das tabelas de roteamento; Disponibiliza suporte aos problemas através do email: [email protected]; Habilita a utilização do túnel em poucos instantes; TS disponíveis em diversas áreas geográficas; Fornece até cinco túneis para cada usuário cadastrado. 2.1 Implantações do Tunnel Broker O objetivo desta implantação foi de túneis experimentais plataforma Linux. O trabalho compreende os seguintes componentes: a. Implementação de duas maquinas com suporte IPv6 através de TB; b. Criar túneis regulares disponíveis no HE; c. Verificar o IP real da rede; d. Configurar o TB em plataforma Linux Ubuntu 11.10 Desktop. 2.2 Implementação do TB com Suporte IPv6 Foi implementado e testado o TB em um Sony Vaio VGN-NS130E - Pentium DualCore, 2.00 GHz, 2.00 GHz, 3,0 GB RAM, 160 HD, 1 Adaptador Ethernet Conexão Local (Marvel Yukon 88E8055). A implantação do TB na plataforma Linux Ubuntu 11.10 Desktop foi realizada através de software de virtualização de sistemas operacionais. O software de virtualização utilizado foi o Oracle Virtual Box Versão 3.2.8. 2.3 Criação de Túneis Regulares A Hurricane Eletric® é um provedor de serviços de tunelamento sobre redes IPv4 possibilitando o alcance do IPv6 aos hosts. Após a realização do cadastro e ativação da conta, o usuário pode solicitar até cinco túneis pelo site. Na seção User Functions, foi aberto o link Create Regular Tunnel. A página foi redirecionada para configuração do túnel. Nesta etapa, foi informado no campo IPv4 endpoint o endereço de IP valido na internet de onde o túnel será utilizado. Logo foi selecionado o servidor mais próximo à localidade de Paranaguá-PR. Foi realizado um teste de ping em cada servidor para saber o tempo de resposta e analisar o servidor mais próximo e com respostas mais rápidas. O Servidor selecionado foi Miami, FL, EUA [209.51.161.58]. 2.4 Configuração do TB no Ubuntu 11.10 O prefixo router atribuído ao endereço IPv6 é um /64. ID do Túnel: 193200 Data de criação do Túnel: 30 de Janeiro de 2013 IPv6 Tunnel Endpoints Server IPv4 Address: 209.51.161.58 (Endereço IPv4 do servidor TS) Server IPv6 Address: 2001:470:4:d24::1/64 (Endereço IPv6 do servidor TS) Client IPv4 Address: 201.89.73.86 (Endereço IPv4 real – cliente local) Client IPv6 Address: 2001:470:4:d24::2/64 ((Endereço fornecido – cliente local). 2.4.1 Ativando o túnel e configurando endereço IPv6: Configuração Linux-net-tools de escopo global IPv6 root@ubuntu:/# ifconfig sit0 up root@ubuntu:/# ifconfig sit0 inet6 tunnel ::209.51.161.58 root@ubuntu:/# ifconfig sit1 up root@ubuntu:/# ifconfig sit1 inet6 add 2001:470:4:d24::2/64 root@ubuntu:/# route -A inet6 add ::/0 dev sit1 Para configurar o IPv6 no Linux como router Ipv6: root@ubuntu:/# modprobe ipv6 root@ubuntu:/# ip tunnel add he-ipv6 mode sit remote 209.51.161.58 local 201.89.73.86 ttl 255 root@ubuntu:/# ip link set he-ipv6 up root@ubuntu:/# ip addr add 2001:470:4:d24::2/64 dev he-ipv6 root@ubuntu:/# ip route add ::/0 dev he-ipv6 root@ubuntu:/# ip -f inet6 addr A configuração ficou a seguinte: root@ubuntu:/# ifconfig eth0 Link encap:Ethernet Endereço de HW 08:00:27:b0:a0:38 inet end.: 192.168.1.115 Bcast:192.168.1.255 Masc:255.255.255.0 endereço inet6: fe80::a00:27ff:feb0:a038/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:141175 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:108851 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:39466100 (39.4 MB) TX bytes:14141214 (14.1 MB) he-ipv6 Link encap:IPv6 sobre IPv4 endereço inet6: fe80::c959:4956/128 Escopo:Link endereço inet6: 2001:470:4:d24::2/64 Escopo:Global UP POINTOPOINT RUNNING NOARP MTU:1480 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:60 descartados:0 excesso:0 portadora:60 colisões:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:16436 Métrica:1 pacotes RX:70 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:70 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:9368 (9.3 KB) TX bytes:9368 (9.3 KB) sit0 Link encap:IPv6 sobre IPv4 endereço inet6: ::127.0.0.1/96 Escopo:Desconhecido endereço inet6: ::192.168.1.115/96 Escopo:Compat UP RUNNING NOARP MTU:1480 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) sit1 Link encap:IPv6 sobre IPv4 endereço inet6: fe80::c0a8:173/64 Escopo:Link endereço inet6: 2001:470:4:d24::2/64 Escopo:Global UP POINTOPOINT RUNNING NOARP MTU:1480 Métrica:1 pacotes RX:54025 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:53575 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:15871634 (15.8 MB) TX bytes:5555652 (5.5 MB) Para que o roteamento da rede IPv6 funcione, é necessário que o router esteja habilitado para encaminhar o Protocolo 41. Dentro do cabeçalho IPv4, o Protocolo 41 é definido para encapsular o pacote IPv6. O firewall deve estar habilitado para este protocolo. Pode ser utilizado o DHCPv6 para encaminhar endereços IPv6 automático na rede privada, também é possível fazer NAT na versão para IPv6, a rede privada com o NAT6 ficaria com escopo de link-local “FE80::/10”. 3. Testes Realizados Foi realizado testes de ping6 e traceroute6 via shell do Ubuntu: ubuntu@ubuntu:~$ ping6 www.google.com PING www.google.com(2800:3f0:4001:802::1013) 56 data bytes 64 bytes from 2800:3f0:4001:802::1013: icmp_seq=1 ttl=55 time=368 ms 64 bytes from 2800:3f0:4001:802::1013: icmp_seq=2 ttl=55 time=325 ms ... --- www.google.com ping statistics --10 packets transmitted, 10 received, 0% packet loss, time 9018ms rtt min/avg/max/mdev = 325.060/373.204/739.370/122.752 ms ubuntu@ubuntu:~$ traceroute6 ipv6.br traceroute to ipv6.br (2001:12ff:0:4::22), 30 hops max, 80 byte packets 1 ehtoberga-3.tunnel.tserv12.mia1.ipv6.he.net (2001:470:4:d24::1) 194.450 ms 200.911 ms 201.267 ms 2 gige-g2-3.core1.mia1.he.net (2001:470:0:8c::1) 213.355 ms 214.763 ms 215.983 ms O site www.test-ipv6.com fornece resultado detalhado quanto a conectividade IPv6: Figura 3 Teste de Conectividade IPv6 em Escopo Global 4. Conclusão Neste trabalho foi apresentada e desenvolvida a técnica de transição tunner broker, possibilitando aos pesquisadores, estudantes e desenvolvedores de softwares, a conexão em IPv6, ainda que o mesmo não esteja nativo na rede através de seus provedores de internet. Este trabalho não teve como finalidade apresentar a solução para a escassez dos endereços de IP, a técnica apresentada possibilita a implementação e testes de novos serviços em IPv6, garantindo que a transição do IPv4 para o IPv6 seja realizada gradativamente e sem muito transtornos aos administradores. Foram encontrados varias dificuldades para a elaboração deste artigo, em primeiro foi à dificuldade de encontrar artigos de configurações e explicações detalhados da técnica TB e a implantação em diversas plataformas de sistemas. Em seguida, foi encontrado dificuldades para se implantar o TB em plataforma apenas para teste de funcionalidade no Windows, onde a única solução foi, além das configurações do túnel e de endereços IPv4 e IPv6 no promt do Windows, a configuração de uma VPN/PPTP, possibilitando um túnel seguro entre o TC e o TS. Concluindo, o trabalho teve uma compensação muito grande na vida profissional dos acadêmicos participantes deste trabalho, possibilitou uma propulsão maior na criação e implantação de projetos, hoje podemos dizer que, a vida nos dá o que buscamos e corremos atrás. 5. Bibliografia [1] DURAND, et al. RFC 3053. IPv6 Tunnel Broker. Published by Internet Engineering Task Force (IETF). Internet Society (ISOC) RFC Ed. USA. Janeiro de 2001. Disponível em: http://www.ietf.org/rfc/rfc3053.txt [2] SANTOS, Rodrigo Regis dos. Técnica de Transição – Tipos de Túneis. São Paulo, Comitê Gestor da Internet no Brasil. Outubro de 2008. Disponível em: http://www.ipv6.br/IPV6/ArtigoTecnicasTransicaoParte04. [3] Hurricane Electric. Acesso aos conteúdos em www.tunnelbroker.net. [4] WGA Networks Solutions. Tecnologia e Desenvolvimento – Material sobre IPv6 e ATM. Disponível em http://wilson-redes.sites.uol.com.br/redes1.html.