Visão geral do Protocolo de Internet versão 6(IPv6)

O Protocolo de Internet versão 6 (IPv6) é um novo pacote de protocolos padrão para a camada de rede da Internet. O IPv6 foi projetado para resolver muitos dos problemas da versão atual do pacote de Protocolos de Internet (conhecido como IPv4) relacionados ao o esgotamento de endereços, a segurança, a configuração automática, a extensibilidade e outros. O IPv6 expande os recursos da Internet para habilitar novos tipos de aplicativos, inclusive aplicativos móveis e de ponto a ponto. Estes são os principais problemas do protocolo IPv4 atual:

  • Rápido esgotamento do espaço de endereço.

    Isso levou ao uso de conversores de endereço de rede (NATs) que mapeiam vários endereços particulares para um único endereço IP público. Os principais problemas criados por esse mecanismo são a sobrecarga de processamento e a falta de conectividade de ponta a ponta.

  • Falta de suporte a hierarquia.

    Por causa de sua organização de classe predefinida inerente, IPv4 não tem um verdadeiro suporte hierárquico. É impossível estruturar os endereços IP de uma forma que realmente mapeie a topologia de rede. Essa falha de design crucial cria a necessidade de grandes tabelas de roteamento para entregar pacotes IPv4 em qualquer local na Internet.

  • Configuração de rede complexa.

    Com o IPv4, os endereços devem ser atribuídos estaticamente ou usando um protocolo de configuração, como o DHCP. Em uma situação ideal, hosts não precisariam depender da administração de uma infraestrutura DHCP. Em vez disso, eles poderiam configurar a si mesmos com base no segmento de rede no qual estivessem localizados.

  • Falta de autenticação interna e de confidencialidade.

    O IPv4 não requer suporte para nenhum outro mecanismo que fornece autenticação ou criptografia dos dados transmitidos. Isso muda com o IPv6. O protocolo IPsec é um requisito de suporte a IPv6.

Um novo pacote de protocolos deve atender aos seguintes requisitos básicos:

  • Roteamento em larga escala e endereçamento com pouca sobrecarga.
  • Configuração automática para situações de conexão diversas.
  • Autenticação interna e confidencialidade.

Endereçamento de IPv6

Com IPv6, os endereços têm 128 bits de comprimento. Um motivo para um espaço de endereço tão grande é subdividir os endereços disponíveis em uma hierarquia de domínios de roteamento que reflitam a topologia da Internet. Outro motivo é mapear os endereços de adaptadores de rede (ou interfaces) que conectam dispositivos à rede. O IPv6 tem uma capacidade inerente de resolver endereços no nível mais baixo deles, que é o nível de adaptador de rede e também tem capacidades de configuração automática.

Representação de texto

A seguir estão as três formas convencionais usadas para representar os endereços IPv6 como cadeias de caracteres de texto:

  • Forma hexadecimal com dois pontos:

    Essa é o opção preferencial n:n:n:n:n:n:n:n. Cada n representa o valor hexadecimal de um dos oito elementos de 16 bits do endereço. Por exemplo: 3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.

  • Forma compactada:

    Devido ao tamanho de endereço, é comum ter endereços que contêm uma cadeia de caracteres longa de zeros. Para simplificar a gravar esses endereços, use a forma compactada, em que uma única sequência contígua de 0 blocos é representada por um símbolo de dois pontos duplos (::). Este símbolo pode aparecer apenas uma vez em um endereço. Por exemplo, o endereço multicast FFED:0:0:0:0:BA98:3210:4562 torna-se FFED::BA98:3210:4562 no formato compactado. O endereço unicast 3FFE:FFFF:0:0:8:800:20C4:0 em formato compactado é 3FFE:FFFF::8:800:20C4:0. O endereço de loopback 0:0:0:0:0:0:0:1 na forma compactada é ::1. O endereço não especificado 0:0:0:0:0:0:0:0 em formato compactado é ::.

  • Forma mista:

    Esse formato combina os endereços IPv4 e IPv6. Nesse caso, o formato de endereço é n:n:n:n:n:n:d.d.d.d, em que cada n representa os valores hexadecimais dos seis elementos do endereço de 16 bits superiores de IPv6 e cada d representa o valor decimal de um endereço IPv4.

