IPv6, DNSv6 e DHCPv6

Este artigo contém algumas informações destinadas para quem já tem algum conhecimento de redes e de GNU/Linux, porém, nada impede que um iniciante se interesse pelo assunto e, com algum estudo, aplique os conhecimentos aqui apresentados. Há algumas explicações básicas também.

[ Hits: 78.671 ]

Por: Buckminster em 10/06/2013


Cabeçalhos IPv4 e IPv6



O cabeçalho IPv4 possui um tamanho variável de 20 a 60 bytes, o cabeçalho IPv6 possui um tamanho fixo de 40 bytes. A estrutura do protocolo IPv6 foi enxugada em relação ao protocolo IPv4:
  • O campo IHL no IPv4 deixou de existir porque o IPv6 tem o cabeçalho base fixado em 40 bytes.
  • Os campos Identification, Flags e Grafment Offset foram integrados ao cabeçalho adicional Fragmentation no IPv6.
  • O campo Header Checksum deixou de existir.
  • O campo Version agora tem o valor 6 em vez de 4.
  • O campo Type of Service foi substituído pelos campos Traffic Class e Flow Label. Esses campos implementam técnicas QoS.
  • O campo Total Length (tamanho total do pacote) deu lugar ao campo Payload Length.
  • O campo TTL (Time to Live) agora se chama Hop Limit. É o campo que contabiliza cada salto que o pacote faz na rede.
  • O campo Protocol foi substituído pelo campo Next Header.
  • Os campos Source Address (endereço de origem) e Destination Address (endereço de destino) foram mantidos inalterados, mas passaram de 32 para 128 bits cada.
  • O IPv6 possui cabeçalhos de extensão que se localizam entre o cabeçalho base e o cabeçalho da camada imediatamente superior.

Cabeçalho IPv4:
Linux: IPv6, DNSv6 e DHCPv6
Figura 2 - Cabeçalho IPv4. Fonte: http://ipv6.br/entenda/cabecalho/.
Cabeçalho IPv6:
Linux: IPv6, DNSv6 e DHCPv6
Figura 3 - Cabeçalho IPv6. Fonte: http://ipv6.br/entenda/cabecalho/.

Endereçamento IPv6

Existem no IPv6 três tipos de endereços definidos:
  • Unicast :: este tipo de endereço identifica uma interface de forma única e exclusiva (um-para-um), de modo que um pacote enviado a um endereço unicast é entregue a uma única interface e viabiliza que todas as interfaces do planeta possam ter conectividade fim-a-fim. Dividem-se em 3 grupos:
    • Endereços Globais, que são os endereços visíveis na internet, semelhantes aos atuais IPs válidos publicados na internet. Qualquer endereço IPv6 navegando na Internet fará parte desse grupo. Essa faixa vai de 2000::/3 até 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF. Ou seja, qualquer endereço que comece com 2000, 2001, 2002, etc., é um endereço navegável na internet.
    • Endereços de Link Local, que são endereços que identificam um host apenas no enlace específico da interface, ou seja, na sua rede local. O prefixo FE80::/64 foi destinado para esta finalidade e não tem nenhum semelhante no IPv4.
    • Endereços Unique Local (ULA), são endereços semelhantes aos IPs privados descritos na RFC 1918. Esses endereços não sairão para a internet. O prefixo alocado para eles é FC00::/7 com flag local setada em 0 e FD00::/7 com flag local setada em 1.

  • Anycast :: Identifica um conjunto de interfaces na qual um endereço é compartilhado por mais de um host. Um pacote encaminhado a um endereço anycast é entregue ao host mais próximo da origem. Um endereço anycast é utilizado em comunicações de um-para-um-de-muitos. Os DNSs são um ótimo exemplo de endereço anycast.
  • Multicast :: Identifica um conjunto de interfaces, um grupo de hosts que recebem o mesmo fluxo de pacotes, porém, um pacote enviado a um endereço multicast é entregue à todas as interfaces associadas a esse endereço. Um endereço multicast é utilizado em comunicações de um-para-muitos como, por exemplo, transmissão de áudio e vídeo.

Diferente do IPv4, no IPv6 não existe endereço broadcast, responsável por direcionar um pacote para todos os nós de um mesmo domínio. No IPv6, essa função foi atribuída à tipos específicos de endereços multicast.

Os seguintes endereços, por exemplo:

1080:0:0:0:8:800:200C:417AEndereço unicast
FF01:0:0:0:0:0:0:101Endereço multicast
0:0:0:0:0:0:0:1Endereço loopback
0:0:0:0:0:0:0:0Endereços indeterminados


Podem ser representados como:

1080::8:800:200C:417AEndereço unicast
FF01::101Endereço multicast
::1Endereço loopback
::Endereços indeterminados


A representação dos endereços IPv6 em URLs (Uniform Resource Locators), passará a ser feita entre colchetes:
http://[2001:12ff:0:4::22]:8080
O localhost (127.0.0.1 em IPv4) é ::1 em IPv6. Para comprovar, execute no terminal:

ping ::1

E você verá se o IPv6 está instalado na sua máquina.

Porém, para verificar se ele realmente está habilitado em sua máquina, execute em uma janela do terminal o seguinte comando:

ping6 -c5 ::1

A saída deverá ser similar a essa:
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.034 ms
64 bytes fro m ::1: icmp_seq=2 ttl=64 time=0.045 ms
64 bytes fro m ::1: icmp_seq=3 ttl=64 time=0.048 ms
64 bytes fro m ::1: icmp_seq=4 ttl=64 time=0.043 ms
64 bytes fro m ::1: icmp_seq=5 ttl=64 time=0.044 ms
--- ::1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.034/0.042/0.048/0.009 ms
Se o sistema não reconhecer este comando ou retornar algum erro carregue o módulo:

# modprobe ipv6

Se este comando retornar um erro, significa que seu kernel não tem suporte ao IPv6. Nesse caso você deverá recompilar o kernel com suporte ao IPv6.

Caso contrário, basta configurar o Debian Wheezy para carregar o módulo IPv6 automaticamente descomentando a linha:

alias net-PF-10 ipv6

No arquivo /lib/modprobe.d/aliases.conf. Dependendo da distribuição, procure por um desses arquivos: /etc/modules.conf, /etc/modprobe.conf ou /etc/modprobe.d/aliases.

Para desabilitar o suporte ao IPv6 basta alterar a linha citada acima para:

alias net-PF-10 off

Ou comentá-la novamente.

Para ver as rotas IPv6 execute:

# route -6

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. IPv6
   3. DNSv6
   4. Cabeçalhos IPv4 e IPv6
   5. Configurações - DNS
   6. Configurações - Resolução reversa
   7. Configurações extras - Roteador
   8. Configurações extras - DHCPv6
   9. Implementação DHCPv6
   10. Conclusão
Outros artigos deste autor

Manual traduzido do Squid - Parte 3

Compilando kernel no Debian Squeeze

Montagem de Cluster

Como um monte de letras de um código fonte transforma-se em voltagens?

Squid - Entendendo um pouco as configurações

Leitura recomendada

Configurando o Rclone no CentOS 7

Tutorial de instalação e configuração do CACIC 3.1.15

Ansible - Instalação em massa Agent Zabbix

Monitorando Rede com Zabbix no Debian 7

TurnKey Linux - Instale e configure serviços de rede facilmente

  
Comentários
[1] Comentário enviado por danniel-lara em 10/06/2013 - 17:54h

Parabéns pelo Artigo , ficou bagual

[2] Comentário enviado por Buckminster em 10/06/2013 - 18:06h


[1] Comentário enviado por danniel-lara em 10/06/2013 - 17:54h:

Parabéns pelo Artigo , ficou bagual


Mas credo tchê, loco de especial!

Obrigado conterrâneo.

[3] Comentário enviado por joubertvh1 em 11/06/2013 - 07:54h

Parabéns mesmo muito interessante

[4] Comentário enviado por Buckminster em 11/06/2013 - 15:58h


[3] Comentário enviado por joubertvh1 em 11/06/2013 - 07:54h:

Parabéns mesmo muito interessante


Obrigado.

[5] Comentário enviado por Buckminster em 19/06/2013 - 00:18h

AQUI NESTA PARTE

zone "1.8.b.d.1.0.0.2.ip6.arpa" {
tope master;
file "/etc/bind/2001:db8::1.ip6.arpa";
};

O CERTO É

zone "1.8.b.d.1.0.0.2.ip6.arpa" {
type master;
file "/etc/bind/2001:db8::1.ip6.arpa";
};

[6] Comentário enviado por px em 19/06/2013 - 21:34h

bacana seu artigo, ótima contribuição para o VOL.

[7] Comentário enviado por Buckminster em 20/06/2013 - 12:44h


[6] Comentário enviado por px em 19/06/2013 - 21:34h:

bacana seu artigo, ótima contribuição para o VOL.


Obrigado.
Estamos aí.

[8] Comentário enviado por albfneto em 22/06/2013 - 21:52h

Muito legal, favoritado e 10! Por isso que a USP não atribuí IP estático pros micros dos alunos? Não pode encher uma rede de IPs fixos?

[9] Comentário enviado por Buckminster em 22/06/2013 - 23:25h


[8] Comentário enviado por albfneto em 22/06/2013 - 21:52h:

Muito legal, favoritado e 10! Por isso que a USP não atribuí IP estático pros micros dos alunos? Não pode encher uma rede de IPs fixos?


Obrigado.

