Buscar

Tunelamento IPV6 em IPV4 2015

Prévia do material em texto

19
TUNELAMENTO IPV6: IPV6 EM IPV4
André Henrique Alves Pereira[1: andre.hemrique.alves.pereira@gmail.com]
Dario Henrique da Veiga Tavares[2: dariohenriquevt@gmail.com]
Fernando Quirino da Silva[3: quirinofqs@gmail.com]
Professor-Orientador: Rafael Leal Martins[4: rafaellealmartins@gmail.com]
RESUMO
Neste trabalho foi desenvolvido e implementado um cenário de teste utilizando o protocolo IPv6, o objetivo deste trabalho é estudar o funcionamento desse protocolo que está cada vez mais presente no dia-a-dia das empresas. Com o crescimento do número de dispositivos na Internet, o IPV4 tem chegado ao seu limite de endereços necessários para comunicação entre hosts nas redes. Prevendo a falta futura de endereços disponíveis, o IPv6 foi criado. Será demonstrado nesse trabalho acadêmico uma parte importante da migração entre os dois protocolos que são os métodos de tunelamento IPV4 e IPV6.
Palavras Chave: IPv6. IPv4. Transição. Teredo. 6In4
ABSTRACT 
In this work, we developed and implemented a test scenario using the IPv6 protocol, the aim of this work is to study the functioning of this Protocol that is more and more present in daily life. With the growth of the number of devices on the Internet, IPV4 has reached its limit of addresses required for communication between hosts in networks. Predicting the future is missing of available addresses, IPv6 has been created. Will be demonstrated in this scholarly work an important part of the migration between the two protocols which are IPV4 and IPV6 tunneling methods.
Key Words: IPv6. IPv4. Transição. Teredo. 6In4
1- INTRODUÇÃO
Apesar de parecer uma tecnologia nova e recém criada, o IPv6 foi criado em 1995 logo após a RFC – 1752 “Request for Comments” que propunha soluções para a expansão dos endereçamentos, na prática a Microsoft lançou uma versão experimental através dos sistemas operacionais Windows 95 ou no Windows 98. Mas por falta de tecnologia necessária para que equipamentos conseguissem realizar rotas com eficácia e sistemas operacionais com ferramentas necessárias não foi levado a diante. Além de resolver os problemas com endereçamento por longos anos, o IPv6 possui novos serviços trazendo benefícios para as redes, são eles:
Cabeçalho mais simplificado tirando carga de processamento dos routers;
Arquitetura hierárquica de rede para um roteamento eficiente;
Serviços autoconfiguração;
Crescimento do número de endereços multicast;
QoS com mais implementações
Texto sem autoria na internet
2 – Desenvolvimento
	Nesta sessão vamos mostrar a importância do protocolo de extensão.
	Segundo LOPES (2014), o IPv4 possui as seguintes características:
O campo opções trazia informações complementares ao cabeçalho.
Tornava o tamanho do ipv4 variável entre 20 e 60 bytes
Isso fazia com que o roteamento muitas vezes, processe informações que não eram importantes para os roteadores executarem seu trabalho.
	Ainda de com o autor, o IPv6 é a mudança foi a do roteador não precisa processar o tamanho do cabeçalho e ficou fixado 128bits no IPv6, sedo que o endereçamento passou de IPv4 = 32 bits para IPv6 = 128 bits. 
	O IPv6 possui as seguintes características:
Optou-se por um cabeçalho mais enxuto, somente com informações essenciais para o trabalho dos roteadores.
Com isso o tamanho do cabeçalho IPv6 ficou fixo em 40 bytes
O campo opções foi substituído pelos cabeçalhos de extensão.
O campo protocolo do IPv4 foi renomeado para Próximo cabeçalho, que antes apontava tcp, udp, icmp e etc.
O campo “ Próximo Cabeçalho” aponta para o próximo cabeçalho que pode ser um cabeçalho de extensão ou o do protocolo da camada de transporte.
O funcionamento do campo Próximo cabeçalho (LOPES, 2014).
	O campo “ next header” vem com o código do próximo cabeçalho. Esses cabeçalhos devem obedecer uma ordem e o cabeçalho HOP-BY-HOP deve ser sempre o primeiro, pois é o único que é lido pelos roteadores.
Os demais são cabeçalhos de fim a fim ou seja só precisam ser lidos e processados no destino.
Tabela 1 - Cabeçalhos IPv6.
	Ordem
	NOME DO CABEÇALHO
	CÓDIGO
	01
	CABEÇALHO IPV6
	-
	02
	HOP-BY-HOP
	0
	03
	DESTINATION OPTIONS
	60
	04
	ROUTING HEADER
	43
	05
	FRAGMENT HEADER
	44
	06
	AUTHENTICATION HEADER (AH)
	51
	07
	ENCAPSULATION SECURITY PAYLOAD (ESP)
	50
	08
	DESTINATION OPTIONS
	60
	09
	MOBILITY
	135
	-
	SEM PROXIMO CABEÇALHO
	59
	CS
	ICMPv6
	58
	CS
	UDP
	17
	CS
	TCP
	6
Fonte: Autoria Própria. 
2.1 - CABEÇALHO HOP-BY-HOP
É o único cabeçalho de extensão analisado por roteadores.
Por isso deve obrigatoriamente ser o primeiro na pilha de cabeçalhos de extensão.
Se o cód. Next head for igual a 0 então o roteador analisa primeiro cabeçalho usando em ações que envolvem a participação dos roteadores.
Exemplo trafego de Multcast.
Tipos de Hop by Hop: 
Router Alert
Utilizados por protocolos de multicast como o MLD(MULTICAS LISTENR DISCOBERY) para saber um pouco mais sobre o MLD consulte a RFC 2710.
Jumbogram
São superpacotes com mais de 64kbytes podendo chegar a 4gbytes porém atualmente protocolos de camadas superiores não suportam pacotes desse tamanho. Mais detalhes na RFC 2675
2.2 - Cabeçalho “Destination Options”
É o único protocolo de extensão que podem aparecer duas vezes em uma pilha ( antes do cabeçalho routing e antes do cabeçalho superior).
É analisado apenas pelo destinatário e traz informações que podem variar de acordo com a aplicação específica.
2.3 - Cabeçalho Routing – MIPv6
Inicialmente seria usado para traçar uma rota específica entre roteadores.
Cabeçalho contendo campos para guardar os endereços IPv6 dos roteadores do caminho específico.
Foi considerado obsoleto na RFC 5095 por ser considerado inseguro.
Passou-se a utilizar então o itpo 2 ou “ Routing Type2”.
Usada pelo MIPv6 ( Mobile IPv6)
2.4 - Cabeçalho Fragmentation
Quando um pacote fica maior do que o limite da tecnologia utilizada, estoura o MTU ( MAXIMUM TRANSFER UNIT), há necessidade de fragmentar esse pacote. No IPv4 essa fragmentação era responsabilidade do cabeçalho principal através dos campos identificação, FLAG E FRAGMENTAÇÃO.
No IPv6 essa função passou a ser executada apenas no host de origem.
Quando um roteador verifica que um pacote estourou a MTU ele envia uma mensagem para Origem e sinaliza a necessidade da fragmentação.
2.5 - Cabeçalho AH + ESP
Cabeçalho responsável pelo suporte nativo de IPv6 ao IPSec. Não significa que todos os dados já são criptografados. Somente que agora qualquer host que tenha suporte ao IPv6 já tem o suporte nativo ao IPSec. 
Porém deve ser configurado, o AH (AUTHENTICATION HEADER) é o cabeçalho responsável pelo serviço de autenticação, enquanto o ESP ( ENCAPSULATION SECURITY PAYLOAD) é o cabeçalho responsável pelo serviço de criptografia.
	Descrever os tipos de endereços do IPv6
Unicast Link-local
Unicast Unique-Local (ULA)
Global Unicast
Multicast
Anycast
Alocações de endereços Globais
2.6 - No IPv4 
Temos 3 tipos de endereços:
Unicast Usado na comunicação um para um.
Multicast Usado na comunicação um para um grupo.
Broadcast Usado na comunicação um para todos | Não exite mais em IPv6
3 - No IPv6
Temos também três tipos de endereços:
Unicast Comunicação de um para um.
Multicast Comunicação de um para muitos.
Anycast Comunicação de um para um de um grupo. | Novo
Veremos a seguir cada um detalhadamente (LOPES, 2014)
3.1 - Endereços Unicast
Responsáveis por endereçar um host de maneira única na rede.
Todo pacote unicast será entregue apenas a uma interface
No IPv6 cada host pode ter seu próprio endereço na internet.
Temos três tipos de endereços Unicast:
Unicast Link-Local ou rede local
Usados internamente em uma rede.
Só faz sentido no enlace
Roteadores não encaminham pacotes Link-Lokal
Range de endereços de FE80::/10 a FEB0::/10
Configurado automaticamente sem interferência humana.
Unicast Unique-local (ULA)
Funcionam como endereços privados.
Podem serusados internamente em uma empresa
Apesar de sua existência no IPv6 é preferível a configuração do endereço global onde cada host é único na internet.
A RFC que da as orientações sobre o ULA é a 4193
O bloco FC00::/7 foi subdividido em dois blocos /8 o FC00::/8 e o FD00::/8
Ainda nessa RFC é orientado a utilização livre apenas da sub-rede FD00::/8
Global Unicast
São endereços públicos e roteáveis.
Diferente do IPv4 existem endereços IPv6 públicos para que todos os host tenham seu próprio endereço publico na internet.
A IANA reservou para uso apenas o 2000::/3 o que já representa uma quantidade muito maior que todo o range do IPv4.
3.2 - Endereços MULTICAST (LOPES, 2014)
O conceito de Multicast continua igual ao no IPv4, serve para endereçar um grupo especifico de host, por exemplo todos os Roteadores do processo RIPng
No IPv4 os endereços de Multicast eram os endereços da classe D (224.0.0.0 até 239.255.255.255).
No IPv6 são os FF00::/8.
Todos os endereços iniciados com FF são Multicast, existe um grupo chamado Multicast-All-Nodes que tem o conceito semelhante ao broadcast(que não existe no IPv6) foi graças a esse grupo que o broadcast foi eliminado.
Tabela 2 - Tipos de endereços IPv6.
	Endereço
	Escopo
	Descrição
	FF01::1
	ENLACE
	TODAS AS INTERFACES
	FF02::1
	ENLACE
	TD OS HOSTS NO LINK
	FF02::2
	ENLACE
	TDS OS ROUTERS NO LINK
	FF02::5
	ENLACE
	OSPFv3 (Routers)
	FF02::6
	ENLACE
	OSPFv3(Rot. Designados)
	FF02:9
	ENLACE
	RIPng
	FF02::A
	ENLACE
	EIGRP
	FF02::1:FFXX:XXXX
	ENLACE
	Solicited-Node
	FF02::1:2
	Enlace
	TDS os Serv DHCP
	FF05::1:3
	SITE
	TDS os Serv DHCP
	FF0X::101
	VARIAVEL
	TDS OS Serv NTP
Fonte: Autoria Própria. 
3.3 - Endereços ANYCAST
O conceito de Anycast é uma novidade do IPv6 é para comunicações de um para um de muitos. O Host mais próximo de um grupo de host recebe a mensagem.É possível atribuir um mesmo endereço anycast em vários host de um grupo.
Os roteadores são responsável pela inteligência de encaminhamento.
Exemplo pratico um grupo de servidores DNS fazendo parte de um grupo Anycast o servidor mais próximo recebe o pacote e responde a solicitação.
3.4 - ICMPv6 (IPv6, 2015)
	Esta nova versão do ICMP, embora apresente as mesma funções que o ICMPv4, como reportar erros no processamento de pacotes e enviar mensagens sobre o status a as características da rede, ela não é compatível com seu antecessor, apresentando agora um número maior de mensagens e funcionalidades. O ICMPv6, é agora o responsável por realizar as funções dos protocolos ARP (Address Resolution Protocol), que mapeia os endereços da camada dois para IPs e vice-versa no IPv4, e do IGMP (Internet Group Management Protocol), que gerencia os membros dos grupos multicast no IPv4. O valor no campo Próximo Cabeçalho, que indica a presença do protocolo ICMPv6, é 58, e o suporte a este protocolo deve ser implementado em todos os nós.
