Seção: Banda Larga

 

Rede IP I: Fundamentação Teórica

 

Serão apresentados, neste capítulo, a evolução do protocolo IPv6, as instituições responsáveis pela introdução do novo protocolo e as principais características, desde a sua concepção, nova forma de endereçamento, alteração na forma de comunicação dos serviços e os recursos de segurança.

 

Sobre o IPv6

 

Histórico da Evolução do Protocolo IPv6

 

Segundo o IPv6.org “O projeto IP the Next Generation (IPng)- representa o resultado da evolução de diferentes propostas da Internet Engineering Task Force (IETF), bem como o esforço conjunto de vários grupos de trabalho”. Conforme aponta a RFC 1752 (BRANDER & MANKIN, 1995), o projeto IPng sofreu a seguinte evolução:

  • 1990 - No encontro Internet Engineering Task Torce (IETF) de Vancouver, Frank Solensky, Phill Gross e Sue Hares afirmaram que à taxa de atribuição do espaço de endereçamento IPv4, existente à época, as classes do tipo B estariam esgotadas, possivelmente, por volta de Março de 1994.
  • 1991 - A IETF forma o grupo de trabalho Routing and Addressing (ROAD), no encontro de Santa Fé, com o objetivo de encontrar uma solução para a exaustão do espaço de endereçamento IPv4.
  • 1992 - A Internet Association Board (IAB) apresenta o documento IP version 7, paralelamente aos esforços do grupo de trabalho ROAD, em que recomenda à IETF a preparação de um plano detalhado para o sucessor do protocolo IP. A IETF rejeita esta sugestão e apresenta pedido de propostas recomendadas pelo grupo ROAD. Como resposta a este pedido surgiram algumas propostas: IP Encaps, Nimrod e Simple CLNP.
  • No mesmo ano surgem mais três propostas: - The P Internet Protocol (PIP), The Simple Internet Protocol (SIP).
  • 1993 – Phil Gross do Internet Engineering Steering Group (IESG) apresenta um memorando intitulado "A Direction for IPng", onde anuncia a criação de uma área temporária para o IPng. CLNP e IP Encaps evoluem, dando origem, respectivamente, ao TCP e ao UDP, TUBA e IPAE. Neste mesmo ano, o SIP evoluiu, abrangendo características do IP Address Encapsulation IPAE. O IPAE foi adotado como estratégia de transição para o SIP, proposto por Steve Deering em Novembro de 1992. O SIP aumentava o endereço IP para 64 bits, tornava a fragmentação de pacotes opcional e eliminava vários aspectos obsoletos do IP.
  • 1994, a comissão do IPng revisou todas as propostas; SIP e PIP deram origem à proposta The Simple Internet Protocol Plus (SIPP) e publicou-se sua recomendação sugerindo o SIPP como a base para o novo protocolo IP, mas com mudanças em algumas características chaves da especificação original. Particularmente, o novo protocolo teria 128 bits e se chamaria IPv6. Ocorreu, então, a aprovação do documento The Recommendation for the IP Next Generation Protocol como norma oficial de desenvolvimento do IPng (Rosa, 1999).
  • A primeira conexão com o protocolo IPv6 foi estabelecida em março de 1998 com a Cisco System, nos EUA.

 

Instituições Ligadas ao IPv6

 

IETF

 

O IETF é uma sociedade internacional, que é composta de técnicos, agências, fabricantes de equipamentos, fornecedores e pesquisadores, preocupados com a evolução da arquitetura da Internet e seu perfeito funcionamento. O IETF tem como missão identificar e propor soluções e problemas relacionados à utilização da Internet, além de propor padronização das tecnologias e protocolos envolvidos.

 

NGtrans

 

O IPng Transition (NGTrans) é um grupo de trabalho da IETF que estuda e define procedimento para a transição do IPv4 para o IPv6. Sua estratégia é baseada em:

  • Produzir um documento detalhando a infraestrutura, como será e o que será necessário para a transição;
  • Definir e especificar os mecanismos obrigatórios e opcionais a serem implementados pelos fabricantes nos hosts, roteadores e outros equipamentos de rede, a fim de suportar o período de transição;
  • Articular um plano operacional concreto, quando da transição entre o IPv4 e o IPv6.

 

6Bone

 

O 6Bone, BackboneIPv6 coordenado pelo NGTrans, foi um teste de campo para auxiliar na evolução, no desenvolvimento e no aperfeiçoamento do protocolo IPng, tendo integrado vários países.

Operacional desde 1996, este Backbone é implementado através de uma rede virtual sobre a rede física IPv4 da atual Internet. A rede virtual é composta de redes locais IPv6 ligadas entre si por túneis ponto-a-ponto IPv6 sobre IPv4. Os túneis são realizados por roteadores com pilha dupla (IPv6 e IPv4) com suporte para roteamento estático e dinâmico e as redes locais IPv6 são compostas por estações com sistemas operacionais com suporte a IPv6 e IPv4.

 

Características do Protocolo IPv6

 

Concepção do IPv6

 

O IPv6 foi concebido para satisfazer aos requisitos da potencial expansão da Internet e irá permitir uma comunicação global, onde as regras de endereçamentos serão novamente transparentes para as aplicações, como feitas anteriormente ao uso do NAT, através da autoconfiguração e do suporte plug and play, os dispositivos de rede conseguirão ligar-se à rede sem configuração manual. O IPv6 consegue propiciar isso através dos seguintes benefícios as redes e aos profissionais de TI:

  • Primeiramente, o IPv6 possui bastante espaço para endereços, permitindo uma disponibilidade e escalabilidade globais. Isso resultará em um número quase que ilimitado de endereços IP e numa arquitetura hierárquica de rede para um encaminhamento eficiente dos dados; isso elimina os problemas associados ao NAT como, por exemplo, a dificuldade de se abrir a porta de um serviço que está atrás do NAT. A capacidade de fornecer endereços globais para cada dispositivo de rede permite uma escalabilidade “fim-a-fim”; consequentemente, a gestão da rede será mais simples e fácil.
  • Segundo, um formato simplificado do cabeçalho para uma manipulação eficiente dos pacotes. No IPv6, seis dos doze campos do cabeçalho IPv4 foram retirados (campos em verde claro); alguns campos continuam a existir, mas com nomenclatura diferentes (campos em vermelho); e também foi adicionado um novo campo (campo em laranja) para aumentar a eficiência e introduzir novas funcionalidades.

 

Figura 1: Retirada de campos cabeçalho IPv4

 

 

Figura 2: Cabeçalho IPv6

 

  • Em terceiro lugar, uma arquitetura de redes hierárquica para um encaminhamento eficiente que segue alguns princípios do CIDR no IPv4. Outra vantagem importante do IPv6 é a segurança incorporada com a implementação mandatória do IP Security Protocol (IPSec), diferentemente do IPv4, em que a utilização do IPSec é opcional e teve que ser adaptada para o funcionamento. O IPSec faz parte intrínseca do protocolo e, por isto, sua habilitação na rede as tornam potencialmente mais seguras.

 

Figura 3: Utilização ilustrativa do IPSec

 

Adicionalmente, o IPv6 oferece um número crescente de endereços multicast e não utilizará o broadcast, diminuindo assim o tráfego. Também no IPv6, o protocolo Internet Control Message Protocol (ICMP) foi revisto, tornando-se mais eficaz, e incluindo novas funcionalidades para suportar a autoconfiguração, multicast, varredura e descobrimento de vizinhança (antes realizado por broadcasts na rede). E, finalmente, o IPv6 oferece mobilidade integrada, uma vez que o surgimento esperado de serviços de dados em redes sem fio será um impulsionador chave do IPv6.

 

Endereçamento no IPv6

 

Formação do Endereço

 

Em seguida, é feita a apresentação da sintaxe do endereçamento utilizado pelo IPv6, incluindo o prefixo e, também, são mostrados os diferentes tipos de endereços e como os hosts podem, automaticamente, montar seu próprio endereço a partir de seu endereço físico - MAC Adresss.

 

O formato do endereçamento IP muda, drasticamente, da versão 4 para a versão 6. Em vez de 32 bits do endereço IPv4, um endereço IPv6 possui 128 bits. Considerando a população atual da terra, resultaria em pelo menos 1000 endereços por pessoa. Embora seja uma quantidade exagerada para as necessidades atuais, ele elimina qualquer possibilidade de escassez de endereços IP. (SILVIA, 2002).

 

Os endereços em IPv6 são escritos no seguinte formato:

 

XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX

 

Sendo que cada grupo de quatro “X” representa um campo em hexadecimal de 16bits e, diferentemente do IPv4, os separadores no IPv6 são “:”, sendo anteriormente representado por “.”, e servem para separar os oito octetos. Os números em hexadecimal não são sensíveis a letras maiúsculas ou minúsculas. Sendo assim, o endereço escrito como no exemplo:

 

2001:0000:1234:0000:0000:C1C0:ABCD:0876

 

Pode ser representado como o endereço:

 

2001:0000:1234:0000:0000:c1c0:abcd:0876

 

Adicionalmente, os zeros não significativos em um campo podem ser comprimidos e o endereço acima poderá ser escrito da seguinte forma:

 

2001:0:1234:0:0:C1C0:ABCD:0876

 

O IPv6 também utiliza outra importante convenção para abreviar os endereços, fazendo com que sequências sucessivas de “0” sejam representados por “::”, de forma a acontecer, nessa representação, somente uma vez o artifício e, dessa forma, o endereço acima se tornaria: 2001:0:1234::C1C0:ABCD:0876, porém, não poderia se tornar: 2001::1234::C1C0:ABCD:0876, pois, o artifício estaria sendo utilizado mais de uma vez.

 

Um endereço IPv6 pode ser expresso no seguinte formato IPv6 address / prefix length da mesma forma que um endereço IPv4 é representado na notação CIDR. Por exemplo: 1080:6809:8086:6502/64 é um prefixo IPv6 completamente válido e corresponderia ao endereço 1080:6809:8086:6502:: ou seja representando o resto dos zeros do endereço. O valor “/64” é um decimal que representa o número de bits que ficam à esquerda e que representam o prefixo. Um prefixo IPv6 também pode caracterizar um grupo de endereços como os utilizados para identificar redes como, por exemplo, um segmento, um conjunto de LAN’s ou até mesmo uma rede de uma operadora.

 

Um segmento de rede, usualmente, possui um prefixo de 64 bits, enquanto que um conjunto de redes locais tem normalmente um prefixo de 48 bits e, no último caso, os 16 bits estão alocados livremente como um ID de sub-rede, para se poder segmentar uma rede da mesma forma de como é feita no IPv4.

 

Existe uma diferença importante entre um endereço de um host IPv4 para um host IPv6. Um host IPv4 tem, normalmente, um endereço IP, mas um host IPv6 possui geralmente mais do que um endereço IP.

 

Existem três tipos principais de endereços IPv6: o unicast, o anycast e o multicast.

 

Endereçamento Unicast

 

O Endereço unicast identifica um único host da rede, e qualquer pacote endereçado a este endereço unicast é entregue na interface do host que o possui. Os 64 últimos bits, os menos significativos possuem o nome de Interface Identifier (IID). Os endereços unicast podem ser divididos em quatro tipos: endereços unicast globais; endereços locais únicos ou ULA’s; endereços unicast Link-local e, finalmente, endereços IPv6 com mapeamento IPv4. (Hinden & Haberman, 2005). Maiores informações sobre os endereços unicast, podem ser obtidas através da RFC 4193.

 

Endereçamento Anycast

 

Um endereço anycast identifica um conjunto de interfaces, mas que pertencem a hosts diferentes. Como na figura abaixo:

 

Figura 4: Rede com endereçamento Anycast

 

Um pacote enviado para um endereço anycast só é entregue à interface do host mais próximo identificado pelo endereço anycast. A interface mais próxima é determinada pelos protocolos de encaminhamento em utilização. Isso permite que um host passe pelo caminho mais curto quando procura um servidor Domain Name System (DNS).

 

Endereçamento Multicast

 

Um endereço multicast é um identificador para um “conjunto” de interfaces, que pertencem a hosts diferentes. Mas, diferentemente do anycast, os pacotes são entregues a todos os hosts que subscreveram esse endereço de multicast. É replicado em todo caminho entre o host emissor e os múltiplos receptores. Endereços multicast possuem prefixo FF00::/8 obrigatoriamente.

 

O IPv6 não utiliza broadcast, que, no caso do IPv4, a utilização diminui em o desempenho da rede, uma vez que todos os hosts tem de processar todos os broadcasts deste mesmo segmento. Sendo que a maior parte dos broadcasts não é aproveitada pela a maioria dos hosts. O problema fica cada vez maior, quanto maior o tamanho de um determinado segmento da rede. A solução dada pelo IPv6 para o problema do broadcast é a implementação do endereço Multicastall-nodes-on-link” que possui o seguinte formato: FF02::1.

 

Este endereço Multicast é utilizado para substituir broadcasts essenciais e, em outros casos, são utilizadas mensagens Multicast mais limitadas.

 

Cabeçalho IPv6

 

O cabeçalho IPv6 é mais simples e eficiente que o cabeçalho IPv4, simplesmente pelo fato de ter um comprimento de tamanho fixo e um número inferior de campos como mostrado na figura abaixo:

 

Figura 5: Cabeçalho IPv6 e IPv4

 

Essa característica permite ao IPv6 ter um encaminhamento mais eficaz, com maior desempenho e escalabilidade. O campo “Version” continua a existir e tem que ter o valor igual a “6” para indicar que é um pacote IPv6.

 

Os campos “Source Address” e “Destination Address” são mantidos, mas com o detalhe que ambos os campos possuem 128 bits para suportar o endereçamento IPv6. Diferentemente do IPv6, no IPv4 os campos opcionais faziam parte do cabeçalho, sendo que no IPv6 foram substituídos por uma cadeia de cabeçalhos de extensão, opcional posicionados logo depois do cabeçalho IPv6. Os cabeçalhos de extensão IPv6 permitem que sejam implementadas opções sem diminuir o desempenho, uma vez que já não é necessário que todos os roteadores o processem.

 

Em comparação com o IPv4 foram retirados cinco campos de cabeçalho, sendo eles: o “Header Checksum”, tendo em vista que a qualidade dos links hoje é muito superior a antigamente, em relação à quantidade de erros e à velocidade na transmissão, além do que as verificações de integridade já são efetuadas em camadas superiores e inferiores à camada IP. O Campo “Header Length” foi removido já que, no IPv6, o tamanho do cabeçalho é fixo. No IPv6 foram também retirados os três campos relacionados à fragmentação de dados do IPv4: os campos “Identification”, “Flags” e “Fragment offset”. Sendo assim, a fragmentação pode ser feita utilizando a extensão apropriada. Foram também modificados e atribuídos novos nomes para quatro campo do cabeçalho IPv4; o campo “type of service” foi substituído por “Trafic Class”; o campo “Protocol Type” pelo campo “Next Header”; o campo “Total Length” pelo campo “Payload Lenth” e o campo “Time to Live” substituído pelo campo “Hop Limit” no IPv6. E, finalmente, foi adicionado um campo denominado “Flow Label”, fazendo com que um cabeçalho IPv4 com treze campos se torna um IPv6 de oito campos com quarenta octetos fixos.

 

Ao contrário do IPv4, que define opções para o cabeçalho, no IPv6 as opções são abrangidas por cabeçalhos de extensão, sendo que estes podem ser inseridos quando necessários e, se possível, omitidos como mostrado na figura abaixo:

 

Figura 6: Cabeçalho de expansão IPv6 e IPv4

 

Caso exista, cada cabeçalho de extensão é alinhado a 64 bits, pois, em um pacote IPv6, não existe um número fixo de cabeçalhos de extensão; por isso a denominação de “cadeia de cabeçalhos”. O campo “Next Header” do cabeçalho anterior identifica o cabeçalho de extensão e, sendo assim, o último cabeçalho de extensão possui no campo “Next Header” um nome de um protocolo de camada de transporte, como TCP ou UDP:

 

Figura 7: Cabeçalho de extensão IPv6

 

Os cabeçalhos de extensão IPv6 estão ligados em série e, quando no mesmo pacote, são utilizados múltiplos cabeçalhos de extensão. Os mesmos devem seguir a seguinte ordem: primeiro, o cabeçalho “Hop-by-Hop Options”, depois o cabeçalho “Destination Options”, seguido pelo cabeçalho “Routing”, o cabeçalho “Fragment”, o cabeçalho “Authentication”, depois o cabeçalho “Encapsulation Security Payload” e por último o cabeçalho “Upper-Layer”. Como alternativa, o cabeçalho “Destination Options” pode ser posicionado após o cabeçalho “Authentication”. Na transmissão dos pacotes, o host de origem deve manter esta ordem para a montagem dos cabeçalhos, mas os hosts de destino devem estar preparados para receber em qualquer ordem. Adicionalmente, é utilizado um cabeçalho “Mobility” pelos hosts que forem implementar mobilidade em IPv6 ou MIPv6. (BRADNER,1996).

 

Serviços Básicos do IPv6

 

ICMPv6

 

Os hosts IP necessitam de um protocolo específico para a transferência de mensagens relacionadas com os pressupostos IP’s de outros hosts. Este protocolo é denominado Internet Control Message Protocol (ICMP), sendo utilizado para reportar situações de falha, informações e funções de diagnóstico. Através da geração de relatórios de erros e de mensagens de informação, o ICMP no IPv6 funciona, basicamente, da mesma forma que o ICMP no IPv4, mas, adicionalmente, os pacotes IPv6 são utilizados no processo de “Neighbor Discovery”, “path MTU Discovery” e no “Multicast Listener Discovery”. O cabeçalho ICMPv6 é identificado por um “Next Header” com um valor de 58. A figura abaixo mostra os campos de um pacote ICMPv6:

Figura 8: Campos do pacote ICMPv6

 

Nos pacotes ICMPv6, o campo “Type” indica o tipo de mensagem e o campo “Code” fornece mais informações para mensagens específicas. O valor do campo “Checksum” é construído, tendo por base os campos do pacote ICMPv6 e do cabeçalho IPv6. Já o campo “Message Body” do ICMPv6 contém informações de erro ou de diagnóstico, relevantes para o processamento de pacote IP. Tal como o ICMPv4, o ICMPv6 é, muitas vezes, bloqueado por políticas de seguranças implementadas nos “firewalls” devido a ataques baseados em ICMP. O campo “Type” do cabeçalho define o tipo de mensagem, nomeadamente: “destination unreachable”, “packet too big”, “time exceeded”, “parameter problem”, “echo request” e “echo reply”.

 

Neighbor Discovery

 

O Protocolo “Neighbor Discovery” do IPv6 utiliza mensagens ICMPv6 e assemelha-se a uma junção melhorada dos protocolos ARP, ICMP Router Discover e ICMP Redirect do IPv4. No IPv6 os hosts, sejam eles hosts ou roteadores, utilizam o Neighbor Discovery para determinar o endereço de camada 2 dos vizinhos que se encontram no mesmo segmento de rede e para, rapidamente, apagarem os endereços armazenados que se tornaram inválidos. Os hosts utilizam também do Neighbor Discovery para encontrar roteadores vizinhos dispostos a reencaminhar os seus pacotes. Finalmente, os hosts utilizam o protocolo para manter um registro atualizado dos vizinhos que podem, ou não, ser acessados, e para detectarem alterações nos endereços da camada de enlace. O Neighbor Discovery resolve um conjunto de problemas relacionados à interação de hosts associados ao mesmo segmento de rede, definindo mecanismos para solucionar esse conjunto (RFC 2461 – Narten & Nordmark, 1998):

  • Router Discovery: Processo utilizado para que os hosts possam descobrir os roteadores existentes em seu enlace.
  • Prefix Discovery: Faz a distinção do prefixo para os endereçamentos link local ou link global direrecionando o pacote para o seu destino.
  • Parameter Discovery: Como os hosts aprendem os parametros dos links, como a ligação da MTU ou parametros da Internet.
  • Address Autoconfiguration: Realiza a configuração dos endereços das interfaces automoaticamente.
  • Next-hop Determination: Algoritmo para mapear os endereços IPs de destinos.
  • Duplicate Address Detection: Como os hosts determinam que o endereço que se deseja utilizar em sua interface já esteja sendo utilizado na rede.
  • Neighbor Unreachability Detection: Recurso do IPv6 no qual um host controla se um host vizinho está acessível, proporcionando uma melhor detecção de erros e recuperação quando os hosts se tornam indisponíveis repentinamente
      • Para cumprir estas tarefas são utilizados cinco tipos distintos de pacote ICMPv6:
  • Router Solicitation: Mensagem enviada pelos terminais para os roteadores, solicitando uma mensagem Router Advertisement.
  • Router Advertisement: Mensagem enviada pelos roteadores, periodicamente ou por solicitação, para informar as configurações.
  • Redirect Messages: Mensagem enviada pelos roteadores para informar um terminal do primeiro “salto” para um destino.
  • Neighbor Solicitation: Mensagem enviada por um host para determinar o endereço de nível lógico do host vizinho;
  • Neighbor Advertisement: Mensagem enviada em resposta à mensagem Neighbor Solicitation.

 

Autoconfiguração

 

O IPv6 define dois mecanismos de autoconfiguração dos endereços IP: o “stateful” e o “stateless”.

 

A autoconfiguração do tipo stateless, não necessita de configuração manual de hosts, nem de servidores adicionais, necessitando apenas de uma configuração mínima dos roteadores. Esse tipo de configuração é uma característica chave do IPv6, permitindo que o próprio host gere suas próprias configurações, a partir de uma combinação de informações disponíveis localmente e de informações anunciadas pelos roteadores. Em alguns cenários, a autoconfiguração stateless simplifica muito o processo de renumeração de endereços de rede, exigindo somente que a interface de rede seja capaz de enviar e receber pacotes multicast. Os hosts IPv6 (hosts e roteadores) criam, automaticamente, endereços link-local únicos para todas as interfaces de rede, combinando o endereço da camada de enlace no formato EUI-64 com os 64 bits do prefixo local. O endereço EUI-64 de 64 bits é definido pelo Instituto de Engenheiros Elétricos e Eletrônicos (IEEE).

 

O host IPv6 utiliza o mecanismo Duplicade Address Detection (DAD) para determinar se o endereço já está sendo utilizado. Os hosts IPv6 utilizam as mensagens Router Advertisement recebidas para montar o restante da configuração como o default gateway, o valor pré-definido para o campo “Hop Limit” no cabeçalho IPv6, os contadores utilizados nos processos de ND, a MTU da ligação local e a lista de prefixos de rede definidos para o segmento de rede em que se encontra. Cada mensagem de RA contém o prefixo da rede IPv6 e seus Time to Live (TTL’s) válidos. Se indicado, o prefixo de rede é combinado com o endereço MAC da interface e, assim, o endereço stateless IPv6 é criado. Os pacotes RA’s possuem duas flags que indicam para o host se deve ou não utilizar da autoconfiguração stateful ou stateless. Essas flags são: managed address configuration e a outra é a stateful configuration indicando aos hosts a utilização da configuração stateful para obter informações adicionais (excluindo seu próprio endereços) como, por exemplo, o endereço do servidor DNS da rede. Isto é importante, pois na autoconfiguração stateless não há como enviar para os clientes o endereço de um servidor DNS.

 

DHCPv6

 

O DHCP para o IPv6 ou DHCPv6 funciona num modelo cliente/servidor assim como era no IPv4, permitindo aos servidores DHCP atribuir endereços IPv6 e outros parâmetros de configuração aos host IPv6. Este protocolo é a alternativa statefull à autoconfiguraçao stateless. Para um cliente IPv6, o processo de aquisição de dados de configuração é semelhante ao utilizado no IPv4. Se for encontrado um roteador na rede, primeiramente o cliente examina os RA’s provenientes desse roteador para, assim, determinar se o DHCP deve ou não ser utilizado ou, caso não encontrem nenhum roteador, o cliente irá contactar diretamente o servidor DHCP. Os clientes e o servidor trocam mensagens DHCP utilizando o protocolo de transporte UDP; para isso os servidores recebem as mensagens dos clientes no endereço link-local multicast reservado, denominado All DHCP Relay Agents and Servers.

 

Este endereço possui o seguinte formato: FF02::1:2 .Um cliente DHCP envia a maioria das mensagens para este endereço multicast reservado. Para um cliente DHCP enviar mensagens para o servidor DHCP que não está no mesmo segmento de rede existe um DHCP Relay Agent responsável por transmitir as mensagens entre o cliente e o servidor, de forma ao cliente não ficar “desamparado”. Opcionalmente, o servidor pode oferecer ao cliente, além de endereços IPv6, outros parâmetros de configuração como DNS, NTP, BOOTP, etc. Mas, não é possível enviar o endereço do default gateway, pois esta informação deve sempre ser obtida através da autoconfiguração stateless. O DHCPv6 fornece um maior controle do que somente as configurações obtidas na autoconfiguração stateless que, ao contrário do DHCPv6, não permitem, por exemplo, que um administrador de rede defina políticas de acessos.

 

Com isso, todos os hosts que se ligam à rede podem obter endereços IPv6 e os servidores DHCPv6 possuem os meios para assegurar o controle de acesso a recursos de rede, verificando, primeiro, as políticas de controle de acesso, antes mesmo de responder aos pedidos dos clientes. Outros benefícios do DHCPv6 são: pode ser utilizado, simultaneamente, com as configurações stateless, por exemplo; pode-se obter um endereço IPv6 da autoconfiguração stateless e o endereço do servidor DNS do DHCPv6 pode ser utilizado para delegar um prefixo IPv6 para equipamentos terminais.(BRADNER,1996)

 

DNSv6

 

O serviço de DNS é o que faz o mapeamento dos nomes para os endereços IP e vice-versa. O DNS utiliza um espaço de nomes hierárquico no qual os servidores ajudam a relacionar os nomes com os endereços em cada nível hierárquico, mas ele foi concebido para processar endereços IPv4 de 32 bits. Dessa forma, nos últimos anos, foram criadas algumas extensões para tornar o DNS compatível com o IPv6. Algumas delas ainda estão em utilização e outras já foram descontinuadas. Em utilização estão: o registro quad-A “AAAA”, a nova representação textual no registro, o domínio ip6.arpa e novas consultas DNS.

 

Dentre as extensões experimentais ou descontinuadas estão: os registros A6 e DNAME, o Binary Labels Type e o domínio ip6.int. Não é suficiente ter registros IPv6 (AAAA) no DNS, é também de grande importância efetuar consultas e obter respostas DNS utilizando a camada de transporte IPv6 com todas suas características. É claro que os dados obtidos via IPv6 têm de ser iguais aos obtidos via IPv4 para que haja interação entre as duas versões. Relativamente aos servidores DNS Raiz, apenas alguns destes podem ser alcançados através do IPv6.

 

O registro AAAA faz o mapeamento do nome de um host para um endereço IPv6, sendo equivalente ao registro A do IPv4. Este registro AAAA possui o seguinte formato: “www.xxxxx.com AAAA 3FFE:B00:C18:1::2” . O IETF decidiu utilizar este registro para a resolução do nome no correspondente endereço IPv6. Já o registro PTR faz o inverso, ou seja, é um “apontador” que mapeia endereços para nomes, ou também conhecido como mapeamento reverso (BRADNER,1996).

 

Esses registros utilizam o seguinte formato:

 

2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.8.1.c.0.0.0.b.e.f.f.3. ip6.arpa PTR www.xxxxx.com

 

Exatamente como no IPv4, ou seja, o endereço invertido, mas colocado de forma explícita, e com um ponto separando cada conjunto de 4 bits. Foi também definido um domínio específico para pesquisar os registros que contém endereços IPv6, e a intenção deste domínio é fornecer uma forma de mapear um endereço IPv6 para um nome, embora possa ser utilizado para outros fins também, e tem sua raiz em IP6.ARPA. Finalmente, as “queries” DNS foram alteradas de modo a ser possível localizarem e processarem não somente endereços IPv4, mas também os novos endereços IPv6.

 

Multicasting

 

O Multicasting é, sobretudo, utilizado por aplicações multimídia. Estas, freqüentemente, precisam de muita largura de banda para transmitir dados de uma única fonte para vários destinatários. Um exemplo é o de videoconferência como na figura abaixo:

 

Figura 9: Exemplo de vídeo conferência

 

É também utilizado por alguns provedores de acesso à Internet para fornecer serviço de TV por assinatura aos seus clientes Assymmetric Digital Subscriber Line (ADSL). Os endereços IPv6 multicast tem o prefixo FF00::/8. É utilizado um campo “Scope ID” de 4 bits para especificar o intervalo de endereços multicast reservado para cada âmbito, permitindo assim, um controle fácil da fronteira multicast. Um host pode subscrever a diferentes endereços multicast e, ao mesmo tempo, obter todo fluxo de dados referente aos endereços multicast que subscreveu.

 

Comparativamente ao IPv4, o IPv6 fornece um leque maior de endereços multicast, que oferece novas perspectivas para atribuição de endereços. Uma das principais inovações introduzidas pelo IPv6 na área de Multicasting é a de que todas as implementações IPv6 terão de incluir suporte nativo a este serviço IP. O protocolo Multicast Listener Discovery (MLD), definido na RFC 2710, é utilizado para determinar os membros de grupos num segmento de rede e também responsável pela gestão Multicasting entre hosts e roteador já não é delegado para um protocolo em separado como no IPv4 e, por isso, tem de ser suportado em todas as pilhas do protocolo IPv6.

 

O protocolo MLD faz, de fato, parte do pacote ICMPv6 e pode ser utilizado por um roteador IPv6 para descobrir a presença de Multicast Listeners nas suas ligações diretas e para descobrir, especificamente, que endereços multicast têm interesse para com os hosts vizinhos. Existem três tipos de mensagens MLD, que são distinguidas pelo campo “type”: “Multicast Listener Query”, “Multicast Listener Report” e “Multicast Listener Done”. O MLD já obteve uma atualização para o MLDv2 e a novidade nesta versão é que o receptor pode especificar grupos e fontes de interesse, sendo necessário para serviços SSM. Dos dados fornecidos por esta nova versão do MLD, são criadas árvores de distribuição em toda a rede Multicast IPv6, utilizando o protocolo PIM. A grande diferença no multicast IPv4 está relacionada com o problema de inter-domínio.

 

O protocolo Multicast Source Discovery Protocol (MSDP) foi concebido para o IPv4, para permitir que as informações da origem fossem trocadas entre domínios.

 

Qos

 

A expressão Qualidade de Serviço, em inglês Quality of Services (QoS) é muitas vezes utilizada para descrever as garantias de desempenho que uma rede fornece ao tráfego transportado. Os novos requisitos, com maiores exigências impostas pelas novas aplicações on-line, como Voz sobre IP, videoconferência de alta qualidade, jogos on-line, necessitando de garantia de banda no tráfego das aplicações e, também, sendo sensíveis aos retardos maiores e perda de pacote. As atuais redes de alta velocidade seguem a filosofia de Differentiated Services (DiffServ), de forma que o QoS cumpra os requisitos mencionados. O cabeçalho IPv6 inclui dois campos relativos ao QoS: Traffic Class e Flow Label.

 

O campo “Traffic Class” de 8 bits permite ao host de origem ou a um roteador identificar a prioridade do pacote. Este campo é análogo ao campo “Type of Service” do cabeçalho IPv4.

 

Figura 10: Cabeçalho IPv4 e IPv6 - apresentação QoS

 

Já o campo “Flow Label” possui 20 bits e foi proposto para identificar pacotes de um fluxo específico; para isso, o host de origem atribui o mesmo valor ao campo “Flow Label” para cada pacote transmitido pertencente a um fluxo e os valores permanecem inalterados à medida que o pacote é transportado pelas redes. Também é esperado que o campo “Flow Label” no cabeçalho IPv6 simplifique o fornecimento de serviços que necessitam diretamente do QoS para funcionarem satisfatoriamente.

 

Segurança no IPv6

 

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). (BRADNER,1996).

 

Ameaça I – Procura de Gateways

 

Uma primeira ameaça de segurança é a procura de gateways, por hackers ou sistemas que pretendem entrar na rede ou atacá-la. Estes analisam todos os endereços externos de gateways ou hosts que encontram e procuram pontos fracos na sua segurança. Devido ao tamanho do espaço IPv6, a pesquisa por sistemas vulneráveis na rede tornou-se mais complexa, por exemplo, a varredura por exaustão ficou bastante dificultada. Além disso, o software de análise de portas, tal como NMAP, não suporta sequer a análise de rede em IPv6. Por esta razão, os métodos de análise em IPv6 poderão vir a ser alterados, mas, obviamente, a pesquisa continuará a ocorrer. Como são necessários que os servidores públicos estejam registrados no DNS, os atacantes continuarão a ter hosts para atacar. Além disso, os administradores podem também adotar endereços fáceis de lembrar e, neste caso, a parte do endereço EUI-64 facilita o trabalho do atacante. Sendo assim, as novas técnicas para os endereços obtidos podem utilizar informações de zonas DNS ou arquivos “logs”.

 

Ameaça II – Procura de Endereços Multicast

 

A segunda ameaça consiste na procura de endereços multicast, pois é esperado que todas as implementações IPv6 suportem multicast. Os novos endereços multicast suportados pelo IPv6 podem permitir aos atacantes identificar, no segmento de rede, recursos essenciais e atacá-los. Os endereços multicastall-node” e “all-router” podem, também, ser usados como novas formas de intrusão. De forma a tornar os endereços multicast inacessíveis do exterior, regras de firewall devem ser criadas nas bordas para a filtragem. A segurança dos endereços IPv6 pode ser melhorada utilizando endereços gerados com auxilio de cifras, ou também conhecidos como CGA’s. Estes são endereços IPv6 que transportam, no identificador, informação de hash sobre a chave pública e, apesar de manterem a privacidade, é também possível aos administradores de rede a manutenção de registros. Os endereços gerados com auxilio de cifras estabelecem um vinculo entre endereços IP e chaves públicas, sem a necessidade de uma infraestrutura de gestão de chaves. Adicionalmente, CGA’s podem ajudar a proteger o protocolo e reforçar a proteção de informações em mobilidade IPv6.

 

Ameaça III – Acesso não Autorizado

 

A terceira ameaça é o acesso não autorizado, e no IPv6, a implementação de políticas das camadas 3 e 4 ainda é efetuada nos firewalls. No entanto, existem algumas considerações sobre essa arquitetura: os endereços multicast (direcionados ao tráfego interno) devem ser filtrados nos limites do domínio de rede; os endereços “IPv4 mapped IPv6” devem ser filtrados em tempo real; e devem existir múltiplos endereços por interface de rede. A mobilidade em IPv6 utiliza o Protocol for Autentication and Network Access (PANA), de forma a evitar acessos não autorizados. O PANA fornece uma solução para a camada de enlace, permitindo a autenticação no acesso à rede, diferentemente do que ocorria no IPv4, onde um host interagia com um agente externo para efetuar sua autenticação. Nas redes IPv6 móveis, esta função de autenticação não é mais efetuada pelo Agente Externo, mas sim pelo PANA Authentication Agent (PAA).

 

Ameaça IV – Pontos Fracos nos Firewalls

 

Os pontos fracos em firewalls são a quarta ameaça. Em IPv6 os firewalls podem ser configurados de diversas formas No entanto, para eliminar os pontos fracos, tanto a arquitetura do IPv6 como a do próprio firewall têm de cumprir determinados requisitos. No IPv6 o nível de segurança é aumentado devido ao fechamento de túnel “fim-a-fim” oferecida pela implementação do IPSec que é intrínseca ao protocolo . Por não ter a necessidade de utilização do NAT, os pontos fracos da filtragem de pacotes já não podem ser mais ocultados. Adicionalmente, a arquitetura IPv6 e a dos firewalls tem que suportar o encadeamento do cabeçalho IPv6, assim como a transição e coexistência IPv4/IPv6. Apesar da complexidade adicional dos gateways, deve ser assegurada a inexistência de pontos fracos.

 

Ameaça V – Ataques Através de Cabeçalhos

 

A quinta ameaça consiste em ataques de desempenho através de cabeçalhos fragmentados. De forma a evitá-los, o administrador de rede IPv6 deve rejeitar os fragmentos IPv6, recusando, por exemplo, todos os pacotes com um cabeçalho de encaminhamento, caso a rede não suporte Mobile Internet Protocol Version 6 (MIPv6). Todos os fragmentos com menos do que 1280 octetos podem ser potencialmente descartados com exceção do último fragmento. E finalmente, todos os fragmentos devem ser entregues em, no máximo, 60 segundos e recusados, caso contrário.

 

Ameaça VI – Pontos Fracos do Protocolo

 

A sexta ameaça deriva de pontos fracos do próprio protocolo. No IPv4, estes pontos fracos podem conduzir a spoofing de nível 3 e 4 ou ataques Address Resolution Protocol (ARP) ou DHCP, no entanto, os gateways entre os dois mundos IP ainda continuam a ser um potencial alvo. Embora o spoofing na camada 3 permaneça similar, os endereços IPv6 são agregados globalmente, facilitando, assim, a atenuação de spoofing em pontos de agregação. A atenuação do spoofing é facilitada, visto que o endereçamento IPv6 é hierárquico. Por uma questão de registro e contabilização, é necessário mapear o endereço IPv6 para um endereço MAC. Com o ND, as ferramentas de ataque, tais como “ARP cache poisoning” e “DHCP Snooping” desapareceram.

 

Ameaça VII – Ataques de DDoS

 

A última ameaça recai nos ataques de DDoS. Os ataques de “broadcast amplification” e “Smurf”, que enviam pacotes ICMP para endereços broadcast, são completamente eliminados no IPv6, já que, no IPv6, não se utiliza broadcast, e sim endereços multicast globais em seu lugar; além disso, a própria especificação do protocolo IPv6 proíbe a geração de pacotes ICMPv6 em resposta a mensagens para endereços multicast globais.

 

Tal como nas redes IPv4, as redes IPv6 tem de lidar com diversas ameaças como descrito acima. Os serviços de segurança IPSec dependem inteiramente destes mecanismos: Authentication Header (AH) e Encapsulation Security Payload Header (ESP).

 

Figura 11: Cabeçalho AH e ESP

 

Estes cabeçalhos são definidos tanto para IPv4 quanto para o IPv6 mas quando utilizados no IPv4, são adicionados como opções ao cabeçalho IPv4 normal. A utilização é então opcional no IPv4, mas é obrigatória no IPv6. O IPSec fornece os seguintes serviços de segurança de rede opcionais: confidencialidade dos dados, pois o emissor IP pode cifrar os pacotes antes de os enviar através da rede, integridade dos dados, pois o destinatário IPSec pode autenticar os pacotes enviados pelo emissor IPSec, e assegurar que os dados não sofreram qualquer tipo de alteração durante a transmissão.

 

A gestão de chaves requer uma infraestrutura Public Key Infrastructure (PKI) e uma nova e simplificada Internet Key Exchange (IKE) denominada IKEv2. Outra opção é a autenticação da origem dos dados, pois o destinatário, para autenticar a origem dos pacotes IPSec enviados, depende diretamente do serviço de integridade dos dados. O IPSec impede assim a observação, modificação e spoofing dos dados enviados através de uma rede pública. A funcionalidade IPSec é, essencialmente, idêntica no IPv6 e no IPv4; no entanto, o IPSec no IPv6 pode ser utilizado fim-a-fim e os dados podem ser cifrados em todo o caminho entre o host de origem e o host de destino. Com o IPSec, o IPv6 terá uma menor probabilidade de ser vítima de sniffing ou de um ataque do tipo “man in the middle” do que o IPv4. Adicionalmente, para prevenir ataques de encaminhamento no IPv6, o IPSec pode proteger protocolos como o Open Shortest Path First Version 3 (OSPFv3) e o RIPng. Por estas razões, os administradores de rede devem ativar o IPSec em todos os hosts IPv6 tornando a rede potencialmente mais seguras.

 

Foram descritas, neste capítulo, as principais características do protocolo IP versão 6, feita uma comparação com sua versão 4 e expostas suas diferenças e melhorias. No próximo capítulo serão descritas as formas de coexistência e interações entre as duas versões do protocolo.