Instalação e configuração do Bind Trabalhando com Views Master/Slave no CentOS 6

Configurando o DNS no CentOS 6 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.

  1. IP do slave que vai receber a view interna: 10.0.0.27
  2. IP do slave que vai receber a view externa: 10.0.0.28
  3. IPS do servidor master 10.0.0.25.

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos6_en para que não falte nenhum pacote ou configuração.

Vamos fazer um update dos repositórios e vamos atualizar o sistema primeiramente.

yum check-update && yum update -y

Agora vamos instalar os pacotes do bind

yum install bind-chroot bind-utils bind-libs -y

Agora vamos colocar ele na inicialização do sistema

chkconfig named on

Agora vamos reiniciar o serviço para que o named monte a sua jaula

/etc/init.d/named restart

Agora vamos fazer um backup do arquivo de configuração do nosso bind.

cp -Rfa /etc/named.conf{,.bkp}

Agora vamos deixar o arquivo /etc/named.conf como abaixo, aqui estou utilizando a rede 10.0.0.0/23 como minha rede local para exemplo, mude conforme necessário.

vim /etc/named.conf
#Criando acl para definir as nossas redes internas.
acl "trusted" {
 10.0.0.0/23;
 127.0.0.1;
};

#Acl que define qual vai ser o slave que vai receber a view interna
acl "internal_slave" {
 10.0.0.27;
};

#Acl que define qual vai ser o slave que vai receber a view externa
acl "external_slave" {
 10.0.0.28;
};

#Algumas opções do Bind
options {
 listen-on port 53 { 127.0.0.1; 10.0.0.0/23; };
 directory       "/var/named";
 dump-file       "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 memstatistics-file "/var/named/data/named_mem_stats.txt";
 allow-query     { any; };
 recursion no;
 version "Não Disponível";
};

#Controles 
include "/etc/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/named/named.conf.internal-zones";
include "/etc/named/named.conf.external-zones";

Agora vamos gerar a chave do rndc

rndc-confgen -a -c /etc/rndc.key -k rndc-key -b 256

Agora precisamos acertar as permissões dos arquivos

chown root:named /etc/rndc.key
chmod 640 /etc/rndc.key

Agora vamos criar o nosso arquivo da View Interna /etc/named/named.conf.internal-zones onde somente os nossos clientes da rede local e o nosso servidor local vão poder consultar.

vim /etc/named/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 {
 10.0.0.27;
};

#Zona que define os endereços dos root Masters.
zone "." IN {
 type hint;
 file "named.ca";
};

#Nosso domínio de teste.
zone "douglasqsantos.com.br" {
 type master;
 file "db.douglasqsantos.com.br.internal";
};

#Este arquivo contem as zonas locais
include "/etc/named.rfc1912.zones";

};

Agora vamos criar a nossa View Externa /etc/named/named.conf.external-zones aonde qualquer um vai poder consultar não sendo a nossa rede local e nem o nosso servidor local

vim /etc/named/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 {
 10.0.0.28;
 };

#Nosso dominio de teste.
zone "douglasqsantos.com.br" {
 type master;
 file "db.douglasqsantos.com.br.external";
 };

};

Agora vamos criar o arquivo que os nossos clientes internos vão consultar /var/named/chroot/var/named/db.douglasqsantos.com.br.internal

vim /var/named/chroot/var/named/db.douglasqsantos.com.br.internal
$TTL 86400
@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 2011061703  ; Serial
 3600       ; Refresh
 1800        ; Retry
 1209600      ; Expire
 3600 )     ; Minimum

;
@               IN      NS   douglasqsantos.com.br.
douglasqsantos.com.br. IN TXT "v=spf1 a mx ip4:10.0.0.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    10.0.0.25
ns1             IN      A    10.0.0.25
ns2             IN      A    10.0.0.27
dns             IN      A    10.0.0.25

;MAIL SERVERS
mail            IN      A    10.0.0.25
imap            IN      CNAME mail
pop             IN      CNAME mail
smtp            IN      CNAME mail
webmail         IN      CNAME mail

;WEB SERVERS
www             IN      A    10.0.0.27
ftp             IN      CNAME www
mailadmin       IN      CNAME www

Agora vamos criar o arquivo que os clientes externos vão consultar /var/named/chroot/var/named/db.douglasqsantos.com.br.external

vim /var/named/chroot/var/named/db.douglasqsantos.com.br.external
$TTL 86400
@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 2011061703  ; 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

Vamos agora ajustar o arquivo /etc/resolv.conf para que o nosso servidor consiga encontrar a zona do douglasqsantos.com.br

vim /etc/resolv.conf
domain douglasqsantos.com.br
nameserver 127.0.0.1

Vamos agora reiniciar o serviço e testar.

/etc/init.d/named restart

Agora vamos fazer alguns testes.

Vamos consultar o endereço do host www

nslookup www
Server:        127.0.0.1
Address:    127.0.0.1#53

Name:    www.douglasqsantos.com.br
Address: 10.0.0.27

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

