4- CARACTERíSTICAS DO IPv6

Conforme Sofia (1998) o IPv6 aumentou o endereçamento de IP de 32 bits para 128 bits. O IPv6 mantém as principais características que fizeram do IPv4 um sucesso mundial. Assim como o IPv4, é um protocolo sem conexão - cada datagrama contém um endereço de destino e é roteado de forma independente. O IPv6 também possui um número máximo de roteadores por onde pode passar (Hop Limit). Com objetivo de simplificar a principal função do IP, rotear pacotes, sete campos no IPv6 foram suprimidos: IHL, identification, flags, fragment offset, header checksum, options e Padding. Quatro foram renomeados e em alguns casos, modificados: Total length, protocol type, time to live (TTL), type of service. Três foram mantidos: Version, Source Address, Destination Address. E um criado: Flow Label. Na figura apresentada a seguir são mostradas as diferenças entre os cabeçalhos IPv4 e IPv6.

Comparação e exposição do Cabeçalho IPv6 x IPv4


As características que definem o protocolo IPv6 são:

a. expansão da capacidade de endereçamento e encaminhamento;

b. capacidade de qualidade de serviço;

c. capacidade de providenciar autenticação e privacidade;

d. simplificação dos cabeçalhos.

4.1 - Datagrama IPv6

Desenhado para ser o sucessor do IPv4 o datagrama do IPv6, segundo Comer (1995), é composto por um cabeçalho (header) com menos campos, alguns cabeçalhos estendidos opcionais e o campo para dados. O datagrama mínimo tem o cabeçalho base seguido dos dados. O formato do campo é:

a. Versão – 4- bits Protocolo de Internet versão 6.

b. Classe do Tráfico (Traffic Class) – 4- bits Campo de Classe do Tráfico (Serviços).

c. Identificação de Fluxo (Flow Label) – 24- bits Identificação e diferenciação de pacotes do mesmo fluxo na camada de rede.

d. Comprimento do campo de Informação (Payload Length)– 16- bits – Tamanho total dos dados no pacote.

e. Próximo cabeçalho (Next Header)– 8- bits Identifica o próximo cabeçalho seguido do cabeçalho IPv6. Poderá ser um pacote no nível da camada de transporte (TCP/UDP) ou cabeçalhos denominados de (extension headers).

f. Limites de Saltos (Hop Limit) – 8- bits número máximo de saltos nos equipamentos, decremento de 1 a 1 cada nó que segue o pacote.

g. Endereço de Origem (Source Address) – 128- bits endereço de origem do pacote.

h. Endereço de Destino (Destination Address) – 128- bits endereço da intenção do destino do pacote (possibilidade de não ser o destino final, depende da existência do cabeçalho de roteamento).

4.1.1 - Cabeçalhos Simplificados

O cabeçalho do IPv6 conta com menos campos e não tem mais o equivalente ao “checksum” do IPv4. Como cada roteador precisa decrementar o TTL (Time To Live), o checksum do cabeçalho IPv4 precisa ser recalculado. Nesse ponto encontra-se um dos motivos da alta taxa de utilização da CPU dos roteadores. O objetivo de não utilizar o checksum com o IPv6 é processar mais rapidamente os datagramas no roteador. O cabeçalho é formado pelo trecho inicial de 64 bits mais dois campos com endereço origem e destino, com 128 bits cada um. Assim o tamanho total (constante) é 320 bits ou 40 bytes (SILVA 1998). O cabeçalho IPv6 apresenta assim uma estrutura mais simplificada, conforme figura mostrada anteriormente.

4.1.2 - Cabeçalhos Estendidos IPv6

Segundo Silva (1998), o modo de tratar as opções do IPv6 é a apresentação um esquema de módulos: a informação adicional é transmitida através dos cabeçalhos de extensão.

Datagrama IPv6 com cabeçalhos de extensão.

