-
Notifications
You must be signed in to change notification settings - Fork 0
Servidores \ RTServer1 \ Dynamic DNS (DDNS)
Crie o arquivo ddns.key
Crie um novo arquivo (ddns.key) com o seguinte conteúdo (não se esqueça de substituir pela sua chave, a mesma usada no Servidor Master):
root@server:/# mkdir chaves
root@server:/# cd chaves
root@server:/# nano /chaves/ddns.key
key DDNS_UPDATE {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret "<key>";
};
Copie a chave nos locais corretos
Copie este arquivo para /etc/bind/ e /etc/dhcp e ajuste as permissões de arquivo da seguinte maneira:
root@server:~# cp /chaves/ddns.key /etc/bind/
root@server:~# cp /chaves/ddns.key /etc/dhcp/
root@server:~# chown root:bind /etc/bind/ddns.key
root@server:~# chown root:root /etc/dhcp/ddns.key
root@server:~# chmod 640 /etc/bind/ddns.key
root@server:~# chmod 640 /etc/dhcp/ddns.key
Ou em duas linhas:
root@server:~# install -o root -g bind -m 0640 /chaves/ddns.key /etc/bind/ddns.key
root@server:~# install -o root -g root -m 0640 /chaves/ddns.key /etc/dhcp/ddns.key
Remover a pasta 'chaves':
root@server:/# rm -rf chaves
Configure as zonas a serem atualizadas
O servidor DNS deve ser configurado para permitir atualizações para cada zona que o servidor DHCP estará atualizando. Os clientes no domínio rthomaz.local receberão endereços na sub-rede 192.168.0.0/24. Precisamos de uma declaração de chave para nossa chave e duas declarações de zona - uma para a zona de pesquisa direta e uma para a zona de pesquisa inversa. Para isso, adicione o seguinte ao arquivo /etc/bind/named.conf.local :
root@server:/# nano /etc/bind/named.conf.local
//
// Do any local configuration here
//
include "/etc/bind/ddns.key";
zone "rthomaz.local" {
type master;
notify no;
file "/var/cache/bind/db.rthomaz.local";
allow-update { key DDNS_UPDATE; };
};
zone "0.168.192.in-addr.arpa" {
type master;
notify no;
file "/var/cache/bind/db.0.168.192";
allow-update { key DDNS_UPDATE; };
};
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
A opção notify no; para a chamada (o daemon DNS) de reencaminhar informações sobre a rede local para servidores DNS externos. Isso só é útil se você usar endereços particulares em sua rede. Caso você use endereços públicos, você deseja que seu DNS envie essas informações para servidores DNS públicos. Para configurar isso, basta excluir a linha de notify no; .
Além disso, você precisa configurar seu servidor DHCP para atualizar essas zonas. Para fazer isso, você precisa editar o arquivo /etc/dhcp/dhcpd.conf . Este arquivo consiste em diferentes seções. Na seção global, que é tudo o que não está dentro de uma sub-rede, ou bloco de grupo, você deve adicionar o seguinte:
root@server:/# nano /etc/dhcp/dhcpd.conf
[...]
ddns-updates on;
ddns-update-style interim;
ignore client-updates;
update-static-leases on;
[...]
ddns-update-style
Esta opção deve ser sempre provisória. A única outra opção é adhoc, mas essa está desatualizada.
client-updates
Se você usa a opção permitir client-updates, os clientes podem registrar seu nome no servidor DNS por si só. Nós não queremos isso, então eu adicionei ignore client-updates (que já é a opção padrão), apenas para mostrar isso explicitamente.
update-static-leases
Por padrão, o servidor DHCP não atualiza as entradas de DNS de arrendamentos estáticos. Se você quiser atualizá-los, você deve configurar esta opção para ativar. Pode ser que isso cause alguns problemas, é por isso que a página de manual do dhcpd.conf não recomenda o uso dele. Se você tiver problemas, desligue-o, mas então você deve configurar estes hosts estaticamente não apenas para DHCP, mas também para DNS.
Você deve adicionar as seguintes linhas para as zonas que devem ser atualizadas pelo seu servidor DHCP:
root@server:/# nano /etc/dhcp/dhcpd.conf
[...]
## DDNS
include "/etc/dhcp/ddns.key";
zone rthomaz.local. {
primary 192.168.0.101;
key DDNS_UPDATE;
}
zone 0.168.192.in-addr.arpa. {
primary 192.168.0.101;
key DDNS_UPDATE;
}
[...]
A instrução primária especifica o endereço IP do servidor de nomes cuja informação de zona deve ser atualizada. Nesse caso, o servidor DHCP e DNS está sendo executado em outra máquina, é por isso que colocamos 192.168.0.101 lá. As descrições das zonas devem terminar com um período.
Por último adicione no arquivo um script para transformação dos nomes que o DHCP envia para o DNS dos Chromecasts da rede, pois todos possuem o mesmo hostname 'Chromecast':
root@server:/# nano /etc/dhcp/dhcpd.conf
[...]
## Resolvendo problema do Chromecast que todos possuem o mesmo hostname 'Chromecast'
host chromecast-01.rthomaz.local {
hardware ethernet f4:f5:d8:fe:c0:58;
ddns-hostname chromecast-01;
}
host chromecast-02.rthomaz.local {
hardware ethernet 6c:ad:f8:d9:54:12;
ddns-hostname chromecast-02;
}
host chromecast-03.rthomaz.local {
hardware ethernet 08:9e:08:40:08:01;
ddns-hostname chromecast-03;
}
Reinicie os servidores
root@server:/# /etc/init.d/isc-dhcp-server restart
root@server:/# /etc/init.d/bind9 restart
Agora que tudo está configurado é hora de testá-lo.
A maneira mais fácil de fazer isso é conectar um PC à sua rede e depois verificar /var/log/syslog no servidor. Você pode fazê-lo emitindo o seguinte comando:
root@server:/# tail -f /var/log/syslog
Se tudo funciona bem, você deve encontrar algo semelhante às seguintes linhas na saída deste comando:
named[1724]: client 127.0.0.1#59506: signer "ddns_update" approved
named[1724]: client 127.0.0.1#59506: updating zone 'example.org/IN': adding an RR at 'joob.example.org' A
named[1724]: client 127.0.0.1#59506: updating zone 'example.org/IN': adding an RR at 'joob.example.org' TXT
dhcpd: Added new forward map from joob.example.org to 192.168.61.36
named[1724]: client 127.0.0.1#48511: signer "ddns_update" approved
named[1724]: client 127.0.0.1#48511: updating zone '2.168.192.in-addr.arpa/IN': deleting rrset at '36.2.168.192.in-addr.arpa' PTR
named[1724]: client 127.0.0.1#48511: updating zone '2.168.192.in-addr.arpa/IN': adding an RR at '36.2.168.192.in-addr.arpa' PTR
dhcpd: added reverse map from 36.2.168.192.in-addr.arpa. to joob.example.org
Caso contrário, você pode querer fazer sua pesquisa na Internet e se você encontrar uma solução, você pode querer adicionar informações sobre isso a este documento.
Outra maneira de testá-lo
Vá para seus computadores clientes e habilite-os a tirar um IP de um servidor DHCP. Com o seguinte comando, verifique se o nome do seu computador cliente está atualizado no DNS. Ele resolverá seu nome com o novo IP alocado.
root@server:/# nslookup nomedocomputador.rthomaz.local