Introdução
A internet é uma rede que interconecta milhões de computadores no mundo inteiro. Para que esta comunicação ocorra, cada dispositivo conectado necessita de um endereço único, que o diferencie dos demais. Esta é a função do IP (Internet Protocol). O problema é que, a cada dia, mais e mais computadores são ligados à internet (entenda computadores de maneira geral, isto é, PCs, servidores, smartphones, tablets, etc) e, por conta disso, o número de endereços IP disponível está acabando. É aí que entra em cena o IPv6, sigla para Internet Protocol version 6.
Neste texto, você conhecerá um pouco do funcionamento deste protocolo, verá suas diferenças em relação ao IPv4 e entenderá como este padrão poderá solucionar o problema da falta de endereços na internet.
Endereço IP
Antes de entrarmos no assunto IPv6 em si, é importante conhecer o IPv4, que convencionamos chamar apenas de IP. O IPv4 é composto por uma sequência numérica no seguinte formato: x.x.x.x, onde x é um número que pode ir de 0 a 255, por exemplo:
189.34.242.229
Para que cada computador conectado à internet tenha um endereço IP exclusivo, uma entidade chamada IANA/ICANN distribui “cotas” de IP para todas as partes do mundo. Estas cotas são administradas por entidades regionais que, por sua vez, as repassam para provedores, também chamados de ISP (Internet Service Provider).
Quando você contrata uma empresa para fornecer acesso à internet à sua residência, por exemplo, o provedor irá fornecer um endereço IP de sua cota (em boa parte dos casos, esse endereço muda a cada conexão) para conectar seu computador ou sua rede à internet. Websites também têm endereço IP, afinal, ficam armazenados em servidores que, obviamente, estão conectados à internet.
O formato do IPv4 é uma sequência de 32 bits (ou quatro conjuntos de 8 bits) e isso permite, teoricamente, a criação de até 4.294.967.296 endereços. Uma quantidade muito grande, não é mesmo? Mas, acredite, trata-se de uma quantidade que já é vista como insuficiente.
Esse problema existe porque a internet não foi planejada de forma a ser tão grande. A ideia original era a de se criar um sistema de comunicação que interligasse centros de pesquisa. Somente quando a internet passou a ser utilizada de maneira ampla é que ficou claro que o número máximo de endereços IP poderia ser atingido em um futuro relativamente próximo. Foi a partir desta percepção que o projeto IPng (Internet Protocol next generation) teve início, dando origem ao que conhecemos como IPv6.
Esgotamento de endereços IP
Não é difícil entender o porquê do esgotamento de endereços no formato IPv4. Para início de conversa, parte destes 4 bilhões de combinações disponíveis – como aquelas que começam em 10 e 127, por exemplo – estão reservados para redes locais (saiba mais sobre isso no texto Endereços IP) ou para testes. Além disso, há uma parte expressiva de endereços que são destinados a instituições e grandes corporações.
Mas o fator principal é que o mundo está cada vez mais conectado. É possível encontrar pontos de acesso providos por redes Wi-Fi em shoppings, restaurantes, aeroportos e até em ônibus. Sem contar que é cada vez maior o número de pessoas com conexão banda larga em casa ou que assinam planos 3G ou 4G para acessar a internet no smartphone ou no notebook a partir de qualquer lugar.
Medidas paliativas foram adotadas para lidar com essa questão, como a utilização do NAT (Network Address Translation), uma técnica que permite que um único endereço IP represente vários computadores, esquema esse que é aplicado, por exemplo, em provedores de acesso via rádio ou até mesmo por operadoras que oferecem acesso 3G.
O problema é que o NAT e outras medidas implementadas têm suas limitações e, no máximo, apenas adiam o esgotamento, de forma que uma solução definitiva e prática precisa ser adotada. A essa altura, você já sabe que tal solução atende pelo nome de IPv6.
Endereços IPv6
A criação do IPv6 consumiu vários anos, afinal, uma série de parâmetros e requisitos necessita ser observada para que problemas não ocorram ou, pelo menos, para que sejam substancialmente amenizados em sua implementação. Em outras palavras, foi necessário fazer uma tecnologia – o IPv4 – evoluir, e não criar um padrão completamente novo.
A primeira diferença que se nota entre o IPv4 e o IPv6 é o seu formato: o primeiro é constituído por 32 bits, como já informado, enquanto que o segundo é formado por 128 bits. Com isso, teoricamente, a quantidade de endereços disponíveis pode chegar a 340.282.366.920.938.463.463.374.607.431.768.211.456, um número absurdamente alto!
Mas há um problema: se no IPv4 utilizamos quatro sequências numéricas para formar o endereço – por exemplo, 208.67.222.220 -, no IPv6 teríamos que aplicar nada menos que 16 grupos de números. Imagine ter que digitar tudo isso!
Por esse motivo, o IPv6 utiliza oito sequências de até quatro caracteres separado por ‘:’ (sinal de dois pontos), mas considerando o sistema hexadecimal. Assim, o endereço IPv6 do InfoWester, por exemplo, pode ser:
FEDC:2D9D:DC28:7654:3210:FC57:D4C8:1FFF
Um formato ainda confuso, de fato, mas melhor do que se seguisse a mesma regra do IPv4. Felizmente, um endereço IPv6 pode ser “abreviado”. Isso porque números zero existentes à esquerda de uma sequência podem ser ocultados, por exemplo: 0260 pode ser representado como 260. Além disso, grupos do tipo 0000 podem ser exibidos apenas como 0. Eis um exemplo de um endereço “normal” seguido de sua abreviação:
805B:2D9D:DC28:0000:0000:0000:D4C8:1FFF
805B:2D9D:DC28:0:0:0:D4C8:1FFF
O fato é que o formato do endereço IPv6 é tão grande que sequências do tipo 0:0:0, por exemplo, serão comuns. Neste caso, é possível omitir esses grupos, pois o computador saberá que o intervalo ocultado é composto por sequências de zero. Por exemplo:
FF00:4502:0:0:0:0:0:42
Ocultando os espaços com 0, o endereço acima pode ficar assim:
FF00:4502::42
É importante frisar que essa ocultação não pode acontecer mais de uma vez no mesmo endereço em pontos não sequenciais. Por exemplo:
805B::DC28::D4C8:1FFF => Errado!
Neste exemplo, somente uma das abreviações poderá permanecer no endereço.
Tipos de endereços IPv6
De modo geral, um endereço IPv6 faz parte de uma das seguintes categorias: unicast, multicast e anycast. Tal caraterística serve, basicamente, para permitir uma distribuição otimizada de endereços e possibilitar que estes sejam acessados mais rapidamente, de acordo com as circunstâncias. Vejamos brevemente cada um dos tipos:
– Unicast: tipo que define uma única interface, de forma que os pacotes enviados a esse endereço sejam entregues somente a ele. É apropriado para redes ponto-a-ponto;
– Multicast: neste tipo, pacotes de dados podem ser entregues a todos os endereços que pertencem a um determinado grupo;
– Anycast: semelhante ao multicast, com a diferença de que o pacote de dados é entregue à interface do grupo que estiver mais próxima. Esse tipo é apropriado para servidores de DNS, por exemplo.
Vale frisar que, assim como acontece com o IPv4, o IPv6 também pode ter seus endereços divididos em “cotas” ou “categorias”, de forma que hierarquias possam ser criadas para determinar a distribuição otimizada de endereços.
Cabeçalho do IPv6
O padrão IPv4 possui um cabeçalho (header) com várias informações essenciais para a troca de informações entre sistemas e computadores. No IPv6, no entanto, o cabeçalho sofreu alterações. A principal é o seu tamanho, que passa a ser de 40 bytes, o dobro do padrão do IPv4. Além disso, alguns campos foram retirados, enquanto outros tornaram-se opcionais. Esta simplificação pode tornar a comunicação mais eficiente e reduzir o processamento necessário para isso.
Vejamos os campos:
– Version: campo que identifica a versão do protocolo. No caso do IPv6, é preenchido com 6. No IPv4, com 4;
– Traffic class: indica a qual classe o pacote de dados pertence, podendo definir sua prioridade;
– Flow label: identifica pacotes que pertecem ou não ao mesmo fluxo de dados;
– Payload length: informa o tamanho do pacote em bytes;
– Next header: identifica qual o próximo cabeçalho que segue o atual (um cabeçalho de extensão, por exemplo) ou o protocolo da próxima camada;
– Hop limit: indica a quantidade máxima de roteadores pelos quais o pacote pode passar. Caso exceda o limite, o pacote é descartado;
– Source address: informar o endereço de origem do pacote;
– Destination addres: informa o destino do pacote, isto é, o endereço final.
Note que o cabeçalho do IPv6 pode ser “estendido” com campos adicionais, que oferecem, por exemplo, recursos para autenticação ou confidencialidade dos pacotes de dados transmitidos. São os chamados “cabeçalhos de extensão”, tal como menciona a explicação do campo “Next header”.
IPv6 e IPv4
O elevadíssimo número de endereços IPv6 permite que apenas este protocolo seja utilizado na internet. Acontece que essa mudança não pode acontecer de uma hora para outra. Isso porque roteadores, servidores, sistemas operacionais, entre outros precisam estar plenamente compatíveis com o IPv6, mas a internet ainda está baseada no IPv4. Isso significa que ambos os padrões vão coexistir por algum tempo.
Seria estupidez criar dois “mundos” distintos, um para o IPv4, outro para o IPv6. Portanto, é necessário não só que ambos coexistam, mas também se que comuniquem. Há alguns recursos criados especialmente para isso que podem ser implementados em equipamentos de rede:
– Dual-Stack (pilha dupla): faz com que um único dispositivo – um roteador, por exemplo – tenha suporte aos dois protocolos;
– Tunneling (tunelamento): cria condições para o tráfego de pacotes IPv6 em redes baseadas em IPv4 e vice-versa. Há várias técnicas disponíveis para isso, como Tunnel Broker e 6to4, por exemplo;
– Translation (tradução): faz com que dispositivos que suportam apenas IPv6 se comuniquem com o IPv4 e vice-versa. Também há várias técnicas para tradução, como Application Layer Gateway (ALG) e Transport Relay Translator (TRT).
Felizmente, praticamente todos os sistemas operacionais da atualidade são compatíveis com ambos os padrões. No caso do Windows, por exemplo, é possível contar com suporte pleno ao IPv6 desde a versão XP (com Service Pack 1); versões posteriores, como Windows 7 e Winodws 8, contam com suporte habilitado por padrão. Também há compatibilidade plena com o Mac OS X, Android e versões atuais de distribuições Linux, entre outros.
É bom que se saiba: já é plenamente possível obter endereços IPv6, o que deixa claro que esta é uma tecnologia estável e usável. No Brasil, por exemplo, as solicitações podem ser feitas no endereço registro.br.
Segurança
No IPv6, houve também a preocupação de corrigir as limitações de segurança existentes no IPv4. Um dos principais mecanismos criados para isso – talvez, o mais importante – é o IPSec (IP Security), que fornece funcionalidades de criptografia de pacotes de dados, de forma a garantir três aspectos destes: integridade, confidencialidade e autenticidade.
Na verdade, o IPSec pode ser utilizado também no IPv4, mas não em comunicação baseada em NAT. Não há necessidade deste último no IPv6, portanto, a utilização do IPSec ocorre sem limitações.
Para efetuar sua função, o IPSec faz uso, essencialmente, de um cabeçalho de extensão chamado Authentication Header (AH) para fins de autenticação, de outro denominado Encapsulating Security Payload (ESP) para garantir a confidencialidade, e do protocolo Internet Key Exchange (IKE) para criptografia.
Vale a pena observar que o protocolo IPv6, por si só, já representa um grande avanço de segurança, uma vez que a sua quantidade de endereços é tão grande que, por exemplo, torna inviável o uso técnicas de varredura de IP em redes para encontrar possíveis computadores com vulnerabilidades de seguranças.
É importante frisar, no entanto, que o fato de o IPv6 oferecer mais proteção que o IPv4 não significa que diminuir os cuidados com a segurança não trará problemas: sistema de controle de acesso, firewall, antivírus e outros recursos devem continuar sendo aplicados.
ICMPv6
O padrão IPv4 faz uso de um protocolo chamado Internet Control Message Protocol (ICMP) para obtenção de dados referentes à rede e para a identificação de erros de comunicação por meio de mensagens, ajudando, evidentemente, numa possível correção, quando for o caso. O IPv6 também utiliza o mesmo recurso, só com que as devidas adaptações: o ICMPv6.
Em relação ao ICMP, o ICMPv6 se diferencia, essencialmente, por permitir uma quantidade maior de mensagens que o primeiro. O motivo para isso é simples: o ICMPv6 incorpora funções que no ICMP eram destinadas a outros protocolos. É importante frisar que o ICMPv6 não é um cabeçalho de extensão do IPv6, mas sim um protocolo que trabalha com este.
Entre as mensagens oriundas do ICMPv6 estão as que informam “destino inacessível”, indicando que ao emissor que o receptor não pôde receber o pacote de dados; “requisição de eco”, que consiste em uma mensagem informativa para determinar se um determinado integrante da rede – um servidor, por exemplo – está ativado; entre outros.
O cabeçalho do ICMPv6 é composto, essencialmente, pelos seguintes campos:
– Type: tipo de mensagem, isto é, se é erro ou informação;
– Code: informa um código que é atrelado a determinados tipos de mensagem;
– Checksum: informa o valor de uma determinada soma, que indicará algum problema caso sua verificação acuse outro resultado;
– Data: fornece dados relacionados à mensagem.
Finalizando
Como você pode ter percebido, o protocolo IPv6 representa muito do que será a internet em um futuro próximo, uma vez que não só elimina as limitações existentes no IPv4, como também abre um leque de possibilidades para deixar o mundo ainda mais conectado.
E é claro, o assunto aqui foi abordado de maneira introdutória. IPv6 é, considerando todos os seus aspectos, um assunto bastante amplo, ao ponto de existir cursos e livros exclusivos sobre o protocolo. E se você é ou pretende ser um profissional especializado em redes, considere como uma obrigação aprofundar seus conhecimentos em IPv6.
Para finalizar, a resposta para uma pergunta que você pode ter feito durante a leitura do texto: por que IPv6 e não IPv5? O IPv5, na verdade, existe, mas é uma tecnologia praticamente em desuso. Trata-se de uma versão experimental de um protocolo chamado Internet Stream Protocol, criado para testar transmissões de áudio e vídeo, e para simular situações referentes à internet. Não passou disso…
Para saber mais sobre IPv6, consulte os sites que serviram de referência para este texto:
Deixe uma resposta