Beruflich Dokumente
Kultur Dokumente
Dezembro de 2006
ii
Dezembro de 2006
iii
(Mário Schenberg)
v
.Agradecimentos
A Deus por segurar minha mão nos momentos em que tive medo e também nos momentos de
maior alegria.
Agradeço ao Professor Sidney Pio de Campos, meu orientador, que acreditou em mim e
incentivou-me para a conclusão deste trabalho, face aos inúmeros percalços do trajeto. Pela
amizade e companheirismo que só um verdadeiro mestre sabe expressar.
Meus mais sinceros agradecimentos aos meus amigos Marcel e Thiago que sempre me
incentivaram e com os quais dividi momentos muito especiais durante esses 5 anos.
Alguns experimentos e vários “entendimentos” não teriam sido possíveis sem a colaboração
de Cleber Zorzi, Caio Marcelo Franco, Daniel Meireles, Marcel Carbol e prof. Rodrigo Prado.
Sumário
1 INTRODUÇÃO .................................................................................................................. 1
3 MIGRAÇÃO ...................................................................................................................... 9
3.1 Dual Stack - Pilha Dupla ............................................................................................. 10
3.2 Tunelamento ................................................................................................................ 11
3.2.1 6to4 ....................................................................................................................... 11
3.3 IPv6 Suporte – Sistemas Operacionais ....................................................................... 12
3.3.1 Microsoft Windows .............................................................................................. 12
3.3.2 Linux..................................................................................................................... 13
3.3.3 FreeBSD ............................................................................................................... 14
3.4 IPv6 – Situação Atual .................................................................................................. 14
3.5 Roteiro de Migração .................................................................................................... 15
4 TESTES ............................................................................................................................ 17
4.1 Testes – Modelo de Rede 1 ......................................................................................... 17
4.2 Testes – Modelo de Rede 2 ......................................................................................... 18
5 CONCLUSÃO .................................................................................................................. 24
Lista de Siglas
Lista de Figuras
Lista de Tabelas
Resumo
Esta monografia apresenta conceitos teóricos e abordagem prática sobre migração IPv4-
IPv6. A abordagem prática é baseada no Sistema Operacional FreeBSD, com o qual foram
realizados testes envolvendo conceitos de endereçamento e roteamento. São apresentados
também mecanismos de transição e um levantamento sobre a viabilidade da implementação
do protocolo IPv6 utilizando-se os Sistemas Operacionais Microsoft Windows, FreeBSD e
Linux.
Abstract
This monograph presents theoretical concepts and practical approach about IPv4-IPv6
migration. The practical approach is based on the FreeBSD Operating System, which were
carried out tests involving concepts of addressing and routing. Also are presented transition
mechanisms and a research about the feasability of IPv6 protocol implementation using the
Microsoft Windows, FreeBSD and Linux Operating Systems.
1 INTRODUÇÃO
Nos últimos 10 anos o IPv6 vem se tornando popular entre pesquisadores, instituições de
ensino, desenvolvedores de software e até mesmo usuários domésticos.
Muitos Sistemas Operacionais já possuem IPv6 nativo e novos hardwares com suporte ao
novo protocolo surgem a cada dia.
Embora seja um assunto abordado com freqüência em artigos como [1] , [5] , [10] , [11]
e [12] , e até mesmo nas bibliografias mais recentes de redes, existem poucos estudos
profundos sobre a migração de IPv4 para IPv6.
O principal objetivo desse trabalho é a apresentação de considerações importantes sobre a
migração, a realização de um estudo sobre a viabilidade de redes IPv6 e a definição de um
plano de transição que garanta a continuidade dos serviços durante esse período.
O resultado que se espera dessa pesquisa é um levantamento teórico sobre estratégias de
migração que possibilite a escolha da mais viável e sua demonstração prática.
A próxima seção apresenta os conceitos fundamentais de IPv6; na seção 3 será dado o
embasamento teórico sobre a migração IPv4-IPv6; os resultados dos testes serão mostrados na
seção 4 e finalmente na seção 5 serão apresentadas as conclusões.
2
Este capítulo apresenta alguns conceitos do protocolo IPv6 que, embora sejam básicos,
são extremamente necessários para a compreensão dos tópicos que o seguem.
Segundo [4] IPv6 muda completamente o formato do datagrama com relação ao IPv4,
conforme se pode observar na Figura 1.
Fazendo uma comparação com [2] , nenhuma alteração foi feita na estrutura do cabeçalho
básico, como se pode observar na Figura 2.
ENDEREÇO DE ORIGEM
ENDEREÇO DE DESTINO
De forma resumida pode-se dizer que cada datagrama IPv6 começa com um cabeçalho
básico de 40 octetos, que incluem campos para os endereços de origem e destino, o limite
máximo de saltos, a classe de tráfego, o rótulo de fluxo e o tipo do próximo cabeçalho. Assim
um datagrama IPv6 precisa conter no mínimo 40 octetos além dos dados.
4
2.4 Endereçamento
Segundo [8] , endereços IPv6 podem ser de três tipos: unicast, anycast e multicast :
o Unicast : identificador para uma única interface, um pacote transmitido a um endereço
unicast é entregue à interface identificada por este endereço;
o Anycast : identificador para uma série de interfaces, tipicamente de diferentes nós. Um
pacote transmitido a um endereço anycast é entregue à uma das interfaces
identificadas por este endereço, a mais próxima de acordo com os protocolos de
roteamento;
o Multicast : identificador para uma série de interfaces, tipicamente de diferentes nós. O
pacote transmitido a um endereço multicast é entregue a todas as interfaces
identificadas com este endereço. Não há endereço de broadcast, sendo o multicast o
sucessor desta funcionalidade.
Não há endereçamento para a rede nos moldes do IPv4, sendo que cada interface
integrante de uma rede pode ser considerada a identificadora daquela rede.
No modelo de endereçamento do IPv6 os endereços são sempre atribuídos a uma
interface e nunca a um nó. Uma vez que toda interface pertence a um nó, qualquer endereço
unicast de qualquer interface pode ser utilizado como identificador desse nó. Uma única
interface pode ter vários endereços unicast, anycast ou multicast, de vários escopos. O
corrente modelo de endereçamento equivale ao IPv4, onde um endereço de rede é associado a
um link.
Endereços IPv6 tem a seguinte representação, notando-se que os zeros podem ser
omitidos, conforme a Tabela 1.
Endereço Abreviação Tipo
2001:DB8:0:0:8:800:200C:417A 2001:DB8::8:800:200C:417A Unicast
FF01:0:0:0:0:0:0:101 FF01::101 Multicast
0:0:0:0:0:0:0:1 ::1 Loopback
0:0:0:0:0:0:0:0 :: Unspecified
Semelhante ao modo IPv4 com CIDR, um endereço IPv6 com prefixo pode ser
representado como a seguir :
5
endereço-ipv6/tamanho-do-prefixo
--------------------------->60bits mais significativos
12AB:0000:0000:CD30:0000:0000:0000:0000/60 ou abreviadamente 12AB:0:0:CD30::/60
Os principais tipos de endereços unicast são, Global, Site-local (em desuso) ou Link-
local. Contém uma porção do endereço de tamanho arbitrário chamado prefixo, (composto
pelo prefixo de roteamento global e identificador de subrede) e o identificador de interface,
conforme a Figura 3.
Endereços Unicast site local, apesar de estarem obsoletos conforme [8] , podem ser
usados para endereçamento de máquinas em uma rede local, e devem ser tratados pelas novas
implementações como se fossem endereços globais.
2.5.4 Localhost
2.5.5 Não-especificado
Endereço genérico, que não pode ser usado como endereço de destino, tipicamente
0.0.0.0 em IPv4, 0000:0000:0000:0000:0000:0000:0000:0000 ou :: em IPv6.
Esse tipo de endereço não possui prefixo
Uma possibilidade para eliminar essas preocupações, segundo [5] , seria o uso de um
MD5 hash para gerar números randômicos que alterariam os identificadores de rede tornando
impossível identificar um dispositivo móvel. Infelizmente esse recurso poderia ser aplicado
somente à autoconfiguração stateless, uma vez que os endereços determinados por DHCP
devem mudar com menor freqüência.
9
3 MIGRAÇÃO
A seguir serão apresentados pontos muito importantes relativos à migração de IPv4 para
IPv6. De acordo com [10] as duas tecnologias deverão coexistir por alguns anos.
Usuários domésticos poderiam migrar de IPv4 para IPv6 sem maiores complicações,
porém nas grandes corporações é essencial que a migração seja parcial garantindo segurança,
compatibilidade entre as duas tecnologias e um custo razoável.
As seguintes considerações não podem ser deixadas de lado:
o Grandes indústrias provavelmente apresentarão resistência à migração, uma vez que
enxergam computadores como simples ferramentas para fazer negócios, ou seja, o
tipo de tecnologia utilizada por eles não tem a menor importância. Migrar significa
correr o risco de tirar sistemas do ar e perder dinheiro.
o Hardwares e softwares que já suportam IPv6 deverão contemplar IPv4 ainda na
próxima década para permitir a coexistência.
o Sistemas antigos deverão continuar operando e precisam estar adeptos a se comunicar
utilizando ambas as tecnologias.
o Durante a migração serão necessárias ferramentas de gerenciamento para auxiliar na
detecção de rotas e possíveis pontos de tradução, por exemplo.
o DNS deverá responder aos dois tipos de host IPv4(32 bits) e IPv6(128 bits)
o Mecanismos de encapsulamento serão necessários para permitir a coexistência dos
dois tipos de endereçamento.
Embora a solução IPv6 já esteja finalizada, toda a estrutura atual de internet funciona
com IPv4. Portanto conectar redes IPv6 à internet requer interoperabilidade com hosts IPv4 e
um esquema para interconectar redes IPv6 através da estrutura atual (IPv4).
Desta forma, mecanismos de transição são necessários para garantir a coexistência,
conforme citado acima.
Desde o início do projeto IPv6, estratégias de transição têm sido desenvolvidas. Neste
trabalho as três estratégias mais utilizadas são abordadas:
o Dual-Stack: Todos os roteadores da rede trabalham com IPv4 e IPv6. É importante
ressaltar que nesse modelo ambos têm suas funcionalidades completas funcionando
independentemente.
10
o IPv6 sobre IPv4 utilizando túneis: Pacotes IPv6 são encapsulados em pacotes IPv4.
Existem muitas maneiras de se trabalhar com tunelamento, algumas delas são: túneis
configurados manualmente, mecanismos de túneis semiautomáticos e mecanismos de
túneis totalmente automáticos.
o Translation: A técnica utilizada nesse método é muito similar ao NAT IPv4, o que
pode não ser muito viável já que não permite a utilização de algumas das melhorias do
IPv6.
A seguir apresenta-se um breve esclarecimento sobre as duas estratégias abordadas na
parte prática desse trabalho.
Assim quando um host operando em Dual Stack se comunica com um nó IPv6, opera
como se fosse unicamente IPv6. Quando a comunicação é estabelecida com um host IPv4, da
mesma forma, opera como se fosse puramente IPv4.
Utilizar Pilha Dupla significa duplicar tabelas de roteamento e oferecer suporte IPv4 e
IPv6 dentro de uma mesma rede, o que pode significar também duplicar gastos com
gerenciamento e treinamento de pessoas que possam oferecer suporte à ambos.
O DNS poderá retornar IPv4, IPv6 ou ambos endereços Isso pode causar problemas para
os clientes DNS IPv4, pois estes não conseguem distinguir os endereços.
11
Um nó com os dois protocolos habilitados terá endereços IPv4 e IPv6. O endereço IPv6
pode ser atribuído dinamicamente (stateful ou stateless) ou manualmente e cada interface
deve ter no mínimo um endereço link-local. É necessário ainda a utilização do DHCP para
distribuição dos endereços IPv4 .
A principal vantagem de utilizar Pilha Dupla é a possibilidade de uma migração gradual,
ou seja, os recursos IPv4 não serão desativados repentinamente o que garante que nenhum
recurso da rede ficará indisponível.
Pode haver a necessidade de 2 tabelas de roteamento e 2 processos distintos de
roteamento dependendo do protocolo utilizado. Essa característica é considerada uma
desvantagem dessa estratégia de migração.
3.2 Tunelamento
De acordo com [9] , a idéia básica da implantação de túneis é que dois nós IPv6
conectados por roteadores IPv4 possam interagir utilizando datagramas IPv6.
Após a implantação dessa estratégia, o roteador IPv4 passará a ser visto como um túnel.
Assim o pacote IPv6 será encapsulado em um pacote IPv4 antes do envio. Quando o nó
receptor do outro lado do túnel recebe esse pacote e identifica a existência de um datagrama
IPv6, este é extraído.
O pacote IPv6 fica armazenado na área de dados do pacote IPv4, o que faz com que esse
processo seja transparente para os roteadores IPv4 .
Existem muitas formas de se implantar túneis, podendo a configuração ser manual ou
automática.
Nesse trabalho abordaremos apenas o método 6to4 por ser o mais utilizado e de
implementação relativamente simples, segundo [11] .
3.2.1 6to4
De acordo com a [3], esse método atribui um prefixo IPv6 único a um endereço IPv4
global, habilitando assim um mecanismo de encapsulamento para transmitir pacotes IPv6
através de uma rede IPv4. A rede IPv4 é tratada como um endereço unicast ponto-a-ponto e
durante a transmissão o pacote IPv6 fica armazenado na área de dados do pacote IPv4.
Em resumo podemos dizer que o pacote é encapsulado na em uma ponta do túnel e
extraído na extremidade oposta.
Para que a configuração automática dos túneis seja possível, são utilizados endereços
IPv6 com o seguinte formato: 2002:V4ADDR::/48.
Além disso, são necessários roteadores de borda, que contenham ao menos um endereço
6to4 para fazer a comunicação entre as redes IPv6 utilizando a estrutura já existente IPv4.
A primeira versão de Windows com IPv6 nativo foi o Server 2003, e a primeira versão
operando um cliente IPv6 foi o Windows XP após a implementação do Service Pack 2.
Para versões mais antigas como Windows 98/2000 existem aplicações que podem ser
instaladas para que esses sistemas operacionais permitam habilitação de IPv6. Porém a
Microsoft criou um incentivo de upgrade para todos os interessados em migrar para IPv6,
porque trabalhando com versões mais antigas não é possível implementar todas as novas
funcionalidades do IPv6.
Infelizmente, migrar os sistemas operacionais provoca um considerável aumento de
custo, principalmente para empresas de grande porte, o que pode retardar a adoção do novo
protocolo.
Testes de desempenho relatados em [12] , comparando Microsoft Windows, Linux
RedHat e FreeBSD, indicam o Microsoft Windows como o sistema operacional com
performance mais sofrível dentre os três.
Os seguintes aplicativos são compatíveis com IPv6 desde a versão XP, segundo [14]:
o Cliente FTP: ftp.exe - Pode se comunicar tanto com servidores FTP IPv4 quanto com
IPv6
13
o Cliente Telnet: telnet.exe - Pode se comunicar tanto com servidores FTP IPv4 quanto
com IPv6
o Navegador: Internet Explorer – Um detalhe importante é o fato desse browser não
poder navegar em sites da Web IPv6 se estiver configurado para usar um servidor
proxy.
Além disso alguns aplicativos distribuídos gratuitamente também podem ser utilizados
com Windows, de acordo com [1] :
o Navegador: Mozilla, lynx, opera, Firefox
o DHCPv6: dibbler
3.3.2 Linux
A primeira versão do kernel a suportar IPv6 foi a 2.2. Segundo [5] o kernel com maior
estabilidade, considerando IPv6, é o 2.4, embora todas as versões mais recentes também
possuam IPv6 nativo.
Nos testes de desempenho documentados por [12] , o Sistema Operacional Linux,
distribuição RedHat, foi o que atingiu as melhores marcas.
Durante as pesquisas para o desenvolvimento dessa monografia foi possível observar que
o material de consulta sobre IPv6 para Linux se apresentou mais bem elaborado, com
documentações sempre bem detalhadas o que pode ser um facilitador para iniciantes.
Os seguintes aplicativos para Linux são compatíveis com IPv6, segundo [13] e :
o E-mail: Sendmail e qmail
o DNS: BIND 9
o Acesso remoto: SSH
o Servidor FTP: Media Access Control
o Cliente FTP: NcFTP
o Servidor Web: Apache e thttpd
o Browser: Mozilla, lynx, opera
o Monitoramento de Rede: tcpdump
o Sniffer: Ethereal
o Multimídia - Som: xmms (similar ao winamp)
o Multimídia – Vídeo: Mplayer
o DHCPv6 – dibbler
14
3.3.3 FreeBSD
Nessa seção apresentaremos uma sugestão de guia para migração, elaborado com base
nos pontos abordados em [5] .
Fase 1
o Checar com seu provedor de internet quando estarão disponíveis os endereços IPv6
o Caso seja necessário migrar para outro provedor, planejar com cuidado para que não
haja perda de desempenho na rede
Fase 2
o Verificar o impacto que uma possível mudança de provedor teria para seus clientes e
parceiros
o Assegurar que seus endereços IPv4 serão mantidos durante o período em que os dois
protocolos deverão coexistir
Fase 3 – Avaliação da infra-estrutura
o Certificar-se que roteadores e firewalls estão prontos para trabalhar com IPv6, e que o
tráfego será gerenciado da mesma forma o tráfego IPv4, evitando assim
congestionamentos na rede e perda de desempenho quando os serviços são acessados
através de IPv6.
o Deixar de utilizar NAT pode significar problemas com relação à segurança, portanto é
necessário uma avaliação detalhada da topologia da rede e das diretrizes aplicadas
pelo firewall.
o Os Servidores de DNS e DHCP devem ser migrados para uma versão que suporte
IPv6.
Fase 4 – Determinação dos custos e início da atualização
o Iniciar uma análise dos sistemas críticos e equipamentos que não suportam IPv6, por
exemplo, servidores web, desktops e roteadores.
o Determinar os custos para atualizar esses equipamentos e sistemas para que suportem
IPv6
o Atualizar os Sistemas Operacionais
Fase 5 – Endereços IPv6
o Fazer uma previsão da quantidade de endereços IPv6 necessária para atender a
necessidade atual
16
4 TESTES
Nesta seção apresentaremos os resultados dos testes realizados com base no estudo
teórico realizado anteriormente. A prática desse trabalho está dividida em duas partes
principais, basicamente porque o desenho de rede proposto inicialmente apresentou alguns
problemas, conforme demonstra-se no item seguinte.
Internet
Gateway
Maq 2 Maq 3
Maq 7 Maq 8
R R
Rede 2 Rede 1
O O
T T Rede 4
Rede 3
Com base no layout apresentado, todas as redes deveriam se comunicar através dos
18
roteadores, que também deveriam rotear pacotes até o gateway, quando o destino fosse a
internet. O mapeamento da rede pode ser consultado no Apêndice 1.
O Sistema Operacional utilizado nos testes foi FreeBSD versão 6. Foram necessárias
algumas configurações no arquivo rc.conf que podem ser consultadas no Apêndice 2.
O primeiro teste foi realizado com ping e ping6 entre máquinas de uma mesma rede. O
objetivo foi verificar que as máquinas reconhecem pacotes IPv4 e IPv6.
A seguir configuramos uma rota default entre as redes 1 e 4 e repetimos o teste, agora
executando ping e ping6 entre máquinas das redes 1 e 4. Nessse passo verificamos que o
roteamento estático entre as redes funcionou perfeitamente.
O passo seguinte seria configurar o roteamento dinâmico para IPv6 utilizando o
aplicativo route6d. As máquinas utilizadas para a realização dos testes possuíam apenas 1
interface de rede, desta forma foi necessário atribuir mais de um endereço IP para as
interfaces dos roteadores, simulando as várias redes. Não obtivemos sucesso nesse teste
possivelmente por estarmos trabalhando com muitos endereços na mesma interface física.
Continuar os testes com esse modelo, sem a funcionalidade de roteamento dinâmico, se
mostrou inviável. Assim surgiu a segunda proposta prática que será descrita no item seguinte.
IPv6,IPv4 IPv6
SA KODA LAPSID
SK0 SK0 SK1 RL0
IPv6,IPv4 IPv6
O primeiro passo na execução dessa fase foi a configuração das estações SA, KODA e
LAPSID com endereços IPv6, através do arquivo rc.conf.
Outros parâmetros foram alterados no rc.conf para habilitar IPv6, interfaces de rede e a
utilização de rotas dinâmicas. O arquivo rc.conf de cada uma das estações pode ser consultado
no Apêndice 4.
Nas figuras seguintes é mostrado o resultado da execução do comando ifconfig em cada
uma das estações. É importante observar que existe um endereço IPv6 default para todas as
interfaces. Isso acontece porque o FreeBSD possui IPv6 nativo, portanto um endereço link
local é sempre atribuído automaticamente a todas as interfaces.
20
Figura 9: ifconfig SA
21
Trabalhando com um roteador que possui duas interfaces de rede distintas o aplicativo
route6d funcionou perfeitamente na propagação e aprendizagem de rotas. Os resultados
puderam ser observados através da execução do comando ping6 e traceroute6, conforme a
Figura 11.
22
Testes básicos com DNS foram realizados, incluindo os registros AAAA no mapa do
Servidor de DNS para resolução direta, conforme o exemplo ilustrado na Figura 13.
Após a configuração do DNS, novos testes com ping6 foram executados utilizando-se o
nome da estação, configurado anteriormente, ao invés do endereço IP.
Além dos testes mencionados acima, foram realizadas experiências para tentar
estabelecer um túnel 6to4 entre a estação KODA e uma quarta estação, acoplada a essa
estrutura apenas para realização desse teste específico. Porém essa experiência não foi
concluída com sucesso. A principal dificuldade para a implementação desse tipo de túnel foi a
escassez de material de consulta disponível sobre o assunto. Acreditamos que um dos
problemas seja no endereçamento, uma vez que o túnel pareceu estar criado, porém o
endereço 6to4 não foi atribuído à interface de rede com sucesso.
24
5 CONCLUSÃO
Futuras abordagens sugeridas a partir desse trabalho são: testes com o aplicativo rtadvd para
validação da distribuição automática de prefixos, implementação de túneis 6to4 para conectar
duas redes IPv6 remotas, redes nativas IPv6, testes em ambiente produtivo com endereços
IPv6.
26
Referências Bibliográficas
[1] BIERINGER Peter; BARALDI Federico; PIUNNO Simone; TORTONESI Mauro; TOSELLI Emanuele;
TUMIATI Dario Current Status of IPv6 Support for Networking Applications, October 2006 URL:
http://www.deepspace6.net/docs/ipv6_status_page_apps.html#id2887270
[2] CARBOL, Marcel Angelo IPv6 – Conceitos e Análise de Desempenho 2005. Trabalho de Conclusão de
Curso - Engenharia de Computação, Universidade São Francisco, Câmpus de Itatiba.
[3] CARPENTER, B.; MOORE, K. RFC 3056 – Connection of IPv6 Domains via IPv4 Clouds, February
2001
[4] COMER, Douglas E. Interligação de Redes com TCP/IP, vol 1, Editora Campus, 2006
[5] COOPER, Micah; YEN, David C. IPv6: business appplications and implementation concerns, Computer
Statndards & Interfaces, no 28, pp 27-41, November 2004
[6] DEERING S.; HINDEN R. RFC 2460 - Internet Protocol, Version 6 (IPv6), December 1998
[8] HIDEN, R; NOKIA; DEERING, S.; SYSTEMS, Cisco RFC 4291 – IP Version 6 Addressing
Architecture, February 2006
[9] KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma abordagem top-down,
3ª edição, São Paulo: Pearson Addison Wesley, 2006
[11] MCGEHEE, Brian; RICH Yurie A Discussion on IPv6 Transition Mechanisms Part 1
[12] MOHAMED S.S, Buhari M.S. and Saleem H. Performance comparsion of packet transmission over
IPv6 network on different platforms IEE Proc.-Commun., vol. 153, no. 3, pp 221- 230, June 2006