Este esquema fornece ao IPv6 flexibilidade para transportar informação relevante para encaminhamento e aplicações, bem como fornecer mecanismos de segurança, fragmentação, qualidade de serviço e gestão de rede, com escalabilidade ilimitada. Na medida em que estes módulos são opcionais, este esquema ajuda ainda a reduzir o custo de processamento de pacotes IPv6. Os cabeçalhos de extensão são colocados entre o cabeçalho IPv6 e o cabeçalho do protocolo de transporte, estando ligados entre si pelo campo Próximo Cabeçalho (Next Header), formando uma cadeia, conforme mostrado na figura abaixo.

Formação do cabeçalho de extensão IPv6.

Exceto quando os cabeçalhos de extensão não são processados ou examinados por nenhum nodo no caminho da entrega do pacote até que o pacote atinja o nodo do endereço de destino do cabeçalho IPv6. Atualmente, encontram-se já definidos os seguintes cabeçalhos de extensão:

a. Hop-by-Hop. Usado para transportar informação opcional que tem de ser examinada por cada nodo ao longo do caminho do pacote. Incluindo a origem e o destino do nodo. Deve ser seguido pelo cabeçalho IPv6 e sua presença é indicada pelo valor 0 no Próximo Cabeçalho (Next Header).

Hop-by-Hop

b. Opções de Destino IPv6 (Destination Options Header). Usado para transportar informação opcional a ser analisada apenas no destino do pacote.

c. Encaminhamento (Routing Header). Usado por uma fonte IPv6 para listar um ou mais nodos intermediários que devem ser visitados até o pacote chegar ao destino. O IPv6 mantém a habilidade da origem especificar a rota, porém para isso há um cabeçalho extendido opcional, semelhante às opções Loose Source e Record Route do IPv4. Este cabeçalho contém entre outras informações uma lista de endereços de roteadores intermediários por onde o datagrama precisa passar.

Encaminhamento

d. Fragmentação (Fragmentation Header). Usado para enviar módulos de dados maiores do que a Maximum Transmit Unit (MTU) de um caminho. O IPv6, assim como o IPv4, deixa a cargo do destino final a ação de reconstruir o datagrama caso tenha sido fragmentado. Porém, no IPv6 a fragmentação é fim-a-fim, isto é, antes de enviar um datagrama a origem utiliza-se da técnica MTU Discovery para descobrir qual é o menor MTU ao longo do caminho a ser percorrido. Antes de enviar o datagrama, a própria origem sabe a quantidade de fragmentos necessária para esta transmissão. A fragmentação fim-a-fim permite que cada roteador manipule mais datagramas por unidade de tempo. Um roteador tradicional fragmenta boa parte dos datagramas que recebe, portando a carga de sua CPU freqüentemente alcança valores próximos do 100%. Porém a fragmentação fim-a-fim tem uma importante conseqüência: muda fundamentalmente uma das prerrogativas da Internet. Hoje em dia, a flexibilidade do IPv4 permite que rotas sejam mudadas a qualquer momento. Se roteadores intermediários falharem, o tráfego pode seguir novo caminho sem que os extremos, origem e destino, tomem conhecimento dessa mudança e, teoricamente, sem interromper o serviço oferecido. No IPv6 a rota não pode ser mudada com tanta facilidade porque a mudança pode também resultar na mudança do caminho do Path MTU. Se o Path MTU ao longo da nova rota é menor que o Path MTU ao longo da rota original, ou um roteador intermediário precisa fragmentar ou a fonte de datagramas precisa ser informada. Para resolver o problema de mudança que possa afetar o Path MTU, o IPv6 permite que roteadores intermediários utilizem-se de um recurso chamado tunelamento de IPv6 através de IPv6. Quando precisam fragmentar os roteadores IPv6 intermediários criam um datagrama inteiramente novo que encapsula o datagrama original como dado deste (SILVA, 1998).

Fragmentação e encapsulamento do datagrama.

e. Autenticação (Authentication Header). Usado para providenciarautenticação e garantia de integridade aos pacotes IPv6.

f. Cifra(IPv6 Encryption Header). Usado para providenciar confidencialidade e integridade através da cifra de dados.

g. Opções de Destino IPv6 (End-to-End Option Header). Usado para o transporte de informação opcional que apenas necessita de ser examinada pelo nodo destino de um pacote. Este cabeçalho pode surgir duas vezes no mesmo datagrama.

