Dynamic DNS with DHCP howto

From Pruonckk.org

Autor: Pruonckk le Punk


Conteúdo

Prefacio

DNS Dinamico é algo bastante interessante, afinal, você tem uma rede usando dhcp, e todas as máquinas nomeadas na rede, oque facilita bastante o uso, quando você tem vários serviços, ou mesmo, precisa se conectar em uma maquina da rede, para dar o suporte, ao invés de usar o ip, você usa o nome, que tem seu valor ip alterado de acordo com o ip que a máquina pega na rede

Dependencias

Aqui precisamos instalar o dhcp e o bind

apt-get install dhcp3-server bind9

Imaginando o ambiente

Vamos imaginar um ambiente para facilitar nosso exemplo de configuração

Temos uma rede 10.0.0.0 255.255.255.0, nosso servidor será o 10.0.0.1, nossa rede ser chamará intranet.br

Configurando o dhcp3

Vamos até o direório do dhcp3

cd /etc/dhcp3

la dentro teremos o arquivo dhcpd.conf

Gerando a chave para o dhcp e bind

Antes de começar, precisaremos gerar uma chave, que será usada pelo dhcp, e pelo bind para garantir a transferencia dos dados de um para outro.

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST _empresa.key

Agora em nosso diretório terá dois arquivos

K_empresa.key.+157+20579.key  
K_empresa.key.+157+20579.private

No arquivo K_empresa.key.+157+20579.key teremos um valor semilar ao abaixo

pR/Kw5etevtXzuGOJbJpKg==

Este valor iremos usar para definir as chaves

dhcpd.conf

Faça uma copia de seu dhcpd.conf original, e entao coloque o seguinte conteudo (apenas este conteudo) no arquivo.

server identifier    server.intranet.br;
authoritative;
ddns-update-style    interim

key intranet {
   algorithm hmac-md5;
   secret "pR/Kw5etevtXzuGOJbJpKg==";
}

zone intranet.br. {
   primary 10.0.0.1;
   key intranet;
}

zone 0.0.10.in-addr.arpa. {
   primary 10.0.0.1;
   key intranet;
}

zone localdomain. {
   primary 10.0.0.1;
   key intranet;
}

default-lease-time  14400;
max-lease-time      14400;
log-facility        local7;
option subnet-mask  255.255.255.0;
option broadcast-address 10.0.0.255;
option routers      10.0.0.1;
option ntp-servers  10.0.0.1;
option domain-name-servers 10.0.0.1;
option domain-name  "intranet.br";
one-lease-per-client on;

option option-128 code 128 = string;
option option-129 code 129 = text;

subnet 10.0.0.0 netmask 255.255.255.0 {
   range 10.0.0.1 10.0.0.254;
   use-host-decl-name on;
}

Configurando o DNS

Agora vamos configurar o bind, para isso, vamos até o diretorio

cd /etc/bind/

E vamos inicialmente editar o arquivo named.conf

named.conf

No inicio do arquivo coloque o seguinte conteudo

key intranet {
   algorithm hmac-md5;
   secret "pR/Kw5etevtXzuGOJbJpKg==";
};

controls {
   inet 127.0.0.1 port 953
   allow { 127.0.0.1; 10.0.0.1; } keys { "intranet"; };
};

named.conf.local

Agora vamos configurar nossa zona dns, para isso, abra o arquivo named.conf.local e adicione o seguinte conteudo.

zone "intranet.br" {
   type master;
   file "/etc/bind/arquivos/intranet";
   allow-update { key "intranet"; };
   notify no;
};

zone 0.0.10.in-addr.arpa {
   type master;
   file "/etc/bind/arquivos/intranet.arpa";
   allow-update { key "intranet"; };
   notify none;
};

Com as zonas criadas, agora precisamos criar os arquivos de configuração para as mesmas.

arquivo intranet

Primeiramente precisamos criar a pasta arquivos, a qual mensionamos nas configurações.

mkdir /etc/bind/arquivos
chown -R root.bind /etc/bind/arquivos
chmod 770 /etc/bind/arquivos

Agora crie o arquivo intranet, e adicione o seguinte conteúdo.


$TTL 604800 ; --> valor respectivo a 1 semana
@           IN SOA ns.intranet.br. root.intranet.br. (
                         09112006 ; Serial
                         604800   ; Refresh (1 semana)
                         86400    ; Retry ( 1 dia )
                         2419200  ; Expira ( 4 semanas )
                         604800)  ; Minimo ( 1 semana )
