sexta-feira, 18 de setembro de 2015

Integração dos Servidores DNS e DHCP no Linux

Olá Pessoal.

Recentemente escrevi dois artigos relacionados abaixo descrevendo o processo de configuração de um servidor DNS no Linux Debian utilizando o Bind (pacote bind9) e também como configurar um servidor DHCP no Linux Debian utilizando o ISC DHCP Server (pacote isc-dhcp-server). Pois bem, o objetivo deste artigo é mostrar ao leitor como integrar esses dois serviços de maneira que a aplicação Bind (servidor DNS) possa se comunicar com a aplicação ISC-DHCP-Server (servidor DHCP) para que as máquinas endereçadas dinamicamente na rede sejam automaticamente atualizadas nas relações de zonas direta e reversa do serviço de nomes, ou seja, dispensando qualquer esforço (inviável) de configuração manual para manutenção da integridade dos registros. 




Antes de praticar essa tarefa é recomendada a leitura dos dois artigos citados previamente, uma vez que o foco deste artigo é apenas as alterações necessárias nos arquivos de configuração dos serviços DNS e DHCP para implementar aquilo que chamamos de DNS dinâmico. A topologia abaixo apresenta a proposta de topologia para exemplificar o processo de configuração dos serviços de maneira integrada.




1. Alterações no Arquivo de Configuração do Serviço DNS (Bind)

Abaixo trago um exemplo de configuração do arquivo /etc/bind/named.conf, onde há destaques em amarelo nas alterações necessárias no servidor DNS. No diretório /etc/bind existe um arquivo denominado rndc.key que contém uma chave única que utilizaremos em ambos os serviços DNS e DHCP para fins de autenticação, permitindo a comunicação entre as aplicações.


#--- /etc/bind/named.conf.local

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

zone "nome.com.br"
{
type master;
file "/etc/bind/nome.com.br.forward";
allow-transfer { 192.168.221.202; };
allow-update   { key "rndc-key"; };
};


zone "221.168.192.in-addr.arpa"
{
type master;
file "/etc/bind/nome.com.br.reverse";
allow-transfer { 192.168.221.202; };
allow-update   { key "rndc-key"; };
};


Obs.: Uma observação muito importante é que, por padrão, o diretório /etc/bind pertence ao usuário root, mas é necessário que a aplicação Bind tenha acesso de escrita ao diretório para criar e atualizar os novos arquivos dinâmicos das zonas direta e reversa. Por isso é importante ajustar os provilégios de acesso ao diretório através do comando: chown bind:bind /etc/bind.


2. Alterações no Arquivo de Configuração do Serviço DHCP

Abaixo trago um exemplo de configuração do arquivo /etc/dhcp/dhcpd.conf, onde há destaques em amarelo nas alterações necessárias no servidor DHCP. Reparem que estamos referenciando a mesma chave (rndc-key) utilizada anteriormente na configuração do Bind. Se os serviços DNS e DHCP estiverem instalados na mesma máquina, é possível fazer referência direta ao arquivo através da instrução include apontando para o mesmo arquivo na máquina local. Outra opção é inserir o conteúdo da chave manualmente, como é feito no exemplo abaixo. Além disso, também informamos as zonas direta e reversa previamente configuradas no servidor DNS que responde pelo IP informado no parâmetro primary.

#--- /etc/dhcp/dhcpd.conf

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

key "rndc-key"
{
algorithm hmac-md5;
secret "aqui_vem_sua_chave";
};

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

zone nome.com.br
{
primary 192.168.221.201;
key "rndc-key";
}


zone 221.168.192.in-addr.arpa
{
primary 192.168.221.201;
key "rndc-key";
}

subnet 192.168.221.0 netmask 255.255.255.0
{
range 192.168.221.101 192.168.221.199;
option routers 192.168.221.254;
option domain-name "nome.com.br";
option domain-name-servers 192.168.221.201, 192.168.221.202;
}


Façam seus testes...

Samuel.

3 comentários:

  1. Excelente post professor. Fiz os testes aqui usando uma topologia com o GNS3 e deu certo.

    ResponderExcluir
  2. Caso eu tenha um servidor linux dhcp e um servidor linux dns, é possível fazer essa integração?

    ResponderExcluir