h. Encapsulating Security Payload. Um dos principais objetivos da próxima versão do IP é oferecer um mecanismo que garanta a privacidade na comunicação sem ter que depender de implementações da camada de aplicação. Ambos cabeçalhos visam prover um tipo de segurança a quem enviou a mensagem. O primeiro, Authentication, tem por objetivo garantir a autenticação e integridade (sem confidencialidade). Foi proposto o uso de chaves MD5 (Message Digest 5, um tipo de checksum) para garantir a interoperabilidade. A inclusão deste mecanismo permite eliminar ataques do tipo IP spoof que hoje em dia precisam ser configurados nos firewalls. O IP spoof consiste em forjar os pacotes de origem: caso a máquina B confie na máquina A, qualquer pacote que tiver o endereço IP da máquina A será “confiável”. Um dos motivos da escolha do MD5 é que o mesmo pode ser exportado pelos EUA e por outros países que possuem as mesmas restrições de exportação de algoritmos de criptografia. O segundo cabeçalho extendido opcional relacionado a segurança é o Encapsulating Security Payload. Este mecanismo provê integridade e confidencialidade para os datagramas. Ele é mais simples que alguns protocolos de segurança similares e possui flexibilidade e independência. O algoritmo padrão é o DES-CBC (Data Encription Standard). Este cabeçalho extendido opcional contém informações sobre a associação que vai ser estabelecida. São definidos dois modos:

4.2 - Maior Endereçamento

O IPv6 utiliza 128 bits para endereçamento de nós, enquanto o atual IP (IPv4) utiliza 32 bits. Com isso é possível prover uma grande quantidade de endereços (2128). Na prática, a criação de hierarquias no endereço diminuem a eficiência da utilização do espaço de endereçamento disponível. Assim mesmo, estudos estimam que os 128 bits são capazes de acomodar na mais pessimista estimativa 1564 endereços/m2 da superfície da Terra (SILVA,1998).

4.2.1 - Divisão dos Endereços

Segundo a RNP (Rede Nacional de Ensino e Pesquisa) (1998) são três tipos endereçamentos que envolvem o IPv6: unicast, anycast e multicast conforme mostra a tabela abaixo, cerca de 85% dos endereços estão reservados para uso futuro.
Alocação Prefixo (Binário) Fração do Espaço de endereçamento
Reservado Compatibilidade IPv4 0000 0000 1/256
Não atribuido 0000 0001 1/256
     
Reservado para Alocação NSAP 0000 001 1/128
Reservado para Alocação IPX 0000 010 1/128
     
Não atribuido 0000 011 1/128
Não atribuido 0000 1 1/32
Não atribuido 0001 1/16
Não atribuido 001 1/8
     
Endereços Unicast Baseado em Provedor 010 1/8
     
Não atribuido 011 1/8
     
Endereços Unicast Reservados para Bases Geográficas 100 1/8
     
Não atribuido 101 1/8
Não atribuido 110 1/8
Não atribuido 1110 1/16
Não atribuido 1111 0 1/32
Não atribuido 1111 10 1/64
Não atribuido 1111 110 1/128
     
Não atribuido 1111 1110 0 1/512
     
Endereço Usados Link Local 1111 1110 10 1/1024
Endereço Usados Site Local 1111 1110 11 1/1024
     
Endereços Multicast 1111 1111 1/256

Divisão dos endereços IPv6 (Construída a partir de dados disponíveis na RFC 2373).

Para melhor exemplificar o projeto de endereçamento do IPv6, pode-se considerar a tabela acima a linha de endereços unicast baseada em provedor cujo prefixo é 010 e que contém 12,5% (ou 1/8) dos endereços. Um endereço deste tipo deve ser ainda dividido nos campos provedor ID, subscritor ID, sub-rede ID e nó ID.

Recomenda-se que este último tenha pelo menos 48 bits para que possa armazenar o endereço MAC IEEE802.3 (Ethernet), O prefixo de identificação do provedor é portanto os bits 010 seguidos do provedor ID. O prefixo de identificação do subscritor é formado pelo prefixo de identificação do provedor seguido do subscritor ID. Finalmente, o prefixo de identificação da sub-rede é formado pelo prefixo de identificação do subscritor mais a informação referente à sub-rede.

