O DHCPD não está enviando atualizações para o BIND porque não sabe qual nome DNS deve ser atualizado, pois nenhum nome de host DDNS está definido.
O BIND e o DHCPD estão configurados, mas, até onde posso dizer, o DHCPD não tenta nem mesmo enviar a atualização do DNS dinâmico para o BIND. Eu posso adicionar manualmente registros usando o nsupdate com a mesma chave que configurei o DHCPD para usar.
Servidor:
eth0: 10.0.0.1 estática (BIND e DHCPD) eth1: DHCPd atribuído (externo, sub-rede diferente)
Cliente:
eth0: DHCP atribuído, mesma sub-rede do servidor eth0
Configuração do DHCPD:
authoritative;
option domain-name "ops.ss";
option domain-name-servers testvm1.ops.ss;
ddns-updates on;
ddns-update-style interim;
default-lease-time 3600;
max-lease-time 7200;
log-facility local6;
key DDNS_UPDATE {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret "manysecrets";
}
zone ops.ss. {
primary 127.0.0.1;
key DDNS_UPDATE;
}
zone 0.0.10.in-addr.arpa. {
primary 127.0.0.1;
key DDNS_UPDATE;
}
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.50 10.0.0.99;
option routers 10.0.0.1;
}
Config BIND:
include "/etc/named/ddns.key";
acl trusted {
10.0.0.0/24;
127.0.0.0/8;
localnets;
localhost;
};
options {
listen-on port 53 { trusted; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { trusted; };
forwarders { 192.168.1.2; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel update_log {
file "data/bind-updates.log";
severity debug;
print-category yes;
print-severity yes;
print-time yes;
};
category update {
update_log;
};
category update-security {
update_log;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "ops.ss" IN {
type master;
file "dynamic/fwd_ops.ss";
allow-update { key DDNS_UPDATE; };
};
zone "0.0.10.in-addr.arpa." {
type master;
file "dynamic/rev_10.0.0.0_24";
allow-update { key DDNS_UPDATE; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Ambos os sistemas são o CentOS 6.4 com bind e dhcp de @updates
O DHCPD não está enviando atualizações para o BIND porque não sabe qual nome DNS deve ser atualizado, pois nenhum nome de host DDNS está definido.
De acordo com a página do manual, ddns-hostname
não precisa ser definido.
The ddns-hostname statement
ddns-hostname name;
The name parameter should be the hostname that will be used in set-
ting up the client's A and PTR records. If no ddns-hostname is spec-
ified in scope, then the server will derive the hostname automati-
cally, using an algorithm that varies for each of the different
update methods.
Certifique-se de que o cliente dhcp esteja realmente enviando o nome do host. No Ubuntu, a seguinte opção no dhclient.conf faz isso:
send host-name = gethostname();
Sua configuração nomeada parece bem, à primeira vista.
Esta é a minha configuração para o servidor DHCP. Eu uso a chave RNDC:
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.100 192.168.20.200;
option subnet-mask 255.255.255.0;
option routers 192.168.20.1;
option domain-name-servers 192.168.20.201;
option domain-name "srv.internal.mycompany.be";
ddns-domainname "srv.internal.mycompany.be.";
ddns-rev-domainname "in-addr.arpa.";
}
Certifique-se de que o ddns-domainname esteja especificado, para que ele saiba quais registros da zona devem ser atualizados. Não esqueça o "ponto" extra no final.