Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalacao_configuracao_dhcp_dns_debian_wheezy_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e configuração de servidor DHCP + DNS + Debian Wheezy ======
  
 +
 +
 +  * Domínio que vamos utilizar: douglasqsantos.com.br
 +  * Faixa de ip: 192.168.1.0/​24
 +  * Ip do Servidor: 192.168.0.20
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialwheezy_en para que não falte nenhum pacote ou configuração.
 +
 +Vamos atualizar os repositórios e fazer um upgrade do sistema ​
 +
 +
 +<sxh bash>
 +aptitude update && aptitude dist-upgrade -y
 +</​sxh>​
 +
 +Agora vamos instalar o bind 
 +
 +<sxh bash>
 +aptitude install bind9 dnsutils -y
 +</​sxh>​
 +
 +Agora vamos parar ele para fazer algumas manutenções ​
 +
 +<sxh bash>
 +/​etc/​init.d/​bind9 stop
 +</​sxh>​
 +
 +Vamos criar os diretorios necessários ​
 +
 +<sxh bash>
 +mkdir -p /​var/​lib/​named/​etc
 +mkdir -p /​var/​lib/​named/​dev
 +mkdir -p /​var/​lib/​named/​var/​log
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +mkdir -p /​var/​lib/​named/​var/​run/​bind/​run
 +mknod /​var/​lib/​named/​dev/​null c 1 3
 +mknod /​var/​lib/​named/​dev/​random c 1 8
 +mknod /​var/​lib/​named/​dev/​zero c 1 5
 +</​sxh>​
 +
 +Vamos acertar as permissões ​
 +
 +<sxh bash>
 +chmod 666 /​var/​lib/​named/​dev/​{null,​random}
 +chown -R bind:bind /​var/​lib/​named/​var/​*
 +</​sxh>​
 +
 +Vamos acertar a localização dos diretórios e as permissões ​
 +
 +
 +<sxh bash>
 +mv /etc/bind /​var/​lib/​named/​etc
 +ln -sf /​var/​lib/​named/​etc/​bind /etc/bind
 +cp /​etc/​localtime /​var/​lib/​named/​etc
 +chown -R bind:bind /​var/​lib/​named/​etc/​bind
 +chown -R root:bind /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +chmod -R 775 /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +</​sxh>​
 +
 +Vamos fazer backup do arquivo de configuração
 +<sxh bash>
 +cp -Rfa /​etc/​default/​bind9{,​.bkp}
 +</​sxh>​
 +
 +Vamos informar para o bind aonde fica a jaula
 +<sxh bash>
 +vim /​etc/​default/​bind9
 +RESOLVCONF=yes ​
 +OPTIONS="​-u bind -t /​var/​lib/​named" ​
 +</​sxh>​
 +
 +Acertando o arquivo que controla a consulta de dns 
 +
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +domain douglasqsantos.com.br
 +search douglasqsantos.com.br
 +nameserver 127.0.0.1
 +</​sxh>​
 +
 +Gerando a chave para o DHCP poder atualizar as zonas de DNS. 
 +
 +<sxh bash>
 +cd /etc/bind/
 +dnssec-keygen -r /​dev/​urandom -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
 +</​sxh>​
 +
 +Agora vamos visualizar o conteudo da nossa chave, vamos utilizar ela no arquivo de zonas e no arquivo de configuração do DHCP. 
 +
 +<sxh bash>
 +cat /​etc/​bind/​K*.key
 +DHCP_UPDATER. IN KEY 0 3 157 Fum3G8P3880TwWMteJgrZg==
 +</​sxh>​
 +
 +Vamos acertar algumas opções do bind 
 +
 +<sxh bash>
 +vim /​etc/​bind/​named.conf.options
 +#/​etc/​bind/​named.conf.options
 +options {
 + ​directory "/​var/​cache/​bind";​
 + ​managed-keys-directory "/​var/​cache/​bind/​dynamic";​
 + ​auth-nxdomain no;
 + ​listen-on-v6 { any; };
 + ​listen-on { 127.0.0.1/​32;​ 192.168.1.0/​24;​ };
 + ​allow-query { any; };
 + ​recursion no;
 + ​version "Nao Disponivel";​
 + ### DNSSEC ###
 + ​dnssec-enable no;
 + ​dnssec-validation no;
 + ​dnssec-lookaside auto;
 +};
 + 
 +#​Controles ​
 +include "/​etc/​bind/​rndc.key";​
 +controls {
 +        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
 +};
 + 
 +#LOGS
 +logging {
 + ​channel xfer-log {
 + file "/​var/​log/​named.log";​
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time yes;
 + ​severity info;
 + };
 + ​category xfer-in { xfer-log; };
 + ​category xfer-out { xfer-log; };
 + ​category notify { xfer-log; };
 + 
 + ​channel update-debug {
 + file "/​var/​log/​named-update-debug.log";​
 + ​severity ​ debug 3;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​channel security-info ​   {
 + file "/​var/​log/​named-auth-info.log";​
 + ​severity ​ info;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​category update { update-debug;​ };
 + ​category security { security-info;​ };
 + 
 + };
 +</​sxh>​
 +
 +Vamos acertar as referências de arquivos para o bind 
 +
 +<sxh bash>
 +vim /​etc/​bind/​named.conf
 +include "/​etc/​bind/​named.conf.options";​
 +include "/​etc/​bind/​named.conf.local";​
 +include "/​etc/​bind/​named.conf.internal-zones";​
 +</​sxh>​
 +
 +Criando o arquivo que vai conter as zonas internas ​
 +
 +<sxh bash>
 +vim /​etc/​bind/​named.conf.internal-zones
 +#Definindo quem vão ser os nossos hosts internos, ex: a nossa rede e a maquina local
 +acl "​internal_hosts"​ {
 + ​192.168.1.0/​24;​
 + ​127.0.0.1/​32;​
 +};
 + 
 + 
 +#​Definição da View interna
 +view "​internal"​ {
 + 
 +#Definindo quais clientes vão poder consultar essa view
 + ​match-clients {
 + ​internal_hosts;​
 + };
 + 
 +#O nossos clientes da view interna vão poder efetuar consultas recursivas
 + ​recursion yes;
 + 
 + 
 +#Zonas hint aonde temos as definições dos root masters
 + zone "​."​ {
 + type hint;
 + file "/​etc/​bind/​db.root";​
 + };
 + 
 +#Zonas internas
 + zone "​localhost"​ {
 + type master;
 + file "/​etc/​bind/​db.local";​
 + };
 + 
 +zone "​127.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.127";​
 + };
 + 
 + zone "​0.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.0";​
 + };
 + 
 + zone "​255.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.255";​
 + };
 +
 +
 +#Chave para sincronismo entre dhcp e dns que visualizamos com o cat /​etc/​bind/​K*.key
 +key DHCP_UPDATER {
 +algorithm HMAC-MD5;
 +secret Fum3G8P3880TwWMteJgrZg==;​
 +};
 +
 +#Dominios locais
 +zone "​douglasqsantos.com.br"​ {
 +type master;
 +file "​db.douglasqsantos.com.br.internal";​
 +allow-transfer { none; };
 +allow-update { key DHCP_UPDATER;​ };
 + };
 + 
 +#Zona reversa do dominio na rede 192.168.1.0/​24
 +zone "​1.168.192.in-addr.arpa"​ {
 +type master;
 +file "​db.1.168.192.internal";​
 +allow-transfer { none; };
 +allow-update { key DHCP_UPDATER;​ };
 +};   
 +
 +};
 +</​sxh>​
 +
 +Criando a zona interna do domínio ​
 +
 +<sxh dns>
 +vim /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal
 +$TTL 86400
 +@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +        2013120901 ​ ; Serial
 +         ​3600 ​      ; Refresh
 +         ​1800 ​       ; Retry
 +         ​1209600 ​     ; Expire
 +         3600 )     ; Minimum
 +
 +;
 +
 +@               ​IN ​     NS   ​douglasqsantos.com.br.
 +douglasqsantos.com.br. IN TXT "​v=spf1 a mx ip4:​192.168.1.0/​24 -all"
 +mail.douglasqsantos.com.br IN TXT "​v=spf1 a -all"
 +
 +@               ​IN ​     NS   ​ns1.douglasqsantos.com.br.
 +@               ​IN ​     NS   ​ns2.douglasqsantos.com.br.
 +@               ​IN ​     MX   0 mail.douglasqsantos.com.br.
 +
 +;NAME SERVERS
 +@               ​IN ​     A    192.168.1.20
 +ns1             ​IN ​     A    192.168.1.20
 +ns2             ​IN ​     A    192.168.1.20
 +dns             ​IN ​     A    192.168.1.20
 +ldap    IN  A    192.168.1.20
 +ldap2   ​IN ​ A    192.168.1.20
 +kdc1    IN  A    192.168.1.20
 +kdc2    IN  A    192.168.1.20
 +
 +;MAIL SERVERS
 +mail            IN      A    192.168.1.20
 +imap            IN      CNAME mail
 +pop             ​IN ​     CNAME mail
 +smtp            IN      CNAME mail
 +webmail ​        ​IN ​     CNAME mail
 +
 +;WEB SERVERS
 +www             ​IN ​     A    192.168.1.20
 +ftp             ​IN ​     CNAME www
 +mailadmin ​      ​IN ​     CNAME www
 +
 +; Dominio Kerberos
 +_kerberos ​                                              IN TXT           "​douglasqsantos.com.br"​
 +_kerberos.srv ​                                          IN TXT           "​douglasqsantos.com.br"​
 +_kerberos._tcp ​                                         IN SRV 10 1 88   ​ldap.douglasqsantos.com.br.
 +_kerberos._udp ​                                         IN SRV 10 1 88   ​ldap.douglasqsantos.com.br.
 +_kerberos-adm._tcp ​                                     IN SRV 10 1 749  ldap.douglasqsantos.com.br.
 +_kerberos-master._udp ​                                  IN SRV 0  0 88   ​ldap.douglasqsantos.com.br.
 +_kpasswd._udp ​                                          IN SRV 10 1 464  ldap.douglasqsantos.com.br.
 +_ldap._tcp ​                                             IN SRV 10 1 389  ldap.douglasqsantos.com.br.
 +
 +; Busca de Informações de LDAP e Samba
 +_ldap_dc ​                                               IN TXT           "​dc=douglasqsantos,​dc=com,​dc=br"​
 +_samba_pdc_domain ​                                      IN TXT           "​DOUGLASQSANTOS"​
 +_samba_pdc_ip_address ​                                  IN TXT           "​192.168.1.20"​
 +</​sxh>​
 +
 +Agora vamos criar a zona inversa ​
 +
 +<sxh dns>
 +vim /​var/​lib/​named/​var/​cache/​bind/​db.1.168.192.internal
 +$TTL 86400
 +@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +                        2013120901 ​ ; Serial
 +                        3600       ; Refresh
 +                        1800        ; Retry
 +                        604800 ​     ; Expire
 +                        3600 )     ; Minimum
 +
 +;
 +@   ​IN ​ NS   ​douglasqsantos.com.br.
 +@               ​IN ​ NS   ​ns1.douglasqsantos.com.br.
 +@               ​IN ​ NS   ​ns2.douglasqsantos.com.br.
 +@               ​IN ​ MX   0 mail.douglasqsantos.com.br.
 +
 +;NAME SERVERS
 +20      IN  PTR    douglasqsantos.com.br.
 +20      IN  PTR    ns1.douglasqsantos.com.br.
 +20      IN  PTR    ns2.douglasqsantos.com.br.
 +20      IN  PTR    dns.douglasqsantos.com.br.
 +
 +;LDAP e Kerberos
 +20  IN  PTR    ldap.douglasqsantos.com.br.
 +20  IN  PTR    ldap2.douglasqsantos.com.br.
 +20  IN  PTR    kdc1.douglasqsantos.com.br.
 +20  IN  PTR    kdc2.douglasqsantos.com.br.
 +
 +;MAIL SERVERS
 +20    IN  PTR    mail.douglasqsantos.com.br.
 +
 +;WEB SERVERS
 +20      IN  PTR    www.douglasqsantos.com.br.
 +</​sxh>​
 +
 +Agora vamos iniciar o nosso bind 
 +
 +<sxh bash>
 +/​etc/​init.d/​bind9 start
 +</​sxh>​
 +
 +Vamos testar uma consulta ​
 +
 +<sxh bash>
 +nslookup www
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +Name: www.douglasqsantos.com.br
 +Address: 192.168.1.20
 +</​sxh>​
 +
 +Vamos testar o reverso ​
 +
 +<sxh bash>
 +host 192.168.1.20
 +20.1.168.192.in-addr.arpa domain name pointer kdc1.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer kdc2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer ldap.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer mail.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer ldap2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer dns.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer ns1.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer ns2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa domain name pointer www.douglasqsantos.com.br.
 +</​sxh>​
 +
 +Vamos testar o reverso agora pelo dig 
 +
 +<sxh bash>
 +dig -x 192.168.1.20
 +; <<>>​ DiG 9.8.4-rpz2+rl005.12-P1 <<>>​ -x 192.168.1.20
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 1336
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 10, AUTHORITY: 3, ADDITIONAL: 3
 +
 +;; QUESTION SECTION:
 +;​20.1.168.192.in-addr.arpa. IN  PTR
 +
 +;; ANSWER SECTION:
 +20.1.168.192.in-addr.arpa. 86400 IN PTR kdc2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR ldap.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR mail.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR ldap2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR dns.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR ns1.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR ns2.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR www.douglasqsantos.com.br.
 +20.1.168.192.in-addr.arpa. 86400 IN PTR kdc1.douglasqsantos.com.br.
 +
 +;; AUTHORITY SECTION:
 +1.168.192.in-addr.arpa. 86400 IN  NS  douglasqsantos.com.br.
 +1.168.192.in-addr.arpa. 86400 IN  NS  ns2.douglasqsantos.com.br.
 +1.168.192.in-addr.arpa. 86400 IN  NS  ns1.douglasqsantos.com.br.
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.20
 +ns2.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.20
 +douglasqsantos.com.br. ​   86400 IN  A 192.168.1.20
 +
 +;; Query time: 0 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Mon Dec  9 16:51:31 2013
 +;; MSG SIZE  rcvd: 326
 +</​sxh>​
 +
 +
 +Agora vamos instalar o servidor DHCP 
 +
 +<sxh bash>
 +aptitude install isc-dhcp-server -y
 +</​sxh>​
 +
 +Vai ocorrer um erro a respeito da interface de rede mais isso vamos corrigir mais a frente ​
 +
 +Vamos editar o arquivo de configuração do dhcp server ​
 +
 +
 +<sxh bash>
 +vim /​etc/​dhcp/​dhcpd.conf
 +#Definindo o dominio
 +option domain-name "​douglasqsantos.com.br";​
 +#Definindo os servidores de DNS
 +option domain-name-servers 192.168.1.20,​ 8.8.8.8;
 +#Definindo o servidor de NetBios(WINS)
 +option netbios-name-servers 192.168.1.20;​
 +#Definindo o tipo de netbios
 +option netbios-node-type 8;
 +#Defindo o broadcast da nossa rede
 +option broadcast-address 192.168.1.255;​
 +#Defindo que o servidor é autoritativo para a rede
 +authoritative;​
 +#Estilo de atualização do servidor DNS, este metodo vai ser o padrão de atualização do dns
 +#ele gera um registro (RR) TXT nos arquivos de zonas do DNS e os atualiza
 +ddns-update-style interim;
 +#Força o servidor dhcp fazer atualizações para os endereços ips estáticos
 +update-static-leases on;
 +#Defindo o tipo de log que vai ser enviado para o syslog
 +log-facility local7;
 +#Defindo a chave de atualização entre o dhcp e o dns a chave que visualizamos com cat /​etc/​bind/​K*.key
 +key DHCP_UPDATER {
 +algorithm HMAC-MD5;
 +secret Fum3G8P3880TwWMteJgrZg==;​
 +};
 +
 +#defindo a zona que vamos efetuar atualizações
 +zone douglasqsantos.com.br. {
 +   ​primary 127.0.0.1;
 +   key DHCP_UPDATER;​
 +}
 +#definindo a zona que vamos efetuar atualizações para reverso
 +zone 1.168.192.in-addr.arpa. {
 +   ​primary 127.0.0.1;
 +   key DHCP_UPDATER;​
 +}
 +
 +#Tempo de emprestimo de um ip
 +default-lease-time 600;
 +#tempo maximo de emprestimo de um ip
 +max-lease-time 7200;
 +#​Declaração da sub-net
 +subnet 192.168.1.0 netmask 255.255.255.0 {
 +#​Declaração do range de ips disponiveis para emprestimo
 +range 192.168.1.20 192.168.1.60;​
 +#Define qual a subrede para este escopo
 +option subnet-mask 255.255.255.0;​
 +#define qual o router para esse escopo
 +option routers 192.168.1.24;​
 +} #Fim do escopo
 +
 +#Definindo um ip fixo
 +host exchange {
 + ​hardware ethernet 08:​00:​27:​E3:​41:​30;​
 + ​fixed-address 192.168.1.22;​
 +}
 +</​sxh>​
 +
 +Definir em qual interface o dhcp vai trabalhar ​
 +
 +<sxh bash>
 +vim /​etc/​default/​isc-dhcp-server
 +[...]
 +INTERFACES="​eth0"​
 +</​sxh>​
 +
 +Agora vamos fazer um ajuste no rsyslog ​
 +
 +<sxh bash>
 +echo "​local7.debug /​var/​log/​dhcpd.log"​ >> /​etc/​rsyslog.conf
 +</​sxh>​
 +
 +Agora vamos reiniciar o rsyslog ​
 +
 +<sxh bash>
 +/​etc/​init.d/​rsyslog restart
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões do diretório do bind
 +<sxh bash>
 +chown -R bind:bind /​var/​lib/​named/​var/​cache/​bind
 +</​sxh>​
 +
 +Agora vamos subir o servidor de dhcp 
 +
 +<sxh bash>
 +/​etc/​init.d/​isc-dhcp-server start
 +</​sxh>​
 +
 +Podemos acompanhar o trabalho do dhcp em /​var/​log/​dhcpd.log ​
 +
 +<sxh bash>
 +tail -f /​var/​log/​dhcpd.log ​
 +Dec  9 16:53:21 debian dhcpd: Copyright 2004-2011 Internet Systems Consortium.
 +Dec  9 16:53:21 debian dhcpd: All rights reserved.
 +Dec  9 16:53:21 debian dhcpd: For info, please visit https://​www.isc.org/​software/​dhcp/​
 +Dec  9 16:53:21 debian dhcpd: Internet Systems Consortium DHCP Server 4.2.2
 +Dec  9 16:53:21 debian dhcpd: Copyright 2004-2011 Internet Systems Consortium.
 +Dec  9 16:53:21 debian dhcpd: All rights reserved.
 +Dec  9 16:53:21 debian dhcpd: For info, please visit https://​www.isc.org/​software/​dhcp/​
 +Dec  9 16:53:21 debian dhcpd: Wrote 0 deleted host decls to leases file.
 +Dec  9 16:53:21 debian dhcpd: Wrote 0 new dynamic host decls to leases file.
 +Dec  9 16:53:21 debian dhcpd: Wrote 0 leases to leases file.
 +</​sxh>​
 +
 +Vamos ver um exemplo de maquina que pegou o ip e foi registrada no DNS 
 +
 +<sxh bash>
 +tail -f /​var/​log/​dhcpd.log
 +Dec  9 16:58:45 debian dhcpd: DHCPDISCOVER from 08:​00:​27:​e3:​41:​30 via eth0
 +Dec  9 16:58:45 debian dhcpd: DHCPOFFER on 192.168.1.22 to 08:​00:​27:​e3:​41:​30 via eth0
 +Dec  9 16:58:45 debian dhcpd: DHCPREQUEST for 192.168.1.22 (192.168.1.20) from 08:​00:​27:​e3:​41:​30 via eth0
 +Dec  9 16:58:45 debian dhcpd: DHCPACK on 192.168.1.22 to 08:​00:​27:​e3:​41:​30 via eth0
 +Dec  9 16:58:45 debian dhcpd: Added new forward map from exchange.douglasqsantos.com.br to 192.168.1.22
 +Dec  9 16:58:45 debian dhcpd: Added reverse map from 22.1.168.192.in-addr.arpa. to exchange.douglasqsantos.com.br
 +</​sxh>​
 +
 +
 +Agora vamos testar o dns para ver se esta resolvendo mesmo 
 +
 +<sxh bash>
 +nslookup exchange.douglasqsantos.com.br
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +Name: exchange.douglasqsantos.com.br
 +Address: 192.168.1.22
 +</​sxh>​
 +
 +Agora vamos testar o reverso desta maquina ​
 +
 +<sxh bash>
 +dig -x 192.168.1.22
 + ; <<>>​ DiG 9.8.4-rpz2+rl005.12-P1 <<>>​ -x 192.168.1.22
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 46035
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
 +
 +;; QUESTION SECTION:
 +;​22.1.168.192.in-addr.arpa. IN  PTR
 +
 +;; ANSWER SECTION:
 +22.1.168.192.in-addr.arpa. 300  IN  PTR exchange.douglasqsantos.com.br.
 +
 +;; AUTHORITY SECTION:
 +1.168.192.in-addr.arpa. 86400 IN  NS  douglasqsantos.com.br.
 +1.168.192.in-addr.arpa. 86400 IN  NS  ns2.douglasqsantos.com.br.
 +1.168.192.in-addr.arpa. 86400 IN  NS  ns1.douglasqsantos.com.br.
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.20
 +ns2.douglasqsantos.com.br. ​ 86400 IN  A 192.168.1.20
 +douglasqsantos.com.br. ​   86400 IN  A 192.168.1.20
 +
 +;; Query time: 5 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Mon Dec  9 17:01:12 2013
 +;; MSG SIZE  rcvd: 175
 +
 +</​sxh>​
 +
 +Como pode ser notado temos agora o DHCP trabalhando em conjunto com o DNS 
 +
 +Caso o client não mande o hostname para o servidor dhcp não vai ser inserido o nome dele no dns com isso no caso do OpenBSD precisamos ajustar o /​etc/​dhclient.conf da seguinte forma
 +<sxh bash>
 +vim /​etc/​dhclient.conf
 +send host-name "​openbsd";​
 +</​sxh>​
 +
 +Agora é só mandar pegar um ip com o dhclient
 +<sxh bash>
 +dhclient em0
 +</​sxh>​
 +
 +Nos logs do servidor vamos ter algo como 
 +<sxh bash>
 +tail -f /​var/​log/​messages
 +Dec  9 17:13:50 debian dhcpd: DHCPREQUEST for 192.168.1.50 from 08:​00:​27:​1f:​ef:​a5 via eth0
 +Dec  9 17:13:50 debian dhcpd: DHCPACK on 192.168.1.50 to 08:​00:​27:​1f:​ef:​a5 via eth0
 +Dec  9 17:13:50 debian dhcpd: Added new forward map from openbsd.douglasqsantos.com.br to 192.168.1.50
 +Dec  9 17:13:50 debian dhcpd: Added reverse map from 50.1.168.192.in-addr.arpa. to openbsd.douglasqsantos.com.br
 +</​sxh>​
 +
 +
 +Agora vamos ver algo interessante também que é testar a atualização de registro dns pela linha de comando.
 +
 +Vamos adicionar um novo host chamado centos com o ip 192.168.1.100 no domínio douglasqsantos.com.br.
 +
 +Vamos ver o código da nossa chave de atualização de zonas
 +<sxh bash>
 +cat /​etc/​bind/​Kdhcp_updater.*.key ​
 +DHCP_UPDATER. IN KEY 0 3 157 Fum3G8P3880TwWMteJgrZg==
 +</​sxh>​
 +
 +Pronto precisamos dessa informação agora vamos inserir o nosso registro
 +<sxh bash>
 +nsupdate ​
 +> server 127.0.0.1
 +> key DHCP_UPDATER Fum3G8P3880TwWMteJgrZg== ​
 +> zone douglasqsantos.com.br
 +> update add centos.douglasqsantos.com.br. 600 IN A 192.168.1.100
 +> send
 +> zone 1.168.192.in-addr.arpa
 +> update add 100.1.168.192.in-addr.arpa 600 IN PTR centos.douglasqsantos.com.br
 +> send
 +> quit
 +</​sxh>​
 +
 +Agora vamos testar o nosso registro
 +<sxh bash>
 +nslookup centos
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +Name: centos.douglasqsantos.com.br
 +Address: 192.168.1.100
 +</​sxh>​
 +
 +Agora vamos testar o seu reverso
 +<sxh bash>
 +host 192.168.1.100
 +100.1.168.192.in-addr.arpa domain name pointer centos.douglasqsantos.com.br.
 +</​sxh>​
 +
 +====== Referências ======
 +
 +  - https://​www.isc.org/​software/​dhcp/​
 +  - https://​www.isc.org/​software/​dhcp/​documentation
 +  - http://​linux.die.net/​man/​5/​dhcpd.leases
 +  - http://​linux.die.net/​man/​8/​dhcpd
 +  - http://​linux.die.net/​man/​5/​dhcpd.conf
 +  - http://​mindref.blogspot.com.br/​2010/​12/​dynamic-dns-update-dhcp.html