domingo, 27 de outubro de 2013

IPv6

O tópico de hoje será sobre o Protocolo IPv6. O que é esse protocolo de internet? Substitui o IPv4 por que? Quais são suas funcionalidades, objetivos e desempenho? E os seus pacotes, muda o formato com relação ao antigo?
Vamos então entender?!

Introdução ao IPv6
Como havia escassez para o IPs, houve uma conferência para determinar o novo tipo de endereçamento de IPs públicos e a recomendação final para o novo Protocolo Internet baseou-se em uma versão revisada do SIPP, que passou a incorporar endereços de 128 bits, juntamente com os elementos de transição e autoconfiguração do TUBA, o endereçamento baseado no CIDR e os cabeçalhos de extensão. O CATNIP, por ser considerado muito incompleto, foi descartado. Após esta definição, a nova versão do Protocolo Internet passou a ser chamado oficialmente de IPv6.
Versões de protocolos que deram origem ao IPv6:
·                     CANTIP: foi concebido como um protocolo de convergência, para permitir a qualquer protocolo da camada de transporte ser executado sobre qualquer protocolo de camada de rede, criando um ambiente comum entre os protocolos da Internet, OSI e Novell;
·                     TUBA: sua proposta era de aumentar o espaço para endereçamento do IPv4 e torná-lo mais hierárquico, buscando evitar a necessidade de se alterar os protocolos da camada de transporte e aplicação. Pretendia uma migração simples e em longo prazo, baseada na atualização dos hosts e servidores DNS, entretanto, sem a necessidade de encapsulamento ou tradução de pacotes, ou mapeamento de endereços;
·                     SIPP: concebido para ser uma etapa evolutiva do IPv4, sem mudanças radicais e mantendo a interoperabilidade com a versão 4 do protocolo IP, fornecia uma plataforma para novas funcionalidades da Internet, aumentava o espaço para endereçamento de 32 bits para 64 bits, apresentava um nível maior de hierarquia e era composto por um mecanismo que permitia “alargar o endereço” chamado cluster addresses. Já possuía cabeçalhos de extensão e um campo flow para identificar o tipo de fluxo de cada pacote.


Figura 1: Logotipo de IPv6.

IPv6 é abreviação de Internet Protocol version 6 ou, em português, Protocolo Internet versão 6. Pode-se dizer que um protocolo consiste num conjunto de regras que permitem a comunicação entre dispositivos. O protocolo é uma “linguagem”. O Protocolo Internet, ou IP, foi criado para permitir a comunicação entre diferentes redes de computadores. O IPv4 tem sido usado na Internet desde 1983.
O IPv6 é o sucessor do IPv4. Ele foi desenvolvido ao longo da última década com essa finalidade. Hoje ele é um protocolo maduro, com algumas vantagens em relação ao IPv4, e suportado pelos principais equipamentos e programas de computador. Sua implantação na Internet já está em andamento.
Prevê-se que ambos, IPv4 e IPv6, funcionem lado a lado na Internet por algum tempo. Mas, a médio ou longo prazo, o IPv6 substituirá o IPv4.
Se compararmos o endereço IP com o endereço de uma casa, com a adoção do IPv6 será como se todas as casas ganhassem um número novo, mas diferente do antigo. Por exemplo, que fosse, ao invés de um número simples, um código baseado em números e letras. Dessa forma as casas teriam ainda seu número antigo e o novo código: eles não se misturariam ou se confundiriam, porque seriam diferentes. Ambos poderiam ser usados para se chegar a um determinado destino. Quando todas as casas recebessem o novo código o antigo poderia, finalmente, ser deixado completamente de lado, pois não teria mais utilidade.
Objetivos e funcionalidades
O principal objetivo era a re-estruturação do formato de endereçamento de modo a atender a carência de alocações públicas. Algumas diferenças de funcionamento apareceram, porém a transparência de comunicação entre as versões foi preservada.
As limitações estão mais presentes nos firmware e softwares dos equipamentos que, em alguns casos, poderá haver a necessidade de substituição ou simplesmente atualização do sistema.
O IPv6 eleva substancialmente a quantidade de endereços válidos para a internet, bem como procura reduzir a utilização de banda de rede com redução de informações no cabeçalho de dados.
Endereçamento IPv6, assim como no IPv4, identifica os nós de uma rede. A grande diferença do novo sistema é que passamos a usar 128 bits com notação Hexadecimal, contendo em oito grupos de dois Bytes e separados por dois pontos (:).
A fim de melhorar a escrita é permitida a simplificação da notação da seguinte maneira: onde houver grupos de zeros, apenas um deles é necessário ser escrito e, os zeros à esquerda de grupos com outros valores, não necessitam ser representados. Veja a representação do endereço acima de forma mais curta: FEDC:0:0:0:8:800:200C:417ª Uma forma mais simplificada de se escrever uma notação de endereço IPv6, é a utilização de um par de “ : “ para representar grupos de zeros consecutivos, conforme apresentado na sequência: FEDC::8:800:200C:417ª.
Cabe ressaltar que somente uma supressão de zeros por “::“ é permitida. Caso apareçam duas sequências de zeros, apenas uma deverá receber esta representação. A outra, será representada por um 0 normalmente.
A rede baseada em IPv6 também pode ser subdividida em sub-redes utilizando notação de barra comum (/) como no IPv4. Alguns prefixos de endereçamento já foram estabelecidos e não devem ser utilizados para endereçamentos comuns.
A notação de endereçamento do IPv6 permitiu aos órgãos de controle designar um prefixo para cada país que por sua vez poderá criar subprefeitos para cara região ou estado.
Protocolos do IPv6
INTERNET CONTROL MESSAGE PROTOCOL VERSION 6 (ICMPv6)
O protocolo ICMP foi desenvolvido para transporte de diagnósticos sobre a transação de datagramas pela rede. Ele é responsável pelas funções de relatar erros de entrega de datagramas, atualizar tabelas de rotas entre outras.
Com a versão 6 do protocolo, as funções do IGMP e do ARP foram incorporadas a ele, o que o tornou muito mais robusto.
NEIGHBOR DISCOVERY PROTOCOL (NDP)
Esta é uma das grandes funcionalidades do novo ICMP. Ela substitui o protocolo de resolução de endereços (ARP), o ICMP de descoberta de roteador do protocolo de mensagens e o redirecionamento ICMP, que são usados no IPv4. Isso possibilita aos nós da rede determinar os MTUs nos quais seus vizinhos que executam tarefas de roteamento ou redirecionamento estão conectados, configurarem seus endereços automaticamente (DHCPv6), descobrir quem são os gateways de sua rede local, determinar o melhor caminho para envio de seus datagramas a partir de informações dos roteadores vizinhos, entre outras.
Combinando essas funcionalidades, temos um eficiente disseminador de informações na rede.
Cinco tipos de mensagens ICMPv6 foram criados pra facilitar o trabalho do NDP:
Mensagens de Solicitação de Roteador (Router Solicitation message): essa solicitação é enviada pelo host a fim de solicitar aos roteadores que enviem informações sobre suas rotas. Isso o auxiliará da definição de um gateway padrão.
Mensagens de Anúncios de Rota (Router Advertisement message): tem como objetivo a divulgação de informações sobre rotas dos roteadores. A disseminação destes dados é feita periodicamente ou quando há uma Mensagem de Solicitação de Roteador.
Mensagem de Solicitação de Vizinhança (Neighbor Solicitation message):  solicitado pelos nós de origem via multicast, requer informações dos nós vizinhos sobre endereçamentos de portas de saída da rede local, os quais são repassados adiante para outros nós. Para se saber a distância a que estão destes vizinhos, utilizasse mensagens do tipo unicast.
Mensagem de Anúncio de Vizinhança (Neighbor Advertisement message): é a resposta à Mensagem de Solicitação de Vizinhança enviada ao nó solicitante.
Mensagens de Redirecionamento: o roteador utiliza-se desta mensagem pra informar aos hosts os melhores caminhos pelos quais eles deverão enviar seus datagramas a fim de atingirem seus destinos.
Compatibilidade entre IPv4 e IPv6
Em virtude da semelhança entre as duas versões do protocolo IP, há a possibilidade de que elas funcionem em conjunto. As preocupações não se prendem somente ao formato do endereço, mas a compatibilidade entre os, a qual deve ser igualmente ajustada.
Em termos de endereço, o IPng define dois modos para compatibilizar o IPv6 com o IPv4:
IPv4 compatível: trata-se do processo de conversão de endereços propriamente dito, IPv4 para IPv6 e vice versa. São utilizados para comunicação entre duas redes IPv6 com a utilização de uma rede IPv4 como caminho de passagem sem a utilização de “tunelamento”. O processo de conversão de endereços se dá com a inclusão de um endereço IPv4 como, por exemplo, 10.70.4.5 com os 96 bits que faltam para 128 bits (tamanho padrão do IPv6) inseridos à esquerda “setados” em zero da seguinte maneira: 0:0:0:0:0:0:0A:46:04:05 ou simplesmente ::0A:46:04:05. Deste modo, quando o roteador que receber o datagrama, retirar os 96 zeros, ele entrega um pacote convertido para IPv4 na rede compatível.
IPv4 mapeado: este endereçamento foi desenvolvido para permitir a comunicação entre um host puramente IPv6 com outro puramente IPv4. Seu formato consiste de 80 bits setados em zero, 16 bits em um e o endereço IPv4 do destino. A apresentação deste endereço ficaria da seguinte maneira: 0:0:0:0:0:FFFF:0A46:0405.
Apesar da semelhança entre os resultados, o complemento 0:0:0:0:0:FFFF é o parâmetro que indica que o endereço é mapeado, e não compatível.
Quanto aos cabeçalhos, à maioria dos campos se mapeia diretamente e o que não é possível faz-se um processo de conversão. Ainda há a possibilidade de se ter um host com pilha dupla, ou seja, que é capaz de conversar tanto com equipamentos IPv6 quanto com equipamentos IPv4.
Local ao enlace: são endereços para uso em redes que não se conectam a nenhum outro tipo de rede. Destinado a locais isolados e desprovidos de qualquer serviço de roteamento. Seu prefixo é FE80:: e terminam com o endereço da interface contendo 64 bits.
Local à instalação: assim como no IPv4, alguns endereços são restritos às corporações, como os 192, 10, 168 e 176, e não podem ser roteados para a Internet . Eles possuem uma divisão diferenciada.
FEC0::(subnet):(endereço da interface): onde a subnet possui 16 bits e o endereço da interface, 64 bits.

