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