Differences

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

Link to this comparison view

bind_trabalhando_com_multi-view_master_slave_freebsd_9.2_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e configuração do Bind Trabalhando com Views Master/​Slave no FreeBSD 9.2 ======
  
 +
 +Configurando o DNS no FreeBSD 9.2 com MultiView do mesmo domínio e fazendo replicação.
 +
 +Problema: Quando era efetuado replicação e as zonas tinham o mesmo nome ele sempre replicava a zona da view interna ou o primeiro arquivo de referência dentro do named.conf. ​
 +
 +Solução dentro de cada View vamos forçar para quem tem que ser a replica e no slave receber a replica que foi forçada por View. Precisamos de 2 endereços ip para o servidor Slave. ​
 +  - IP do slave que vai receber a view interna: 192.168.1.61
 +  - IP do slave que vai receber a view externa: 192.168.1.62
 +  - IPS do servidor master 192.168.1.60
 +
 +
 +Aqui no FreeBSD o Bind já vem instalado no sistema por default e ele vem enjaulado em /var/named com isso somente precisamos configurar ele para funcionar de acordo com a nossa necessidade,​ vamos lá então.
 +
 +Vamos fazer um backup do arquivo de configuração ​
 +<sxh bash>
 +cd /​var/​named/​etc/​namedb
 +cp named.conf named.conf.old
 +</​sxh>​
 +
 +Agora vamos deixar o arquivo /​var/​named/​etc/​named.conf como abaixo, aqui estou utilizando a rede 192.168.1.0/​24 como minha rede local para exemplo, mude conforme necessário. ​
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf
 +#Criando acl para definir as nossas redes internas.
 +acl "​trusted"​ {
 + ​192.168.1.0/​24;​
 + ​127.0.0.1;​
 +};
 +
 +#Acl que define qual vai ser o slave que vai receber a view interna
 +acl "​internal_slave"​ {
 + ​192.168.1.61;​
 +};
 +
 +#Acl que define qual vai ser o slave que vai receber a view externa
 +acl "​external_slave"​ {
 + ​192.168.1.62;​
 +};
 +
 +options {
 +    listen-on port 53 { 127.0.0.1; 192.168.1.0/​24;​ };
 +    directory ​  "/​etc/​namedb/​working";​
 +    dump-file ​  "/​var/​dump/​named_dump.db";​
 +    statistics-file "/​var/​stats/​named.stats";​
 +    memstatistics-file "/​var/​stats/​named_mem_stats.txt";​
 +    pid-file ​   "/​var/​run/​named/​pid";​
 +    allow-query ​    { any; };
 +    recursion no;
 +    version "Não Disponível";​
 +};
 +
 +#Controle
 +include "/​etc/​namedb/​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;​ };
 +
 + };
 +
 +#Incluir os nossos arquivos externos que vão conter as configurações das Views
 +include "/​etc/​namedb/​named.conf.internal-zones";​
 +include "/​etc/​namedb/​named.conf.external-zones";​
 +</​sxh>​
 +
 +Agora vamos gerar a chave do rndc
 +<sxh bash>
 +rndc-confgen -a -c /​var/​named/​etc/​namedb/​rndc.key -k rndc-key -b 256
 +</​sxh>​
 +
 +Agora precisamos acertar as permissões dos arquivos ​
 +<sxh bash>
 +chown root:bind /​var/​named/​etc/​namedb/​rndc.key
 +chmod 640 /​var/​named/​etc/​namedb/​rndc.key
 +</​sxh>​
 +
 +
 +Agora vamos criar o nosso arquivo da View Interna /​var/​named/​etc/​namedb/​named.conf.internal-zones onde somente os nossos clientes da rede local e o nosso servidor local vão poder consultar.
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf.internal-zones
 +#Definindo a nossa View interna
 +view "​internal"​ {
 +
 +#Definindo quais clientes vão poder consultar esta view, então vão ser a nossa rede interna mesmo o servidor external_slave
 + ​match-clients { !external_slave;​ trusted; };
 +
 +#Definindo que os clientes dessa view vão poder efetuar consultas recursivas.
 + ​recursion yes;
 +
 +#Qual servidor vai poder receber a replica dessa view
 +allow-transfer {
 + ​internal_slave;​
 +};
 +
 +#Quem vai ser notificado aqui temos que informar os endereços ips.
 +also-notify {
 + ​192.168.1.61;​
 +};
 +
 +#estas zonas abaixo precisam ser desabilitadas senão ficamos recebendo warnings nos logs
 +disable-empty-zone "​255.255.255.255.IN-ADDR.ARPA";​
 +disable-empty-zone "​0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";​
 +disable-empty-zone "​1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";​
 +
 +#Zona hint aonde temos os arquivos dos root servers
 +zone "​."​ { type hint; file "/​etc/​namedb/​named.root";​ };
 +
 +#zonas de local host em ipv4 e ipv6
 +zone "​localhost" ​   { type master; file "/​etc/​namedb/​master/​localhost-forward.db";​ };
 +zone "​127.in-addr.arpa"​ { type master; file "/​etc/​namedb/​master/​localhost-reverse.db";​ };
 +zone "​255.in-addr.arpa"​ { type master; file "/​etc/​namedb/​master/​empty.db";​ };
 +zone "​0.ip6.arpa" ​  { type master; file "/​etc/​namedb/​master/​localhost-reverse.db";​ };
 +zone "​0.in-addr.arpa" ​  { type master; file "/​etc/​namedb/​master/​empty.db";​ };
 +
 +#Nosso domínio de teste
 +zone "​douglasqsantos.com.br"​ {
 + type master;
 + file "/​etc/​namedb/​master/​db.douglasqsantos.com.br.internal";​
 +};
 +
 +};
 +</​sxh>​
 +
 +Agora vamos criar a nossa View Externa /​var/​named/​etc/​named.conf.external-zones aonde qualquer um vai poder consultar não sendo a nossa rede local e nem o nosso servidor local
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf.external-zones
 +#​Definição da nossa view Externa
 +view "​external"​ {
 +
 +#Definindo quais clientes vão poder consultar esta view
 + ​match-clients { external_slave;​ !trusted; any; };
 +
 +#Os clientes dessa view não poderão efetuar consultas recursivas
 + ​recursion no;
 +
 +#Quam vai poder receber replica dessa view
 + ​allow-transfer {
 + ​external_slave;​
 + };
 +
 +#Quem vai ser notificado aqui temos que informar o endereço ip
 + ​also-notify {
 + ​192.168.1.62;​
 + };
 +
 +#Nosso dominio de teste.
 +zone "​douglasqsantos.com.br"​ {
 + type master;
 + file "/​etc/​namedb/​master/​db.douglasqsantos.com.br.external";​
 + };
 +
 +};
 +</​sxh>​
 +
 +Agora vamos criar o arquivo que os nossos clientes internos vão consultar /​var/​named/​master/​db.douglasqsantos.com.br.internal ​
 +<sxh dns>
 +vim /​var/​named/​etc/​namedb/​master/​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.60
 +ns1             ​IN ​     A    192.168.1.60
 +ns2             ​IN ​     A    192.168.1.61
 +dns             ​IN ​     A    192.168.1.60
 +
 +;MAIL SERVERS
 +mail            IN      A    192.168.1.60
 +imap            IN      CNAME mail
 +pop             ​IN ​     CNAME mail
 +smtp            IN      CNAME mail
 +webmail ​        ​IN ​     CNAME mail
 +
 +;WEB SERVERS
 +www             ​IN ​     A    192.168.1.61
 +ftp             ​IN ​     CNAME www
 +mailadmin ​      ​IN ​     CNAME www
 +</​sxh>​
 +
 +Agora vamos criar o arquivo que os clientes externos vão consultar /​var/​named/​master/​db.douglasqsantos.com.br.external ​
 +<sxh dns>
 +vim /​var/​named/​etc/​namedb/​master/​db.douglasqsantos.com.br.external
 +$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:​200.200.200.0/​23 -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    200.200.200.25
 +ns1             ​IN ​     A    200.200.200.25
 +ns2             ​IN ​     A    200.200.200.27
 +dns             ​IN ​     A    200.200.200.25
 +
 +;MAIL SERVERS
 +mail            IN      A    200.200.200.25
 +imap            IN      CNAME mail
 +pop             ​IN ​     CNAME mail
 +smtp            IN      CNAME mail
 +webmail ​        ​IN ​     CNAME mail
 +
 +;WEB SERVERS
 +www             ​IN ​     A    200.200.200.27
 +ftp             ​IN ​     CNAME www
 +mailadmin ​      ​IN ​     CNAME www
 +</​sxh>​
 +
 +Vamos agora ajustar o arquivo /​etc/​resolv.conf para que o nosso servidor consiga encontrar a zona do dominio.com.br
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +search douglasqsantos.com.br
 +domain douglasqsantos.com.br
 +nameserver 127.0.0.1
 +nameserver 192.168.1.61
 +</​sxh>​
 +
 +Agora precisamos habilitar o named em /​etc/​rc.conf da seguinte forma
 +<sxh bash>
 +echo '​named_enable="​YES"'​ >> /​etc/​rc.conf
 +</​sxh>​
 +
 +Vamos agora iniciar o serviço e testar.
 +<sxh bash>
 +/​etc/​rc.d/​named start
 +</​sxh>​
 +
 +Agora vamos fazer alguns testes.
 +
 +Vamos consultar o endereço do host www
 +<sxh bash>
 +nslookup www
 +Server: ​    ​127.0.0.1
 +Address: ​   127.0.0.1#​53
 +
 +Name:   ​www.douglasqsantos.com.br
 +Address: 192.168.1.61
 +</​sxh>​
 +
 +Agora vamos consultar o endereço do host mail.douglasqsantos.com.br aqui poderíamos consultar somente por mail dai ele completaria com o parâmetro domain do resolv.conf ​
 +<sxh bash>
 +nslookup mail.douglasqsantos.com.br
 +Server: ​    ​127.0.0.1
 +Address: ​   127.0.0.1#​53
 +
 +Name:   ​mail.douglasqsantos.com.br
 +Address: 192.168.1.60
 +</​sxh>​
 +
 +Vamos consultar os registros do tipo A do nosso domínio.
 +<sxh bash>
 +dig -t A douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.8.4-P2 <<>>​ -t A douglasqsantos.com.br
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 1190
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
 +
 +;; QUESTION SECTION:
 +;​douglasqsantos.com.br. ​          ​IN ​ A
 +
 +;; ANSWER SECTION:
 +douglasqsantos.com.br. ​       86400   ​IN ​ A   ​192.168.1.60
 +
 +;; AUTHORITY SECTION:
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  douglasqsantos.com.br.
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  ns1.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  ns2.douglasqsantos.com.br.
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​   86400   ​IN ​ A   ​192.168.1.60
 +ns2.douglasqsantos.com.br. ​   86400   ​IN ​ A   ​192.168.1.61
 +
 +;; Query time: 1 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Mon Dec  9 21:12:37 2013
 +;; MSG SIZE  rcvd: 127
 +</​sxh>​
 +
 +Vamos agora consultar todos os registros do nosso domínio.
 +<sxh bash>
 +dig -t axfr douglasqsantos.com.br
 +; <<>>​ DiG 9.8.4-P2 <<>>​ -t axfr douglasqsantos.com.br
 +;; global options: +cmd
 +; Transfer failed.
 +</​sxh>​
 +
 +Como pode ser notado não temos permissão para efetuar a transferência da zona, porém já permitimos a transferência para o servidor slave.
 + 
 +Como pode ser notado o nosso servidor estar funcionando corretamente em MultiView, agora vamos fazer os ajustes para ele efetuar a replicação como precisamos.
 +
 +====== Agora vamos configurar o servidor Slave ======
 +
 +
 +Agora vamos fazer um backup do arquivo de configuração do nosso bind.
 +<sxh bash>
 +cd /​var/​named/​etc/​namedb
 +cp named.conf named.conf.old
 +</​sxh>​
 +
 +Agora vamos deixar o arquivo /​var/​named/​etc/​named.conf como abaixo, aqui estou utilizando a rede 192.168.1.0/​24 como minha rede local para exemplo, mude conforme necessário.
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf
 +#Criando acl para definir as nossas redes internas.
 +acl "​trusted"​ {
 + ​192.168.1.0/​24;​
 + ​127.0.0.1;​
 +};
 +
 +#Acl que define qual vai ser o dns master
 +acl "​dns_master"​ {
 + ​192.168.1.60;​
 +};
 +
 +options {
 +    listen-on port 53 { 127.0.0.1; 192.168.1.0/​24;​ };
 +    directory ​  "/​etc/​namedb/​working";​
 +    dump-file ​  "/​var/​dump/​named_dump.db";​
 +    statistics-file "/​var/​stats/​named.stats";​
 +    memstatistics-file "/​var/​stats/​named_mem_stats.txt";​
 +    pid-file ​   "/​var/​run/​named/​pid";​
 +    allow-query ​    { any; };
 +    recursion no;
 +    version "Não Disponível";​
 +};
 +
 +#Controle
 +include "/​etc/​namedb/​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;​ };
 +
 + };
 +
 +#Incluir os nossos arquivos externos que vão conter as configurações das Views
 +include "/​etc/​namedb/​named.conf.internal-zones";​
 +include "/​etc/​namedb/​named.conf.external-zones";​
 +</​sxh>​
 +
 +Agora vamos gerar a chave do rndc isso demora um pouco ;)
 +<sxh bash>
 +rndc-confgen -a -c /​var/​named/​etc/​namedb/​rndc.key -k rndc-key -b 256
 +</​sxh>​
 +
 +Agora precisamos acertar as permissões dos arquivos ​
 +<sxh bash>
 +chown root:bind /​var/​named/​etc/​namedb/​rndc.key
 +chmod 640 /​var/​named/​etc/​namedb/​rndc.key
 +</​sxh>​
 +
 +Agora vamos criar o arquivo da nossa View interna /​var/​named/​etc/​named.conf.internal-zones ​
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf.internal-zones
 +#Definindo a nossa View interna
 +view "​internal"​ {
 +
 +#Definindo quais clientes vão poder consultar esta view, então vão ser a nossa rede interna mesmo o servidor external_slave
 + ​match-clients { trusted; };
 +
 +#Definindo que os clientes dessa view vão poder efetuar consultas recursivas.
 + ​recursion yes;
 +
 +#Qual servidor vai poder receber a replica dessa view
 +allow-notify {
 + ​dns_master;​
 +};
 +
 +#Nao disponibiliza transferencia de zona do servidor SLAVE
 + ​allow-transfer {
 + none;
 +};
 +
 +#Zonas default
 +
 +#As zonas abaixo precisamos desabilitar para não ficarmos recebendo warnings nos logs
 +disable-empty-zone "​255.255.255.255.IN-ADDR.ARPA";​
 +disable-empty-zone "​0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";​
 +disable-empty-zone "​1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";​
 +
 +#Zona hint aonde temos os root servers
 +zone "​."​ { type hint; file "/​etc/​namedb/​named.root";​ };
 +
 +#Zonas de localhost ipv4 e ipv6
 +zone "​localhost" ​   { type master; file "/​etc/​namedb/​master/​localhost-forward.db";​ };
 +zone "​127.in-addr.arpa"​ { type master; file "/​etc/​namedb/​master/​localhost-reverse.db";​ };
 +zone "​255.in-addr.arpa"​ { type master; file "/​etc/​namedb/​master/​empty.db";​ };
 +zone "​0.ip6.arpa" ​  { type master; file "/​etc/​namedb/​master/​localhost-reverse.db";​ };
 +zone "​0.in-addr.arpa" ​  { type master; file "/​etc/​namedb/​master/​empty.db";​ };
 +
 +#Nosso domínio de teste.
 +zone "​douglasqsantos.com.br"​ {
 +type slave;
 +masters { 192.168.1.60;​ };
 +transfer-source 192.168.1.61;​ #​Especificando qual transferencia do master que eu vou poder receber nessa view
 +file "/​etc/​namedb/​slave/​db.douglasqsantos.com.br.internal";​
 +};
 +
 +};
 +</​sxh>​
 +
 +Vamos agora configurar a View Externa /​var/​named/​etc/​named.conf.external-zones ​
 +<sxh bash>
 +vim /​var/​named/​etc/​namedb/​named.conf.external-zones
 +#​Definição da nossa view Externa
 +view "​external"​ {
 +
 +#Definindo quais clientes vão poder consultar esta view
 + ​match-clients { !trusted; any; };
 +
 +#Os clientes dessa view não poderão efetuar consultas recursivas
 + ​recursion no;
 +
 +#Quem vai ser notificado aqui temos que informar o endereço ip
 + ​allow-notify {
 + ​dns_master;​
 + };
 +
 +#Nao disponibiliza transferencia de zona do servidor SLAVE
 + ​allow-transfer {
 + none;
 +};
 +
 +
 +#Nosso dominio de teste.
 +zone "​douglasqsantos.com.br"​ {
 + type slave;
 + ​masters { 192.168.1.60;​ };
 + ​transfer-source 192.168.1.62;​ #​Especificando qual transferencia do master que eu vou poder receber nessa view.
 + file "/​etc/​namedb/​slave/​db.douglasqsantos.com.br.external";​
 + };
 +
 +};
 +</​sxh>​
 +
 +Agora vamos ajustar o /​etc/​resolv.conf
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +search douglasqsantos.com.br
 +domain douglasqsantos.com.br
 +nameserver 127.0.0.1
 +nameserver 192.168.1.60
 +</​sxh>​
 +
 +Agora vamos acertar o /​etc/​rc.conf.local
 +<sxh bash>
 +echo '​named_enable="​YES"'​ >> /​etc/​rc.conf
 +</​sxh>​
 +
 +Agora vamos iniciar o serviço
 +<sxh bash>
 +/​etc/​rc.d/​named start
 +</​sxh>​
 +
 +Agora podemos acompanhar os logs em 
 +<sxh bash>
 +tail -f /​var/​named/​var/​log/​named.log
 +09-Dec-2013 20:​57:​17.552 xfer-in: info: transfer of '​douglasqsantos.com.br/​IN/​external'​ from 192.168.1.60#​53:​ connected using 192.168.1.62#​17968
 +09-Dec-2013 20:​57:​17.651 xfer-in: info: transfer of '​douglasqsantos.com.br/​IN/​external'​ from 192.168.1.60#​53:​ Transfer completed: 1 messages, 20 records, 494 bytes, 0.098 secs (5040 bytes/sec)
 +09-Dec-2013 20:​57:​17.651 notify: info: zone douglasqsantos.com.br/​IN/​external:​ sending notifies (serial 2013120901)
 +09-Dec-2013 21:​00:​17.640 notify: info: zone douglasqsantos.com.br/​IN/​internal:​ sending notifies (serial 2013120901)
 +09-Dec-2013 21:​00:​18.151 xfer-in: info: transfer of '​douglasqsantos.com.br/​IN/​external'​ from 192.168.1.60#​53:​ connected using 192.168.1.62#​15821
 +09-Dec-2013 21:​00:​18.249 xfer-in: info: transfer of '​douglasqsantos.com.br/​IN/​external'​ from 192.168.1.60#​53:​ Transfer completed: 1 messages, 20 records, 494 bytes, 0.097 secs (5092 bytes/sec)
 +09-Dec-2013 21:​00:​18.249 notify: info: zone douglasqsantos.com.br/​IN/​external:​ sending notifies (serial 2013120901)
 +</​sxh>​
 +
 +Vamos conferir o arquivo com a zona interna.
 +<sxh dns>
 +cat /​var/​named/​etc/​namedb/​slave/​db.douglasqsantos.com.br.internal
 +$ORIGIN .
 +$TTL 86400  ; 1 day
 +douglasqsantos.com.br ​    IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +                2013120901 ; serial
 +                3600       ; refresh (1 hour)
 +                1800       ; retry (30 minutes)
 +                1209600 ​   ; expire (2 weeks)
 +                3600       ; minimum (1 hour)
 +                )
 +            NS  ns1.douglasqsantos.com.br.
 +            NS  ns2.douglasqsantos.com.br.
 +            NS  douglasqsantos.com.br.
 +            A   ​192.168.1.60
 +            MX  0 mail.douglasqsantos.com.br.
 +            TXT "​v=spf1 a mx ip4:​192.168.1.0/​24 -all"
 +$ORIGIN douglasqsantos.com.br.
 +dns         ​A ​  ​192.168.1.60
 +ftp         ​CNAME ​  www
 +imap            CNAME   mail
 +mail.douglasqsantos.com.br ​   TXT "​v=spf1 a -all"
 +mail            A   ​192.168.1.60
 +mailadmin ​      ​CNAME ​  www
 +ns1         ​A ​  ​192.168.1.60
 +ns2         ​A ​  ​192.168.1.61
 +pop         ​CNAME ​  mail
 +smtp            CNAME   mail
 +webmail ​        ​CNAME ​  mail
 +www         ​A ​  ​192.168.1.61
 +</​sxh>​
 +
 +Agora vamos conferir o arquivo da zona Externa.
 +<sxh dns>
 +cat /​var/​named/​etc/​namedb/​slave/​db.douglasqsantos.com.br.external ​
 +$ORIGIN .
 +$TTL 86400  ; 1 day
 +douglasqsantos.com.br ​    IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +                2013120901 ; serial
 +                3600       ; refresh (1 hour)
 +                1800       ; retry (30 minutes)
 +                1209600 ​   ; expire (2 weeks)
 +                3600       ; minimum (1 hour)
 +                )
 +            NS  ns1.douglasqsantos.com.br.
 +            NS  ns2.douglasqsantos.com.br.
 +            NS  douglasqsantos.com.br.
 +            A   ​200.200.200.25
 +            MX  0 mail.douglasqsantos.com.br.
 +            TXT "​v=spf1 a mx ip4:​200.200.200.0/​23 -all"
 +$ORIGIN douglasqsantos.com.br.
 +dns         ​A ​  ​200.200.200.25
 +ftp         ​CNAME ​  www
 +imap            CNAME   mail
 +mail.douglasqsantos.com.br ​   TXT "​v=spf1 a -all"
 +mail            A   ​200.200.200.25
 +mailadmin ​      ​CNAME ​  www
 +ns1         ​A ​  ​200.200.200.25
 +ns2         ​A ​  ​200.200.200.27
 +pop         ​CNAME ​  mail
 +smtp            CNAME   mail
 +webmail ​        ​CNAME ​  mail
 +www         ​A ​  ​200.200.200.27
 +
 +</​sxh>​
 +
 +Vamos fazer alguns teste de consulta no servidor Slave.
 +
 +Vamos consultar o endereço do host www
 +<sxh bash>
 +nslookup www
 +Server: ​    ​127.0.0.1
 +Address: ​   127.0.0.1#​53
 +
 +Name:   ​www.douglasqsantos.com.br
 +Address: 192.168.1.61
 +</​sxh>​
 +
 +Agora vamos consultar o endereço do host mail.douglasqsantos.com.br aqui poderíamos consultar somente por mail dai ele completaria com o parâmetro domain do resolv.conf ​
 +<sxh bash>
 +nslookup mail.douglasqsantos.com.br
 +Server: ​    ​127.0.0.1
 +Address: ​   127.0.0.1#​53
 +
 +Name:   ​mail.douglasqsantos.com.br
 +Address: 192.168.1.60
 +</​sxh>​
 +
 +Vamos consultar os registros do tipo A do nosso domínio.
 +<sxh bash>
 +dig -t A douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.8.4-P2 <<>>​ -t A douglasqsantos.com.br
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 20925
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
 +
 +;; QUESTION SECTION:
 +;​douglasqsantos.com.br. ​          ​IN ​ A
 +
 +;; ANSWER SECTION:
 +douglasqsantos.com.br. ​       86400   ​IN ​ A   ​192.168.1.60
 +
 +;; AUTHORITY SECTION:
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  ns1.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  douglasqsantos.com.br.
 +douglasqsantos.com.br. ​       86400   ​IN ​ NS  ns2.douglasqsantos.com.br.
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​   86400   ​IN ​ A   ​192.168.1.60
 +ns2.douglasqsantos.com.br. ​   86400   ​IN ​ A   ​192.168.1.61
 +
 +;; Query time: 5 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Mon Dec  9 21:21:38 2013
 +;; MSG SIZE  rcvd: 127
 +</​sxh>​
 +
 +Agora vamos consultar todos os registros do nosso domínio.
 +<sxh bash>
 +dig -t AXFR douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.8.4-P2 <<>>​ -t AXFR douglasqsantos.com.br
 +;; global options: +cmd
 +; Transfer failed.
 +</​sxh>​
 +
 +Como pode ser notado não conseguimos efetuar a transferência pois não configuramos para o servidor transferir dele para ele mesmo que é algo redundante.
 +
 +====== Referências ======
 +
 +  - http://​www.isc.org/​software/​bind
 +  - http://​www.isc.org/​software/​bind/​history
 +  - http://​www.isc.org/​software/​bind/​whatis
 +  - http://​www.isc.org/​software/​bind/​versions
 +  - http://​ftp.isc.org/​isc/​bind9/​
 +  - http://​www.isc.org/​software/​bind/​documentation