nslookup mail.douglasqsantos.com.br
Server:        127.0.0.1
Address:    127.0.0.1#53

Name:    mail.douglasqsantos.com.br
Address: 10.0.0.25

Vamos consultar os registros do tipo A do nosso domínio.

dig -t A douglasqsantos.com.br

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_6.2 <<>> -t A douglasqsantos.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47736
;; 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    10.0.0.25

;; 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    10.0.0.25
ns2.douglasqsantos.com.br.    86400    IN    A    10.0.0.27

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jun 24 17:04:25 2011
;; MSG SIZE  rcvd: 130

Vamos agora consultar todos os registros do nosso domínio.

dig -t axfr douglasqsantos.com.br

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_6.2 <<>> -t axfr douglasqsantos.com.br
;; global options: +cmd
douglasqsantos.com.br.        86400    IN    SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. 2011061703 3600 1800 1209600 3600
douglasqsantos.com.br.        86400    IN    MX    0 mail.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    A    10.0.0.25
douglasqsantos.com.br.        86400    IN    NS    ns1.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    ns2.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    TXT    "v=spf1 a mx ip4:10.0.0.0/23 -all"
mail.douglasqsantos.com.br.douglasqsantos.com.br. 86400 IN TXT "v=spf1 a -all"
dns.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
ftp.douglasqsantos.com.br.    86400    IN    CNAME    www.douglasqsantos.com.br.
imap.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
mail.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
mailadmin.douglasqsantos.com.br. 86400    IN    CNAME    www.douglasqsantos.com.br.
ns1.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
ns2.douglasqsantos.com.br.    86400    IN    A    10.0.0.27
pop.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
smtp.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
webmail.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
www.douglasqsantos.com.br.    86400    IN    A    10.0.0.27
douglasqsantos.com.br.        86400    IN    SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. 2011061703 3600 1800 1209600 3600
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jun 24 17:04:44 2011
;; XFR size: 20 records (messages 1, bytes 495)

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

Vamos fazer um update dos repositórios e vamos atualizar o sistema primeiramente.

yum check-update && yum update -y

Agora vamos instalar os pacotes do bind

yum install bind-chroot bind-utils bind-libs -y

Agora vamos colocar ele na inicialização do sistema

chkconfig named on

Agora vamos reiniciar o serviço para que o named monte a sua jaula

/etc/init.d/named restart

Agora vamos fazer um backup do arquivo de configuração do nosso bind.

cp -Rfa /etc/named.conf{,.bkp}

Agora vamos deixar o arquivo /etc/named.conf como abaixo, aqui estou utilizando a rede 10.0.0.0/23 como minha rede local para exemplo, mude conforme necessário.

vim /etc/named.conf
#Criando acl para definir as nossas redes internas.
acl "trusted" {
 10.0.0.0/23;
 127.0.0.1;
};

#Acl que define qual vai ser o dns master
acl "dns_master" {
 10.0.0.25;
};

#Algumas opções do Bind
options {
 listen-on port 53 { 127.0.0.1; 10.0.0.0/23; };
 directory       "/var/named";
 dump-file       "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 memstatistics-file "/var/named/data/named_mem_stats.txt";
 allow-query     { any; };
 recursion no;
 version "Não Disponível";
};

#Controles 
include "/etc/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/named/named.conf.internal-zones";
include "/etc/named/named.conf.external-zones";

Agora vamos gerar a chave do rndc

rndc-confgen -a -c /etc/rndc.key -k rndc-key -b 256

Agora precisamos acertar as permissões dos arquivos

chown root:named /etc/rndc.key
chmod 640 /etc/rndc.key

Agora vamos criar o arquivo da nossa View interna /etc/named/named.conf.internal-zones

vim /etc/named/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;
};

#Zona que define os endereços dos root Masters.
zone "." IN {
 type hint;
 file "named.ca";
};

#Nosso domínio de teste.
zone "douglasqsantos.com.br" {
type slave;
masters { 10.0.0.25; }; 
transfer-source 10.0.0.27; #Especificando qual transferencia do master que eu vou poder receber nessa view
file "slaves/db.douglasqsantos.com.br.internal";
};

#Este arquivo contem as zonas locais
include "/etc/named.rfc1912.zones";

};

Vamos agora configurar a View Externa /etc/named/named.conf.external-zones

vim /etc/named/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 { 10.0.0.25; };
 transfer-source 10.0.0.28; #Especificando qual transferencia do master que eu vou poder receber nessa view.
 file "slaves/db.douglasqsantos.com.br.external";
 };

};

Agora vamos ajustar o /etc/resolv.conf

vim /etc/resolv.conf
search douglasqsantos.com.br
nameserver 127.0.0.1

Agora vamos reiniciar o serviço

/etc/init.d/named restart

Agora podemos acompanhar os logs em