4.2.2 - Transição e Codificação de Endereços IPv4

Observa-se que o prefixo 00000000 está reservado para codificar endereços IPv4 de 32 bits. De acordo a RFC 2373 (HINDEN & DEERING, 1998), teoricamente, qualquer endereço cujo prefixo seja 80 zeros seguido de 16 bits 1 ou 16 bits 0 contém um endereço IPv4 nos últimos 32 bits conforme mostram as figuras a seguir.

Endereçamento IPv6 embutido com endereçamento IPv4.

Endereçamento IPv4 mapeado com endereçamento IPv6.

A codificação será necessária por dois motivos principais:

a. Um computador pode escolher fazer o upgrade do IPv4 para IPv6 antes de ter um endereço IPv6 válido atribuído a ele.

b. Um computador IPv6 pode precisar se comunicar com um computador que roda apenas IPv4. Porém, permitir esta codificação ainda não resolve o problema de comunicação entre as duas versões, é preciso também um tradutor. Para usar o tradutor o computador com IPv6 gera um datagrama IPv6 que contém um endereço destino IPv4. O computador IPv6 envia o datagrama para o tradutor que usa IPv4 para se comunicar com o destino. Quando o tradutor recebe a resposta do destino, ele transforma o datagrama IPv4 para IPv6 e envia-o de volta para a fonte IPv6.

Uma das maiores preocupações do IPng da IETF foi procurar uma maneira de fazer a transição entre o atual protocolo Internet (IPv4) para o novo protocolo (IPv6).

4.3 - Endereços Unicast

Conforme a RFC 2073, de Rekhter et. al. (1997), apenas uma interface é identificada onde um pacote destinado a um endereço unicast é enviado diretamente para o interface associado a esse endereço. No IPv6 foram definidos vários tipos de endereços unicast, que serão apresentados nas seções a seguir.

4.3.1 – Endereços Globais Agregados (Aggregable Global Address)

Segundo a RFC 2373, de Hinden & Deering (1998), Aggregable Global Address representa um endereço que será globalmente usado. Baseia-se no mesmo principio do CDIR (Classless InterDomain Routing) possibilitando uma estreita agregação de prefixos de roteamento e contribuindo para a diminuição do número de entradas nas tabelas globais de roteamanto. Este tipo de endereços quando utilizados em links, são agregados hierarquicamente, começando pelos clientes, em seguida por ISP's intermédios, eventualmente por um ISP de topo. Conforme figura abaixo o prefixo 2000::/3 (001) indica um endereço do tipo " Aggregable Global ".

Endereçamento Unicast (Conforme RFC 2373)

Segue-se a identificação dos campos do endereçamento Unicast:

a. FP - Formato do Prefixo (001)

b. TLA ID - Identificação do Alto Nivel Agregado (Top-evel Aggregation)

c. RES - Reservado para o Uso Futuro

d. NLA ID - Identificação do Próximo Nivel Agregado (Next-Level Aggregation)

e. SLA ID - Identificação do Nível Local Agregado (Site-Level Aggregation)

f. ID Interface - Identificação da Interface

A Identificação do alto nível agregado (TLA ID) é o mais alto nivel na hierarquia de roteamento. Todas as TLA's são ligados numa zona livre e todos os roteadores existentes nessa zona devem possuir uma tabela de roteamento livre contemplando todas as identificações dessas mesmas TLA's.

Os endereços reservados para o futuro (RES) devem ser atribuidos com o valor zero. Os campos reservados para o futuro permitira o crescimento dos campos TLA`s e NLA`s apropriadamente.

Identificação do próximo nível agregado (NLA) são usados pelas organizações para assinalar a TLA ID, criando hierarquia de endereçamento e identificação local. A organização pode assinalar o mais alto nível da NLA ID de modo a criar o endereçamento hierárquico apropriado para a sua rede. Isso pode apontar os bits dos campos de identificação local onde se pretende servir.

Identificação do Próximo Nível Agregado.

