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: 84.741 ]

Por: Supervisor dos Moderadores em 10/06/2013


Implementação DHCPv6



Sobre a sua implementação não há muito o que falar, pois ela é simples. Após instalar, basta criar um arquivo dhcpd6.conf no mesmo caminho do dhcpd.conf do IPv4 e configurar.

Instalando:

# aptitude install isc-dhcp-server

Ou você pode baixar os fontes e compilá-lo. Nas duas opções ele virá com o DHCPv6 habilitado.

Para iniciar basta digitar:

# dhcpd -6 -cf /etc/dhcp/dhcpd6.conf

Ele dará uma mensagem: "No subnet declaration for..." indicando que precisamos criar o arquivo dhcpd6.conf:

# vim /etc/dhcp/dhcpd6.conf

Não esqueça de configurar também o dhcpd.conf para IPv4. Para iniciar digite:

# dhcpd -4

Depois para iniciar, parar ou reiniciar os serviços execute o tradicional:

# /etc/init.d/isc-dhcp-server start | restart | stop
Ou:
# service isc-dhcp-server start | restart | stop

O conteúdo abaixo é somente um exemplo de um arquivo dhcpd6.conf, porém foi com esta configuração que capturei o print screen do ifconfig abaixo (Figura 9). Nos links ao final tem mais opções de configuração para dhcpd6:

#
# Arquivo de configuração dhcpd6 Debian Whezzy
#

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet6 2002::b155:0/112 {
        option dhcp6.preference 0;
        range6 2002::b155:1 2002::b155:fffe;
        option dhcp6.name-servers 2001:db8::1;
        option dhcp6.domain-search "exemplo.com";
        option dhcp6.info-refresh-time 43200;
}

Após salvar e sair, execute de novo:

# dhcpd -6 -cf /etc/dhcp/dhcpd6.conf

Se após esse comando aparecer a mensagem de que não encontrou o arquivo /var/lib/dhcp/dhcpd6.leases, é só criá-lo:

# touch /var/lib/dhcp/dhcpd6.leases
# dhcpd -6 -cf /etc/dhcp/dhcpd6.conf


Dará uma mensagem similar a essa:
Internet Systems Consortium DHCP Server 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Bound to *:547
Listening on Socket/5/eth0/2002::b155:0/112
Sending on Socket/5/eth0/2002::b155:0/112
E o DHCP6 estará funcionando.

Para ver o resultado, basta configurar a placa de rede com IP dinâmico:

# iface eth0 inet6 dhcp

E reiniciar com ifdown ethx e ifup ethx.

Agora veremos um exemplo prático de uma conversão para se atribuir um endereço IPv6 de Link Local a partir do MAC da placa de rede.
Vamos tomar como exemplo a figura abaixo, um print screen do ifconfig:
Linux: IPv6, DNSv6 e DHCPv6
Figura 9 - Print screen do ifconfig. Fonte: o próprio autor.
Vamos tomar o MAC (endereço físico da placa de rede), na linha "Link encap:Ethernet Endereço de HW 00:53:44:e6:06:fd".

Como todos sabemos, os 6 primeiros dígitos (24 bits, 00 53 44) identificam a empresa fabricante da placa de rede e os 6 últimos dígitos são a extensão, e o endereço físico da placa de rede, (MAC - Media Access Control) é o "RG" dela o qual é único no mundo inteiro para cada interface de rede.

Foi convencionado pela IEEE que para mapear endereços MAC de 48 bits para endereços EUI-64 insere-se 16 bits, FF e FE, bem no meio do MAC entre a identificação da empresa e a identificação de extensão, assim:
00 53 44 FF FE E6 06 FD
E temos acima um endereço EUI-64.
Agora vamos converter esse endereço EUI-64 em um identificador de interface IPv6.

Foi convencionado também que temos dois bits chamados bit Universal/Local (U/L) e bit Individual/Group (I/G). O bit U/L é o sétimo bit e o bit I/G é o oitavo bit, ambos da esquerda para a direita.

Em convenção de notação posicional se escreve os dígitos mais significativos sempre a partir da esquerda, ou seja, o bit mais significativo é o primeiro bit da esquerda.

Tomando o primeiro Byte, 00, e convertendo para binário (lembrando que para converter de hexadecimal para binário primeiro converte-se para decimal, depois para binário; ou usa-se uma calculadora).
00 em hex = 00 dec = 00000000 bin
Somente a título de exemplo:
53 hex = 83 dec = 01010011 bin
Seguindo a regra da IEEE, se o bit U/L for 0 altera-se para 1 e, se for 1 altera-se para 0. Quando o bit U/L for 1 significa que o endereço será administrado localmente e quando for 0 significa que o IEEE, através da designação de uma identificação de empresa exclusiva, administrou o endereço.

Aplicando a regra: 00000000 00000010

Desconvertendo:
00000010 bin = 02 dec = 02 hex
Portanto, ficará assim:
02 53 44 FF FE E6 06 FD
Para definir o endereço de conexão local IPv6, separa-se o identificador acima em grupos de 4 separados por dois pontos, seguindo as regras de formatação de endereços IPv6 vistas anteriormente:

0253:44FF:FEE6:06FD. Acrescenta-se o prefixo de Link Local FE80 e desconsidera-se os zeros à esquerda de cada grupo de 4, ficando assim:
fe80::253:44ff:fee6:6fd/64
Confira na figura 9 a linha:
endereço inet6: fe80::253:44ff:fee6:6fd/64 Escopo:Link
E podemos ver pela linha acima que o DHCPv6 seguiu à risca a regra de criação a partir do MAC. E o endereço inet6 de escopo global foi fornecido pelo serviço de DHCPv6, comprovando assim que uma mesma interface pode ter dois ou mais endereços IPv6.

O bit I/G quando for definido para 0 significa que o endereço é individual (de difusão ponto a ponto) e quando for definido para 1 significa que o o endereço é de grupo (de difusão seletiva).

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

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

VMD no Debian - Instalação e configuração

Instalação do PostgreSQL, Apache2 e PHP8 no Debian Buster 10 e no Stretch 9

Problema no GRUB no Debian Squeeze 6.0.7 [Resolvido]

Leitura recomendada

Docker e Flannel

IPv6 completo Net Virtua

Dificultando a espionagem num computador com Linux

Configuração do ZERO de um Servidor DHCP

Nagios Core 4.0.8 com Debian 7 e Client Windows Server

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts