Isso pode ser concluído por meio de gatilhos para o ISC DHCP. O script somente IPv4 e as informações de configuração estão disponíveis em
Existe um script alternativo que suporta IPv4 e IPv6, mas usando a mesma premissa do script acima está disponível em dns-krbnsupdate.sh .
O cerne básico do problema é que o MS DNS usa Kerberos para autenticação para atualizar registros DNS, enquanto o ISC DHCP, pronto para uso, suporta TSIG [para BIND].
Os scripts acima são bastante longos, por isso não os publicarei aqui, mas os passos básicos são:
Gere um keytab usando ktutil
. Isso é para um usuário de domínio que é um membro do "DnsUpdateProxy" no Active Directory. Você deve ser capaz de fazer isso no Windows ou no Linux (mas o keytab deve ser copiado para o servidor executando o ISC DHCP).
Configure o script acima para o seu domínio / servidores DNS.
Adicione os parâmetros necessários para executar o script nos acionadores 'on commit', 'on release', 'on expiry' em dhcpd.conf
. Se estiver usando o script IPv4 / IPv6, as linhas "executar" precisarão ser ajustadas:
em commit:
execute("/etc/dhcp/ddnsupdate6.sh", "add", ClientIP, "-h", ClientName, "-m", ClientMac);
na versão:
execute("/etc/dhcp/ddnsupdate6.sh", "delete", ClientIP, "-m", ClientMac);
no vencimento:
execute("/etc/dhcp/ddnsupdate6.sh", "delete", ClientIP);
Por último, anote se você está usando o MIT Kerberos ou o Heimdal. Com o Debian Jesse, estou usando o Kerberos e descomentei a linha KRB5MIT
.
Depois de concluído, você pode iniciar isc-dhcp-server
e monitorar o (registro padrão) /var/log/syslog
.
Você deve ver entradas de registro semelhantes a:
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[0] = /etc/dhcp/ddnsupdate6.sh
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[1] = add
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[2] = 10.10.20.56
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[3] = -h
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[4] = HostName
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[5] = -m
Mar 23 23:19:34 localhost dhcpd: execute_statement argv[6] = <MAC_Addr>
Mar 23 23:19:34 localhost dhcpd: DHCPREQUEST for 10.10.20.56 from <MAC_Addr> (HostName) via eth0
Mar 23 23:19:34 localhost dhcpd: IPv4!
Mar 23 23:19:34 localhost dhcpd: DHCPACK on 10.10.20.56 to <MAC_Addr> (HostName) via eth0
Mar 23 23:19:34 localhost dhcpd: DDNS: adding records for 10.10.20.56 (hostname.nauplius.local) succeeded
Se você vir linhas semelhantes a:
DDNS: adding records for 10.10.20.51 (hostname.nauplius.local) FAILED: nsupdate status 2
Isso provavelmente significa que o usuário especificado no keytab não tem direitos sobre o registro DNS, o que pode acontecer se esse usuário não criou o registro originalmente (por exemplo, você não usou um proxy para atualizar o DNS em nome do DHCP). ). Isso deve desaparecer com o tempo, à medida que os registros DNS expirarem, , a menos que os clientes Windows ingressados no domínio estejam atualizando automaticamente seus próprios registros.
Você pode validar isso através do DNS MMC no Windows e verificar a guia Segurança do registro A / AAAA em questão. Se você vir HOSTNAME $, o cliente Windows se registrará no DNS, e o ISC DHCP não poderá (não vejo um problema com isso). Caso contrário, você deverá ver que o usuário especificado no keytab tem permissões de leitura / gravação sobre o registro A / AAAA.