Arquivo

Posts Tagged ‘IPv6’

Idéias sobre o que fazer com um bloco /32 do IPv6-I

Última atualização: 15/03/2011.

Prólogo

O acaso favorece a mente preparada.
Louis Pasteur.

Ando observando que depois do IPv6, voltou à moda, binários e hexadecimais, com a intensidade do passado. Há quase 40 anos atrás, quando comecei a tatear em computação, os sistemas binário e hexadecimal, faziam parte da minha mente. Sempre que ensinava em um curso de uso do computador (ou de alguma linguagem, como o Fortran), era mandatório ensinar binário e hexadecimal. Depois, com o passar dos anos, já não era um pré-requisito tão fundamental. Para mostrar aqui, o quanto binário e hexadecimal eram importantes, guglei “assembler do IBM 1130”, meu primeiro computador, na esperança de achar uma listagem qualquer do Assembler do 1130, para exibir aqui. Fiquei alegremente surpreso ao encontrar [3]. O IBM 1130, naturalmente, não era meu, mas era como se fosse meu. Afinal fui a segunda pessoa a ter a chave do CPD da Universidade Federal de Viçosa. Por volta de 1968/1969, o BNDES comprou alguns IBM 1130 e espalhou por algumas instituições (não foram muitas, na época). Por acaso, um deles foi para a UFV, então muito conhecida pela sua especialidade em agronomia. O acaso favoreceu o Prof. Fábio Ribeiro Gomes. Uma mente reconhecidamente privilegiada, que fez com que um daqueles poucos IBM 1130s fosse parar no interior de Minas. No dia da inauguração do equipamento, entrei no CPD (a sala mais “chique” da UFV!) com um punhado de folhas de codificação, contendo um programa em Fortran escrito, para calcular áreas sob curvas de equações de regressão, através do método de Monte Carlo (acho que era o exercício final dos textos de instrução programada da IBM). De lá para cá, não parei mais.

Introdução

À memória dos sete grandes geômetras cristãos ou agnósticos: Descartes, Pascal, Newton, Leibnitz, Euler, Lagrange, Comte, (Allah se compadeça desses infiéis), e à memória do inesquecível matemático, astrônomo e filósofo muçulmano, Buchafar Mohamed Abenmusa Al Kharismi, (Allah o tenha em sua glória!), e também a todos os que estudam, ensinam ou admiram a prodigiosa ciência das grandezas, das formas, dos números, das medidas, das funções, dos movimentos e das forças, eu, el-hadj xerife Ali Iezid Izz-Edim ibn Salim Hank Malba Tahan (crente de Allah e de seu santo profeta Maomé), dedico esta desvaliosa página de lenda e fantasia.
De Bagdá, 19 da Lua de Ramadã de 1321.

Dedicatória feita por Malba Tahan, em seu livro, “O homem que calculava”, [4].

Os NIRs, como o Registro.br estão distribuindo blocos /32 para quem solicita IPv6 (ou para os LIRs), com algumas recomendações vindas dos RIRs (no nosso caso, o LACNIC), afagando as expectativas do ICANN (coordenador central da distribuição de IPs), [5]. Blocos /32, significam nada menos, nada mais do que 79.228.162.514.264.337.593.543.950.336 IPs!. Uma das recomendações é: distribuam blocos /64 para os usuários finais (incluíndo os usuários caseiros)! Algo como 18.446.744.073.709.551.616 (~264) IPs.

É importante fixar, em nossa mente, a dimensão dos números que rondam o IPv6. Por exemplo, compare-os com o espaço de endereçamento de todo o IPv4! Um outro exemplo, mais intuitivo pode-se tirar do “O homem que calculava”. Trata-se do famoso problema do Jogo de Xadrez. O lendário rei Iadava, prometeu ao Lahur Sessa, inventor do jogo de xadrez, uma quantidade de grãos de trigo, obtida pela seguinte sequencia 1 grão para a primeira casa do tabuleiro de xadrez, 2 grãos pela segunda casa, 4 grãos pela terceira casa e, assim sucessivamente até a casa 64 do tabuleiro. A razão dessa promessa, fica à deriva até a leitura do livro [4]. O resultado é o número acima, menos 1. Uma avaliação do resultado, em grãos de trigo, conduzem às seguintes curiosidades:

  • Se toda a Terra fosse semeada em grãos de trigo, o rei precisaria de colher durante 450 séculos, para cumprir a promessa.
  • Se fôssemos contar os grãos de trigo prometidos, à razão de 5 por segundo (um tempo razoável), um ser humano ou, um robô, trabalhando dia e noite sem parar, levaria 1.170 séculos, para finalizar a contagem.

Nos habituando aos exageros do IPv6, podemos partir para avaliar as alternativas para segmentar um bloco /32. Este primeiro artigo irá se concentrar no entendimento do endereçamento IPv6.

Vale, nesse momento, um pequeno comentário sobre o livro de Simon Singh, em [9]. Simon é um belíssimo escritor e em Big Bang ele reproduz grandezas numéricas (grandes e pequenas), igualmente imensas, pois o livro trata de cosmologia. Mas, Simon, citando o exemplo acima, do Malba Tahan na página 443, deixa pela metade a quantidade de grãos na última casa do tabuleiro e, lamentavelmente, não lembra o autor carioca da fábula que, curiosamente, nunca foi às Arábias.

O espaço de endereçamento do IPv6. Necessidade da mudança de paradigma.