;
@           IN NS ns.intranet.br.

arquivo intranet.arpa

Agora criaremos o arquivo da configuração do reverso para nosso dominio

$TTL 604800;
@           IN SOA  ns.intranet.br. root.intranet.br. (
                         09112006 ; Serial
                         604800   ; Refresh (1 semana)
                         86400    ; Retry ( 1 dia )
                         2419200  ; Expira ( 4 semanas )
                         604800)  ; Minimo ( 1 semana )
;
@           IN NS ns.intranet.br.

Validando as confs

Agora que temos todos os arquivos configurados, precisamos reinicar o bind, e o dhcp3

invoke-rc.d dhcp3-server restart

Se você olhar nos logs, terá uma saida similar a abaixo

Starting DHCP server: Nov  9 10:50:56 server dhcpd: Internet Systems Consortium DHCP Server V3.0.1
Nov  9 10:50:56 server dhcpd: Copyright 2004 Internet Systems Consortium.
Nov  9 10:50:56 server dhcpd: All rights reserved.
Nov  9 10:50:56 server dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
Nov  9 10:50:56 server dhcpd: Wrote 0 deleted host decls to leases file.
Nov  9 10:50:56 server dhcpd: Wrote 0 new dynamic host decls to leases file.
Nov  9 10:50:56 server dhcpd: Wrote 2 leases to leases file.

Agora vamos reinicar o bind

invoke-rc.d bind9 restart

A saida nos logs será similar a abaixo

 Nov  9 10:51:49 server named[6680]: starting BIND 9.2.4 -u bind
Nov  9 10:51:49 server named[6680]: using 1 CPU
Nov  9 10:51:49 server named[6680]: loading configuration from '/etc/bind/named.conf'
Nov  9 10:51:49 server named[6680]: no IPv6 interfaces found
Nov  9 10:51:49 server named[6680]: listening on IPv4 interface eth0, 10.0.0.1#53
Nov  9 10:51:49 server named[6680]: listening on IPv4 interface lo, 127.0.0.1#53
Nov  9 10:51:49 server named[6680]: command channel listening on 127.0.0.1#953
Nov  9 10:51:49 server named[6680]: zone 0.in-addr.arpa/IN: loaded serial 1
Nov  9 10:51:49 server named[6680]: zone 0.0.10.in-addr.arpa/IN: loaded serial 26092008
Nov  9 10:51:49 server named[6680]: zone 127.in-addr.arpa/IN: loaded serial 1
Nov  9 10:51:49 server named[6680]: zone 255.in-addr.arpa/IN: loaded serial 1
Nov  9 10:51:49 server named[6680]: zone intranet.br/IN: loaded serial 26092008
Nov  9 10:51:49 server named[6680]: zone localhost/IN: loaded serial 1
Nov  9 10:51:49 server named[6680]: running

Testando a configuraçao

Agora com os serviços devida reiniciados, vamos testar as confs edite na estação de trabalho o arquivo /etc/network/interfaces, na seçao do dhcp acrescente a opcao hostname seu_host

auto eth0
iface eth0 inet dhcp
        hostname pruonckk

Digite:

ifdown eth0
ifup eth0

No servidor, você deverá ter uma saida similar a abaixo

Nov  9 09:53:39 server dhcpd: DHCPREQUEST for 10.0.0.132 from 00:02:3f:db:bd:d9 via eth0
Nov  9 09:53:39 server dhcpd: DHCPACK on 10.0.0.132 to 00:02:3f:db:bd:d9 via eth0
Nov  9 09:54:08 server named[6429]: client 10.0.0.130#1036: updating zone 'intranet.br/IN': adding an RR
Nov  9 09:54:08 server named[6429]: client 10.0.0.130#1036: updating zone 'intranet.br/IN': adding an RR
Nov  9 09:54:08 server dhcpd: Added new forward map from pruonckk.intranet.br to 10.0.0.132
Nov  9 09:54:08 server named[6429]: client 10.0.0.130#1036: updating zone '0.0.10.in-addr.arpa/IN': deleting an rrset
Nov  9 09:54:08 server named[6429]: client 10.0.0.130#1036: updating zone '0.0.10.in-addr.arpa/IN': adding an RR
Nov  9 09:54:08 server dhcpd: added reverse map from 132.0.0.10.in-addr.arpa. to pruonckk.intranet.br


Pronto! agora você tem um DNS Dinamico em sua rede, aliado a seu DHCP


Voltar

Ferramentas pessoais
Inutilidades