Figura 2: Comparações de pacotes entre IPv4 e IPv6.

Comparações entre as versões de protocolos
Quando se comparam os dois cabeçalhos observa-se que muitos campos do IPv4 foram suprimidos devido a funções reprojetadas no IPv6.
Campos preservados:
·                    Versão do IP
·                    Tipo de Serviço, agora apresentado como Classe;
·                    Tempo de vida, nomeado de Limite de Saltos;
·                    Protocolo, denominado de Próximo Cabeçalho;
·                    Endereço de Origem;
·                    Endereço de Destino.
Campos integrados
Sinalizador de Fragmento e Identificador de início do Datagrama Fragmentado: agora chamada de Rótulo de Fluxo, campos substituídos:
·                    Tamanho do Cabeçalho e Comprimento Total do Datagrama: no IPv6, o cabeçalho possui tamanho fixo, não sendo mais necessário o cálculo deste. O campo Tamanho do Payload informa qual o tamanho do datagrama já subtraindo os 40 Bytes do cabeçalho.
Campos Eliminados
·                    Identificação: os cabeçalhos de extensão possuem informações mais completas sobre fragmentação, eliminando assim a necessidade de tal campo.
·                    Checagem de erros: entendendo que os níveis superiores tratam a questão de checagem de erros, o IPv6 não trata mais as questões de garantia, apesar de existir um cabeçalho opcional de autenticação que certifica se o datagrama foi recebido sem erros.

Figura 3: Protocolos de comparações entre as versões IPv4 e IPv6.

IPs disponíveis no IPv6
No IPv6, os endereços são representados por números de 128 bits como já disse. Isso significa que há 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços, o que representa cerca de 79 trilhões de trilhões de vezes o espaço disponível no IPv4. Esse número equivale a cerca de 5,6 x 10^28 (5,6 vezes 10 elevado a 28) endereços IP por ser humano, ou ainda, aproximadamente, 66.557.079.334.886.694.389 de endereços por centímetro quadrado na superfície da Terra.
Metade dos 128 bits, no entanto, está reservada para endereços locais numa mesma rede. Isso significa que somente 18.446.744.073.709.551.616 redes diferentes são possíveis.
A grande quantidade de endereços é capaz de atender às necessidades da Internet no futuro imaginável. Ela facilita também o processo de atribuição dos números dentro das redes permitindo, por exemplo, a configuração automática dos endereços IP com base no endereçamento físico das placas de rede.
As alocações mínimas para provedores atualmente são de grandes blocos (/32).
Um bloco /32 é capaz de atender a um total de:
·                     4.294.967.296 redes /64, ou
·                     16.777.216 redes /56, ou ainda
·                     65.536 redes /48.
Os usuários finais que buscam alocações PI (provider independent) podem receber blocos variando entre /48 e /32, conforme a necessidade.
Existem um compromisso entre o tamanho dos blocos alocados e o tamanho da tabela de roteamento. Blocos pequenos demais são inviáveis.
Formato de pacotes do IPv6
IPv6 muda completamente o formato do datagrama IP. Como a figura abaixo mostra, um datagrama IPv6 tem um cabeçalho base fixo seguido de 0 ou mais cabeçalhos extras, seguidos pelos dados [COM 95].

Figura 4: Formato do Datagrama IP.

Embora o IPv6 extenda o IPv4, seu header de pacote é relativamente simples [HIN 95], contendo menos informações que o cabeçalho do datagrama IP da versão 4. Alguns campos do cabeçalho da versão 4 e opções foram substituídos por cabeçalhos de extensão.
Algumas mudanças no header são [COM 95]:
·                    O campo de tamanho de cabeçalho foi eliminado, desde que tem tamanho fixo de 40 octetos, substituído por um campo que indica o tamanho do que se segue ao cabeçalho;
·                    O tamanho dos campos de endereço passaram para 16 octetos;
·                    Informação de fragmentação passaram a estar em cabeçalhos de extensão;
·                    O campo Time-to-live mudou para hop limit.
·                    O campo Service Type mudou para Flow Label
·                    O campo que indicava o protocolo sendo "transportado" passou a ser um campo que indica o próximo header.
A figura abaixo esquematiza o cabeçalho:

Figura 5: Cabeçalho IPv6.

Version: versão do protocolo 4 bits;
Priority: valor da Prioridade 4 bits;
Flow Label: qualidade 24 bits;
Payload Length: tamanho do payload, isto é, o resto do pacote que segue ao IPv6 header, excluindo este, que tem tamanho fixo de 40 octetos. Desta forma o datagrama IPv6 pode ter até 64 k 16 bits;
Next Header: identifica o próximo header, isto é, o protocolo acima do IP. Usa os mesmo valores da versão 4, mas vem em substituição ao campo Protocol da versão 4 8 bits;
Hop Limit: número máximo de hops pelos quais o pacote pode trafegar. Decrementado em 1 a cada novo hop. Quando seu valor é igual a 0 o pacote é descartado 8 bits;
Source Address: identifica o endereço origem do pacote 128 bits;
Destination Address: identifica o endereço destino do pacote (nem sempre o destino final, no caso de um header opcional de roteamento estar presente 128 bits.
Transição do IPv4 para o IPv6
Na transição do IPv4 para o IPv6 é necessária à coexistência e interoperabilidade entre ambos os protocolos e para isso é necessário o uso de tecnologias auxiliares, conhecidas como técnicas de transição. A necessidade de coexistência ocorre em diferentes cenários, cada qual com características e demandas singulares e uma técnica de transição isoladamente normalmente não é capaz de atender simultaneamente a todos. Assim, o primeiro passo para entender as técnicas de transição é entender os cenários existentes, as necessidades apresentadas e as dificuldades envolvidas.
A enumeração dos cenários a seguir é uma generalização e extensão da enumeração feita na RFC 6144. Contudo, enquanto esta RFC trata apenas de cenários utilizados com soluções de tradução, os mesmos são aqui usados para descrever também situações onde soluções de tunelamento podem ser aplicadas.

Figua 6: Transição entre IPv4 e IPv6.

Mudanças que com certeza vão afetar você, de forma direta ou indireta – principalmente devido aos benefícios que a mesma proporcionará.
Na área de Telecomunicações, o universo relacionado à IPv6 também está cada vez mais em foco, e será com certeza assunto presente em um futuro bem próximo.
O IPv6 não foi planejado para substituir o IPv4, e sim para resolver os problemas do mesmo. Ele não possui interoperabilidade com o IPv4, ou seja, eles são ‘incompatíveis’, mas ambos vão existir em paralelo por um bom tempo.
Então, um dos principais desafios será em relação à comunicação entre as redes, que deverá aproveitar a infraestrutura IPv4 existente.
Embora o IPv4 não tenha interoperabilidade com o IPv6, os mesmos precisam de alguma forma se comunicar, ou seja, o IPv6 precisa de certa ‘compatibilidade’ com a versão anterior.
Nesse caso, os pacotes IPv6 são re-empacotados no formato IPv4, enviados através dos hosts IPv4, e desempacotados quando atingirem o seu destino IPv6.
Naturalmente, nesse exemplo, não teremos por exemplo como ter as facilidades de prioridade e controle de fluxo.
De qualquer forma, esta foi apenas uma técnica, e muita coisa já mudou desde que o IPv6 foi concebido. À medida que mais pessoas passarem a lidar com o IPv6, é possível que soluções melhores apareçam.
Referências:
IPv6 versus IPv4: Características, instalação e compatibilidade / Elisnaldo Santiago Prazer; Professor orientador MSc. André Calazans Barreira. – Guará: [s. n.], 2007. 120f. : il.
Abraço a todos. J

Nenhum comentário:

Postar um comentário