Habilitando DDNS com BIND e DHCP remoto

Descrevo o cenário de um servidor DHCP atualizando dinamicamente a base de dados de um servidor BIND remoto. Não irei abordar a instalação do BIND nem do DHCP pois a Internet está repleta de artigos a esse respeito. É necessário uma máquina rodando BIND e outra rodando DHCP para executar a sequência de procedimentos que seguem.

[ Hits: 20.598 ]

Por: Marco Couto Ferreira em 01/08/2012


Preparando o DHCPD para atualizações dinâmicas



Agora que você já transferiu o arquivo ddns.key do BIND e ele está em /etc/dhcp/ vamos alterar as permissões do arquivo:

# chgrp root /etc/dhcp/ddns.key # chmod 640 /etc/dhcp/ddhs.key

Como todas as alterações do DHCP são realizas em /etc/dhcp/dhcpd.conf irei postar todo o conteúdo do arquivo conforme abaixo:

authoritative;
option domain-name "teste.br";
option domain-name-servers ns2.teste.br;

ddns-updates on;
ddns-update-style interim;
ignore client-updates;
update-static-leases on;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

include "/etc/dhcp/ddns.key";

zone teste.br. {
   primary 192.168.0.3;
   key DDNS_UPDATE;
}

zone 0.168.192.in-addr.arpa. {
   primary 192.168.0.3;
   key DDNS_UPDATE;
}

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.11 192.168.0.100;
        option routers 192.168.0.1;


host adminhost {
        hardware ethernet 08:00:27:F1:F2:F1;
        fixed-address 192.168.0.54;
   ddns-hostname "adminhost";
   option host-name "adminhost";
   option domain-name "teste.br";
}
}


Tudo bem, vou explicar que o endereço 192.168.0.3 é o endereço do servidor BIND e deve ser alterado para o endereço do servidor que você está usando no seu ambiente.

A segunda linha "option domain-name" é muito importante porque é o seu conteúdo que será incluído como sufixo nas máquinas que pegarem IP via DHCP, no meu caso o nome das máquinas ficaram "hostname.teste.br".

Outra observação: a seção host adminhost vai de brinde e é como ficam os hosts que terão suas configurações fixadas no servidor de DHCP.

Uma dica, se as máquinas clientes rodarem Linux é necessário alterar o arquivo /etc/dhcp/dhclient.conf e alterar as seguinte linha:

send host-name "hostname";


Claro, substituindo "hostname" pelo nome que você preferir.

Da parte de configuração é isso, agora vamos subir os serviços e realizar os testes.

Página anterior     Próxima página

Páginas do artigo
   1. Preparando o BIND para atualizações dinâmicas
   2. Preparando o DHCPD para atualizações dinâmicas
   3. Subindo e descendo... quero dizer, testando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Visual Source Safe no Linux

Explorando as possibilidades do XFree86

Cable modem no Mandrake 10

Tunando o Apache 1.3.x ou 2.x (prefork)

Instalar o Slackware 14.1 em drive USB

  
Comentários
[1] Comentário enviado por danniel-lara em 01/08/2012 - 12:39h

parabéns pelo artigo

[2] Comentário enviado por removido em 01/08/2012 - 13:11h

Gostei do artigo!

Muito útil atualizações dinâmicas.

[3] Comentário enviado por marcocouto em 01/08/2012 - 14:34h

ponto para vocês rsrsrs

[4] Comentário enviado por fs.schmidt em 04/08/2012 - 20:13h

Parabéns, muito bem explicado e muito útil !

[5] Comentário enviado por alexmanzo em 06/10/2012 - 17:57h

Boa tarde, não consegui, está dando o seguinte erro:

Oct 6 17:49:13 drs12-rgt01 named[2718]: client 192.168.1.2#49960: update '1.168.192.in-addr.arpa/IN' denied
Oct 6 17:49:13 drs12-rgt01 dhcpd: unable to add reverse map from 116.1.168.192.1.168.192.in-addr.arpa to VM01-PC.drs.gov: timed out



[6] Comentário enviado por alexmanzo em 06/10/2012 - 20:02h

consegui fazer funcionar parcialmente, só esta gerando journal para zona reversa... o que pode ser?

[7] Comentário enviado por marcocouto em 07/10/2012 - 22:38h

Alex, a segunda linha onde aparece o endereço reverso "116.1.168.192.1.168.192.in-addr.arpa" me parece estar errada deveria aparecer apenas 116.1.168.192.in-addr.arpa
sugiro verificar se com os registros manuais funciona para isso cadastre algo manualmente na zona reversa e teste com o comando
named-checkzone 1.168.192.in-addr.arpa /caminho/do/arquivo/da/zona
elimine os erros para depois partir para atualizações dinamicas

[8] Comentário enviado por alexmanzo em 08/10/2012 - 00:46h

Boa noite Marco, agradeço muito por responder, realmente estava gravando errado a entrada, ele inseria o endereço reverso dessa forma por causa de um erro de sintaxe no dhcpd.conf onde na declaração da zona reversa faltava um ponto após a entrada!
Quanto a zona reversa agora está gravando gerando os registros PTR tudo OK!
O meu problema agora está na zona de forward que não está gravando os registros A... não sei o que acontece porque nem log disso está gerando!!! No caso o log só aparece que está sendo feito a atualização da zona reversa e nada mais além disso.... o que acha?

segue o meu syslog:

Oct 8 00:26:28 drs12-rgt01 dhcpd: DHCPDISCOVER from 08:00:27:60:12:84 via eth0
Oct 8 00:26:28 drs12-rgt01 dhcpd: DHCPOFFER on 192.168.1.116 to 08:00:27:60:12:84 (VM01-PC) via eth0
Oct 8 00:26:28 drs12-rgt01 named[931]: client 192.168.1.2#36349: signer "rndc-key" approved
Oct 8 00:26:28 drs12-rgt01 named[931]: client 192.168.1.2#36349: updating zone '1.168.192.in-addr.arpa/IN': deleting rrset at '116.1.168.192.in-addr.arpa' PTR
Oct 8 00:26:28 drs12-rgt01 named[931]: client 192.168.1.2#36349: updating zone '1.168.192.in-addr.arpa/IN': adding an RR at '116.1.168.192.in-addr.arpa' PTR
Oct 8 00:26:29 drs12-rgt01 dhcpd: added reverse map from 116.1.168.192.in-addr.arpa. to VM01-PC.drs.gov
Oct 8 00:26:29 drs12-rgt01 dhcpd: DHCPREQUEST for 192.168.1.116 (192.168.1.2) from 08:00:27:60:12:84 (VM01-PC) via eth0
Oct 8 00:26:29 drs12-rgt01 dhcpd: DHCPACK on 192.168.1.116 to 08:00:27:60:12:84 (VM01-PC) via eth0

Segue meu arquivo de zona de forward:

$TTL 86400
@ IN SOA drs.gov. root.drs.gov. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns.drs.gov.
ns IN A 192.168.1.2
drs12-rgt01 IN A 192.168.1.2
drs12-proxy IN A 192.168.1.1
drs12-avserver IN A 192.168.1.3
_kerberos._tcp.drs.gov. IN SRV 0 0 88 drs12-rgt01.drs.gov.
_ldap._tcp.drs.gov. IN SRV 0 0 389 drs12-rgt01.drs.gov.

Mais um detalhe: A máquina é um Debian 6 rodando samba4 (instalado com make), fora isso esta com pacotes do kerberos e biblioteca ldap instalados... e o client em questão é Windows Seven e está cadastrada no AD do samba

[9] Comentário enviado por alexmanzo em 08/10/2012 - 10:12h

Marco bom dia!

Gostaria de informar que funcionou tudo, ele registrou os hosts na zona de foward normalmente!

Ele só não está registrando na zona de forward apenas os computadores que estão inseridos no AD do Samba4 mas isso eu ainda preciso descobrir... caso tiver alguma sugestão ou palpite refente a isso vou ficar eternamente agradecido (mais do que já estou! rs)

Grande abraço!

[10] Comentário enviado por MARCOCOUTO em 08/10/2012 - 20:22h

Cara, sua zona configurada é drs.gov
esta certo isso?
se estiver poste o seu named.conf.local e o seu dhcpd.conf

[11] Comentário enviado por marcocouto em 10/10/2012 - 08:32h

Alex, nunca vi o samba4 mas teoricamente ele não afetaria, A não ser que ele tenha alguma feature que implemente o dhcp, tenha certeza que as máquinas pegaram ip pelo servidor dhcp e não por outro recurso. para ver isso verifique se o registro da maquina esta em /var/lib/dhcp/dhcp.leases.
Qualquer dúvida poste ai

[12] Comentário enviado por alexmanzo em 10/10/2012 - 12:17h

Oi Marco, na verdade o Samba4 possui feature q implementa o Bind. O grupo do samba lançou recentemente uma versão "release candidate" que acabou corrigindo este problema que eu estava passando, para isso eu tive que refazer todo o samba 4 do servidor que ainda está em fase de testes com alguns computadores e maquinas virtuais do laboratorio. Acredito que em breve já teremos o samba4 em sua primeira versão estável tendo em vista os avanços do projeto!

Já está tudo OK, mas de qualquer forma segue meus arquivos:

#named.conf.local

zone "drs.gov." {
type master;
notify no;
file "/etc/bind/db.drs.gov";
allow-update { key rndc-key; };
};

zone "1.168.192.in-addr.arpa." {
type master;
notify no;
file "/etc/bind/db.1.168.192";
allow-update { key rndc-key; };
};

***************************************
#dhcpd.conf

authoritative;
allow client-updates;
allow unknown-clients;
ddns-updates on;
ddns-update-style interim;

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

option domain-name-servers 192.168.1.2;
option domain-name "drs.gov";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option ntp-servers 192.168.1.2;

default-lease-time 43200;
max-lease-time 86400;

log-facility local7;

zone drs.gov. {
primary 192.168.1.2;
key rndc-key;
}

zone 1.168.192.in-addr.arpa. {
primary 192.168.1.2;
key rndc-key;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.254;
}

[13] Comentário enviado por alexmanzo em 10/10/2012 - 12:39h

Marco, mais um detalhe: o arquivo contendo a chave rndc.key e a função controls estão no meu named.conf

Abraçao e mais uma vez obrigado, mereceu nota 10


Contribuir com comentário