Tipos de endereço

Os bits à esquerda do endereço definem o tipo específico de endereço IPv6. O campo de comprimento variável que contém esses bits à esquerda é chamado de um FP (prefixo de formato).

Um endereço unicast IPv6 é dividido em duas partes. A primeira parte contém o prefixo de endereço e a segunda parte contém o identificador de interface. Uma maneira concisa de expressar uma combinação de endereço IPv6/prefixo é a seguinte: endereço ipv6/comprimento do prefixo.

A seguir, um exemplo de um endereço com um prefixo de 64 bits.

3FFE:FFFF:0:CD30:0:0:0:0/64.

O prefixo neste exemplo é 3FFE:FFFF:0:CD30. O endereço também pode ser gravado em um formato compactado, como 3FFE:FFFF:0:CD30::/64.

O IPv6 define os seguintes tipos de endereço:

  • Endereço Unicast:

    Um identificador para uma única interface. Um pacote enviado para esse endereço é entregue para a interface identificada. Os endereços unicast são diferenciados dos endereços multicast pelo valor do octeto superior. O octeto superior dos endereços multicast tem o valor hexadecimal FF. Qualquer outro valor para esse octeto identifica um endereço unicast. Estes são os diferentes tipos de endereço unicast:

    • Endereços de link local:

      Esses endereços são usados em um único link e têm o seguinte formato: FE80::*InterfaceID*. Endereços de conexões locais são usados entre os nós em um link para a configuração automática de endereços, descoberta de vizinhos ou ainda quando nenhum dos roteadores está presente. Um endereço de link local é usado principalmente na inicialização e quando o sistema ainda não adquiriu endereços de escopo mais amplo.

    • Endereços de site-local:

    Esses endereços são usados em um único site e têm o seguinte formato: FEC0::*SubnetID*:*InterfaceID*. Os endereços de sites locais são usados para endereçamento dentro de um site sem a necessidade de um prefixo global.

    • Endereços unicast IPv6 globais:

    Esses endereços podem ser usados na Internet e têm o seguinte formato: *GlobalRoutingPrefix*::*SubnetID*:*InterfaceID*.

  • Endereço Multicast:

    Um identificador para um conjunto de interfaces (normalmente pertencentes a nós diferentes). Um pacote enviado para esse endereço será enviado para todas as interfaces identificadas pelo endereço. Os tipos de endereço multicast substituem os endereços difundidos por IPv4.

  • Endereço Anycast:

    Um identificador para um conjunto de interfaces (normalmente pertencentes a nós diferentes). Um pacote enviado para esse endereço será enviado para apenas uma interface identificada pelo endereço. Essa é a interface mais próxima conforme identificado pela métrica de roteamento. Endereços anycast são obtidos do espaço de endereço unicast e não é possível diferenciá-los sintaticamente. A interface endereçada faz a distinção entre endereços unicast e anycast como uma função de sua configuração.

Em geral, um nó sempre tem um endereço de link local. Ele pode ter um endereço de site local e um ou mais endereços globais.

Roteamento IPv6

Um mecanismo de roteamento flexível é uma vantagem do IPv6. Devido à maneira que as IDs de rede IPv4 foram e são alocadas, grandes tabelas de roteamento precisam ser mantidas pelos roteadores que estão na estrutura básica da Internet. Esses roteadores devem saber todas as rotas para encaminhar pacotes que são potencialmente direcionados para qualquer nó na Internet. Com sua capacidade de agregar endereços, o IPv6 permite endereçamento flexível e reduz consideravelmente o tamanho das tabelas de roteamento. Nessa nova arquitetura de endereçamento, os roteadores intermediários devem rastrear apenas a parte local de sua rede para encaminhar as mensagens corretamente.

Descoberta de vizinhos

Estes são alguns dos recursos fornecidos pela descoberta de vizinhos:

  • Descoberta de roteador: Isso permite que os hosts identifiquem os roteadores locais.
  • Resolução de endereço: Isso permite que os nós resolvam um endereço de camada de link para um endereço de próximo salto correspondente (uma substituição para o Protocolo de Resolução de Endereço [ARP]).
  • Configuração automática de endereço: Isso permite que os hosts configurem automaticamente os endereços de site-local e globais.