Linhas gerais sobre a alocação de IPv6 pelos IRs podem ser vistas em [5] e diversos outros locais, cuja mais importante referência está em [8]. Uma preocupação constante na literatura, principalmente no início do aparecimento do IPv6 é em relação a agregação, em particular, nas alocações subsequentes. Para permitir a agregação de informações de roteamento e, consequentemente, diminuir a expansão das tabelas de roteamente, a sugestão é distribuir os IPv6s de maneira hieráquica, respeitando a topologia da infraestrutura da rede. Vamos começar olhando na Figura 1, que segue. É uma tabela simples, proposta pelo RIPE NCC, onde a primeira coluna discrimina blocos de IPv6, do /16 ao /56. A segunda e terceira colunas discriminam, respectivamente os blocos /48 e /56 (espera-se, os mais usados na distribuição de quem tem um /32). A última coluna representa os números de bits necessários para atingir os 128 bits do endereçamento. Por exemplo, a primeira linha, representando o bloco /16. Um /16 pode ser subdivididos em 4G redes de blocos /48 e em 1T de redes com blocos /56. Como podemos ver, números incríveis. O que se pode fazer com 1T redes /56?

cidr_working4-1

Figura 1. RIPE NCC IPv6 Chart. Fonte [2].

Dividir para conquistar! Vamos usar essa máxima e, construir uma tabela mais palatável, já que os LIRs recebem blocos /32. A simplificação da Figura 1 está na Figura 2, abaixo. A estrutura é a mesma. Na primeira linha, por exemplo, começa com o bloco /32. Com um /32, podemos obter 65.536 redes com bloco /48. A conta é muito simples: 48-36=16 bits, que nos dá 64K (216). São mais de 16 milhões de redes com blocos /56! Blocos /56 implicam em 272. Muito maior, mas muito maior mesmo, do que os grãos do tabuleiro de xadrez! Tá mais para as medias cosmológicas.

TabelaIPv6-Reduzida

Figura 2. Tabela do RIPE NCC reduzida.

Há um outro quadro mais esperto. O Nic.br, tem oferecido cursos presenciais do IPv6 e produzido um material muito bom [10]. Nas Figuras 3 e 3A, que seguem, quadros produzidos pelo pessoal do Nic.br são, realmente, um Guia Didático de Endereçamento IPv6, perfeito! Por razões históricas, foi mantida a Figura 3. Recomenda-se o foco na Figura 3A, que é a última atualização (Dez 2010). Bits, bytes, binário e hexadecimal se misturam sem, absolutamente, nenhuma complicação.

GuiaDidaticodeEndereçamento

Figura 3. Guia do Nic.br.

Figura 3A. Guia do Nic.br (Versão Dez 2010: Guia didático de endereçamento IPv6 – Nic.br).

As escolhas de como dividir o bloco /32 são imensas. Alguns parâmetros devem orientar, como exemplo o tamanho das redes de nossos clientes e as respectivas estimativas de crescimento, entre outras. A perspectiva da escalabilidade de nossos clientes é, também, uma previsão difícil, [11]. Algumas abstrações aqui, outras acolá e, o conhecimento do negócio, podem nos ajudar a decidir.

Endereços IPv6

Vamos acompanhar, inicialmente a RFC4291, citada em [12]. Tentaremos qualificar o mecanismo de enderaçamento IPv6, atento aos detalhes que são relevantes tendo em vista esse texto. De imediato seria interessante conhecer o significado de “nó” no contexto do IPv6. “Nó” é um dispositivo que implementa o IPv6. Um “roteador” é um nó que encaminha pacotes IPv6, não explicitamente endereçados a ele. Também, “host” é um nó que não é um “roteador”. Tais definições estão em [13]. Continuando, existem três tipos de endereços IPv6, discriminados e caracterizados como segue:

  • Unicast: É o identificador de uma única interface de um nó. Um pacote enviado para um endereço unicast é entregue à interface identificada por aquele endereço.
  • Anycast: É o identificador de um conjunto de interfaces (geralmente pertencentes a nós diferentes). Um pacote enviado para um endereço anycast é entregue a uma das interfaces identificadas por aquele endereço (a mais próxima, segundo os protocolos de roteamento).
  • Multicast: É o identificador de um conjunto de interfaces (tipicamente pertencentes a nós diferentes). Um patote enviado para um endereço multicast é entregue a TODAS as interfaces identificadas por aquele endereço.

Devemos ter em mente as seguintes informações importantes sobre os endereços IPv6:

  • Representação textual dos endereços:
    • A representação preferida é x:x:x:x:x:x:x:x, onde “x” são quatro dígitos hexadecimais. Por exemplo:

      CAFE:CA5A:DAD0:F0CA:ABCD:EF01:2345:6789
      2001:0DB8:0:0:8:800:200C:417A

    • Pode-se usar :: com o objetivo comprimir grupos de zeros hexadecimais, no meio, à esqueda ou à direita da representação textual, desde que somente seja usado uma única vez. Exemplos:

      2001:DB8:0:0:8:800:200C:417A ~ 2001:DB8::8:800:200C:417A
      FF01:0:0:0:0:0:0:101 ~ FF01::101
      0:0:0:0:0:0:0:1 ~ ::1
      0:0:0:0:0:0:0:0 ~ ::

  • Pode-se representar um endereço através do tradicional prefixo CIDR ou seja endereço-ipv6/prefixo.
  • O tipo do endereço é identicado pelos bits de mais alta ordem. Abaixo uma tabela com tal classificação:

    Tipo de endereço Prefixo binário Notação IPv6
    Multicast 11111111 FF00::/8
    Unicast Todo o resto Não aplicável
    Anycast Parte do espaço do Unicast Não distinguível sintáticamente
  • Uma questão que pode ficar confusa é o fato do endereço unicast estar aparecendo como todo o restante do endereçamento, exceto o multicast. Para resolver esse impasse de interpretação, foi definido o escopo de um endereço IPv6. Nesse caso, o tipo de endereço anycast, define um escopo no espaço de endereçamento unicast. E, para fixar a presença dos endereços unicast que são roteáveis na Internet, existe o escopo global, denominado Unicast Global. A referência correta para a especificação dos escopos do unicast é [14] e, constantemente atualizada.
  • Tipos especiais de endereços, qualificados pelo escopo, podem ser visualizados na tabela que segue, incluindo sua definição:

    Nome Notação IPv6 Significado
    Não especificado ::/128 Não deve ser usado para identificar uma interface. Roteadores não roteiam pacotes para este endereço
    Loopback ::1/128 Identifica a interface do host local.
    Link local FE80::/10 São os endereços privativos. Não roteáveis para a Internet.
    Local único FC00/7 Usado somente em ambientes desconectados da Internet.
    Mapeamento IPv4 ::FFFF:0:0/96 Usado nos mecanismos de transição
    Tunelamento Teredo 2001::/32 Tecnologia de transição. É um mecanismo de atribuição de endereço IPv6 sob IPv4.
    Endereçamento 6to4 2002::/16 Será usado no período de transição no 6to4
    ORCHID 2001:10::/28 Não roteável. Usado para CHI (Criptographic Hash Identifiers).