Cada organização com a sua TLA ID recebe 24 bits da NLA ID. O espaço da NLA ID permitir que cada organização de prover serviços aproximadamente ao total de organizações que o IPv4 pode suportar.

Organizações assinaladas com a TLA ID`s também podem suportar NLA ID`s no seu próprio espaço local ID.

Isso permite que as organizações TLA ID prover serviços para as organizações de serviços de transito público e para as que não provem serviços de transito público. Nesse caso as organizações recebem NLA ID e podem escolher o espaço do seu local ID para suportar outras NLA ID`s .

Divisão NLA.

O modelo dos bits apresentado no espaçamento NLA ID para uma específica TLA ID, é derivado em responsabilidade das organizações para essa TLA ID. De outro modo o modelo dos bits do próximo nível da NLA ID é de responsabilidade do nivel antecessor da NLA ID.

O campo SLA ID (Identificação do Nível Local Agregado) é usado pela organização para criar sua própria hierarquia de endereçamento local para identificar subnets, isso é, inferente as subnets no IPv4 na expectativa de que cada organização tenha um número maior de subnets. O campo de 16 bits da SLA ID suporta 65.535 subnets individuais o equivalente a 256 classes de 256 endereços no IPv4.

As organizações devem escolher roteamento direto na SLA ID ou criar duas ou mais níveis hierárquicos (resulta um número de tabela de roteamento) no campo SLA ID como mostrado a seguir.

Subnets SLA ID.

É de responsabilidade de cada organização de formar a estrutura na sua SLA ID.

O número de subnets que pode ser composta em seu formato de endereçamento devem ser o suficiente para cobrir até mesmo as maiores organizações existentes.

As Interfaces ID são usadas para identificar interfaces nos links. São requiridas para serem únicas no segmento (link). Elas podem ser únicas até mesmo em todo formato. Em alguns casos as Interfaces ID, serão os mesmos ou serão baseadas no endereçamento de interface da camada de link. Identificadores de Interfaces são usados nos endereços globais agregados unicast em que são requeridos a serem 64 bits e serem construídos dentro do IEEE EUI-64.

Segundo Hinden & Deering (RFC 2373) (1998), o endereçamento de link local pode ser automaticamente configurado em qualquer interface pela conjugação do seu prefixo FE80::/10 (1111111010) conforme a próxima figura 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 link local. Equipamentos de roteamentos não devem enviar pacotes que contenham este tipo de endereçamento como origem ou destino.

Endereçamento de link local.

4.3.3 – Endereçamento do Site Local (Site-Local Address)

Conforme Hinden & Deering (1998) o endereço de site local é identificado pelo prefixo FEC0::/10 (1111111011), conforme figura abaixo, e pode ser definido para uso interno numa organização através da concatenação do campo de SLA (16 bits) com a identificação da interface (64 bits). Este tipo de endereçamento pode ser considerado como privado; visto estar restrito a um domínio sem ligação à Internet. Este tipo de endereçamento não pode ser anunciado externamente por roteadores.

Endereçamento do Site Local.

4.3.4 – Endereçamento não Especificado (Unspecified Address)

O endereçamento não especificado representado por 0:0:0:0:0:0:0:0 ou "::", indica a ausência de um endereço e nunca deverá ser utilizado em nenhum nó. Este endereço apenas poderá ser utilizado como "source address" de máquinas/nós que não tenham obtido os seu próprio endereçamento.

4.3.5 – Endereçamento de Retorno (Loopback Address)

O endereçamento de retorno representado por 0:0:0:0:0:0:0:1 ou "::1". Apenas pode ser utilizado quando um nó envia um datagrama a si próprio e não pode ser associado a nenhuma interface.

4.4 – Multicast

Identicamente ao endereço anycast este endereço corresponde a um conjunto de computadores, possivelmente em muitos locais em diferentes nós. A entrada e saída deste grupo pode ser alterada a qualquer momento. Quando um datagrama multicast é enviado, o IPv6 entrega uma cópia do datagrama para cada interface do grupo. O broadcast é “emulado'' através do multicast. O segundo octeto que se segue ao prefixo define o tempo de vida (lifetime) e o contexto do endereço multicast. Um endereço multicast permanente tem um parâmetro de tempo de vida igual a "0" enquanto um endereço temporário tem o mesmo parâmetro igual a "1". O contexto para este tipo de endereço apresenta os valores de 1,2,5,8 ou "E" para identificar um nó, link, site, organização ou um contexto global, respectivamente conforme apresentado na figura a seguir.

Funcionamento do Multicast.

4.5 - Anycast

Conforme a RFC 2373 Hinden & Deering (1998) assim como o multicast, o destino é um grupo de interfaces, mas em vez de ficar tentando entregar o pacote a todas, o IPv6 tenta entregar a apenas uma interface, especificamente enviado para interface mais próxima, de acordo com o protocolo de roteamento. Por exemplo, ao constatar um grupo de servidores de arquivos cooperativos, um cliente pode usar o anycast para alcançar o mais próximo, sem ter que saber qual é. O anycast utiliza-se de endereços regulares unicast, como mostra a figura abaixo não é possível distinguir sintaticamente qual é um ou qual é o outro, ficando a cargo do sistema de roteamento a escolha do nó que receberá o pacote. Para cada endereço anycast atribuído, existe um prefixo mais longo desse mesmo endereço que identifica a região ao qual todas as interfaces pertencem.

Distribuição Anycast.

4.6 - Nova Notação

Os 128 bits ou 16 bytes de um endereço IPv6 pode ser descrito por oito grupos de 4 dígitos hexadecimais (base 16: de 0 a F), com o símbolo de dois pontos “:” separando cada grupo conforme apresentado no exemplo a seguir: 9000 : 0000 : 0000 : 0000 : 0123 : 4567 : 89AB : CDEF Para facilitar a escrita, um ou mais grupo de 0000 pode ser substituído por “:” somente uma vez, assim como um zero à esquerda pode ser suprimido, conforme exemplo: 9000 :: 0123 : 4567 : 89AB : CDEF

4.7 - Autoconfiguração

Esta característica de autoconfiguração é denominada stateless configuration está presente no IPv6. Dessa maneira não é necessário configurar cada estação da rede manualmente como ocorre hoje.

Existe no IPv6 um conjunto de diversos mecanismos de controle conhecidos como protocolo ND (Neighbor Discovery protocol) que é transportado por ICMPv6 (Internet Control Message Protocolo version 6). O ND faz com que os nós conectados a um link descobrirem os roteadores ativos através de mensagens enviadas para endereços multicast. O DHCPv6 (Dynamic Host Configuration Protocolo version 6), também conhecido como stateful configuration, fornece mecanismos para configuração automática de endereços IPv6 e registros automáticos e dinâmicos dos nomes dos nós no DNS (Domain Name System). O DHCP utiliza-se do tradicional modelo cliente servidor.

O IPv6 apresenta mecanismos de autoconfiguração que visam liberar o usuário da tarefa de configuração, tornando-a automática e transparente. Espera-se, por exemplo, que ao comprar um computador o usuário possa simplesmente conectá-lo a uma rede e acessá-la, sem necessidade de lidar com a configuração de interfaces, protocolos, endereços, etc.

Outro objetivo da autoconfiguração é permitir a mobilidade, ou seja, a utilização de um mesmo computador em vários locais e em redes distintas.

Segue-se um exemplo ilustrativo na computação móvel: um executivo poderia estar utilizando seu computador portátil conectado por cabos à rede local da empresa. Ao desconectar os cabos, o computador deveria utilizar a rede de infravermelho disponível, ainda dentro da empresa, e ao sair do alcance desta, utilizar a rede de radio freqüência disponível na cidade. A autoconfiguração deverá permitir o ajuste automático e transparente para o usuário a todas estas situações.

O princípio básico para que os exemplos acima possam se tornar realidade consiste na utilização do endereço Ethernet (48 bits) das placas de rede, que a principio são únicos para cada placa, na constituição do endereço IPv6. Este endereço terá então a forma: FE80:0:0:0:0:XXXX:XXXX:XXXX, onde XXXX:XXXX:XXXX simboliza o endereço Ethernet de 48 bits. Deste modo, a alocação de endereço é altamente facilitada (SILVA 1998).
Próximo