A descoberta de vizinhos usa mensagens de Protocolo de Mensagem de Controle de Internet para IPv6 (ICMPv6) que incluem:

  • Anúncio do roteador: Enviado por um roteador pseudoperiodicamente ou em resposta a uma solicitação de roteador. Os roteadores IPv6 usam anúncios de roteador para anunciar a própria disponibilidade, prefixos de endereço e outros parâmetros.
  • Solicitação de roteador: Enviada por um host para solicitar que os roteadores no link enviem um anúncio de roteador imediatamente.
  • Solicitação de vizinho: Enviada por nós para resolução de endereço, para detecção de endereço duplicado ou para verificar se um vizinho ainda pode ser alcançado.
  • Anúncio de vizinho: Enviado por nós para responder a uma solicitação de vizinho ou para notificar vizinhos de uma alteração no endereço de camada de link.
  • Redirecionamento: Enviado por roteadores a fim de indicar um melhor endereço de próximo salto para um destino específico para um nó de envio.

Configuração automática de IPv6

Uma meta importante para IPv6 é dar suporte a Plug and Play de nó. Ou seja, deve ser possível conectar um nó a uma rede IPv6 de modo que ele seja configurado automaticamente sem intervenção humana.

Tipos de configuração automática

O IPv6 dá suporte aos seguintes tipos de configuração automática:

  • Configuração automática com estado:

    Esse tipo de configuração requer um certo nível de intervenção humana, porque é necessário um protocolo DHCP para servidor IPv6 (DHCPv6) para a instalação e administração dos nós. O servidor DHCPv6 mantém uma lista de nós para os quais ele fornece informações de configuração. Ele também mantém informações de estado para que o servidor saiba quanto tempo cada endereço está em uso e quando ele pode estar disponível para reatribuição.

  • Configuração automática sem estado:

    Esse tipo de configuração é adequado para indivíduos e pequenas empresas. Nesse caso, cada host determina seus endereços com base no conteúdo de anúncios de roteador recebidos. Usando o padrão IEEE EUI-64 para definir a parte de ID de rede do endereço, é razoável pressupor a exclusividade do endereço de host no link.

Independentemente de como o endereço é determinado, o nó deve verificar se seu endereço potencial é exclusivo para o link local. Isso é feito enviando uma mensagem de solicitação de vizinho para o endereço potencial. Se o nó receber alguma resposta, ele saberá que o endereço já está em uso e deverá determinar outro endereço.

Mobilidade IPv6

A proliferação de dispositivos móveis introduziu um novo requisito: um dispositivo deve ser capaz de alterar os locais na Internet IPv6 arbitrariamente e ainda manter as conexões existentes. Para fornecer essa funcionalidade, um endereço residencial é atribuído a um nó móvel, endereço no qual ele sempre pode ser alcançado. Quando o nó móvel está no endereço residencial, ele se conecta ao link residencial e usa seu endereço residencial. Quando o nó móvel está longe do endereço residencial, um agente residencial, que geralmente é um roteador, retransmite mensagens entre o nó móvel e os nós com os quais ele está se comunicando.

Desabilitar ou habilitar IPv6

Para usar o protocolo IPv6, verifique se você está executando uma versão do sistema operacional que dá suporte ao IPv6 e se o sistema operacional e as classes de rede estão configuradas corretamente.

Etapas de configuração

A tabela a seguir lista várias configurações

IPv6 do sistema operacional habilitado? IPv6 do código habilitado? Descrição
❌ Não ❌ Não Pode analisar endereços IPv6.
❌ Não ✔️ Sim Pode analisar endereços IPv6.
✔️ Sim ❌ Não Pode analisar endereços IPv6 e resolver endereços IPv6 usando métodos de resolução de nomes não marcados como obsoletos.
✔️ Sim ✔️ Sim Pode analisar e resolver endereços IPv6 usando todos os métodos, incluindo aqueles marcados como obsoletos.

O IPv6 está habilitado como padrão. Para configurar essa opção em uma variável de ambiente, use a variável de ambiente DOTNET_SYSTEM_NET_DISABLEIPV6. Para obter mais informações, consulte Variáveis de ambiente do .NET: DOTNET_SYSTEM_NET_DISABLEIPV6.

Confira também