3.5 - Auto configuração Stateless ( SLAAC ) (IPv6.br, 2015)
	O mecanismo de autoconfiguração stateless, definido na RFC 4862, permite que endereços IPv6 sejam atribuídos às interfaces sem a necessidade de configurações manuais, sem a utilização de servidores adicionais (DHCP), apenas com configurações mínimas de roteadores. Para gerar o endereço IP, um host utiliza uma combinação entre dados locais, como o endereço MAC da interface ou um valor randômico para gerar o ID, e informações recebidas dos roteadores, como múltiplos prefixos. Se não houver roteadores presentes, o host gera apenas o endereço link local com o prefixo FE80::. Roteadores só utilizam este mecanismo para gerar endereços link-local. Seus endereços globais devem ser configurados de outra forma.
	Configuração do prefixo da rede
Obtido de um Roteador através do NDP
Mensagem RA ( Router Advertismente) anunciadas pelos roteadores.
Em resposta a uma RS ( Router Solicitation) Enviada pelo host.
Também enviada periodicamente
	Configuração do endereço host
Os últimos 64bits do endereço são gerados apartir do endereço físico MAC
Como o MAC tem apenas 48 bits é necessário um complemento.
Aplica-se o IEEE EUI-64 que completa os 16 que faltam.
O MAC é dividido ao meio ficando 24 bits de cada lado.
É introduzido os 16 bits FFFF entre cada uma das partes
Além disso o sétimo bit é invertido
4 - TÉCNICAS DE TRANSIÇÃO ( TUNELAMENTO ) (IPv6, 2015)
	Por que devemos migrar para o IPv6?
O esgotamento do ipv4 já é uma realidade. A IANA não tem blocos para locar, apenas o regional Africano esta confortável atualmente e a transição deve iniciar o quanto antes.
4.1 - Devemos Iniciar a transição já.
Como migrar da rede ipv4 para ipv6?
Não haverá uma data pré-definida para a migração e para que a transição entre os dois Protocolo Internet ocorra de forma gradativa e sem
maiores impactos no funcionamento das redes, é necessário que exista um período de
coexistência entre os protocolos IPv4 e IPv6.
Funcionam na pratica como duas redes diferentes, são “ Ilhas” independentes, que funcionando lado a lado o usuário não perceberá tanto essas mudanças.
	As técnicas de transição são dividida em três grupos:
Pilha dupla
Tunelamento
Tradução (NaT)
4.2 - Pilha dupla
A mais simples de todas as técnicas de transição.
A técnica que deve ser a preferida sempre que possível.
Os hosts trabalham com as duas pilhas de ip a v4 e a v6
Assim os hosts acessão tanto a internet v4 quanto a v6.
Totalmente transparente ao usuário.
4.2.1 - Problemas na técnica
Como toda técnica de transição tem seus problemas:
Manter as duas pilhas simultaneamente em operação significa manter duas redes lógicas, ou seja gerenciamento dobrado ( Vlans, Regras de Firewall, DHCPs e etc), outro problema é a questão do DNS, que executavam a pimeira resposta que viesse e se a primeira fosse ipv4 mesmo que resolvessem o nome para v6 o navegador acessaria o servidor via v4. Num segundo momento, ao tentar resolver um nome os navegadores esperavam a resposta IPv6 primeiro mesmo que recebesse a resposta ipv4 ele continuava esperando a resposta ipv6, isso tornava a navegação mais lenta. 
Esse problema foi resolvido com o algoritmo FAST-FALLBACK (RFC 6555). Que prefere a resposta ipv6 porém executa a resposta ipv4 sem esperar muito.
4.3 - Tunelamento (IPv6, 2015)
Segundo a equipe IPv6.br as técnicas de tunelamento são muitas, em resumo elas se consistem em criar um túnel e ipv4 em uma rede ipv6 ou vice versa, porém é difícil avaliar qual é a melhor, varia de caso a caso.
Veremos os túneis:
6in4
Teredo
4.4 - Tunelamento: 6in4 (IPv6.br, 2015)
	O encapsulamento é, em si, muito simples. Contudo, ao encapsular um pacote IPv6 dentro de outro IPv4, algumas questões de complexidade maior devem ser tratadas. Por exemplo, pode não haver espaço suficiente para o pacote e deve-se, ou fragmentá-lo, ou devolver uma mensagem ICMPv6 packet too big para quem o originou. Deve-se também converter erros ICMPv4 que aconteçam ao longo do caminho em erros ICMPv6. 
É possível configurar túneis manualmente, usando o 6in4. Essa configuração consiste basicamente em definir os endereços IPv4 de origem e destino utilizados em cada extremidade do túnel.
Túneis IPv6 estáticos, configurados manualmente, são úteis em diversas
situações. Por exemplo, podem ser utilizados para contornar um equipa-
mento ou enlace que não suporta IPv6 numa determinada rede. Podem
também interligar duas redes IPv6 por meio da Internet IPv4.
5 IMPLEMENTAÇÃO PRATICA DE TUNELAMENTO 6in4	
Ferramenta utilizada para simular o tunelamento 6in4 foi o packettracer da cisco. Usamos uma topoligia física da seguinte forma. 3 roteadores 2911 sendo router1 com ipv4 na serial simulando uma conexão WAN com router de internet e interface da rede LAN (local area network) protocolo Ipv6. E o router3 da mesma com a mesma topologia do router1. Conforme a figura 1.		
 Cenário tunelamento ipv6 6in4.
Figura 1 – Cenário tunelamento ipv6 6in4
Fonte: Autoria Própria
	Segue configuração (Trecho de código 1) feita no router1,que foi repedida no router3 apenas mudando os IPs
	# Configuração do router 1
Router_1#show run
Building configuration...
Current configuration : 1147 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router_1
!
no ip cef
ipv6 unicast-routing
!
no ipv6 cef
!
license udi pid CISCO2911/K9 sn FTX15242MT2
!
spanning-tree mode pvst
!
interface Tunnel0
 no ip address
 mtu 1476
 ipv6 address FD00:CAFE::/127
 tunnel source Serial0/0/0
 tunnel destination 203.0.113.6
 tunnel mode ipv6ip
!
interface GigabitEthernet0/0
 no ip address
 duplex auto
 speed auto
 ipv6 address 2001:DB8:CAFE:1::1/64
 ipv6 enable
!
interface GigabitEthernet0/1
 no ip address
 duplex auto
 speed auto
 shutdown
!
interface GigabitEthernet0/2
 no ip address
 duplex auto
 speed auto
 shutdown
!
interface Serial0/0/0
 ip address 203.0.113.1 255.255.255.252
 clock rate 2000000
!
interface Serial0/0/1
 no ip address
 clock rate 2000000
 shutdown
!
interface Vlan1
 no ip address
 shutdown
!
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0/0/0 
!
ip flow-export version 9
!
ipv6 route 2001:DB8:CAFE:2::/64 FD00:CAFE::1
!
line con 0
!
line aux 0
!
line vty 0 4
 login
!
end
Trecho de Código 1 - Configuração router1.
Fonte: Autoria Própria
	Teste de comunicação usando protocolo ICMPv6.