Embora pareça um pouco complicado a lembrança de todas as alternativas de representação de endereços, tudo é uma questão de se acostumar. Para facilitar a descoberta do tipo e escopo de endereços IPv6 está em evolução, aqui, uma facilidade para descobrir, rapidamente, algumas informações sobre um número IPv6 específico.

Atualização em 15/03/2011: O documento [15] é uma recente tradução do RIPE, que vale a pena dar uma olhada.

Referências

[1] Van de Velde, G., Popoviciu, C., Chown, T., Bonness, O., Hahn, C., IPv6 Unicast Address Assignment Considerations. RFC5375, December 2008.
[2] RIPE NCC, Understanding IP Addressing.
[3] Aleks, N. & Knittel, B., IBM 1130.
[4] Tahan, M., O homem que calculava. Edição completa em .pdf, aqui!
[5] RIPE NCC, IPv6 Address Allocation and Assignment Policy, June 2009. pdf.
[6] Hinden, R., Deering, S., IP Version 6 Addressing Architeture, RFC3513 (Standards Track), February 2006.
[7] Tsuchiya, P., On the Assignment of Subnet Numbers, RFC1219, April 1991.
[8] IANA, Number Resources => IP Address Allocations => Internet Protocol Version 5 (IPv6).
[9] Singh, S., Big Bang, Tradução de Jorge Luiz Calife, Record, 2006.
[10] Projeto IPv6.br, Guia didático de endereçamento IPv6, http://www.ipv6.br. Curso IPv6 Básico (Presencial).
[11] Blanchet, M., A Flexible Method for Managing the Assignment of Bits of an IPv6 Address Block, RFC3531, April 2003.
[12] Hinden, R., Deering, S., IP Version 6 Addressing Architecture, RFC4291, February 2006.
[13] J. Loughney, Ed., IPv6 Node Requirements, RFC4294, April 2006.
[14] IANA, Internet Protocol Version 6 Address Space, http://www.iana.org/assignments/ipv6-address-space/.
[15] Preparing an IPv6 Addressing Plan Manual, December 2010: Original text, March 2011: Translation provided by RIPE NCChttp://www.ripe.net/training/material/IPv6-for-LIRs-Training-Course/IPv6_addr_plan4.pdf.

Anúncios
Categorias:IPv6, TCP/IP Tags:, , , , , , ,

Endereços IPv6 bem conhecidos

Na tabela abaixo, a relação de endereços IPv6 definidos na RFC5156, que devem aparecer em regras de filtragem ou firewall. A tabela, na medida do possível será refinada.

Endereço Uso Observações
::/0 Não especificado Não pode aparecer na Internet.
::1/128 Loopback Não pode aparecer na Internet
::/128 Não especificado Não pode aparecer na Internet
::FFFF:0:0/96 Mapeamento IPv4 Não podem aparecer na Internet
::/96 Endereços compatíveis com IPv4. Não podem aparecer na Internet
fe80::/10 Link-local unicast. Usados para configuração sem estado (stateless) Não podem aparecer na Internet (default)
fc00::/7 Unique-local Não podem aparecer na Internet (default)
2002::/16 Unicast link-local Não podem aparecer na Internet
2001:db8::/32 Usados para documentar e como endereços privativos Não podem aparecer na Internet
2002::/16 Usados em túneis 6to4 Publicado se estiver rodando um relay 6to4 ou em uma oferta de transito em 6to4. Filtros estão na RFC3964.
2001::/32 Usado pelo tunelamento Teredo. Publicado se estiver rodando um relay Teredo ou em uma oferta de transito via Teredo.
5f00::/8 Usado na rede experimental 6bone. Bloco retornado ao IANA e será usado em futuras alocações. Não pode aparecer na Internet até ser alocado.
3ffe::/16 Usado na rede experimental 6bone. Bloco retornado ao IANA e será usado em futuras alocações. Não pode aparecer na Internet até ser alocado.
2001:10::/28 Endereços do ORCHID (Overlay Routable cryptographic Hash IDentifieres). Não podem aparecer na Internet.
2001:0000::/29
2001:01F8::/29
Endereços especiais reservados ao IANA (RFC4773). Somente podem aparecer na Internet os que forem publicados pelo IANA.
ff00::/8 Endereçamento multicast Somente podem aparecer na Internet se os 4 bits de escopo global estiverem definidos.

Categorias:IPv6 Tags:

Coisas importantes sobre o IPv6

Últimas atualizações:
22/04/2009 – 08:17
07/07/2009 – 07:17

Introdução

Às vésperas do primeiro curso presencial de IPv6, oferecido pelo Nic.br, seguem abaixo anotações retiradas dos cursos do projeto 6DEPLOY (veja aqui) e do Introdução ao IPv6, do próprio Nic.br.

