Ver Feed RSS

root@blog:/# chmod o+r *

[Redes] IPv6 Parte 2 - Endereçamento e Segmentação

Avaliação: 2 votos, 5,00 média.
Putz... Vocês não tem idéia da dificuldade que foi levantar algumas informações para esse post. Como o IPv6 foi desenvolvido 'colaborativamente' ele sofreu muitas mudanças, então tem um calhamaço de informações desencontradas. Depois de muitas pesquisas consegui ter certeza das últimas definições.

Ah, realizei algumas mudanças na parte 1, mais especificamente em "Cabeçalhos complementares". Encontrei mais detalhes sobre os possíveis cabeçalhos.

Espero que seja útil para todos...


Endereçamento IPv6



Como dito anteriormente no IPv6 os endereços IPs passaram de 32 bits para 128 bits. Com essa mudança temos que alterar também a forma como escrevemos os endereço IP.

Antes o endereço IP era dividido em 4 octetos, onde cada octeto era composto por oito bits, e escrito utilizando a notação decimal pontuada.

Como o novo endereço IP é muito extenso não podemos utilizar a notação decimal, dessa forma utilizaremos caracteres hexadecimais. No total teremos 32 caracteres organizados em oito quartetos e separados por dois pontos. Este é um exemplo de um endereço IPv6 válido:

2001:bce4:5641:3412:341:45ae:fe32:65


Vocês devem estar pensando: "Vou ter que decorar tudo isso?!?! 192.168.1.1 era muito mais fácil!!!". Pensando nisso o endereço IPv6 pode ser abreviado, por exemplo, fee::1. Agora ficou melhor... Só ressaltando que essa abreviação é válida para os zeros. Isso quer dizer que entre o fee e o 1 existem 6 campos de 4 caracteres todos preenchidos com zero, por exemplo, o endereço FEDC:0034:0000:0000:0000:0012:0ABC:00FF pode ser abreviado para FEDC:34:0:0:0:12:ABC:FF ou FEDC:34::12:ABC:FF.

O mais interessante dos endereços IPv6 é a retrocompatibilidade. Você pode 'usar' o seu antigo IPv4 como se fosse um IPv6 sem problemas. Digamos que antes seu IP era 192.168.1.1, no IPv6 ele será 0:0:0:0:0:FFFF:192.168.1.1 ou ::FFFF:192.168.1.1. Esse é uma definição relativamente nova. Anteriormente a compatibilidade era feita adicionando dois dois pontos, ::, da seguiinte forma, ::192.168.1.1, mas essa utilização caiu em desuso e o notação iniciada por ::FFFF passou a ser adotada (vide RFC 4038). Mas esse é um assunto que abordaremos mais tarde!


Segmentação de redes

Assim como no IPv4 o IPv6 também possui a estrutura de endereçamento de grupos lógicos chamados de redes. Da mesma forma que no IPv4, utilizamos a máscara de rede para definir o "tamanho" da rede. Porém, no IPv6 não teremos a mesma flexibilidade de utilização de sub-redes.

Como no IPv6 teremos muitas redes disponíveis não será necessário a utilização de NAT e redes privadas. Com isso serão distribuídas redes de tamanho fixo.

Vamos ver como essa atribuição é feita:

  • A RIR (Regional Internet Registries) recebe da IANA (Internet Assigned Numbers Authority) um bloco de endereços /12.
  • Grandes provedores recebem do seu respectivo RIR blocos de endereços /32.
  • Os provedores por sua vez podem distribuir para seus clientes blocos entre /48 e /56, dependendo da necessidade.
  • Caso o usuário tenha plena certeza de que apenas uma rede é o suficiente, o provedor pode entregar um bloco /64.


Para termos uma idéia, um bloco /48 pode 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 256 redes diferentes, dada uma com 18.446.744.073.709.551.616 endereços diferentes.

Dessa forma podemos notar que o menor bloco possível é o /64 que corresponde à metade do endereço IPv6. Considerando o menor bloco IPv6 os primeiros 64 bits, primeiros 4 grupos, são designados para definição de redes. Por exemplo, no endereço 2001:bce4:0:0:0:0:0:1 a rede é definida por 2001:bce4:0:0 enquanto o host é definido por 0:0:0:1.

O objetivo dessa segmentação definida é que cada conjunto de números do IPv6 servirá como um identificador.


Atribuição de endereços

Ao atribuir endereços IPv6 aos hosts de uma rede temos duas opções:

  • Utilizar endereços seqüenciais, como " 2001:bce4::1", "2001:bce4::2", "2001:bce4::3" e assim por diante;
  • Seguir a sugestão do IEFT e usar os endereços MAC das placas de rede para preencher o campo de endereço de host.


Essa atribuição de IPs utilizando o MAC como identificador de host é uma ótima idéia pois além de tornar os IPs únicos haverá uma "coerência" entre MAC e IP. Se o endereço da rede é 2001:bce4:0:0: e o endereço MAC do micro é 00:50:3E:E4:4C:00 podemos atribuir o seguinte IP: 2001:bce4::0216:f2ff:fefe:34e1. "Espera ai, esse IP está diferente do MAC!". Sim, o endereço MAC contém apenas 12 dígitos hexadecimais (48 bits) enquanto a porção de host do IPV6 possui 16 dígitos hexadecimais (64 bits) por isso foi definido na RFC 2462 que seria utilizado a definição EUI-64, então temos que adicionar os dígitos "fffE" entre o sexto e sétimo dígito do endereço.


Após isso tem um último passo que é definir se o endereço terá uma importância global ou local. "Como assim?!", calma que eu explico. Quando digo global estou me referindo ao MAC propriamente dito, atribuído pelo fabricante, já o local se refere a um MAC alterado, atribuído manualmente, como é feito com frequência em máquinas SUN.


Está em estudo uma expansão dos endereços MAC das placas de rede, que passariam a ter 16 dígitos (64 bits), mas, enquanto isso não é colocado em prática, usamos essa regra.


Redes reservadas

No IPv6, da mesma forma que no IPv4, existem faixas de redes reservadas. Os endereços iniciados com 2001: são reservados para provedores de acesso e carriers. Os endereços iniciados com 3FFF:FFFF: e 2001:0DB8: são reservados para uso em documentação. exemplos e testes e por isso não são roteáveis.

No IPv4 existiam as faixas de IPs reservados para redes locais, ou redes privadas: 10.0.0.0/8, 172.16.0.0/20 e 192.168.0.0/16. Isso também existia no IPv6 mas foi derrubada pela RFC 3879, essas redes eram iniciadas com fec, fed, fee ou fef.

Outro endereço reservado no IPv4 muito famoso era o endereço 127.0.0.1 reservado para interface de loopback, também acessada pelo nome localhost. No IPv6 foi escolhido o IP ::1, que corresponde a 0:0:0:0:0:0:0:1.


Tipos de endereço

O IPv6 mantem os tipos de endereço unicast e multicast e cria um novo chamado Anycast. O tipo Broadcast foi eliminado, pois era ineficiente, além de muitas vezes gerar congestionamento na rede. O broadcast será substituido pelo multicast.

Unicast é endereçamento ponto-a-ponto tradicional. Um pacote destinado a um endereço unicast é entregue apenas àquela interface que possui o endereço especificado.

O Multicast é um tipo de endereçamento que foi acrescentado ao IPv4, mas que já é nativo no IPv6. Um pacote destinado a um endereço multicast é entregue a todas as interfaces que fazem parte daquele grupo de endereços.

O Anycasting é um novo tipo de endereçamento, que surge com o IPv6 e permite que ao invés de enviar um pacote a um servidor específico, este seja enviado a um endereço anycast específico. O sistema de roteamento entregará então o pacote ao servidor mais próximo, de acordo com a sua medida de distância, dentre um grupo de servidores. Isto é interessante, por exemplo, para descobrir o servidor de nomes mais próximo.

Atualizado 20-01-2010 em 07:52 por Magnun

Categorias
Artigos , Curso de Redes , Artigos , Cursos

Comentários

  1. Avatar de Darth Hunter
    Muto bom seu artigo. Elucidou várias características que eu achava confusas no IPv6. Começo hoje um curso da CISCO (CCNA) e seu artigo serviu de "esquenta" para que eu já chegue lá no pique.

    Mais uma vez, parabéns!
  2. Avatar de Magnun
    Muito obrigado pelos incentivos! Você me fez lembrar qnd comecei o preparatório pro CCNA... Boa época aquela...
  3. Avatar de Gustavo Lopes
    Eu sabia que você era fera!

    Só queria acrescentar uma coisa, creio que nem é necessário pois está muito esclarecedor o ser artigo - como todos os que você posta! É a respeito dos blocos /64 dados para usuários ou empresas finais: este bloco é apenas indivisível se o usuário usar a recomendação do IETF de gerar o endereço IPv6 a partir do MAC da máquina, como você bem demonstrou. (1ª metade do MAC + FFFE + 2ª metade).

    Claro que a grande maioria das pessoas vai usar a recomendação, pois isso automatiza muito o processo de atribuição de endereços IPv6 internos.

    Seu artigo é excelente!
    Abraços, amigo!
  4. Avatar de Magnun
    Obrigado pelos elogios.

    Como vocês mesmo disse ele é indivisível, ele seria a menor porção de rede no IPv6, o que é muito estranho para quem está acostumado com subredes... Mas como o IPv6 ainda está em desenvolvimento é difícil encontrar algo afirmando que esta medida é definitiva, logo é possível que isso mude.

    É muito provável que isso fique, porque, pelo que minhas pesquisas apontam, tem outras definições de redes reservadas e roteamento que irão tornar inútil a subdivisão desse bloco /64.

    Até mais...
  5. Avatar de nathan.pinotti
    Ola Magnun..
    O post é do ano passado, mas, como passei a seguir o under-linux a pouco tempo, so o vi agora.
    Estou estudando IPv6 e gostaria de fazer uma colocação.

    Na parte em que você fala sobre o anycast, vc cita que ele busca o servidor mais proximo, entretanto, eu entendi, em meus estudos, de outra forma.

    Por exemplo, hoje utilizamos um dns primario e um secundário, este secundário assume quando o primario falha, ficando ocioso o restante do tempo. Com o anycast isso muda, ou seja, teremos um dns primario e um secundario que serão utilizados de forma equivalente, sendo assim, o anycast busca o servidor que estiver mais ocioso, com menos carga de solicitação. Basicamente será um balanceamento de carga imbutido no protocolo IPv6.

    Não sei se fui claro o bastante, mas, espero ter contribuido.

    Abraço

+ Enviar Comentário