Redes IP I: Técnicas de Migração de Ambientes de Redes IPv4 para IPv6 O IPv6 possui uma capacidade de endereçamentos de 128 bits contra apenas 32 bits do IPv4 (Endereço de protocolo utilizado hoje na Internet e redes particulares). Com isso, a necessidade atual e futura de endereços IPs (Internet Protocol) da internet será suprida com 56 "octilhiões" de endereços por ser humano na Terra, (considerando-se a população estimada em 6 bilhões de habitantes). Não há mais como postergar a implementação do IPv6. Por cerca de 30 anos, o protocolo IPv4 tem sido usado para prover identificações de hosts e localização das redes presentes na Internet. Quando o protocolo IPv6 foi definido em 1998, já se tinha a ideia de que seria necessário um longo período de coexistência entre as duas versões de IP na rede mundial, no qual as redes manteriam tanto o protocolo IPv4 quanto o IPv6. Com o tempo, mais e mais redes passaram a utilizar pilha dupla, pois os estoques de IPs versão 4 se esgotaram em Fevereiro de 2011 e a partir de então começaram a surgir redes puramente IPv6 que não podem se comunicar diretamente com redes somente IPv4. Sendo assim, esta série de tutoriais apresenta diversas maneiras de ambos os protocolos comunicarem entre si. A situação começará a se inverter: hoje temos um mar IPv4 e pequenas ilhas IPv6 que necessitam de técnicas de transição, como túneis ou tradução para se comunicarem. Amanhã, teremos um mar de IPv6, formado por redes de pilha dupla e somente IPv6, onde as poucas redes IPv4 que ainda não passaram a falar os dois “idiomas” ficarão cada vez mais isoladas. Os tutoriais foram preparados a partir da monografia “Um Estudo sobre Técnicas de Migração de Ambientes Redes IPv4 para IPv6”, elaborada pelo autor, e apresentada ao curso de Engenharia de Computação da Universidade São Francisco, como requisito parcial para a obtenção do título de Bacharel em Engenharia de Computação. Foi orientador do trabalho o Prof. Esp. Edval Piccolo de Matos. Este tutorial parte I apresenta um breve histórico do IPv4, que se confunde com o início da Internet, e do IPv6, que apareceu como solução para o esgotamento dos endereços IP, e finaliza com uma comparação entre as duas versões do Protocolo IP. Renato Montes Canno Engenheiro de Computação pela Universidade São Francisco – USF (Itatiba – SP, 2012). Atuou como Analista I na Elucid Solutions S.A., executando atividades de consultoria e suporte a produto (HelpDesk, SLA) e de analista de testes e execução de query (PL\SQL). A seguir aturou como Assistente de Faturamento na Rede Energia (Empresa Elétrica Bragantina S.A. – EEB), executando atividades de refaturamento de contas de energia elétrica. Atualmente trabalha como Analista II na SondaElucid IT, executando atividades de consultoria e suporte a produto (HelpDesk, SLA)) e de analista de testes e execução de query (PL\SQL). 1 Email: [email protected] Categorias: Banda Larga, Redes de Dados Wireless Nível: Introdutório Enfoque: Técnico Duração: 15 minutos Publicado em: 21/01/2013 2 Redes IP I: Introdução Com avanço tecnológico e o surgimento de vários aparelhos eletrônicos que possuem conexão com a internet, o fim do IP (Internet Protocol) público chegou em Fevereiro de 2011. Isto não ocorreu há tempos por que medidas paliativas surgiram ao longo da década de 1990, como as tecnologias CIDR (Classless Inter-Domain Routing), RFC1918 (Request For Comment), NAT (Network Address Translation) e DHCP (Dynamic Host Configuration Protocol) fizeram com que tardassem esse esgotamento de IP’s na internet. Por esse e outros motivos que houve a necessidade do surgimento do IPng (Internet Protocol new generation) mais tarde denominado IPv6 (Internet Protocol version 6). O IPv6 possui uma capacidade de endereçamentos de 128 bits contra apenas 32 bits do IPv4 (Endereço de protocolo utilizado hoje na Internet e redes particulares) com isso a necessidade atual e futura de IP’s da internet será suprida com 340 undecilhões de endereços possíveis, ou seja, 56 octilhões de endereços por ser humano na Terra. Para se ter uma ideia do que isso representa, se convertêssemos cada endereço IPv6 possível em cm², poderíamos cobrir a Terra 7 vezes [1]. São conhecido hoje três importantes métodos de migração do protocolo IPv4 para o IPv6 para redes particulares e/ou públicas. Segue abaixo os métodos e uma breve e resumida explicação de cada um deles: Tunelamento: basicamente faz a transmissões dos pacotes encapsulando o conteúdo do pacote IPv6 em um pacote IPv4. Teredo: Traduz o cabeçalhos IPv4 em cabeçalhos IPv6 e vice-versa, realizando conversões de endereços, de APIs (Application Programming Interface) de programação, ou atuando na troca de trafego TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol). Pilha Dupla: permite que hosts e roteadores estejam equipados com pilhas para ambos os protocolos, tendo a capacidade de enviar e receber os dois pacotes, IPv4 e IPv6. Lembrando que, para que seja possível essa transição o hardware e software devem obrigatoriamente suportar a tecnologia IPv6. Esses métodos nos dá a possibilidade de, pouco a pouco, efetuar a migração do IPv4 para o IPv6 de qualquer rede, seja um escritório, uma empresa de grande porte ou até mesmo operadoras que vendem o serviço de conexão a Internet. O IPv4 e o IPv6 não são compatíveis entre si. O IPv6 não foi projetado para ser uma extensão ou complemento do IPv4, mas sim um substituto que resolve o problema de escassez dos endereços. Embora não interromperem, ambos os protocolos podem funcionar paralelamente nos mesmos equipamentos e com isso a transição foi desenvolvida para ser implementada de forma gradual. Durante alguns anos a coexistência dos dois protocolos vai existir. Hoje existem pouquíssimas redes IPv6 e uma grande quantidade de redes IPv4, onde ambas se comunicam em geral por Pilha Dupla, mas a tendência é que mais e mais redes IPv6 surjam e façam com que as redes IPv4 sejam cada vez menores até que haja uma possível desativação. Objetivo Com o esgotamento do IPv4, a necessidade das empresas em migrar seus ambientes de rede IPv6 está cada vez mais crítica. O desenvolvimento deste projeto tem como objetivo apresentar os principais métodos de transição de redes IPv4 para IPv6. Os procedimentos serão relatados ao longo do trabalho, com o objetivo de oferecer base de conhecimento para projetos de implementações futuras e também para aqueles que desejam migrar para o novo protocolo ou conhecer como os ambientes de rede IPv6 funcionam. 3 Tutoriais Este tutorial parte I apresenta um breve histórico do IPv4, que se confunde com o início da Internet, e do IPv6, que apareceu como solução para o esgotamento dos endereços IP, e finaliza com uma comparação entre as duas versões do Protocolo IP. O tutorial parte II apresentará os métodos e técnicas de transição de Pilha Dupla, Tunelamento e Tradução, a seguir apresentará um resumo comparativa das técnicas apresentadas, e detalhará um Estudo de Caso de migração do IPv4 para o IPv6, e finalizará com as conclusões do estudo realizado. 4 Redes IP I: IPv4 Esta seção tem como objetivo explicar a história da internet, distribuição dos IPs nas regiões do mundo e qual é a função da LACNIC e NIC.br em nosso país, também será citado como e quando o esgotamento do IPv4 ocorreu. História A internet não foi criada para uso comercial que temos atualmente, foi de fato um projeto militar Americano conhecido como ARPANET que tinha por objetivo conectar vários nós tendo a forma parecida com uma teia de aranha, onde se um nó fosse desconectado não haveria problema com os demais [2]. Figura 1: Mapa lógico da rede Arpanet em 1969 Fonte: Cybergeography Com o crescimento da ARPANET nas Universidades Americanas, o principal tráfego de informações eram discussões sobre assuntos acadêmicos entre professores. Nessa época os criadores dessa rede não tinham consciência que esse projeto iria tomar gigantes proporções que hoje presenciamos. Na internet, cada host e cada roteador tem um endereço IP (Internet Protocol), que codifica seu número de rede e seu número de host. Essa combinação é única, ou seja, duas máquinas conectadas a internet não possuem o mesmo endereço IP [2]. Devido ao alto crescimento da ARPANET, após cinco anos houve o surgimento do protocolo TCP/IP (Transmission Control Protocol/Internet Protocol) um protocolo que utilizamos até hoje, com um endereço de 32 bits e mais de 4,2 bilhões de combinações de endereços possíveis, que para época esse número era um exagero [4]. Segundo Vint Cerf (2010), vice-presidente do Google, os endereços de IP podem esgotar em até um ano, foi exatamente o que aconteceu em Fevereiro de 2011. O problema não se agravou mais e anteriormente devido a várias tecnologias e medidas paliativas que surgiram ao longo da década de 1990. Podemos citar CIDR (Classless Inter-Domain Routing), RFC 1918 (Address Allocation for Private Internets), NAT 5 (Network Address Translation) e DHCP (Dynamic Host Configuration Protocol) fizeram com que tardassem esse esgotamento de IP’s na internet. Esgotamento dos endereços IPv4 É importante informar que a divisão dos blocos IPv4 não é nada ponderada, metade dos endereços foram destinados aos Estados Unidos (“criador do backbone, principal estrutura da Internet”) e a outra metade foi distribuída para os demais regiões geográficas do mundo. No inicio da distribuição dos endereços, existiram empresas e universidades que compraram 16 milhões de endereços. Hoje seria raro essas entidades devolverem o que adquiriram para uma melhor redistribuição dos endereços. Mas se essa divisão dos IPv4 fosse de forma igual para tal demanda de sua determinada região, não adiantaria em nada, estaríamos sujeitos do mesmo jeito ao esgotamentos dos IPs. Por esse e outros motivos que a IANA mais tarde necessitou de regras mais rígidas para a distribuição dos IPv4 para o mundo [5]. O IANA (Internet Assigned Numbers Authority) é responsável pelo controle de todos os números IPs e, atualmente, ele realiza suas operações através da ICANN (). A responsabilidade sobre uma parte dos endereços é delegada pela IANA para cada um dos Registros Regionais de Internet, que os gerenciam e distribuem dentro de suas respectivas regiões geográficas. Em nossa região, o responsável é o LACNIC (Latin America and Caribbean Network Information Centre) [7]. Figura 2: Mapa dos Registros Regionais de Internet Fonte: IANA A IANA fez um padrão de divisão dos IP’s em três classes principais para evitar ao máximo o desperdício de endereços [4]. 6 Tabela 1: Tabela de resumo das Classes de Endereço IP ENDEREÇOS IP’S PRIVADOS Classes Número de End. por Rede Intervalos de endereçamentos Total de Hosts Classe A Até 256 0.0.0.0 até 127.0.0.0 Até 16.777.216 Classe B Até 65.536 128.0.0.0 até 191.255.0.0 Até 65.536 Classe C Até 16.777.216 192.0.0.0 até 223.255.255.0 Até 256 Fonte: MSDN - Microsoft Atendendo assim as seguintes necessidades: Os endereços IP da classe A são usados em locais onde é necessária uma rede apenas, mas uma grande quantidade de máquinas nela. Os endereços IP da classe B são usados nos casos onde a quantidade de redes é equivalente ou semelhante à quantidade de computadores. Os endereços IP da classe C são usados em locais que requerem grande quantidade de redes, mas com poucas máquinas em cada uma. O Núcleo de Informação e Coordenação do Ponto BR - NIC.br - foi criado para implementar as decisões e os projetos do Comitê Gestor da Internet no Brasil - CGI.br, que é o responsável por coordenar e integrar as iniciativas de serviços da Internet no País além de efetuar as liberações de endereços IPv4 no Brasil, a NIC.br prevê o fim dos endereços IPv4 para a nossa região entre 2013 e 2014 , já que não haverá mais blocos a serem liberados pela IANA [5]. Em 1983 quando iniciou a comercialização de fato da internet as conexões eram feitas única e exclusivamente para computadores, ou seja, não havia celulares, tablets, 3G, dentre outros dispositivos móveis conectados a Internet. Podemos também citar que daqui alguns anos os eletrodomésticos e eletrônicos em geral sejam conectados a internet de forma massiva, ocasionando assim uma demanda maior de endereços IP para uso. Surge então a nova versão do IPv4, o IPv6, que vem para acabar com essa escassez de forma gradativa. No começo de fevereiro de 2011 a IANA liberou o último bloco de IPv4 para a APNIC [8], que representa a região de parte da Ásia e Oceania. Na figura 99 fica claro a demanda pela requisição dos blocos IPv4 e sua extinção em 2011. 7 Figura 3: Gráfico do esgotamento do endereços IPv4, entre 2000 –2011 Fonte: www.pingdom.com Segundo Adilson Florentino, não há mais como postergar a implementação do IPv6, pois o fim do IPv4 é um fato. Se os provedores de Internet e também as empresas não iniciarem a migração para essa nova realidade, a adoção do IPv6, poderão gastar muito mais no futuro e ainda correrem o risco de falhas e não estarem prontos para competir com rivais que se anteciparem na transição. Como anda a adoção do IPv6 Em 1993 imaginava-se que com a definição do novo protocolo da Internet, a adoção do IPv6 se daria de forma gradual e contínua e que, em um prazo de 10 anos, o IPv6 se tornaria uma realidade para a esmagadora maioria das empresas e usuário final, acompanhando o ritmo acelerado de crescimento da Internet, conforme verificado no gráfico abaixo [5]. Figura 4: Previsão inicial da adoção do IPv6 Fonte: Adilson Florentino – Ipv6 na prática – pag. 21 Na situação atual estamos muito longe do planejado há alguns anos como podemos verificar no gráfico abaixo. 8 Figura 5: Previsão atual Fonte: Adilson Florentino – Ipv6 na prática – pag. 22 Grandes empresas como Facebook, Yahoo! e Google em 8 de junho de 2011 já se anteciparam e fizeram testes do novo protocolo em suas redes [32]. Segundo o engenheiro de rede Lorenzo Colitti, funcionário do Google, a grande maioria dos internautas não deve perceber os testes e continuar usando o site normalmente. A expectativa da empresa é que somente 1 em cada 2 mil internautas enfrente algum tipo de problema, geralmente relacionado a roteadores domésticos mal configurados [32]. 9 Redes IP I: IPv6 Nesta seção será feito um estudo sobre a história do endereço IPv6, principais características e as suas classificações e onde se diferem do endereço IPv4. História O IP versão 6 começou a ser desenvolvido no início da década de 1990, com o objetivo de ser a solução definitiva para o esgotamento de endereços IPs na Internet, tendo esse como o principal objetivo [10]. Em 1993, o IESG (Internet Engineering Steering Group) criou um grupo de trabalho para uma nova versão do protocolo IP, o IPNGWG (IP Next Generation Working Group), com base em alguns objetivos que deveriam ser alcançados. O grupo de trabalho, então, selecionou protocolos "candidatos" para a camada de rede da arquitetura TCP/IP. O vencedor foi o SIPP (Simple Internet Protocol Plus), por diferir menos do IPv4 e ter um plano de transição melhor. Mas uma combinação de aspectos positivos dos três protocolos candidatos foi feita e com isso gerou-se a recomendação para a versão 6 do IP em novembro de 1994 [9]. O protocolo IPv6 não foi só criado para resolver o problema de quantidades de endereços, foi também para disponibilizar novos serviços e benefícios que não existiam no IPv4 ou que não eram utilizados de forma otimizada. Abaixo podemos citar alguns desses benefícios [11]: Espaço de endereçamento (128 bits); Formato de cabeçalho simplificado; Arquitetura hierárquica de rede para um roteamento eficiente; Suporte aos atuais protocolos de roteamento; Serviços de autoconfiguração; Implementação de IPSec (IP Security Protocol) de forma nativa; Crescimento do número de endereços multicast; Implantações para qualidade de serviço; Suporte a serviços de tempo real. Para a internet para fazer uso das vantagens do IPv6 sobre IPv4, a maioria dos hosts da Internet, bem como as redes de conexão, precisam implantar este protocolo. Enquanto a implantação do IPv6 está acelerando, especialmente na região da Ásia-Pacífico e alguns países europeus, áreas como as Américas e a África são comparativamente um atraso na implantação do IPv6. A troca de tráfego entre as duas redes IPv4 e IPv6 requer tradutores especiais o que torna a rede menos eficiente comparado uma rede completamente IPv6. Os sistemas operacionais modernos dos computadores implementam um protocolo de duplo software para acesso transparente para ambas as redes, quer sejam elas iguais, ou através de um protocolo de tunelamento como 6to4, 6in4, ou Teredo que veremos nas próximas seções. Em dezembro de 2012, apesar de marcar o seu 14º aniversário, o IPv6 está apenas em sua infância em termos de implantação em todo o mundo em geral. Um estudo realizado em 2008 pelo Google Inc indicou que a penetração do protocolo IPv6 ainda era menos de 1% dos hosts habilitados para a Internet em qualquer país, naquela época [12]. 10 Conforme mostra a figura 3, o IPv6 é um protocolo de rede que atua na mesma camada do IPv4. O suporte ao IPv6 é feito pela inclusão de um novo protocolo de rede nos sistemas operacionais de equipamentos hosts e roteadores. Deve-se observar que a maioria dos sistemas operacionais modernos já é implementada segundo o conceito de multiprotocolo [13]. Figura 6: Estrutura das camadas Física ISO/OSI Fonte: http://www.ppgia.pucpr.br/~jamhour/Pessoal/Mestrado/TARC/IPv6Trans.pdf Os endereços IPv6 são números de 128 bits (16 bytes). Ao invés de adotar a notação decimal pontuada do IPv4, onde o endereço é formado por quadro bytes separados por ".", o IPv6 representa seu endereço na forma de 8 palavras de 16 bits, separadas por ":". Cada uma das palavras que forma o endereços IPv6 é representada em hexadecimal. Dessa forma, um endereço IPv6 tem o seguinte formato: FE80:0000:0000:0000:68DA:8909:3A22:FECA As palavras que forem formadas unicamente por quatro zeros em hexadecimal podem ser substituídas por um único zero, conforme o exemplo a seguir: FE80:0:0:0:68DA:8909:3A22:FECA A escrita de cada endereço IPv6 é longa, o que dificulta sua representação. Com o IPv6, o serviço de DNS que oferece um nome fácil de usar a um computador será mais necessário do que nunca, pois é simplesmente impossível decorar os endereços de IPv6 presente em uma infraestrutura de rede. Para tornar os endereços ainda mais compactos, uma sequência de zeros pode ser substituídas pelo símbolo "::", conforme o exemplo abaixo [13]: FE80::68DA:8909:3A22:FECA Contudo, essa simplificação pode ocorrer uma única vez no endereço, ou não será possível determinar quantos zeros correspondem a cada símbolo "::". O símbolo "::" pode estar também no início do endereço. Por exemplo, o endereço loopback IPv6 é representado como: ::1, que é equivalente a 0000:0000:0000:0000:0000:0000:0000:0001 11 Os endereços IPv6 são seguidos de uma máscara de sub-rede na forma compacta (/"tamanho do prefixo"), de maneira similar aos endereços IPv4 [13]: FE80::68DA:8909:3A22:FECA/80 Cabeçalho principal do IPv6 O cabeçalho do IPv6 é mais enxuto se comparado ao cabeçalho do endereço IPv4. Segue abaixo o cabeçalho principal do IPv6 e suas funções para cada campo e a quantidade de bits que os compõe. Figura 7: Cabeçalho do protocolo IPv6 Fonte: http://www.projetoderedes.com.br/artigos/artigo_ip_next_generation.php Version (Versão): Para endereços IPv4, Versão é 4 e para endereços IPv6 é 6 ou seja, determina a versão do endereço. Traffic Class (Classe de Tráfego): Serve para identificar se o dado no pacote é de uma mídia contínua, como vídeo ou som, ou se é de outro tipo. Ainda há muita discussão sobre a divisão mais útil e eficiente dos vários tipos de tráfego em classes. Cabe à camada superior informar a camada IPv6 qual a classe de tráfego a ser utilizada. Um roteador pode alterar os bits do campoTraffic Class da forma que desejar. Flow Label (Identificação de Fluxo): Esse campo de identificação de fluxo é uma sequência de pacotes enviados a partir de uma determinada origem, para um determinado destino (unicastou multicast), requerendo um tratamento especial pelos roteadores, como QoS ou reserva de banda (RSVP – Resource Reservation Protocol). Por exemplo: quando um roteador recebe um pacote com esse campo sendo não zero, ele identifica a qual fluxo de pacotes ele pertence. Se for um fluxo um streaming de vídeo pertencente a uma determinada aplicação, o roteador pode atribuir maior prioridade para esses pacotes. Quando outro pacote com o mesmo número de identificação de fluxo chegar, o roteador poderia enviá-lo diretamente para seu destino, sem precisar ler os campos de endereço. O valor desse campo deve receber um valor aleatório para cada “pseudocanal de conexão”, para reduzir a possibilidade de existirem dois canais com o mesmo código, fazendo com que o roteador pense que é só um canal e envie os dados erroneamente pela mesma rota. Payload Length (Tamanho dos Dados): Informa o comprimento dos dados, em octetos, encapsulados pela camada de rede, isto é quantos bytes vêm depois do cabeçalho IPv6 (os campos de extensão são contabilizados). Caso esse campo seja 0, indica que o comprimento dopayload é superior a 65.535 octetos e é informado em um Extension Header. 12 Next Header (Próximo Cabeçalho): Esse é o campo que permite dizer quais das seis extensões de cabeçalhos estão presentes, caso haja alguma. Foi ele quem permitiu transformar alguns campos do cabeçalho do IPv6 em campos opcionais. Hop Limit (Limites de Saltos): Esse é o campo utilizado para evitar que os pacotes tenham uma vida muito alta. Ele recebe um número, e a cada salto entre roteadores, este é decrementado de uma unidade. O campo equivalente no cabeçalho IPv4 é o campo “tempo de vida”, que determinava quantos segundos o pacote deveria existir. Source Address (Endereço de Origem):Informa o endereço de origem do pacote Destination Address (Endereço de Destino): Informa o endereço de destino, O endereço de destino pode não ser o endereço do host final, porque pode ser um cabeçalho de roteamento [14]. Classificação dos Endereços IPv6 A seguir as diferentes classificações dos endereços IPv6 e quanto a sua utilização. Endereços Unicast Identificam um host de forma única e exclusiva, com grande número de endereços possíveis. Este tipo de endereço viabiliza que todos os hosts do mundo possam ter conectividade fim-a-fim, não tão diferente como no IPv4 Os endereços unicast são subdivididos em três grupos, como veremos abaixo. Endereços Globais Endereços unicast globais, são equivalentes aos endereços IPv4 públicos. Eles são globalmente roteáveis e acessíveis na Internet IPv6. Endereços unicast globais também são conhecidos como apenas endereços globais [15], Resumidamente são os IPs que a IANA disponibiliza para conexão na internet. Endereços Link Local Segundo Hinden & Deering, o endereçamento de link local pode ser automaticamente configurado em qualquer interface pela conjugação do seu prefixo FE80::/10 (1111111010) conforme Figura 5, e a identificação da interface no formato EUI-64. Estes endereços são utilizados nos processos de configuração dinâmica automática e no processo de descoberta de elementos na hierarquia de roteamento (Neighbour Discovery). Este endereçamento permite também a comunicação entre nós pertencentes ao mesmo enlace. Equipamentos de roteamento não devem enviar pacotes que contenham este tipo de endereçamento como origem ou destino. Além disso, esses endereços não são repassados pelos roteadores [16]. Figura 8: Formato do endereço link local 13 Fonte: Cisco Endereços Unique Local São equivalentes ao espaço de endereço IPv4 privado (10.0.0.0 / 8, 172.16.0.0/12 e 192.168.0.0/16) por exemplo. Esses endereços podem ser usados para uma comunicação restrita dentro de um domínio específico. As intranets privadas que não têm uma conexão direta e encaminhada para a Internet IPv6, podem usar endereços de sites locais sem conflito com agregáveis aos endereços unicast globais. Este tipo de endereçamento pode ser considerado como privado, visto que ele está restrito a um domínio sem ligação à Internet. Desta forma ele não pode ser anunciado externamente por roteadores [15]. Endereços de Retorno Esse endereço é semelhante ao endereço IPv4, ou seja, o endereço de sua própria interface é utilizado quando um nó envia um pacote para si mesmo. Na maioria dos casos esse endereço em IPv4 é o 127.0.0.1 (loopback), em IPv6 é sugerido o 0:0:0:0:0:0:0:1 ou ::1. O endereço de loopback IPv6 não pode ser atribuído a nenhuma interface física, nem como endereço de fonte, nem como endereço de destino, mas pode ser imaginado como sendo de uma interface virtual.. Um pacote que tem o endereço IPv6 loopback como sua fonte ou endereço de destino deve permanecer dentro do nó que criou o pacote [16]. Endereços não Especificados Esse endereço indica quando não há um endereço. Ele nunca deverá ser utilizado como um endereço válido para nenhum host. A sua utilidade é para que estações que ainda não foram inicializadas sejam identificadas com endereços deste tipo, ou seja, hosts que ainda não tenham aprendido seus próprios endereços globais utilizem tais endereços para se autoconfigurar. Além disso, esse tipo de endereço não deve ser utilizado como endereço de destino ou em cabeçalho de roteamento de pacotes IPv6 [16]. Endereços Anycast É o identificador de um conjunto de interfaces (geralmente pertencentes a nós diferentes). Um pacote enviado para um endereço anycast é entregue a uma das interfaces identificadas por aquele endereço (a mais próxima, segundo os protocolos de roteamento) [17]. Um exemplo de utilização mais comum está relacionado a serviços UDP, principalmente DNS, quando temos diversos servidores publicados em diferentes localidades com o mesmo número de IP. Endereços Multicast Um endereço IPv6 multicast é um identificador para um grupo de interfaces (Tipicamente em diferentes nós). Uma interface pode pertencer a qualquer número de grupos de multicast [18]. Esse tipo de endereço é utilizado para identificar um grupo de interfaces pertencentes a hosts diferentes. Um pacote destinado a um endereço anycast é enviado para um das interfaces identificadas pelo endereço. Especificamente, o pacote é enviado para a interface mais próxima, de acordo com o protocolo de roteamento [11]. Um endereço do tipo anycast não pode ser utilizado como endereço de origem de um pacote IPv6. Este tipo de endereçamento será útil na detecção rápida de um determinado servidor ou serviço. Por exemplo, poderá ser definido um grupo de servidores de DNS configurados com endereçamentoAnycast, assim um host irá alcançar o servidor mais próximo utilizando este tipo de endereço. É importante informar que em Redes IPv6 não existem mais os endereços de Broadcast (um-para-todos). Este recurso agora é realizado por diversos grupos multicast específicos [11]. 14 Redes IP I: Comparativo entre IPv4 e IPv6 Nesta seção veremos alguns detalhes importantes quanto a comparação do IPv4 ao IPv6. Em resumo o IPv6 se diferencia em endereços quase ilimitadas, aumento da mobilidade, melhor desempenho, características de segurança superiores como visualizado na tabela abaixo. Tabela 2: Comparativo entre IPv4 e IPv6 IPV4 IPV6 Endereço de 32bits Endereço de 128bits Suporte opcional de IPSec Suporte obrigatório de IPSec Introduz capacidades de QoS Nenhuma referência a capacidade de utilizando para isso o campo Flow QoS (Quality of Service) Label A fragmentação deixa de ser realizada Processo de fragmentação realizada pelos routers e passa a ser processada pelo router pelos hostemissores Todos os campos de opção foram O cabeçalho inclui os campos de mudados para dentro do opção campoextension header O ARP foi abandonado, sendo O Adress Resolution Protocol(ARP), substituídos pelas utiliza requisitos do tipoBroadcast mensagensNeibhbor Discovery Internet Resolution Management O IGMP fio substituído por Protocol (IGMP) é utilizado para mensagens Multcast Listner gerir relações locais de sub-redes Discovery Os Endereços de Broadcast são Deixa de existir utilizados para enviar tráfego para deBroadcast, para todos os host de uma rede endereçosmulticast o endereço utilizar O endereço tem de ser configurado Adição de funcionalidades manualmente autoconfiguração de Suporta pacotes de 576 bytes, Suporta pacotes de 1280 bytes, sem passiveis de serem fragmentados fragmentação Fonte: http://www.techsutram.com/2009/03/differences-ipv4-vs-ipv6.html Cabeçalho Como podemos verificar na Figura 6, a estrutura do protocolo IPv6 foi bem resumida em relação ao seu antecessor, sendo que muitos campos foram removidos ou tiveram seus nomes alterados. 15 Figura 9: Cabeçalho dos Protocolos IPv4 e IPv6 e suas alterações Fonte: http://rafaelantunesavila.wordpress.com/author/rafaelantunesavila/ Conforme verificado os campos Internet header length, Identificação, NF, MF, Identificação do Fragmento, Checksum do Cabeçalho e Opções foram removidos, em contra partida o campo Identificação de Fluxo foi adicionado ao IPv6. Os campos Tipo de serviço, Tamanho total, TTL e Protocolo tiveram seus nomes trocados e posições alteradas, já os campos Endereços da Fonte e endereços do Destino mantiveram nas duas versões, mas suportando uma quantidade de armazenamento maior no IPv6. Segurança Hoje, em 2012, são aproximadamente trinta anos de uso do protocolo IPv4 comparado a treze anos do IPv6, mas com uma adoção muito tímida pelo mercado, sendo assim muito cedo a definição de segurança para o novo protocolo. Com a adoção cada vez maior do IPv6, as vulnerabilidades serão publicadas e corrigidas em uma velocidade cada vez maior [5]. Os principais objetivos de segurança do IPv6 são iguais aos objetivos de segurança em qualquer infraestrutura de redes. Estes incluem: robustez da infraestrutura; autenticação, confidencialidade e integridade; não rejeição explícita, controle de acesso e contabilização e registro. Em IPv6, para atingir estes objetivos, tem de ser verificadas diversas ameaças existentes e, dentre elas, serão discutidas sete: pesquisa de pontos fracos em gateway e hosts, pesquisa de endereços multicast, acesso não autorizado, exposição de pontos fracos devido ao NAT e pontos fracos do próprio, firewall, ataques de desempenho com cabeçalhos fragmentados, pontos fracos do protocolo e ataques do tipo Denial of Service (DDoS) [43]. Segundo Charles M. Kozierok, o IPsec (extensão do protocolo IP cujo objetivo é ser o método padrão para fornecer privacidade ao usuário) não é um protocolo único, mas sim um conjunto de serviços e protocolos que fornecem uma solução de segurança completa para uma rede IP. Esses serviços e protocolos combinados fornecem vários tipos de proteções. IPsec funciona na camada IP, pode fornecer essas proteções para qualquer protocolo TCP seja ele maior que a camada de aplicativo / IP ou protocolo sem a necessidade de métodos adicionais de segurança, o que é uma grande vantagem. O IPsec inclui as seguintes características: Criptografia de dados do usuário de privacidade; Autenticação da integridade de uma mensagem para assegurar que ele não é alterada em uma rota; 16 Proteção contra certos tipos de ataques de segurança, tais como ataques de repetição entre outras. Como foi parte integrante para o IPv6, seu suporte é obrigatório, ao contrário do que ocorria com o IPv4, no qual seu suporte é opcional; Há recomendações de segurança para o uso do protocolo IPv6, como: Não utilizar endereços óbvios, filtrar mensagens ICMPv6 não essenciais Utilizar IPSEC sempre que precisar de uma comunicação segura entre máquinas IPv6; Usar endereços IPv6 unique local (FC00::/7); No IPv4 bloquear as faixas não alocadas; ICMPv4 vs ICMPv6 De acordo com Adilson Florentino, para suportar esses novos recursos, o protocolo ICMPv6 tem um papel muito importante. Além de continuar a exercer as mesmas funções de seu antecessor ICMPv4, ele também desempenha as funções dos protocolos ARP, RARP e IGMP. Ele é muito importante, pois se deixarmos o firewall (dispositivo que tem por objetivo aplicar uma política de segurança a um determinado ponto da rede de computadores)das estações de trabalho bloquearem toda e qualquer mensagem ICMPv6, a rede simplesmente irá parar de funcionar, pois são mensagens desse tipo responsáveis pela descoberta de vizinhança, atribuições de endereços Stateless (atribuição automática de endereços de rede sem necessidade de servidor DHCP e/ou configurações manual nas máquinas) e pela descoberta de roteadores e gateways (máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos) em rede IPv6. Protocolo de descoberta de vizinhança O protocolo de descoberta de vizinhança foi desenvolvido sob a finalidade de resolver os problemas de interação entre nós vizinhos em uma rede. Para isso ele atua sobre dois aspectos primordiais na comunicação IPv6, a autoconfiguração de nós e a transmissão de pacotes. No caso da autoconfiguração dos nós, o protocolo fornece suporte para a realização de três funcionalidades: Parameter Discovery: atua na descoberta por um nó de informações sobre o enlace (como MTU) e sobre a Internet(como hop limit). Address Autoconfiguration: trabalha com a autoconfiguração stateless de endereços nas interfaces de um nó. Duplicate Address Detection: utilizado para descobrir se o endereço que se deseja atribuir a uma interface já está sendo utilizado por outro nó da rede. Já no caso da transmissão de pacotes entre nós, o suporte é dado para a realização de seis funcionalidades: Router Discovery: trabalha com a descoberta de roteadores pertencentes ao enlace. 17 Prefix Discovery: implementa a descoberta de prefixos de redes do enlace, cuja finalidade é decidir para onde os pacotes serão direcionados numa comunicação (se é para um roteador especifico ou direto para um nó do enlace). Address Resolution: descobre o endereço físico através de um endereço lógico IPv6. Neighbor Unreachability Detection: permite que os nós descubram se um vizinho é ou se continua alcançável, uma vez que problemas podem acontecer nos nós como na rede. Redirect: permite ao roteador informar ao nó uma rota melhor ao ser usado para enviar pacotes a determinado destino. Next-Hop Determination: algoritmo para mapear um endereço IP de destino em um endereço IP de um vizinho para onde o trafego deve ser enviado [19]. A descoberta de vizinhança substitui ARP (protocolo de resolução de endereços), descoberta de roteador ICMP e ICMP redirecionado, que são usados no IPv4. Ele também fornece funcionalidades adicionais. A seguinte lista mostra como os hosts, roteadores e nós utilizam a descoberta de vizinhança: Hosts utilizam para descobrir roteadores vizinhos, endereços, prefixos endereço e outros parâmetros. Os roteadores utilizam da descoberta de vizinhança para informar aos hosts de um melhor próximo salto para um endereço de destino específico. Nós usam descoberta de vizinhança para descobrir o endereço da camada de um nó vizinho no qual um pacote IPv6 está sendo encaminhado e também para determinar quando o endereço da camada de um nó vizinho foi alterado, e se os pacotes IPv6 podem ser enviados e recebidos de um nó vizinho [20]. DHCPv4 vs DHCPv6 DHCP é a sigla para Dynamic Host Configuration Protocol. Trata-se de um protocolo utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente, sem que o usuário precise configurar manualmente cada host [21]. É importante frisar que, além do endereço IP, também é necessário atribuir outros parâmetros a cada computador (host) que passa a fazer parte da rede. Com o DHCP isso também é possível. Pode-se passar à máquina-cliente informações como máscara de rede, endereços de servidores DNS (Domain Name Server), nome que o computador deverá assumir na rede (por exemplo, infowester, infowester1 e assim por diante), rotas, etc [30]. As duas principais diferenças entre DHCPv4 e DHCPv6 são as seguintes: No modelo administrativo o DHCPv4 permite que para cada interface e administração é alocado em uma interface lógica e no DHCPv6 essa configuração não é necessária. Este protocolo é habilitado em uma dada interface física. DHCPv4 o servidor DHCP fornece a máscara de sub-rede para cada endereço. Uma opçãohostname define o nome do nó de todo o sistema. Já no DHCPv6 a máscara de sub-rede é fornecida por anúncios ao roteador, não havendo a opção DHCPv6 hostname [22]. 18 QoS Por definição, a Qualidade de Serviço (Quality of Service – QoS) de uma rede é garantida pelos componentes da rede e equipamentos utilizados, estando baseada em um mecanismo fim-a-fim de garantir a entrega das informações e que deve atuar na comunicação dos equipamentos envolvidos visando o controle dos parâmetros de Qualidade de Serviço [23]. Num primeiro momento, o termo "Qualidade de Serviço" pode ser entendido como sendo um requisito das aplicações para a qual exige-se que determinados parâmetros (atrasos, vazão, perdas, etc) estejam dentro de limites bem definidos (valor mínimo e valor máximo). Entretanto, a garantia de Qualidade de Serviço em redes de computadores envolve vários níveis de atuação em diversos tipos de equipamentos e tecnologias, ou seja, esses parâmetros não estão localizados em apenas um único equipamento ou componente da rede. Considerando esse fato, a Qualidade de Serviço deve atuar em todos os equipamentos, camadas de protocolo e entidades envolvidos [23]. A implementação de QoS no IPv4 é baseada nas portas TCP e UDP do pacote, o que pode tornar o seu uso não aplicável em algumas situações. Da mesma forma que o IPv4, o IPv6 é um protocolo responsável pelo endereçamento de hosts e roteamento de pacotes entre redes que são baseadas em TCP/IP. Apesar de assustar em um primeiro momento, o IPv6 é um protocolo bem mais simples que o IPv4. O protocolo IPv6 possui um Flow Label (etiqueta de controle de fluxo) para priorizar a entrega de pacotes. Isso permite que os hosts se comuniquem utilizando o conceito de QoS para entrega dos pacotes, tornando alguns serviços mais funcionais [24]. O campo Controle de Fluxo permitirá que políticas de QoS sejam aplicadas sem a necessidades de verificação a fundo das camadas superiores do pacote IPv6 para que sejam definidas e implementadas. Por exemplo, pacotes criptografados poderão passar pelo filtro do QoS, pois o campo “Controle de Fluxo” está fora do cabeçalho de transporte. Já os pacotes fragmentados, que por padrão não possuem todas as informações da camada de transporte, poderão ser verificados utilizando o campo “Controle de Fluxo” [5]. 19 Redes IP I: Considerações finais Este tutorial parte I procurou apresentar um breve histórico do IPv4, que se confunde com o início da Internet, e do IPv6, que apareceu como solução para o esgotamento dos endereços IP, e finalizou com uma comparação entre as duas versões do Protocolo IP. O tutorial parte II apresentará os métodos e técnicas de transição de Pilha Dupla, Tunelamento e Tradução, a seguir apresentará um resumo comparativa das técnicas apresentadas, e detalhará um Estudo de Caso de migração do IPv4 para o IPv6, e finalizará com as conclusões do estudo realizado. Referências [1] ________. A nova geração do Protocolo Internet. Questões freqüentes. Disponível em: http://ipv6.br/faq/>. Acesso em 01 mar. 2012 [2] TANENBAUM, Andrew S. Redes de Computadores. 4. ed [s. l.]: Campus, 2003. Cap 5. [3] DA SILVA, Sérgio Carneiro . O protocolo IPv6 e sua transição. Disponível em: http://www.si.lopesgazzani.com.br/TFC/monografias/MonografiaIPv6.pdf Acesso em: 17 fev. 2012. [4] SOARES, Luiz Fernando Gomes. Redes de computadores das LANs, MANs e WANs às redes ATM. – 2ª ed. Rio de Janeiro: Campus. [5] FLORENTINO, Adilson Aparecido. IPv6 na Prática. 1ª ed. São Paulo, 2012 Coleção Academy [6] Comitê Gestor da Internet no Brasil. Quem somos. Disponível em: http://www.nic.br/sobre-nic/nicbr.htm Acesso em 26 mar. 2012 [7] IPv6 – Aplicabilidade. O Esgotamento dos Endereços IPv4. Disponível em: https://sites.google.com/site/ipv6aplicabilidade/o-esgotamento-dos-enderecos-ip-1 Acesso em 03 abr. 2012. [8] IPv6 – Artigos. Notícias. Disponível em: HTTP://www.ipv6.br/IPV6/ArtigoNoticiasUltimoBlocoAPNIC Acesso em: 07 abr. 2012 [9] COMER, Douglas E. Redes de computadores e internet, 4ª ed, Ed. Artmed/Bookman, 2007 [10] DOMINGOS, Fabiano D. Técnica de transição entre IPV4/IPV6. Disponivel em: http://www.alessandrobianchini.com.br/artigos/ipv6.pdf Acesso em 01 nov. 2012 20 [11] Internet Protocol Version 6. Características e Benefícios para o uso do IPv6. Disponível em: http://mesonpi.cat.cbpf.br/ipv6/ Acesso em: 11 abr 2012. [12] GUNDERSON S. H. Global IPv6 Statistics – Measuring the current state of IPv6 for ordinary users. Dubai. Ed. Novatec, 2008. Disponível em: http://meetings.ripe.net/ripe-57/presentations/Colitti-Global_IPv6_statistics__Measuring_the_current_state_of_IPv6_for_ordinary_users_.7gzD.pdf [13] JAMHOUR, Edgard. IPv6: Internet Protocol – Versão 6 e Mecanismos de Transição. Disponível em: http://www.ppgia.pucpr.br/~jamhour/Pessoal/Mestrado/TARC/IPv6Trans.pdf Acesso em: 22 abr. 2012 [14] SMETANA, Por George Marcel M. A. IPv4 e IPv6. Disponível em: http://www.abusar.org.br/ftp/pitanga/Redes/ArtigoIP.pdf Acesso em: 12 jun. 2012 [15] Microsoft. Disponível em: http://technet.microsoft.com/en-us/library/ Acesso em: 12 jun 2012 [16] Cisco. Disponível em: http://www.cisco.com/en/US/docs/ios_xr_sw/iosxr_r3.7/addr_serv/configuration/guide/ ic37net.html#wp1016508 Acesso em: 12 jun 2012 [17] BRAGA, Julião. Idéias sobre o que fazer com um bloco /32 do IPv6. Disponível em: http://juliaobraga.wordpress.com/tag/nic-br/ Acesso em: 12 jun 2012 [18] Hinden, R., Deering, S. Request for Comments: 3513. Abril 2003. Disponível em: http://www.ietf.org/rfc/rfc3513.txt Acesso em: 12 jun 2012 [19] IPv6. Funcionalidades. Disponível em: http://ipv6.br/entenda/funcionalidades/#func-ndp Acesso em: 03 jul. 2012 21 [20] Microsoft. Disponível em: http://msdn.microsoft.com/pt-br/library/aa916049.aspx Acesso em: 12 jun 2012 [21]MORIMOTO, Carlos E. Índice do Dicionário Técnico – DHCP. Disponível em: http://www.hardware.com.br/termos/dhcp Acesso em 02 nov. 2012 [22] Oracle. Disponível em: http://docs.oracle.com/cd/E19253-01/816-4554/gefkw/index.html Acesso em 03 jul. 2012 [23] PINHEIRO, José M. S. Afinal, o que é Qualidade de Serviço?. Disponível em: http://www.projetoderedes.com.br/artigos/artigo_qualidade_servico.php Acesso em: 12 nov 2012 [24] SISNEMA Informática. REDES TCP/IP – IPV4 OU IPV6?. Disponível em: http://sisnema.com.br/Materias/idmat019668.htm Acesso em: 30 jul. 2012 [25] IPv6.br. Transição. Disponível em: http://ipv6.br/entenda/transicao/ Acesso 22 mai. 2012 [26] FILIPPETTI, Marco A. CCNA 4.1 – Guia Completo de Estudo. 5ª ed. Florianópolis: Visual Books, 2008. 480p. [27] SANTOS, Rodrigo Regis dos. Curso IPv6 Básico. 1ª ed. São Paulo: Ceptro.br, 2010. 315p. [28] ZHOU L., RENESSE V. e MARSH M., “Implementing IPv6 as a Peer-to-Peer Overlay Network,” Distributed Systems, 2002, pp.347-351. [29] TELECO. Rede IP I: Processos de Migração – 1. Disponível em: http://www.teleco.com.br/tutoriais/tutorialredeipmig1/pagina_3.asp Acesso em 05 ago. 2012 [30] ALECRIM, Emerson. Saiba o que é o protocolo DHCP e atribua números IPs automaticamente em sua rede. Disponível em: http://m2f0.wordpress.com/tag/linux/ 22 Acesso em: 02 set. 2012-11-19 [31] FILIPPETTI, Marco A. CCNA 4.1 – Guia Completo de Estudo. 5ª ed. Florianópolis: Visual Books, 2008. 480p. [32] TECNOLOGIA. Google, Facebook e Yahoo! devem adotar IPv6 em junho. Disponível em: http://tecnologia.terra.com.br/noticias/0,,OI4888496-EI12884,00Google+Facebook+e+Yahoo+devem+adotar+IPv+em+junho.html Acesso em: 19 nov. 2012. [33] PFUTZENREUTER, Elvis. Migração para IPv6 de aplicações usuárias da interface de programação Sockets BSD. Disponível em: http://www.ipv6.br/pub/IPV6/ArtigoProgramacaoSocketsBSD/mono_final.pdf Acesso em: 05 mar. 2012 [34] KOZIEROK, Charles M. PMIP Security (IPsec) Protocols. Rio de Janeiro: Ed. Campos 1999. 163 p. [35] Cisco. CISCO LIVE 2012. Disponível em: http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6553/casestudy_c36-710810.pdf Acesso em: 12 nov 2012 [36] HAGEN, Silvia. IPv6 Essentials. O'Reilly, 2002. [37] DURAND Alain, FASANO Paolo, GUARDINI Ivano. Request for Comments: 3053. Disponível em: http://www.ietf.org/rfc/rfc3053.txt Acesso em 23 set 2012 [38] IPv6. TRANSIÇÃO. Disponível em: http://ipv6.br/entenda/transicao/ Acesso em 22 set 2012. [39] CARPENTER Brian E., MOORE Keith. Request for Comments: 3056. Disponível em: http://www.ietf.org/rfc/rfc3056.txt Acesso em: 24 set 2012 [40] DESPRES Remi. Request for Comments: 5569. Disponível em: http://www.ietf.org/rfc/rfc5569.txt Acesso em: 28 set 2012 [41] MICROSOFT. Compatibilidade com NAT Teredo (Tradutor de Endereços de Rede) Disponível em: 23 http://www.microsoft.com/brasil/windowsxp/p2p/natcompat.mspx Acesso em: 24 set 2012 [42] WILKINS Sean. The IPv6 Transition. Disponível em: http://www.petri.co.il/ipv6-transition.htm Acesso em: 01 nov 2012 [43] BRADNER, Scott O., RFC 1752 IPNG, Internet Protocol Next Generation, Addison- Wesley Publishing Company, 1996. [44] IPv6 e 6to4. Disponível em: http://epx.com.br/logbook/archive/2008/12/ipv6-e-6to4.html Acesso em: 22 nov 2012. [45]MOREIRAS, Antonio M. Apostila IPv6 Básico. Disponível em: http://staff.on.br/marcio/IPv6/ApostilaIPv62012.pdf Acesso em: 25 nov 2012 [46]CLM, Technology & Relationship. IPv6. Disponível em: http://www.clm.com.br/produtos/a10/ax-ipv6.htm Acesso em: 12 nov 2012 24 Redes IP I: Teste seu entendimento 1. Qual das alternativas abaixo representa uma das medidas paliativas que surgiram ao longo da década de 1990 para postergar o esgotamento dos endereços IPv4? CIDR (Classless Inter-Domain Routing). RFC 1918 (Address Allocation for Private Internets). NAT (Network Address Translation). DHCP (Dynamic Host Configuration Protocol). Todas as alternativas anteriores. 2. Como podem ser classificados os endereços IPv6? Endereços Unicast, de Retorno, não Especificados, Anycast e Multicast. Endereços Broadcast, de Retorno, não Especificados, Anycast e Multicast. Endereços Unicast, sem Retorno, não Especificados, Anycast e Multicast. Endereços Unicast, de Retorno, Especificados, Anycast e Multicast. 3. Qual é o tamanho em bits dos campos de endereços no IPv4 e no IPv6? IPv4: 128 bits, e IPv6: 32. IPv4: 24 bits, e IPv6: 96. IPv4: 32 bits, e IPv6: 128. IPv4: 96 bits, e IPv6: 24. 25