Amigos,
Saudações Pinguianas a todos!
Neste artigo, vamos aprender como fazer um DNS local de maneira simples, rápida e prática.
Mas aí você se pergunta: O que é DNS?
O DNS é o banco de dados distribuído de traduções de nome para endereço IP. Tecnicamente não é necessário usar nomes de host e de domínio, como www.meudominio.com.br, porque é o endereço IP que o computador usa para estabelecer comunicação.
O DNS foi criado para permitir o uso de nomes de domínios mais convenientes. Por exemplo, quando o usuário digita um nome DNS como parte de uma URL em um navegador, a parte do nome é enviada para o servidor DNS para que seja resolvido em um endereço IP. Uma vez encontrado o endereço, ele é usado para se reescrever a URL e obter diretamente a página web.
Um dos servidores DNS mais conhecido é o Bind. Nesse exemplo estaremos usando o Bind9, que é uma versão mais atualizada e mais segura deste software.
O primeiro passo é instalar o Bind:
# apt-get install bind9
Agora com o Bind instalado, vamos conhecer e configurar os arquivos usados por ele:
Arquivos de configuração DNS:
Edite seu resolv.conf para ele fazer a busca do DNS local:
# vim /etc/resolv.conf
Este arquivo lista os endereços IP dos servidores de nomes:
1
2
|
nameserver 127.0.0.1 nameserver 192.168.254.1 |
Agora vamos configurar os arquivos do Bind:
# vim /etc/bind/named.conf.local
Este arquivo é onde você indicará em que caminho estarão suas zonas. Edite-o e inclua estas linhas:
1
2
3
4
5
6
7
8
9
10
11
12
|
## minhas zonas ## zone "meudominio.com.br" { type master; file "db.meudominio.com.br" ; }; ## reverso da rede 192.168.254.0 zone "254.168.192.in-addr.arpa" { type master; file "db.254.168.192" ; }; ## fim das minhas zonas ## |
Agora criaremos os arquivos db.meudominio.com.br e db.254.168.192:
Dentro do diretório /etc/bind existe um arquivo db.local que poderemos copiar para fazermos nosso db.meudominio.com.br. Como root execute:
# cd /etc/bind
# touch /var/cache/bind/db.meudominio.com.br
# cat db.local > /var/cache/bind/db.meudominio.com.br
Agora edite o seu arquivo /var/cache/bind/db.meudominio.com.br para ficar assim:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
; ; BIND zone file for home.lan ; $TTL 3D @ IN SOA ns.meudominio.com.br. root.meudominio.com.br. ( 01 ; serial 8H ; refresh 2H ; retry 4W ; expire 1D ) ; minimum ; NS ns ; Inet address of name server MX 10 mail ; Primary mail exchanger ; Necessario para funfar ns IN A 192.168.254.1 ; ; Hosts Reais www IN A 192.168.254.1 ftp IN A 192.168.254.1 smtp IN A 192.168.254.1 imap IN A 192.168.254.1 ; gateway CNAME router gw CNAME router |
Ainda como root, crie o db reverso de sua rede:
# touch /var/cache/bind/db.254.168.192
Edite o arquivo para que fique assim:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
; ; BIND zone file for 192.168.1.xxx ; $TTL 3D @ IN SOA ns.home.lan. root.home.lan. ( 2010111101 ; serial 8H ; refresh 2H ; retry 4W ; expire 1D ) ; minimum ; NS ns.meudominio.com.br. ; Nameserver address 100 PTR server.meudominio.com.br. 100 PTR ns.meudominio.com.br. 100 PTR mail.meudominio.com.br. 101 PTR virtual.meudominio.com.br. 1 PTR router.meudominio.com.br. |
Agora vamos editar o arquivo named.conf.options
# vim /etc/bind/named.conf.options
Deixe-o assim:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
options { directory "/var/cache/bind" ; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http: //www .kb.cert.org /vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // Security options listen-on port 53 { 127.0.0.1; 192.168.254.1; }; allow-query { 127.0.0.1; 192.168.254.0 /24 ; }; allow-recursion { 127.0.0.1; 192.168.254.0 /24 ; }; allow-transfer { none; }; auth-nxdomain no; # conform to RFC1035 // listen-on-v6 { any; }; }; |
Feito isso reinicie seu bind:
# /etc/init.d/bind9 restart
Agora já podemos pingar internet.meudominio.com.br e mail.meudominio.com.br:
# ping internet.meudominio.com.br
PING internet.meudominio.com.br (192.168.254.1) 56(84) bytes of data.
64 bytes from 192.168.254.1: icmp_seq=1 ttl=64 time=4.86 ms
64 bytes from 192.168.254.1: icmp_seq=2 ttl=64 time=0.228 ms
64 bytes from 192.168.254.1: icmp_seq=3 ttl=64 time=0.229 ms
Utilidades e checando configurações DNS:
Um servidor DNS interno é muito útil para os administradores de redes, por exemplo: se você tem um servidor proxy autenticado, nos navegadores dos clientes podemos usar um endereço de proxy como internet.empresa.com.br, assim se um dia necessitar alterar o ip de seu proxy, só mude as configurações de DNS no seu db.empresa.com.br.
Podemos usar alguns comandos para checar as configurações de seu dns.
named-checkconf (verifica as configurações do Bind)
# named-checkconf
Se não retornar nada é que está ok.
named-checkzone (verifica suas zonas):
# named-checkzone zonename db.meudominio.com.br
zone zonename/IN: loaded serial 2
OK
Servidor DNS pronto e funcionando! Você já pode dar nomes a seus IPs, facilite seu trabalho.
Espero ter colaborado!