IP estático causa problemas de segurança, além disso, dá um trabalho enorme fixar IPs máquina por máquina ou fixar no DHCP em redes grandes.
Se uma máquina com IP fixo tiver um problema na placa de rede, ao trocar a placa de rede terá que se fixar novamente o IP no DHCP, pois isso é feito pelo endereço MAC e cada placa tem seu próprio MAC.

O DHCP foi criado justamente por isso, para facilitar a distribuição de IPs automaticamente e para facilitar a vida dos administradores de redes.

IP estático, que eu saiba, só se usa em servidores (que não podem ficar mudando de IP toda hora, pois devem ser facilmente encontrados na rede) e em alguns casos específicos de máquinas clientes onde o acesso e o controle devem ser feitos por questões de segurança ou permitir fácil administração (diretoria, alguns setores, etc).

[10] Comentário enviado por matos.alessandro em 25/06/2013 - 09:34h

Quero aprender ipv6 e esse é um ótimo texto introdutório para esses serviços.

Quanto ao fornecimento de endereços de rede, sobre ipv4, o serviço dhcp pode fornecer ips de uma lista, de forma que o equipamento sempre receba o mesmo ip. Cadastra-se o mac-address da placa do equipamento e indica-se o ip e pronto. Tenho uma rede com 400 hosts onde tenho controle de que equipamento faz o que assim, sem problemas, casando isso com squid etc. Uma rotina shell dá conta do recado, buscando um arquivo .txt com as informações e populando o arquivo de configuração do dhcp, dentre outros...

/etc/dhcpd.conf
.
.
.
host INTRANET {
fixed-address 10.0.0.10;
hardware ethernet 00:0C:29:84:5C:99;
}
.
.
.

No ipv6, com certeza, há de haver solução similar ou mais interessante ainda.


Excelente artigo.

[11] Comentário enviado por Buckminster em 25/06/2013 - 10:25h



[12] Comentário enviado por Buckminster em 25/06/2013 - 10:30h



[13] Comentário enviado por Buckminster em 25/06/2013 - 10:31h


[12] Comentário enviado por Buckminster em 25/06/2013 - 10:30h:


[11] Comentário enviado por Buckminster em 25/06/2013 - 10:25h:


[10] Comentário enviado por matos.alessandro em 25/06/2013 - 09:34h:

Quero aprender ipv6 e esse é um ótimo texto introdutório para esses serviços.

Quanto ao fornecimento de endereços de rede, sobre ipv4, o serviço dhcp pode fornecer ips de uma lista, de forma que o equipamento sempre receba o mesmo ip. Cadastra-se o mac-address da placa do equipamento e indica-se o ip e pronto. Tenho uma rede com 400 hosts onde tenho controle de que equipamento faz o que assim, sem problemas, casando isso com squid etc. Uma rotina shell dá conta do recado, buscando um arquivo .txt com as informações e populando o arquivo de configuração do dhcp, dentre outros...

/etc/dhcpd.conf
.
.
.
host INTRANET {
fixed-address 10.0.0.10;
hardware ethernet 00:0C:29:84:5C:99;
}
.
.
.

No ipv6, com certeza, há de haver solução similar ou mais interessante ainda.


Excelente artigo.


Obrigado.
Sim, isso chama-se "amarração" de IPs pelo endereço MAC. No IPv6 também pode ser feita essa mesma amarração no caso de endereços de link local.

Você também pode amarrar os IPv4 pela tabela de ARP estática. Sendo teu servidor o gateway da sua rede local, é só criar o arquivo /etc/ethers com os MAC e os IPs de cada máquina:

00:11:22:33:44:55 192.168.0.2
11:22:33:44:55:66 192.168.0.3

Depois você coloca dentro do /etc/rc.local (ou similar, depende da distribuição) o comando arp -s para carregar a lista. Assim, se outra máquina colocar um IP fixo q não esteja associado ao MAC da sua máquina (que não esteja na lista), não conseguirá ter acesso.


[14] Comentário enviado por Buckminster em 25/06/2013 - 10:34h


[



[15] Comentário enviado por edersonschmitz em 24/09/2013 - 16:51h

Gostaria de fazer um dhcpd6.conf com endereços fixos, mas estou com dificuldade de obter a UID de cliente. Como faço para vincular o ip ao cliente?

[16] Comentário enviado por Buckminster em 29/11/2013 - 23:32h


[15] Comentário enviado por edersonschmitz em 24/09/2013 - 16:51h:

Gostaria de fazer um dhcpd6.conf com endereços fixos, mas estou com dificuldade de obter a UID de cliente. Como faço para vincular o ip ao cliente?


Vincule como no dhcp4, amarre o MAC ao endereço IP.

[17] Comentário enviado por andreyg em 13/03/2017 - 17:14h

Eu tenho que configurar um servidor DHCPV6 para testar telefones IPV6. (um servidor isolado para não enviar ipv6 para empresa toda) com posso fazer?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts