Resumo
No post anterior, instalamos e configuramos o ISC-KEA DHCPv4. Agora, vamos ativar o KEA DHCPv6, que funciona de maneira diferente e traz alguns desafios extras. Se você já seguiu o primeiro post, essa configuração será tranquila. Se ainda não viu, recomendo ler antes, pois este guia dá continuidade ao setup anterior.
Instalação e Configuração do isc-kea-dhcp6
A instalação é rápida, fácil e direta. No DHCP Server, basta instalar o isc-kea-dhcp6 e mover o arquivo de configuração para backup na pasta root.
Como ainda não configuramos IPv6, vamos definir manualmente um endereço dentro do prefixo fd00:1:1:cafe::/64 para nossa VLAN10.
# Instalação do daemon para DHCPv6
apt-get install isc-kea-dhcp6
# Mova o arquivo de configuração para a pasta root
mv /etc/kea/kea-dhcp6.conf .
# Configure um endereço IPv6 na interface vlan10
ip addr add fd00:1:1:cafe::1/64 dev vlan10
A configuração do arquivo para DHCPv6 segue o mesmo padrão do arquivo para DHCPv4, mas há algumas diferenças importantes:
- Diferente do DHCPv4, o DHCPv6 não pode entregar rota padrão. Isso não é uma limitação do KEA, mas sim uma característica do protocolo IPv6. No IPv6, a rota padrão é anunciada pelo Router Advertisement (RA), e não pelo DHCP. Portanto, o KEA DHCPv6 não possui a opção “routers” no option-data.;
- DHCPv4 considera que as requisições que ele recebe diretamente em uma interface pertencem a subnet na qual há um endereço dela configurado na interface. KEA DHCPv6 trabalha um pouco diferente, controlando explicitamente quais endereços devem ser entregues aos clientes, através da inclusão de “interface”: “eth0” na definição da subnet;
- Em uma rede em produção, servir requisições diretamente na interface não é o comum, sendo que a maioria das redes usa requisições encaminhadas (DHCP Relay). Nestes casos, é necessário especificar uma interface-id na definição da subnet, conforme o identificar enviado pelo relay, sendo que também podemos incluir o endereço IPv6 do relay. Esse detalhe é muito importante, mas não neste momento, onde não estamos utilizando a funcionalidade DHCP Relay;
- A option-data “domain-name-servers”, que no DHCPv4 indica servidores DNS, no DHCPv6 é a option-data “dns-servers”;
- A option-data “domain-name”, que no DHCPv4 indica o nome de domínio ao cliente, bem, essa eu não achei para DHCPv6. Caso encontre, atualizarei o post, e, se você sabe, compartilhe nos comentários.
Novamente recomendo que digite o arquivo abaixo ao invés de apenas copiar e colar, pois isso ajudará muito em entender a sintaxe do arquivo, que convenhamos não é tão intuitiva assim. Ao final, inicie ou reinicie o daemon.
# Arquivo /etc/kea/kea-dhcp6.conf
"Dhcp6": {
"interfaces-config": {
"interfaces": ["vlan10"]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases6.csv",
"lfc-interval": 3600
},
"valid-lifetime": 31680,
"preferred-lifetime": 28800,
"option-data": [
{
"name": "dns-servers",
"data": "fd00:1:1:cafe::1"
}
],
"subnet6": [
{
"id": 1,
"subnet": "fd00:1:1:cafe::/64",
"interface": "vlan10",
"pools": [ { "pool": "fd00:1:1:cafe:face::/80" } ]
// Add reservations here
}
// Add subnets here
]
}
}
# Antes de reiniciar o serviço, abra outro terminal e monitore o log
journalctl -f
# Observe no log o que acontece na reinicialização do serviço, notando caso algum erro surja.
# Reinicio do serviço - The Old Way
/etc/init.d/isc-kea-dhcp6-server restart
# OU
# systemd way
systemctl restart isc-kea-dhcp6-server.service
Bom, reiniciado o serviço, e considerando que não houve erro, agora é hora de configurar nosso “Server B“, de modo que ele busque configuração de IPv6 por DHCP. Vamos conferir ANTES que vlan10 não possui IPv6 configurado, depois vamos alterar o arquivo YAML do netplan, aplicar as configurações, e confirmar que obtemos um IPv6 na vlan10 por DHCPv6.
Eu recomendo que você mantenha o log aberto no “DHCP Server“, bem como abra um tcpdump na interface vlan10. para ver a troca de pacotes DHCPv6
# Verificando que não há IPv6 configurado
ip addr show
# Alterando a linha referente ao dhcp6 em vlan10
vim /etc/netplan/default.yaml
vlans:
vlan10:
dhcp6: true
# Aplicando as configurações
netplan try
# Confirma que "Server B" obteve um IPv6 por DHCPv6
ip addr show
# Em "DHCP Server" recomendo que monitore o log
journalctl -f
# E também análise o tcpdump
tcpdump -i vlan10 -n
Considerando que seguiu exatamente o post, a interface vlan10 deverá agora ter um IPv6 configurado. Tente dar um ping no IPv6 do “DHCP Server“.
ping fd00:1:1:cafe::1
PING fd00:1:1:cafe::1(fd00:1:1:cafe::1) 56 data bytes
^C
--- fd00:1:1:cafe::1 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6126ms
Parece que não deu certo, não é? Mas só parece. Veja novamente o IPv6 obtido na vlan10, mas agora repare no tamanho do prefixo. Um /128, certo?
Não ter funcionado está completamente de acordo com o protocolo IPv6, pois é esperado que o DHCPv6 entregue um IPv6/128 ao cliente. É função do RA (Router Advertisement) complementar o setup, fornecendo o gateway para o cliente, bem como outras opções que permitirão que o ping entre “Server B” e “DHCP Server” funcione.
Poderíamos agora mesmo instalar um radvd no “DHCP Server” de modo a suprir as lacunas para que haja conectividade, mas, embora muito simples de fazer, há um pouco de explicação técnica por trás, então considero que é melhor nos satisfazermos com a função do DHCPv6, que é entregar um IPv6 e não garantir a conectividade.
Finalizando
Imagino que deva ser um pouco frustrante não finalizar o aprendizado com um teste de conectividade com sucesso, mas é importante que você compreenda que o DHCPv6 funciona de forma bem diferente do DHCPv4, mas calma. No próximo post, veremos como instalar e configurar o Stork (interface web do KEA) e, em breve, voltaremos com o setup do RA para fechar a configuração do DHCPv6 e finalmente termos conectividade IPv6.
Gostou do post? Odiou? Comente abaixo e compartilhe com a comunidade!
Referências: