Criando Zonas no DNS

Neste artigo vou mostrar como criar domínios (zonas) no BIND e colocar nossos domínios para funcionar.

Criaremos dois domínios e as máquinas que fazem parte dessas zonas.

Primeiro devemos instalar os pacotes necessários para o funcionamento do serviço, o nome do pacote é bind tanto em distribuições baseadas em Debian quanto em Red Hat.

As diferenças entre as distribuições está na localização dos arquivos, as variáveis e comandos são os mesmos. As diferenças são as seguintes:
Red Hat:
Script de inicialização: /etc/init.d/named
Arquivos de Configuração: /etc/named.conf (Opções e domínios) /etc/named.rfc1912.zones (zonas padrão)
Diretório de database de zonas: /var/named

Debian:
Script de inicialização: /etc/init.d/bind9
Arquivos de Configuração: /etc/bind/named.conf.options (opções) /etc/bind/named.conf.local (domínios) /etc/named.conf.default.zones (zonas padrão)
Diretório de database de zonas: /var/cache/bind

Os domínios (direto e reverso) devem ser criados no arquivo /etc/named.conf (Red Hat) ou /etc/bind/named.conf.local (Debian), e as máquinas de cada domínio devem ser criadas nos arquivos de database de cada distribuição. Nos arquivos com nome named os caracteres de // são os comentários, nos arquivos db. o caracter de ; é o comentário.

No DNS master edite o arquivo named correspondente, usando como exemplo os domínios empresa.net e exemplo.net (domínios que existem, mas aqui serão usados como exemplo) e sendo nossa rede externa 172.16.31.10 a 172.16.31.20(eu sei que é um endereço inválido mas usaremos para exemplo), com o seguinte conteúdo ao final:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
zone "class365.com.br" {
      type master;
      file "db.class365.com.br";
      allow-transfer { 172.16.31.11; };
};
zone "vagnerfonseca.com.br" {
      type master;
      file "db.vagnerfonseca.com.br";
      allow-transfer { 172.16.31.11; };
};
zone "31.16.172.in-addr.arpa" {
      type master;
      file "db.172.16.31";
      allow-transfer { 172.16.31.11; };
};

Onde:
zone – é o nome do domínio que será criado neste servidor
type – tipo de servidor DNS (master ou slave)
file – arquivo de database desta zona
allow-transfer – diretiva que permite transferência do arquivo de zona para o servidor slave.

As zonas diretas devem ser criadas uma para cada domínio, mas como a zona reversa é baseada na rede onde os hosts existem, assim sendo, podemos ter uma única zona reversa em nosso DNS atendendo a vários domínios, desde que os hosts destes domínios estejam na mesma rede.

Para checar se não houve erro na configuração usaremos o comando named-checkconf:

root@redhat# named-checkconf /etc/named.conf
ou
root@debian# named-checkconf /etc/bind/named.conf

Com os arquivos named devidamente configurados, devemos criar agora o database de cada zona direta e da zona reversa.

Criaremos nos respectivos diretórios de database os arquivos com os seguintes conteúdos:

db.class365.com.br

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS
@ IN SOA ns1.class365.com.br. dns-admin.class365.com.br. (
          2019161101 ; serial para controle de atualizações entre master e slave
                3600 ; tempo de atualizações entre master e slave (refresh)
                1800 ; tempo de atualizações caso o refresh falhe
              604800 ; tempo de expiração do slave caso não se contate com o master
              3600 ) ; tempo de vida das repostas negativas do servidor
@ IN NS ns1.class365.com.br.
@ IN MX 10 mail.class365.com.br.
ns1   IN A 172.16.31.10
ns2   IN A 172.16.31.11
mail  IN A 172.16.31.12
ftp   IN A 172.16.31.13
www   IN A 172.16.31.20
web   IN CNAME www

db.vagnerfonseca.com.br

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS
@ IN SOA ns1.vagnerfonseca.com.br. dns-admin.vagnerfonseca.com.br. (
          2019161101 ; serial para controle de atualizações entre master e slave
                3600 ; tempo de atualizações entre master e slave (refresh)
                1800 ; tempo de atualizações caso o refresh falhe
              604800 ; tempo de expiração do slave caso não se contate com o master
              3600 ) ; tempo de vida das repostas negativas do servidor
@ IN NS ns1.vagnerfonseca.com.br.
@ IN MX 10 mail.vagnerfonseca.com.br.
ns1   IN A 172.16.31.10
ns2   IN A 172.16.31.11
mail  IN A 172.16.31.12
ftp   IN A 172.16.31.14
www   IN A 172.16.31.20
web   IN CNAME www

db.172.16.31

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS
@ IN SOA ns1.vagnerfonseca.com.br. dns-admin.vagnerfonseca.com.br. (
          2019161101 ; serial para controle de atualizações entre master e slave
                3600 ; tempo de atualizações entre master e slave (refresh)
                1800 ; tempo de atualizações caso o refresh falhe
              604800 ; tempo de expiração do slave caso não se contate com o master
              3600 ) ; tempo de vida das repostas negativas do servidor
@ IN NS ns1.vagnerfonseca.com.br.
;class365.com.br
10 IN PTR ns1.class365.com.br.
11 IN PTR ns2.class365.com.br.
12 IN PTR mail.class365.com.br.
13 IN PTR ftp.class365.com.br.
20 IN PTR www.class365.com.br.
20 IN PTR web.class365.com.br.
;vagnerfonseca.com.br
10 IN PTR ns1.vagnerfonseca.com.br.
11 IN PTR ns2.vagnerfonseca.com.br.
12 IN PTR mail.vagnerfonseca.com.br.
14 IN PTR ftp.vagnerfonseca.com.br.
20 IN PTR www.vagnerfonseca.com.br.
20 IN PTR web.vagnerfonseca.com.br.

Assim teremos um arquivo para cada domínio direto e um arquivo para todos os reversos.
Vamos testar os arquivos com o seguinte comando (estando no diretório onde os arquivos foram criados):

root@debian# named-checkzone class365.com.br db.class365.com.br
root@debian# named-checkzone vagnerfonseca.com.br db.vagnerfonseca.com.br
root@debian# named-checkzone 31.16.172.in-addr.arpa db.172.16.31

Se não houver nenhum erro, basta iniciar o serviço:

Em Red Hat:
root@redhat# /etc/init.d/named restart

Em Debian:
root@debian# /etc/init.d/bind9 restart

Monitore por erros no log do sistema /var/log/syslog (Debian) ou /var/log/messages (Red Hat).
No slave faremos a seguinte configuração no arquivo named correspondente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
zone "class365.com.br" {
      type slave;
      file "db.class365.com.br";
      masters { 172.16.31.10; };
};

zone "vagnerfonseca.com.br" {
      type slave;
      file "db.vagnerfonseca.com.br";
      masters { 172.16.31.10; };
};

zone "31.16.172.in-addr.arpa" {
      type slave;
      file "db.172.16.31";
      masters { 172.16.31.10; };
};

Assim ao reiniciar o serviço o slave irá procurar o master (172.16.31.10) e irá fazer download (porta 53 TCP) dos arquivos db. existentes no master e se manterá sincronizado, verificando a cada ciclo de tempo (refresh) se houve atualizações nos arquivos no master.
No próximo post colocaremos uma zona interna respondendo apenas para rede local e faremos otimizações do DNS.

Não se esqueça de se inscrever no meu canal do Youtube nem de me seguir no Instagram.

Entre no nosso grupo do Telegram e vamos falar muito sobre Linux.

1 comentário em “Criando Zonas no DNS”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Facebook
LinkedIn
RSS
Rolar para cima