Por: @jonasc
Publicado em: 2019-08-16

Kea DHCP DDNS

Update de host dinâmico DNS para clientes DHCP.

Topologia

Para o ambiente foi utilizado 2 servidores e 1 cliente:

  • lab_ddns_dhcp01: Servidor iTFLEX v3 com DHCP (Kea)
  • lab_ddns_dhcp02: Servidor iTFLEX v2 com DNS (Bind)
  • lab_ddns_dhcp03: Cliente de DHCP (Windows)

Pacotes necessários

Módulo dhcp_enabled para o servidor v3 e bind9 para o servidor v2.

Instalação

Provisionar um servidor iTFLEX v3 com DHCP.

Instalar o bind no servidor iTFLEX v2:

yum install itflex-bind

Configuração do Servidor DNS

Para que o update de DNS seja feito de maneira segura, é necessário gerar uma chave TSIG através do comando abaixo.

rndc-confgen -a -c /etc/named/rndc.key -k rndckey

O serviço de DNS deve ter permissão para leitura da chave.

chown root:named /etc/named/rndc.key
chmod 660 /etc/named/rndc.key

Crie as zonas de DNS interna e reversa em /etc/named.conf, autorizando update para a chave gerada acima.

include "/etc/named/rndc.key";

// DNS Reverso LAN
zone "45.122.10.in-addr.arpa" {
    type master;
    file "zones/reverse.lan.arpa";
    notify yes;
    allow-transfer { localhost; rfc-1918; };
    allow-query { localhost; rfc-1918; };
    allow-update { key "rndckey"; };
};

// Zona DNS Interno
zone "desktop.labddns.local" {
    type master;
    file "zones/dominio.lan";
    notify yes;
    allow-transfer { localhost; rfc-1918; };
    allow-query { localhost; rfc-1918; };
    allow-update { key "rndckey"; };
};

Crie o arquivo de zona do domínio em  /var/named/zones/dominio.lan

$TTL 43200
@	IN	SOA	fw.desktop.labddns.local.	sysadmin.desktop.labddns.local. (
  2011010101	; serial
  3600		; refresh
  900		; retry
  1209600		; expire
  43200		; default_ttl
)

@		IN	MX	4	mx1.desktop.labddns.local.
@		IN	NS	ns1.desktop.labddns.local.
@		IN	A	10.122.45.250
localhost	IN	A	127.0.0.1
fw		IN	A	10.122.45.250
ns1		IN	A	10.122.45.250
mx1		IN	A	10.122.45.250
mail		IN	A	10.122.45.250
proxy		IN	CNAME   fw
pop		IN	CNAME 	mail
smtp		IN	CNAME	mail
pop3		IN	CNAME	mail
www		IN	CNAME	mail

Crie o arquivo de zona reversa em  /var/named/zones/reverse.lan.arpa

$TTL 43200
@	IN	SOA	ns1.desktop.labddns.local.	sysadmin.desktop.labddns.local. (
  2011010101	; serial
  3600		; refresh
  900		; retry
  1209600		; expire
  43200		; default_ttl
)

@		IN	NS	ns1.desktop.labddns.local.
250		IN	PTR	fw.desktop.labddns.local.

Verifique se as configurações do Bind estão corretas e reinicie o serviço de DNS.

named-checkconf -z
systemctl restart named

O servidor de DNS está pronto para receber updates de DNS!

Configuração do Servidor DHCP

Cadastre um escopo de DHCP comum no servidor v3 e aplique as configurações.

A partir deste ponto, não utilize mais o gerenciamento web do servidor para que as configurações de laboratório não sejam perdidas.

Configuração do DHCP para update DNS

O principal serviço do Kea é o kea-dhcp4. Para suportar o update de DNS, será necessário integrá-lo com o serviço kea-dhcp-ddns. Por padrão, o serviço kea-dhcp4 conecta-se com kea-dhcp-ddns via localhost na porta 53001.

Respeitando a sintaxe do JSON edite  /etc/kea/kea.conf , adicionando o item “dhcp-ddns” dentro de “Dhcp4” para habilitar o update de DNS no serviço de DHCP.

"Dhcp4": {
  "dhcp-ddns": {
      "enable-updates": true,
      "override-client-update": true,
      "override-no-update": true,
      "qualifying-suffix": "desktop.labddns.local"
  },
# ...  
}

Configure o serviço kea-dhcp-ddns no mesmo arquivo de configuração /etc/kea/kea.conf adicionando o dicionário de configurações DhcpDdns. A configuração básica define:

  • IP e porta do serviço kea-dhcp-ddns

  • Chave TSIG para autenticação (copie a chave gerada no servidor DNS)

  • Domínios configurados para updade de DNS:

  • Domínio

  • Chave de autenticação

  • Servidor DNS

{
  "Dhcp4": {
  # ...
  },
  
  "DhcpDdns":
    {
      "ip-address": "127.0.0.1",
      "port": 53001,
      "tsig-keys": [
          {
              "name": "rndckey",
        "algorithm": "HMAC-MD5",
        "secret": "IIGYCLRQ/WxpqSQpU7QsHQ=="
          }
      ],
      "forward-ddns" : {
          "ddns-domains": [
              {
                  "name": "desktop.labddns.local.",
                  "key-name": "rndckey",
                  "dns-servers": [
                      {
                          "hostname": "",
                          "ip-address": "10.122.45.250",
                          "port": 53
                      }
                  ]
              }
          ]
      },
      "reverse-ddns" : {
          "ddns-domains": [
              {
                  "name": "45.122.10.in-addr.arpa.",
                  "key-name": "rndckey",
                  "dns-servers": [
                      {
                          "hostname": "",
                          "ip-address": "10.122.45.250",
                          "port": 53
                      }
                  ]
              }
          ]
      }
  },
  "Logging": {
  # ...
  }
}

Aplique as configurações dos serviços.

systemctl restart kea-dhcp4.service
systemctl start kea-dhcp-ddns.service
systemctl enable kea-dhcp-ddns.service

ATENÇÃO: Garanta que o horário dos servidores estejam sincronizados para que o update DNS seja realizado com sucesso!

Testes das funcionalidades

Conecte o cliente DHCP Windows na rede e valide o update de DNS.