tail -f /var/named/chroot/var/log/named.log 
27-Jun-2011 12:55:15.523 xfer-in: info: transfer of 'douglasqsantos.com.br/IN/internal' from 10.0.0.25#53: connected using 10.0.0.27#33882
27-Jun-2011 12:55:15.524 xfer-in: info: transfer of 'douglasqsantos.com.br/IN/internal' from 10.0.0.25#53: Transfer completed: 1 messages, 20 records, 495 bytes, 0.001 secs (495000 bytes/sec)
27-Jun-2011 12:55:15.524 notify: info: zone douglasqsantos.com.br/IN/internal: sending notifies (serial 2011061703)
27-Jun-2011 12:55:16.023 xfer-in: info: transfer of 'douglasqsantos.com.br/IN/external' from 10.0.0.25#53: connected using 10.0.0.28#34466
27-Jun-2011 12:55:16.026 xfer-in: info: transfer of 'douglasqsantos.com.br/IN/external' from 10.0.0.25#53: Transfer completed: 1 messages, 20 records, 500 bytes, 0.002 secs (250000 bytes/sec)
27-Jun-2011 12:55:16.027 notify: info: zone douglasqsantos.com.br/IN/external: sending notifies (serial 2011061703)

Vamos conferir o arquivo com a zona interna.

cat /var/named/chroot/var/named/slaves/db.douglasqsantos.com.br.internal 
$ORIGIN .
$TTL 86400    ; 1 day
douglasqsantos.com.br        IN SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 2011061703 ; 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    10.0.0.25
 MX    0 mail.douglasqsantos.com.br.
 TXT    "v=spf1 a mx ip4:10.0.0.0/23 -all"
$ORIGIN douglasqsantos.com.br.
mail.douglasqsantos.com.br    TXT    "v=spf1 a -all"
dns            A    10.0.0.25
ftp            CNAME    www
imap            CNAME    mail
mail            A    10.0.0.25
mailadmin        CNAME    www
ns1            A    10.0.0.25
ns2            A    10.0.0.27
pop            CNAME    mail
smtp            CNAME    mail
webmail            CNAME    mail
www            A    10.0.0.27

Agora vamos conferir o arquivo da zona Externa.

cat /var/named/chroot/var/named/slaves/db.douglasqsantos.com.br.external 
$ORIGIN .
$TTL 86400    ; 1 day
douglasqsantos.com.br        IN SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 2011061703 ; 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.
mail.douglasqsantos.com.br    TXT    "v=spf1 a -all"
dns            A    200.200.200.25
ftp            CNAME    www
imap            CNAME    mail
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

Vamos fazer alguns teste de consulta no servidor Slave.

Vamos consultar o endereço do host www

nslookup www
Server:        127.0.0.1
Address:    127.0.0.1#53

Name:    www.douglasqsantos.com.br
Address: 10.0.0.27

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

nslookup mail.douglasqsantos.com.br
Server:        127.0.0.1
Address:    127.0.0.1#53

Name:    mail.douglasqsantos.com.br
Address: 10.0.0.25

Vamos consultar os registros do tipo A do nosso domínio.

dig -t A douglasqsantos.com.br

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_6.2 <<>> -t A douglasqsantos.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40525
;; 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    10.0.0.25

;; AUTHORITY SECTION:
douglasqsantos.com.br.        86400    IN    NS    ns2.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    ns1.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    douglasqsantos.com.br.

;; ADDITIONAL SECTION:
ns1.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
ns2.douglasqsantos.com.br.    86400    IN    A    10.0.0.27

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 27 13:02:28 2011
;; MSG SIZE  rcvd: 130

Agora vamos consultar todos os registros do nosso domínio.

dig -t AXFR douglasqsantos.com.br

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_6.2 <<>> -t AXFR douglasqsantos.com.br
;; global options: +cmd
douglasqsantos.com.br.        86400    IN    SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. 2011061703 3600 1800 1209600 3600
douglasqsantos.com.br.        86400    IN    TXT    "v=spf1 a mx ip4:10.0.0.0/23 -all"
douglasqsantos.com.br.        86400    IN    NS    ns1.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    ns2.douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    NS    douglasqsantos.com.br.
douglasqsantos.com.br.        86400    IN    A    10.0.0.25
douglasqsantos.com.br.        86400    IN    MX    0 mail.douglasqsantos.com.br.
mail.douglasqsantos.com.br.douglasqsantos.com.br. 86400 IN TXT "v=spf1 a -all"
dns.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
ftp.douglasqsantos.com.br.    86400    IN    CNAME    www.douglasqsantos.com.br.
imap.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
mail.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
mailadmin.douglasqsantos.com.br. 86400    IN    CNAME    www.douglasqsantos.com.br.
ns1.douglasqsantos.com.br.    86400    IN    A    10.0.0.25
ns2.douglasqsantos.com.br.    86400    IN    A    10.0.0.27
pop.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
smtp.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
webmail.douglasqsantos.com.br.    86400    IN    CNAME    mail.douglasqsantos.com.br.
www.douglasqsantos.com.br.    86400    IN    A    10.0.0.27
douglasqsantos.com.br.        86400    IN    SOA    dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. 2011061703 3600 1800 1209600 3600
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 27 13:03:31 2011
;; XFR size: 20 records (messages 1, bytes 495)

Referências