Figura 2 - Teste ICMPv6.
Fonte: Autoria Própria.
5.1 -Tunelamento: Teredo (IPv6.br, 2015)
			A técnica de tunelamento automática Teredo, definida na RFC 4380, permite que nós localizados atrás de Network Address Translations (NAT), obtenham conectividade IPv6 utilizando o protocolo UDP.
			A conexão é realizada através de um Servidor Teredo que a inicializa, e determinar o tipo de NAT usada pelo cliente. Em seguida, caso o host de destino possua IPv6 nativo, um Relay Teredo é utilizado para criar uma interface entre o Cliente e o host de destino. O Relay utilizado será sempre o que estiver mais próximo host de destino, e não o mais próximo ao cliente.
			Esta técnica não é muito eficiente devido ao overhead e a complexidade de seu funcionamento, entretanto, quando o host está atrás de NAT, ela é uma das únicas opções.
			Por padrão, o Windows Vista já traz o Teredo instalado e ativado, enquanto que no Windows XP, 2003 e 2008, ele vem apenas instalado. Quanto ao FreeBSD e ao Linux, ele não vem instalado, por isso criaram uma solução chamada miredo para plataformas Linux.
		
5.2 - Teste tunelamento teredo usando maquina Ubuntu server 14.04
Em maquina UNIX, a técnica de tunelamento teredo não vem instalada por padrão, por isso temos que instalar manualmente. Em plataforma Linux o tunelamento teredo e feito por um software chamado miredo, esse software e instalado via apt-get e cria uma interface virtual de túnel com um endereço já configurado por padrão 2001:0 para se conectar a rede ipv6, conforme Trecho de Código 2.
	1º passo
apt-get update
2º passo
apt-get install miredo
3º passo
/etc/init.d/miredo start (para iniciar o tunelamento)
/etc/init.d/miredo stop (para parar o tunelamento)
Trecho de Código 2 - Configuração de máquina Linix.
Fonte: Autoria Própria.
Segue testes feitos
Tunelamento stopping
Figura 4 - Tunelamento teredo em stop.
Fonte: Autoria Própria.
Teste de ping em rede ipv6 resposta rede inalcançável 
Figura 5 – Teste de Ping Inalcançável.
Fonte: Autoria Própria
Starting tunelamento teredo
Figura 6 – Inicializando o Tunelamento.
Fonte: Autoria Própria.
Teste ping rede ipv6 
Figura 7 – Teste de Ping IPv6 Realizado com Sucesso.
Fonte: Autoria Própria
Interface virtual teredo 
Figura 8 – Interface Teredo.
Fonte: Autoria Própria
Conclusão:
Por fim, o trabalho se iniciou com uma explicação sobre o que é o IPv6 a sua necessidade de implementação, como o mesmo é comparado com IPv4, e como eles se integram na rede. Esses elementos possibilitam complementar o entendimento na escolha do uso de tunelamento ou 6in4, que o cabeçalho ipv6 é enviado dentro do pacote ipv4, e o teredo, em que o pacote ipv6 é enviado através do protocolo UDP. Essas foram as ferramentas mais adequadas para de tunelamento existentes para IPv6.
O objetivo desse trabalho foi testar ferramentas para transição IPv4 para IPv6, usamos o túnel 6in4 que é uma configuração manual em topologia Cisco, também a técnica teredo implementada pela Microsoft, e não vem habilitado na plataforma Unix.
Futuramente com mais demanda de IPs usaremos mais a tecnologia IPv6 pois ela tem um endereçamento maior assim não podendo descarta os IPv4 já existentes na internet, com isso teremos a tecnologia de transição de tunelamento IPv6 para IPv4 mais frequente e mais utilizada junto as redes existentes.
Referências Bibliográficas:
LOPES, Alexandre. Curso IPv6. Vídeo Aulas Academia do IP. Publicado em 9 de dez de 2014. Disponível em: <://www.youtube.com/watch?v=b9qNwC8GNHU&index=14&list=PLeEwm3ybOwY121btEBRcX4TReTEnTGquJ>. Acessado em 10/10/2015.
IPv6.br. Disponível em: <http://ipv6.br/post/habilitando-ipv6-no-windows/>. 
	Acesso em: 16 out 2015.
SALVO, Rodrigo. Configurando Túnel Teredo no Linux para acessar sites IPv6.
	Disponível em: http://www.ti-redes.com/ipv6/tunel-teredo-linux/. Acessado em 18/10/2015.

Continue navegando