A organização segue o esquema dos dois cursos acima e tem a intenção de servir como referência rápida, sem profundidade. Serão completadas nos próximos dias.

Considerações iniciais

  • O IPv6 é um novo protocolo e não uma atualização do IPv4! Seu projeto levou cerca de 10 anos.
  • Há uma espectativa de os estoques de IPv4 da IANA se esgotem entre 2010 e 2012. Dos registros regionais (no nosso caso, o LACNIC), não durem mais do que 3 anos.
  • Medidas do IPv4:

    • 32 bits
    • 4.294.967.296
  • Medidas do IPv6:

    • 128 bits
    • 340.282.366.920.938.463.374.607.431.768.211.456 => 2128 => 79 trilhões de trilhões de vezes a disponibilidade do IPv4 ~= 5,6 x 1028 endereços por ser humano.
    • Reserva metade dos bits para enderaçamento local => 18.446.744.073.709.551.616 ou 264 redes disponíveis.
  • O IPSec é obrigatório no IPv6.
  • O ICMP foi modificado, com a inclusão de mecanismos de autoconfiguração de endereços, descoberta de endereços (Neighbour Discovery) e gerenciamento de grupos multicast.
  • Implementado o suporte a conexões móveis criando facilidades para permitir que um usuário se desloque de uma rede para outra sem necessidade de alterar seu IP.
  • A fragmentação de pacotes no IPv6 passa a ser feito apenas na origem tornando rápido o roteamento.
  • Mecanismos de transição: tunelamento, tradução e pilha dupla.
  • Política de distribuição de blocos IPv6:

    • A IANA distribui um bloco /12 para cada RIR.
    • Os RIRs distribuem blocos /32 para cada provedor.
    • Os provedores devem distribuir blocos variando de /48 a /56, para seus clientes. Um bloco /48 pode ser dividido em até 65.536 redes diferentes, cada uma com 18.446.744.073.709.551.616 endereços diferentes. Um bloco /56 pode ser dividido em até 256 redes diferentes, cada uma com 18.446.744.073.709.551.616 endereços diferentes.
    • Um usuário pode receber um bloco /64.
  • Sistemas operacionais com suporte a IPv6:

    • BSD: FreeBSD desde a versão 4.0. O NetBSD desde a versão 1.5 (2000). O OpenBSD desde a versão 2.7.
    • Linux: desde a versão 2.1.8 do Kernel, com grandes limitações. Suporte estável a partir da versão 2.2.x.
    • MAC OS X: Desde a versão 10.2 Jaguar. Já vem habilitado por padrão.
    • Windows: Primeira versão no SP1. Versões XP SP2 e SP3, Vista, 2003 Server, 2008 Server e SE já estão com a versão mais aprimorada.

  • Equipamentos de rede com suporte a IPv6:
    • 3com: Desde 1997. NetBuilder desde a versão 11.0. Switches PathBuilder 5500 já possuem suporte IPv6.
    • Alcatel-Lucent: SR-OS, utilizado nos roteadores 7750SR e 7710SR possui suporte a diversas funcionalidades do IPv6.
    • Cisco: A partir da versão 12,0(21) ST do Cisco IOS (2001).
    • Hitachi: Desde 2001 os roteadores GR2000 da família Gigabit Router.
    • Juniper: Desde a versão 5.1 do JUNOS (2001) nos roteadores T-Series e M-Series
  • Cabeçalho do IPv6

    headerIPv6-Nic.br

    igura 1. Cabeçalho do IPv6 (Fonte: Curso IPv6 On-line Nic.br)
    • Descrição dos campos do cabeçalho IPv6:

      • Versão: Campo de identificação de versão do protocolo IP utilizado (valor: 6). Tamanho: 4 bits.
      • Class de Tráfego: Define as diferentes classes e prioridades dos pacotes IPv6. É a referência básica do mecanismo de QoS. Tamanho: 20 bits
      • Identificador de Fluxo: Identifica e diferencia sequências de pacotes pertencentes ao mesmo fluxo de dados, que necessitem do mesmo tratamento. Torna eficiente a atividade dos roteadores. Tamanho: 20 bits.
      • Tamanho dos dados: Volume de dados, em bytes, que o pacote transporta. Tamanho: 16 bits.
      • Próximo Cabeçalho: Tipo de iinformação que se segue ao cabeçalho. Tamanho: 16 bits. Poderá ser um pacote da camada de transporte (TCP/UDP) ou um dos cabeçalhos de extensão, cujos valores possíveis são mostrados na tabela abaixo.

    Valor Nome do cabeçalho Definição
    0 Hop-by-Hop Transporta informações opcionais que são processadas em cada nó ao longo do caminho do pacote, incluindo a origem e o destino.
    60 Destination Options Transporta informações opcionais que são processadas apenas pelo destino final do pacote.
    43 Routing Suporte à mobilidade. Armazena o endereço original de um nó móvel (Type 2).
    44 Fragmentation Utilizado pela origem para enviar pacotes maiores do que o MTU de um caminho. Vale lembrar que no IPv6, a fagmentação ocorre na origem e são reagrupados no final.
    51 Authentication Utilizado pelo serviço IPSec para prover autenticação e garantia de integridade aos pacotes.
    50 Encapsulation Security Payload Utilizado pelo IPSec, também. identifica integridade e confidencialidade aos pacotes.

    • A ordem acima deve ser respeitada pelo nó de origem. Já o nó de destino deve ser capaz de entender os cabeçalhos em qualquer ordem.
    • Se o campo Endereço de Destino tiver um endereço multicast, os cabeçalhos de extensão serão examinados por todos pertencentes ao grupo multicast.
    • O cabeçalho Mobility pode ser usado pelos nós que possuírem suporte à mobilidade.
    • OBS: O espaço reservado para o endereçamento, 128 bits, permite gerar 3,4 x 1038 endereços distintos.

  • Limite de encaminhamento: Número máximo de roteadores pelos quais o pacote pode passar, antes de ser descartado. Tamanho: 8 bits
  • Endereço de origem do pacote. Tamanho: 128 bits
  • Endereço de destino do pacote. Tamanho: 128 bits
  • Informações adicionais são tratadas através dos cabeçalhos de extensão, localizados entre o cabeçalho base (descrito acima) e o cabeçalho da camada de transporte. Não há limites quanto à quantidade de cabeçalho de extensão em um mesmo pacote.
  • Endereçamento

    • O endereçamento é representado por oito grupos de 16 bits, separados por : e escritos em hexadecimal:
      FEDC:0034:0000:0000:0012:0000:0ABC:00FF
      FEDC:34:0:0:12::ABC:FF
      fedc:0034::0012:0:0ABc:00FF
    • Permitida a representação CIDR: FEDC:34::/48 ou FEDC:34:0:0:12::ABC:1A/64
    • Endereços de qualquer tipo podem ser atribuídos a uma interface. Uma interface pode compartilhar mais de um endereço, que pode ser de qualquer tipo.
    • Endereços do tipo broadcast não existem mais. Mas a funcionalidade do broadcast é provida pelos endereços multicast.
    • Tipos de endereços:

      • Unicast: Endereços que indentificam uma interface unívocamente e, com os seguintes tipos:

        • Global unicast: é a versão pública do endereçamento e, portanto, disponível na Internet IPv6. Seu formato possui sete campos: o prefixo de 3 bits (001); um identificador TLA (Top-Lever Aggregation); um campo reservado (RES); um identificador NLA (Next-Level Aggregation); um identificador SLA (Site-Lever Aggregation); o identificador da interface (interfaceID). Abaixo uma representação sumária:

          3 13 8 24 16 64
          FP TLA ID RES NLA ID SLA ID InterfaceID

        • Link-local: atribuídos automaticamente e válidos apenas dentro do mesmo enlace. É identificado por FE80::/64 (64 bits reservados para identificar uma interface).
        • Unique-local: Identificados pelo prefixo FC00::/7, seguidos de um ID global único de 40 bits, gerado randomicamente e, não roteáveis na Internet.
        • Mapeamento IPv4: Utilidados para representar um endereço IPv4 como endereço IPv6 e somente disponível na etapa de transição (quando a Internet for completamente IPv6). Seu formato é: ::FFF:wxyz, onde wxyz é o IPv4 convertido em hexadecimal.
        • Loopback: Identifica a própria interface (interface local) => ::1.
        • Unspecified: indica a ausência de endereço => ::.
      • Anycast: utilizado para identificar um grupo de interfaces pertencentes a nós diferentes. Um pacote destinado a um endereço anycast é enviado apenas para a interface deste grupo mais próxima da origem.

        • Há um consenso de que a experiência com endereços anycast ainda é pequena e, até que ela cresça o suficiente, as seguintes restrições foram recomendadas: (a) um endereço anycast NÃO PODE ser utilizado como endereço de origem de qualquer pacote IPv6; (b) um endereço anycast SÓ PODE ser associado a roteadores.
        • Há um formato para definir endereços anycast. O prefixo da sub-rede no endereço, identifica um link específico. Este endereço anycast é sintáticamente o mesmo do endereço unicast, só que com os bits do identificador da interfaze zerados, como mostrado a seguir:
          n bits (128 – n) bits
          prefixo da subrede 00000000000

      • Multicast: semelhante ao endereço anycast. Identifica um grupo de interfaces ou um grupo de nós. Um pacote destinado a um endereço multicast é enviado para TODAS as interfaces do grupo.

        • Um nó pode pertencer a mais de um grupo multicast.
        • A implementação nativa do multicast no IPv6 elimina a necessidade de criar túneis MBone (Multicasting Backbone), já que todos os hosts e roteadores implementam o endereço multicast.
        • O endereço multicast usa o bloco reservado FF00::/8, onde o octeto que segue o prefixo FF contêm quatro flags que determinam o tempo de vida do pacote e um valor de quatro bits que define o escopo do grupo multicast. Os 112 bits restantes são utilizados para identificar o grupo multicast.
        • A facilidade do broadcast pode ser utilizada através do prefixo FF02::1 referenciando todos os nós de um link multicast.
        • O formato dos endereços multicast é o seguinte:
          8 4 4 112
          111 111 flags escopo grupo ID

        • Na tabela acima, o camplo flags tem o formato 000T, onde T indica um endereço multicast permanentemente alocado. T=1 indica um endereço temporário. O campo escopo limita o escopo dos endereços multicas e assume alguns valores representando endereços multicast node-local, site-local, link-local, organization-local, global, etc.
    • Alocação do espaço de endereçamento: O prefixo definido pelos primeiros bits do endereço indica cada tipo de endereço IPv6. O campo variável que compreende esses bits é denominado Format Prefix (FP). A alocação de todo espaço de endereçamento, disponível em [2] e [3], é mostrado na tabela abaixo:
      Prefixo Fração do espaço total de endereçamento Alocação
      0000 0000 1/256 Não alocado (inclui alguns endereços especiais)
      0000 0001 1/256 Não alocado
      0000 001 1/128 Reservado para Alocação NSAP
      0000 01 1/64 Não alocado
      0000 010 1/128 Reservado para Alocação IPX
      0000 01 1/64 Não alocado
      0000 1 1/32 Não alocado
      0001 1/16 Não alocado
      001 1/8 Global unicast
      010 1/8 Não alocado
      011 1/8 Não alocado
      100 1/8 Não alocado
      101 1/8 Não alocado
      110 1/8 Não alocado
      1110 1/16 Não alocado
      1111 0 1/32 Não alocado
      1111 10 1/64 Não alocado
      1111 110 1/128 Não alocado
      1111 1110 0 1/512 Não alocado
      1111 1110 10 1/1024 Unicast: Link-local
      1111 1110 11 1/1024 Unicast: Site-local
      1111 1111 1/256 Multicast

    Serviços básicos

    ICMPv6

    • O ICMPv6 é utilizado para: informar características da rede, realizar dignoósticos e relatar erros no processamento de pacotes.
    • Isso é feito através da troca de duas classe de mensagens ICMPv6: mesagens de erro e mensagens de informação.
    • O cabeçalho do ICMPv6 é o seguinte:
      cabecalhoICMIPv6
      Figura 1. Cabeçalho do IPv6 (Fonte: Curso IPv6 On-line Nic.br)
    • Descrição dos campos do cabeçalho:

      • Tipo: tipo da mensagem. Tamanho: 8 bits.
      • Código: informações adicionais para determinados tipos de mensagens. Tamanho: 8 bits.
      • Soma de Verificação: utilizado para detectar dados corrompidos no cabaçalho ICMPv6 e em parte do cabaçalho IPV6. Tamanho: 16 bits.
      • Dados: informações de diagnóstico e erro, de acordo com o tipo de mensagem. Tamanho: variável, de acordo com a mensagem.
    • O ICMPv6 incorpora funções de outros protocolos como o ARP/RARP e IGMP (Internet Group Management Protocol). Tais protocolos são importantes para:

      • Descoberta de Vizinhança
      • Gerenciamento de Grupos Multicast
      • Mobilidade
      • Descoberta do Path MTU
    • Mensagens de erro
      Tipo Nome Descrição
      1 Destination Unreachable Indica falhas na entrega do pacote como endereço ou porta desconhecida ou problemas na comunicação.
      2 Packet too big Indica que o tamanho do pacote é maior que a MTU de um enlace.
      3 Time Exceeded Indica que o Limite de Roteamento ou o tempo de remontagem do pacote foi excedido.
      4 Parameter Problem Indica erro em algum campo do cabeçalho IPv6 ou que o tipo indicado no campo Próximo Cabeçalho não foi reconhecido.
      100-101 Uso experimental.
      102-126 Não usado.
      127 Reservado para expansão das mensagens de erro ICMPv6.

    • Mensagens de informação:
      Tipo Nome Descrição
      128 Echo Request Utilizada pelo comando ping
      129 Echo Reply Utilizada pelo comando ping
      130 Multicast Listener Query Utilizada no gerenciamento de grupos multicast.
      131 Multicast Listener Report Utilizada no gerenciamento de grupos multicast.
      132 Multicast Listener Done Utilizada no gerenciamento de grupos multicast.
      132 Multicast Listener Done Utilizada no gerenciamento de grupos multicast.
      133 Router Solicitation Protocolo de Descoberta de Vizinhança, para que hosts requisitem aos roteadoresas mensagens de Router Advertisements imediatamente.
      134 Router Adivertisement Protocolo de Descoberta de Vizinhança, enviadas peridodicamente ou em resposta a uma Router Solicitation. São utilizadas pelos roteadores para anunciar sua presença em um enlace e na Internet.
      135 Neighbor Solicitation Protocolo de Descoberta de Vizinhança: mensagem multicast enviada por um nó para determinar o endereço MAC e a acessibilidade de um vizinho, além de detectar a existência de endereços duplicados.
      136 Neighbor Advertisement Protocolo de Descoberta de Vizinhança: mensagem enviada como resposta a um Neighbor Solicitation. Pode também ser enviada para anunciar a mudança de algum endereço MAC dentro do enlace.
      137 Redirect Message Protocolo de Descoberta de Vizinhança: utilizada por roteadores para informar ao host, um roteador mais indicado para se alcançar um destino.
      138 Router Renumbering Utilizada no mecanismo de Re-endereçamento (Renumbering) de roteadores.
      139 ICMP Node Information Query Utilizada para descobrir informações sobre nomes e endereços, são atualmente limitadas a ferramentas de diagnóstico, depuração e gestão de redes..
      140 ICMP Node Information Response Utilizada para descobrir informações sobre nomes e endereços e são atualmente limitadas a ferramentas de diagnóstico, depuração e gestão de redes.
      141 Inverse Neighbor Discovery Solicitation Message Utilizada em uma extensão do protocolo de Descoberta de Vizinhança.
      142 Inverse Neighbor Discovery Advertisement Message Utilizada em uma extensão do protocolo de Descoberta de Vizinhança.
      143 Version 2 Multicast Listener Report Utilizada no gerenciamento de grupos multicast.
      144 Home Agent Address Discovery Request Message Utilizada no mecanismo de Mobilidade IPv6.
      145 Home Agent Address Discovery Reply Message Utilizada no mecanismo de Mobilidade IPv6.
      146 Mobile Prefix Solicitation Utilizada no mecanismo de Mobilidade IPv6.
      147 Mobile Prefix Advertisement Utilizada no mecanismo de Mobilidade IPv6.
      148 Certification Path Solicitation Message Utilizada pelo protocolo SEND.
      149 Certification Path Advertisement Message Utilizada pelo protocolo SEND.
      150 Utilizada experimentalmente com protocolos de mobilidade como o Seamoby.
      151 Multicast Router Advertisement Utilizada pelo mecanismo Multicast Router Discovery.
      152 Multicast Router Solicitation Utilizada pelo mecanismo Multicast Router Discovery.
      153 Multicast Router Termination Utilizada pelo mecanismo Multicast Router Discovery.
      154 FMIPv6 Messages Utilizada pelo protocolo de mobilidade Fast Handovers.
      200-201 Uso experimental.
      255 Utilizado para expansão das mensagens de erro ICMPv6.

    Protocolo de Descoberta de Vizinhança (Neighbor Discovery)

    • Utilizado por hosts e roteadores para:

      • Determinar o endereço MAC dos nós da rede.
      • Encontrar roteadores vizinhos
      • Determinar prefixos e outras informações de configuração da rede.
      • Detectar endereços duplicados.
      • Determinar a acessibilidades dos roteadores.
      • Redirecionamento de pacotes.
      • Autoconfiguração de endereços.
    • As mensagens de informação do ICMPv6 com tipos 133 a 137 são usadas pelo protocolo de Descoberta de Vizinhança e possuem o valor 255 no campo Limite de Roteamento do cabeçalho IPV6. Tal valor garante que as mensagens serão originadas de um nó do mesmo enlace. Portanto, as mensagens com valores diferentes são descartadas. Tais mensagens podem ainda, conter as seguinte opções:
      Mensagem Atribuição
      Source link-layer address Utilizada em mensagens Neighbor Solicitation, Router Solicitation e Router Advertisement. Nele está o endereço do remetente do pacote.
      Target link-layer address Utilizada nas mensagens de Neighbor Advertisement e Redirect. Contém o endereço de destino do pacote.
      Prefix information Fornece aos hosts os prefixos do enlace e os prefixos para que o endereço seja autoconfigurado. Utilizada em mensagens Router Advertisement.
      Redirected header Utilizada nas mensagens Redirect. Essa mensagem contém todo ou parte do pacote de redirecionamento.
      MTU Utilizada em mensagens Router Advertisemente. Essa opção garante que todos os nós em um enlace usem o mesmo valor de MTU.
    • Funcionalidades:

      • Descoberta de endereço da Camada de Enlace: Utlizada para determinar o endereço MAC dos vizinhos do mesmo enlace, onde um host envia uma mensagem Neighbor Solicitation informando no campo de Dados seu endereço MAC e também solicitando o endereço MAC do vizinho. Ao receber a mensagem, o vizinho a responde enviando uma mensagem Neighbor Advertisement informando seu endereço MAC.
      • Descoberta de Roteadores e Prefixos: Utilizada para localizar roteadores vizinhos dentro do mesmo enlace, bem como aprender prefixos e parâmetros relacionas à autoconfiguração de endereço. A descoberta de roteadores e prefixos é realizada através da recepção de uma mensagem Router Advertisement enviada a partir de um roteador local para o endereço multicas all-nodes.
      • Detecção de Endereços Duplicados:
      • Detecção de Vizinhos Inacessíveis: Mecanismo utilizado na comunicação host-a-host, host-a-roteador e roteador-a-host para rastrear a acessibilidade dos nós ao longo do caminho. Um nó considera um vizinho acessível se ele recebeu recentemente a confirmação de entrega de algum pacote a esse vizinho. Essa confirmação pode ser uma resposta a uma mensagem do protocolo de Descoberta de Vizinhança ou algum processo da camada de transporte que indique que uma conexão foi estabelecida. Este processo apenas é executado quando os pacotes são enviados a um endereço unicast, não sendo utilizado no envio para endereços multicast. Para acompanhar os estados de um vizinho, o nó IPv6 utiliza as seguintes tabelas:

        • Neighbor Cache: mantem uma lista de vizinhos locais para os quais foi enviado tráfego recentemente, armazenado seus endereços IP, informações sobre o endereço MAC e um flag indicando se o vizinho é um roteador ou um host. Também informa se ainda há pacotes na fila para serem enviados, a acessibilidade dos vizinhos e a próxima vez que um evento de detecção de vizinhos inacessíveis está agendado.
        • Destination Cache: mantem informações sobre destinos para os quais foi enviado tráfego recentemente, incluíndo tanto destinos locais quanto remotos, sendo atualizado com informações recebidas por mensagens Redirect. O Neighbor Cache pode ser considerado um subconjunto das informações do Destination Cache.
      • Redirecionamento: Mensagens Redirection são enviadas por roteadores para redirecionar um host automaticamente a um roteador mais apropriado ou para informar ao host que o destino encontra-se no mesmo enlace.

    Mecanismos de autoconfiguração: stateless e stateful

    • Autoconfiguração de endereços Stateless

      • Permite aos nós a configuração automática dos endereços unicast em suas interfaces, sem a utilização de servidores DHCP. Faz isto a partir de informações enviadas pelos roteadores, em mensagens Router Advertisement e, de dados como o endereço MAC das interfaces, criando automaticamente endereços link-local únicos.
      • Os endereços link-local são gerados utilizando o prefixo FE80::/64. A esse prefixo é anexado o identificador de 64 bits da interface física. Se a interface utilizar um MAC de 48 bits, acrescenta-se FFFE no centro do endereço e invert-se o seu sétimo bit. O novo endereço passa a fazer parte dos grupos multicast solicited-node e all-node.
      • Por meio do processo de detecção de endereços duplicados é feita a verificação da unicidade do endereço de link-local gerado. Atenção: Caso outro nó no enlace esteja utilizando o mesmo endereço link-local, automaticamente o processo de auto-configuração é interrompido, exindo uma configuração manual.
      • Se o endereço link-local for considerado único e válido, ele será automaticamente inicializado para a interface. Esse processo é o mesmo utilizado por hosts e roteadores.
      • Para determinar quais roteadores pertencem ao enlace e quais os prefixos, o host envia uma mensagem Router Solicitation para o grupo multicast all-routers.
      • Feito isso, todos os roteadores do enlace respondem com uma mensagem Router Advertisement. Tais mensagens são utilizadas para configurar:

        • os roteadores padrões,
        • um valor predefinido para o campo Limite de Encaminhamento de cabeçalho IPv6,
        • o valor de MTU do enlace e,
        • a lista de prefixos de rede.
      • Para cada prefixo informado nas mensagens Router Advertisement é gerado um endereço através do mecanismo de autoconfiguração stateless, combinando o prefixo ao identificador da interface. Estas mensagens, também apresentam duas flags:

        • managed address configuration: indica se os hosts deve ou não utilizar autoconfiguração stateful para obter endereços e,
        • stateful configuration: indica se os hosts devem utilizar a autoconfiguração stateful para obter informações adicionais, como endereços de servidores DNS e outros dados sobre a configuração da rede.
    • Autoconfiguração de endereços Stateful

      • É uma técnica alternativa à stateless, onde é necessário a utilização de servidores que informem aos hosts, os dados a serem utilizados na obtenção dos endereços, além de outras configurações da rede.
      • Utilizado quando não há roteadores em uma rede ou quando as mensagens Router Advertisement apresentam flags que habilitam seu uso. Baseia-se no uso de protocolos como o DHCPv6, a fim de obter endereços e outras opções de configuração.
      • No DHCPv6 as mensagens são trocadas em UDP, entre cliente e servidor.
      • Os clientes utilizam um endereço link-local para transmitir ou receber mensagens DHCP, enquanto que os servidores utilizam um endereço multicast reservado (FF02::1:2 ou FF05::1:3) para receber mensagens dos clientes. Caso o cliente necessite enviar uma mensagem a um servidor, que esteja fora de seu enlace, é utilizado um Relay DHCP.
      • O DHCPv6 fornece opções de configurações de rede tais como endereços de servidores de DNS, NTP, etc. Permite a análise das políticas de acesso antes de atribuir um endereço ao host.

    • É possível utilizar os dois mecanismos simultâneamente: statless e stateful.

    Fragmentação

    • O processo de fragmentação de um pacote de dados se inicia utilizando o protocolo Path MTU Discovery, que descobre de forma dinâmica qual o tamanho máximo permitido ao pacote, identificando previamente os MTUs de cada enlace no caminho até o destino.
    • O Path MTU Discovery assume que o MTU de todo o caminho é igual ao MTU do primeiro salto. Se o tamanho de qualquer um dos pacotes enviados for maior do que o suportado por algum roteador ao longo do caminho, este irá descartá-lo e retornar uma mensagem ICMPv6 packet too big. Após o recebimento dessa mensagem, o nó de origem reduzirá o tamano dos pacotes de acordo com o MTU do caminho indicado na mensagem packet too big.
    • O procedimento termina quando o tamanho do pacote for igual ou inferior ao menor MTU do caminho.
    • Há uma opção do Cabeçalho de Extensão Hop-By-Hop, chamada Jumbo Payload, que permite o envio de pacotes com cargas úteis entre 65.536 e 4.294.967.295 bytes de comprimento, chamados de jumbograms.

    QoS

    • Foram designadados dois campos do cabeçalho IPv5: Classe de Tráfego e Indicador de Fluxo, ambos com o objetivo de implementar a priorização do fluxo de determinados pacotes.

    DNS

    • Registro AAAA para o DNS.
    • ip6.arpa, para atender o PTR.
    • Um cliente DNS com suporte IPv6, em uma consulta, busca primeiro por registros do tipo AAAA. Não obtendo resposta, consulta por registro do tipo A, com o mesmo nome.
    • O servidor DNS pode responder a consultas feitas através do IPv4 ou do IPv6> Os dados obtidos na consulta IPv6 devem ser iguais aos obtidos na consulta IPv4.

    Suporte à mobilidade

    • O suporte à mobilidade no IPv6 permite que um dispositivo móvel se desloque de uma rede para outra, sem necessidade de alterar seu IP de origem.
    • Quando o nó móvel se desloca da sua rede de origem, ele obtém um novo endereço IPv6 na rede remota. Este endereço remoto pode ser obtido através de mecanismos de autoconfiguração stateless ou statefull.
    • Para ter certeza de que os pacotes IPv6 cheguem a sua rede remota, é necessária a associação entre o endereço remoto e o endereço de origem, que é feita pelo Agente de Origem.
    • O Agente de Origem registra o endereço remoto enviado em uma mensagem Binding Update pelo nó móvel e responde com uma mensagem Binding Acknowledgement.
    • O encaminhamento de pacotes para o nó móvel pode acontecer de ois modos: tunelamento bidirecional ou otimização de rota.
    • Um novo Cabeçalho de Extensão, o Mobility, foi criado. Também, foi adicionado um novo tipo de Cabeçalho Routing, o Type 2.
    • Foram criadas quatro novas mensagens ICMPv6:
      • Home Agent Address Discovery Request
      • Home Agent Address Discovery Reply
      • Mobile Prefix Solicitation
      • Mobile Prefix Advertisement

    Segurança no IPv6

    Roteamento, mobilidade e gerenciamento no IPv6

    Coexistencia com IPv4 e a transição

    Referências

    [1] IPv6.br: melhor referência para começar sobre IPv6.
    [2] IPv6 Address Space Allocation, http://www.tcpipguide.com/free/t_IPv6AddressSpaceAllocation.htm.
    [3] Adailton J. S. Silva e Marcel R. Faria, Hierarquia de Endereços IPv6.


    Categorias:IPv6 Tags:, ,

    A hora e a vez do IPv6

    Tá na hora de começar a pensar seriamente no IPv6! Por quê? Porque o CGI está exibindo um movimento mais agressivo, nesta direção. Muito bem feito, está o site do IPv6.br e, por onde se deve começar. Depois de uma geral no IPv6.br, anime-se e faça o curso on-line. Muito bom!

    Hoje, 02/05/2006, o CGI.br e Nic.br, divulgaram o curso que pode ser visto aqui é mais completo e tão bom quanto ao do 6Deploy.

    Categorias:IPv6 Tags:, ,
    %d blogueiros gostam disto: