Curso de Engenharia de Computação
IPV6 - CONCEITOS DE MIGRAÇÃO
Ana Carolina Avoni Carvalho
Itatiba – São Paulo – Brasil
Dezembro de 2006
ii
Curso de Engenharia de Computação
IPV6 – CONCEITOS DE MIGRAÇÃO
Ana Carolina Avoni Carvalho
Monografia apresentada à disciplina Trabalho de
Conclusão de Curso, do Curso de Engenharia de
Computação da Universidade São Francisco, sob a
orientação do Prof. Ms. Sidney Pio de Campos, como
exigência parcial para conclusão do curso de graduação.
Orientador: Prof. Ms. Sidney Pio de Campos
Itatiba – São Paulo – Brasil
Dezembro de 2006
iii
IPv6 – Conceitos de Migração
Ana Carolina Avoni Carvalho
Monografia defendida e aprovada em 13 de Novembro de 2006 pela Banca
Examinadora assim constituída:
Prof. Ms. Sidney Pio de Campos (Orientador)
USF – Universidade São Francisco – Itatiba – SP.
Prof Ms Rodrigo Chavez Monteiro do Prado
USF – Universidade São Francisco – Itatiba – SP.
Prof Ms/Dr André Leon Sampaio Gradvohl
USF – Universidade São Francisco – Itatiba – SP.
iv
"É preciso que não tenham medo de dizer alguma
coisa que possa ser considerada como erro.
Porque tudo que é novo, aparece aos olhos
antigos como coisa errada. É sempre nesta
violação do que é considerado certo, que nasce o
novo e há a criação. E este espírito deve ser
redescoberto pela juventude brasileira"
(Mário Schenberg)
v
A meus pais Vilma e Wagner, sem os quais não
chegaria até aqui.
A minha avó que esteve sempre presente
cuidando de todos nós com carinho e atenção.
Ao meu namorado Eduardo por me mostrar que
com objetivos bem definidos podemos ir ao
infinito e fazer o impossível.
Aos meus verdadeiros amigos pela constante
colaboração e carinho.
Sou eternamente grato a todos.
vi
.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.
Eu agradeço fraternalmente a todos.
vii
Sumário
Lista de Siglas .......................................................................................................................... ix
Lista de Figuras ........................................................................................................................ x
Lista de Tabelas ....................................................................................................................... xi
Resumo .................................................................................................................................... xii
Abstract ................................................................................................................................... xii
1
INTRODUÇÃO .................................................................................................................. 1
2
IPV6 CONCEITOS BÁSICOS ......................................................................................... 2
2.1 Novas Funcionalidades do Protocolo ............................................................................ 2
2.2 Formato Geral de um Datagrama IPv6 ......................................................................... 3
2.3 Formato do Cabeçalho Básico do IPv6 ......................................................................... 3
2.4 Endereçamento .............................................................................................................. 4
2.5 Endereços Unicast ......................................................................................................... 5
2.5.1 Unicast Global ........................................................................................................ 5
2.5.2 Unicast Link Local ................................................................................................. 5
2.5.3 Unicast Site Local................................................................................................... 6
2.5.4 Localhost ................................................................................................................ 6
2.5.5 Não-especificado .................................................................................................... 6
2.5.6 Endereços compatíveis IPv4 – IPv6 ....................................................................... 6
2.6 Distribuição de Endereços ............................................................................................. 7
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
Apêndice 1 – Mapeamento da Rede 1 ................................................................................... 26
viii
Apêndice 2 – Arquivo rc.conf do Modelo de Rede 1 ........................................................... 27
Apêndice 3 – Mapeamento da Rede 2 ................................................................................... 27
Apêndice 3 – Mapeamento da Rede 2 ................................................................................... 28
Apêndice 4 – Arquivos rc.conf do Modelo de Rede 2 .......................................................... 29
Referências Bibliográficas ..................................................................................................... 31
ix
Lista de Siglas
CIDR
Classless Inter Domain Routing
DHCP
Dynamic Host Configuration Protocol
DNS
Domain Name Service
FTP
File Transfer Protocol
IDRP
Inter-Domain Routing Protocol
IP
Internet Protocol
ISIS
Intermediate system to intermediate system
MAC
Media Access Control
MD5
Message-Digest algorithm 5
NAT
Network Address Translation
OSPF
Open Shortest Path First
RIP
Routing Information Protocol
SSH
Secure Shell
x
Lista de Figuras
FIGURA 1: DATAGRAMA GERAL IPV6 ......................................................................................... 3
FIGURA 2:CABEÇALHO BÁSICO IPV6........................................................................................... 3
FIGURA 3: ESTRUTURA DO ENDEREÇAMENTO UNICAST .............................................................. 5
FIGURA 4: MÉTODO DE TRANSIÇÃO DUAL STACK OU PILHA DUPLA ......................................... 10
FIGURA 5: LAYOUT DE TESTES INICIAL ...................................................................................... 17
FIGURA 6: LAYOUT DA REDE 2 .................................................................................................. 19
FIGURA 7: IFCONFIG KODA ...................................................................................................... 20
FIGURA 8: IFCONFIG LAPSID .................................................................................................... 20
FIGURA 9: IFCONFIG SA ............................................................................................................. 20
FIGURA 10: ESTAÇÃO LAPSID APRENDENDO ROTAS ................................................................ 21
FIGURA 11: TESTE ROTEAMENTO DINÂMICO.............................................................................. 22
FIGURA 12: TESTES SSH ............................................................................................................. 23
FIGURA 13:CONFIGURAÇÃO DNS IPV4 E IPV6 ......................................................................... 23
FIGURA 14: RC.CONF KODA ..................................................................................................... 29
FIGURA 15: RC.CONF LAPSID .................................................................................................. 29
FIGURA 16: RC.CONF SA ............................................................................................................ 30
xi
Lista de Tabelas
TABELA 1: REPRESENTAÇÃO DE ENDEREÇOS IPV6...................................................................... 4
TABELA 2: ALOCAÇÃO DE PREFIXOS DE ENDEREÇOS RESERVADOS ............................................. 7
TABELA 3: TABELA DE MAPEAMENTO – REDE 1 ....................................................................... 26
TABELA 4: TABELA DE MAPEAMENTO – REDE 2 ....................................................................... 28
TABELA 5: DESCRIÇÃO SA, KODA E LAPSID ......................................................................... 28
xii
Resumo
Esta monografia apresenta conceitos teóricos e abordagem prática sobre migração IPv4IPv6. 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.
PALAVRAS-CHAVE: IPv6, IPv4, endereçamento, roteamento.
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.
KEY WORDS: IPv6, IPv4, addressing, routing.
1
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
2 IPV6 CONCEITOS BÁSICOS
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.
2.1 Novas Funcionalidades do Protocolo
O crescimento foi a necessidade básica que orientou os trabalhos para a padronização do
sucessor do atual protocolo IP, padrão mundial de endereçamento da Internet. A versão atual,
IPv4, tem aproximadamente 25 anos e foi padronizada através da IETF RFC-791.
De acordo com [6]as principais características introduzidas no novo protocolo são:
o Aumento da capacidade de endereçamento de 32 para 128 bits : suporta mais níveis de
hierarquia
de
endereçamento,
maior
quantidade
de
nós
endereçáveis,
e
autoconfiguração de endereços;
o Cabeçalho IP simplificado : campos excluídos ou tornados opcionais, reduzindo a
carga de processamento e o consumo de banda;
o Suporte para extensões e opções : mudança na codificação do cabeçalho para melhor
repasse, menor limitação do tamanho das opções e facilidade de introdução de novas
opções no futuro;
o Capacidade de etiquetar o fluxo de pacotes : fluxos especiais podem ser etiquetados
pelo emissor de modo a serem especialmente tratados conforme a necessidade;
o Capacidades de autenticação e privacidade : extensões para suporte a estas
capacidades são parte da especificação;
Esta nova implementação permite no máximo o endereçamento de 3.4 x 1038 nós, onde
cada nó é considerado qualquer dispositivo passível de receber um endereço único.
O roteamento, ou repasse de pacotes com informações com o IPv6 é basicamente o
mesmo do IPv4 com CIDR (Classless Inter-Domain Routing), com o endereçamento de 128
bits ao invés de 32 bits do IPv4, e com as extensões diretamente relacionadas, todos os
protocolos de roteamento (OSPF, RIP, IDRP, ISIS, etc. ) podem usados.
3
2.2 Formato Geral de um Datagrama IPv6
Segundo [4] IPv6 muda completamente o formato do datagrama com relação ao IPv4,
conforme se pode observar na Figura 1.
Cabeçalhos
Cabeçalho de
Básicos
Extensão 1
.......
Cabeçalho de
DADOS
Extensão N
Figura 1: Datagrama Geral IPv6
2.3 Formato do Cabeçalho Básico do IPv6
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.
VERS
CLASSE DE TRAFEGO
ROTULO DE FLUXO
TAMANHO DO PAYLOAD
PROXIMO CABEÇALHO
LIMITE DE SALTOS
ENDEREÇO DE ORIGEM
ENDEREÇO DE DESTINO
Figura 2:Cabeçalho Básico IPv6
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
Tabela 1: Representação de Endereços IPv6
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
Onde o tamanho do prefixo corresponde ao valor decimal da quantidade contígua de
bits significativos do prefixo.
2.5 Endereços Unicast
Os principais tipos de endereços unicast são, Global, Site-local (em desuso) ou Linklocal. 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.
|
n bits
| m bits |
128-n-m bits
|
+------------------------+-----------+----------------------------+
| global routing prefix | subnet ID |
interface ID
|
+------------------------+-----------+----------------------------+
Figura 3: Estrutura do Endereçamento Unicast
2.5.1 Unicast Global
Um endereço IPv6 Global é o identificador de interface com visão em toda a internet,
composto conforme o padrão acima mostrado na Figura 3.
2.5.2 Unicast Link Local
Endereços link-local são usados em links simples, para endereçamento automático,
pesquisa de rede ou quando roteadores não estão presentes. Pacotes com este endereçamento
de origem ou destino não devem ser repassados por roteadores.
6
2.5.3 Unicast Site Local
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
Endereço
da
interface
de
loopback,
tipicamente
127.0.0.1
em
IPv4,
e
0000:0000:0000:0000:0000:0000:0000:0001 ou ::1 em IPv6.
O endereço de loopback é um exemplo de endereço sem prefixo.
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
2.5.6 Endereços compatíveis IPv4 – IPv6
O endereçamento IPv6 possui compatibilidade com o endereçamento IPv4, através de
IPv6 com IPv4 embutido, de duas formas, utilizando o tamanho de prefixo especial 96 :
o IPv4-mapeado : a.b.c.d é a parte IPv4 em 0:0:0:0:0:ffff:a.b.c.d/96, ou abreviadamente
::ffff:a.b.c.d/96;
o IPv4-compatível : a.b.c.d é a parte IPv4 em 0:0:0:0:0:0:a.b.c.d/96, ou abreviadamente
::a.b.c.d/96;
Assim sendo, conforme [4] e [8] , a tabela de alocação de prefixos apresentada em [2]
sofreu alterações e deve ser substituída, de acordo com a Tabela 2, por:
7
Alocação
Prefixo (bin)
Início da Faixa de
Fração de Espaço de
Endereço (hexa)
Endereços
Reservado
0000 0000
0::/8
1/256
Reservado para NSAP
0000 001
200::/7
1/128
Reservado para IPX
0000 010
400::/7
1/128
Unicast Global
001
2000::/3
1/8
Fe80::/10
1/1024
FF00::8
1/256
Unicast
Local
ao 1111 1110 10
Enlace
Multicast
1111 1111
Tabela 2: Alocação de prefixos de endereços reservados
2.6 Distribuição de Endereços
De acordo com [5] o IPv6 oferece duas possibilidades de autoconfiguração de endereços:
stateful e stateless. A primeira é semelhante ao DHCP padrão onde as estações obtém
endereços e outras configurações de um servidor.
A configuração stateless não requer essa infraestrutura, o que a torna um dos aspectos
mais livres do IPv6. Esse tipo de autoconfiguração não requer configuração manual de hosts,
mínima ou nenhuma configuração de roteadores e não há necessidade de servidores
adicionais. Assim sendo um host pode gerar seu próprio endereço utilizando uma combinação
de informações locais disponíveis e informações enviadas por roteadores. O princípio básico
é: endereço IPv6 = Prefixo + Endereço MAC.
O uso do endereço MAC como parte do IP causou algumas preocupações com relação à
privacidade. Um bom exemplo é o caso de dispositivos móveis: como só o prefixo do
endereço é alterado de acordo com a devida topologia, um novo prefixo é determinado
quando localidade física muda, o que torna fácil a identificação de um dispositivo móvel.
Muitos dispositivos permitem sobrescrever o endereço MAC que é encaminhado ao
Sistema Operacional. Configurar dois endereços MAC iguais dentro da mesma subrede seria
uma outra situação delicada onde pacotes podem ser interceptados. Existe uma preocupação
semelhante no endereçamento IPv4, onde dois hosts poderiam ser configurados com o mesmo
IP, possibilitando o mesmo tipo de violação de segurança.
8
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.
3.1 Dual Stack - Pilha Dupla
Esse método de transição consiste em introduzirmos IPv4 e IPv6 no mesmo ambiente,
sendo necessária a atualização de hosts e roteadores para que suportem IPv6. Isso permite que
os hosts continuem acessando recursos IPv4 e possam também utilizar as novas
funcionalidades do IPv6. A Figura 4 ilustra de forma simples o mecanismo Dual Stack
Figura 4: Método de Transição Dual Stack ou Pilha Dupla
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
6to4 é um método de tunelamento automático. Consiste em rotear pacotes entre redes
IPv6 através de redes ou roteadores IPv4.
12
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.
3.3 IPv6 Suporte – Sistemas Operacionais
3.3.1 Microsoft Windows
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
Assim como outros sistemas BSD, o FreeBSD é baseado na implementação IPv6
KAME.
As novas versões já apresentam IPv6 nativo, sendo necessário apenas a alteração de
alguns parâmetros para que o Sistema Operacional seja capaz de trabalhar com IPv6 ou até
mesmo utilizando Pilha Dupla (Dual-Stack).
De acordo com os testes apresentados em [12] , o FreeBSD se aproxima muito dos
resultados de performance atingidos pelo RedHat Linux e é considerado um Sistema
Operacional que oferece uma solução IPv6 estável.
Todos os aplicativos mencionados no item anterior, com exceção do Media Access
Control, xmms e Mplayer, são compatíveis com o FreeBSD.
3.4 IPv6 – Situação Atual
A implantação de IPv6 no continente americano está se desenvolvendo de forma lenta se
comparada com Europa e Japão. Pesquisas atuais indicam que os Estados Unidos estão bem
atrasados com relação à migração o que pode trazer sérios problemas de conectividade
quando Europa e países Asiáticos adotarem a solução definitiva IPv6.
A China começou a se envolver na migração em 2005 e enxerga no IPv6 uma
oportunidade única para resolver a escassez de endereços, uma vez que sua população é
grande e as novas tecnologias indicam que num futuro próximo cada eletrodoméstico
existente em uma casa poderá possuir um IP.
A migração para IPv6 trará muitos benefícios conforme mostrado anteriormente, porém
soluções existentes hoje deverão sofrer atualizações para que sejam compatíveis com o novo
protocolo. Para evitar que sistemas como lojas e bancos virtuais fiquem indisponíveis por
problemas de conectividade, as empresas devem começar a elaborar seus planos de migração
com cautela e implementar gradualmente, evitando assim prejudicar seus negócios por
impossibilidade de entregar serviços.
15
3.5 Roteiro de Migração
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
o Efetuar um levantamento sobre as possíveis necessidades de crescimento do número
de endereços necessários
o Adquirir endereços IPv6 juntamente ao provedor determinado na fase 1.
Fase 6 – Técnicas de Migração
o Determinar qual estratégia de migração atende melhor as necessidades do
negócio/empresa.
o Fazer um levantamento detalhado de cada passo necessário para a implementação
dessa estratégia.
Fase 7 – Implantação
o Configurar os dispositivos da rede para trabalhar com IPv6, segundo a estratégia
determinada na fase anterior
o Adicionar endereços IPv6 aos servidores web e configurar o DNS IPv6 para apontar
para esses servidores.
o Finalmente migrar os desktops e substituir o NAT pelo firewall.
17
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.
4.1 Testes – Modelo de Rede 1
As estratégias de migração foram avaliadas e a proposta inicial é implementar uma rede
Dual Stack em um dos laboratórios da Universidade São Francisco.
Essa rede deveria se comunicar utilizando IPv4 ou IPv6 internamente, porém sua
comunicação com a internet seria realizada apenas com IPv4, ou seja, o gateway que leva os
pacotes para a internet deveria receber pacotes IPv4 e IPv6 e enviar somente pacotes IPv4.
A Figura 5 ilustra o layout da rede:
Internet
Gateway
Maq 2
Maq 3
Rede 2
Rede 3
Maq 4
Maq 5
Maq 7
R
R
O
O
T
T
Rede 5
Maq 8
Rede 1
Rede 4
Maq 9
Figura 5: Layout de testes inicial
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.
4.2 Testes – Modelo de Rede 2
A nova proposta prática simplificou o desenho inicial, porém continua utilizando o
mesmo Sistema Operacional e pretendendo estudar as mesmas funcionalidades.
O teste deve contemplar configuração de IPv6, testes de conectividade, roteamento
dinâmico, ssh, testes básicos com IPv4 para validar a possibilidade de trabalhar com Pilha
Dupla, DNS e tunelamento 6to4.
A Figura 6 ilustra o layout da nova rede e o mapeamento para esse modelo pode ser
consultado no Apêndice 3.
19
IPv6,IPv4
SA
IPv6
KODA
SK0
SK0
LAPSID
SK1
IPv6,IPv4
RL0
IPv6
Figura 6: Layout da Rede 2
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 7: ifconfig KODA
Figura 8: ifconfig LAPSID
Figura 9: ifconfig SA
21
Em seguida foram executados testes básicos de conectividade com os aplicativos ping e
ping6 entre interfaces da mesma rede.
Para possibilitar roteamento dinâmico foi utilizado o aplicativo route6d, que é baseado no
protocolo de roteamento RIPng. Esse protocolo é similar ao protocolo RIPv2, porém
contempla as seguintes diferenças: não implementa autenticação de pacotes, não suporta
múltiplas instâncias e não suporta grupos de tabelas de roteamento.
A estação KODA foi configurada para propagar e as demais para aprender as rotas. O
route6d foi habilitado com os parâmetros –l e –q, sendo que o primeiro (-l) foi utilizado nas
três estações pelo fato de os endereços IPv6 utilizados nos testes pertencerem à antiga classe
de endereços Site Local, conforme [7] . O segundo parâmetro (-q) foi habilitado apenas nas
estações LAPSID e SA, pois indica que nestas estações o route6d estará aprendendo as rotas.
Executando o comando tcdump a partir da estação LAPSID foi possível observar a
aprendizagem de rotas, conforme mostrado na Figura 10.
Figura 10: Estação LAPSID aprendendo rotas
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
Figura 11: Teste roteamento dinâmico
Foi executado um ping6 na estação LAPSID, pertencente à rede 2, a partir do host SA
que pertence à rede 1. A reposta a esse comando indica que o roteamento dinâmico está
funcionando perfeitamente, pois a comunicação entre máquinas de redes distintas foi
realizada com sucesso.
A execução do comando traceroute6 mostra o caminho a ser percorrido entre SA e
LAPSID.
Também foram realizados testes com o serviço ssh para validar sua funcionalidade
trabalhando sobre o protocolo IPv6. Um exemplo de teste com ssh foi acessar a estação
LAPSID a partir de AS, conforme indicado pela Figura 12:
23
Figura 12: Testes ssh
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.
Figura 13:Configuração DNS IPv4 e IPv6
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
A pesquisa desenvolvida ao longo deste trabalho buscou avaliar a viabilidade da
migração para o protocolo IPv6.
Verificamos que o endereçamento IPv6, embora seja a solução para a escassez de
endereços enfrentada pelo IPv4, é complexo e pode ser um dificultador para pessoas que não
tenham bons conhecimentos em redes e endereçamento IP.
Os testes realizados indicam que a utilização do IPv6 é muito viável embora seja
necessário investimento em treinamento de pessoas, atualização de equipamentos e
aplicativos e um planejamento minucioso para que durantes a migração os serviços estejam
sempre disponíveis. Conseguimos com sucesso implementar dual stack, roteamento estático e
dinâmico e DNS para IPv6.
Com relação aos sistemas operacionais, Linux e FreeBSD apresentam uma solução
bastante estável. Diversos testes já foram realizados em diferentes pontos do mundo
utilizando as duas soluções e muitos de seus aplicativos já foram atualizados para serem
compatíveis com IPv6. Já os sistemas operacionais da Microsoft ainda apresentam resultados
não satisfatórios de desempenho e algumas limitações com relação aos aplicativos, um bom
exemplo disso é o navegador Internet Explorer.
Através de leituras complementares foi possível perceber que os países europeus e
asiáticos estão bem adiantados em suas pesquisas e redes experimentais com IPv6 se
comparados com o continente americano. Existem grandes projetos de IPv6 no Japão, em
Portugal e na China, por exemplo, enquanto os Estados Unidos começaram a investir nesse
assunto apenas a partir de 2004.
Ainda não existem redes IPv6 em produção aqui no Brasil, apenas algumas universidades
estão desenvolvendo testes e implementando redes internas para uso acadêmico. Uma
abordagem que é muito utilizada para testar a comunicação de redes IPv6 interligadas por um
meio IPv4 é tunelamento. Nesse trabalho fizemos uma tentativa de implementação de
tunelamento, porém não obtivemos sucesso, pois não é uma implementação trivial e não
houve tempo hábil para realização de todos os testes.
Já existem alguns sites preparados para funcionar com IPv6, para efeito de testes, porém
não foi possível executar testes utilizando esses sites porque a Universidade não possui um
endereço IPv6 válido.
25
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
Apêndice 1 – Mapeamento da Rede 1
Máquina
Maq 1
Rede
Roteador
2/3/5
Endereço IPv4
Endereço IPv6
192.168.2.1
Fec0:0:0:2::1
192.168.3.1
Fec0:0:0:3::1
172.16.1.2
Fec0:0:0:5::2
Maq 2
Host
2
192.168.2.3/24
Fec0:0:0:2::3/64
Maq 3
Host
2
192.168.2.2/24
Fec0:0:0:2::2/64
Maq 4
Host
3
192.168.3.2/24
Fec0:0:0:3::2/64
Maq 5
Host
3
192.168.3.3/24
Fec0:0:0:3::3/64
Maq 6
Roteador
1/4/5
192.168.1.1
Fec0:0:0:1::1
192.168.5.1
Fec0:0:0:4::1
172.16.1.1
Fec0:0:0:5::1
Maq 7
Host
1
192.168.1.10/24
Fec0:0:0:1::10
Maq 8
Host
1
192.168.1.11/24
Fec0:0:0:1::11
Maq 9
Host
4
192.168.4.6/24
Fec0:0:0:4::6
Maq 10
Gateway
5
172.16.1.0/29
Fec0:0:0:5::3
Servidor
de
DNS
Tabela 3: Tabela de Mapeamento – Rede 1
200.174.193..141
27
Apêndice 2 – Arquivo rc.conf do Modelo de Rede 1
28
Apêndice 3 – Mapeamento da Rede 2
Máquina
KODA
SA
Rede
Roteador
Host
LAPSID
Host
Endereço IPv4
Endereço IPv6
Interface SK0
Interface SK0
Interface SK0
Rede 1
143.106.6.1
fec0:0:0:2::1
Interface SK1
Interface SK1
Rede 2
fec0:0:0:1::1
1
2
Interface SK0
Interface SK0
143.106.6.10
fec0:0:0:2::2
----------------
Interface RL0
fec0:0:0:1::2
Tabela 4: Tabela de Mapeamento – Rede 2
Segue abaixo as descrições das máquinas utilizadas na execução dos testes:
SA e KODA
CPU: AMD Sempron(tm) 2600+ (1825.95-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1
Features=0x383fbff AMD Features=0xc0480000
real memory = 520028160 (495 MB)
avail memory = 499212288 (476 MB)
LAPSID
CPU: Intel(R) Celeron(R) M processor
1400MHz (1398.82-MHz
686-class CPU)
Origin = "GenuineIntel" Id = 0x695 Stepping = 5
Features=0xa7e9f9bf
real memory = 233701376 (222 MB)
avail memory = 219181056 (209 MB)
Tabela 5: Descrição SA, KODA e LAPSID
29
Apêndice 4 – Arquivos rc.conf do Modelo de Rede 2
Figura 14: rc.conf KODA
Figura 15: rc.conf LAPSID
30
Figura 16: rc.conf SA
31
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
[7] FREEBSD Handbook URL http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
[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
[10] LEHTOVIRTA, Juha Transition from IPv4 to IPv6
[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
[13] URL: IPv6 Enabled Applications: http://www.ipv6.org/v6-apps.html. Data de Acesso: 15.11.2006
[14]URL:Windows XP Professional Product Documentation:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/enus/sag_ip_v6_und_ie.mspx?mfr=true Data de Acesso: 02.10.2006
Download

Curso de Engenharia de Computação IPV6