Escolar Documentos
Profissional Documentos
Cultura Documentos
Bind DNS PDF
Bind DNS PDF
O servio de DNS do lado do cliente que faz a requisies sobre um nome de domnio o
arquivo /etc/resolv.conf e o do lado do servidor o daemon named onde veremos seus
arquivos e scripts de configurao no Red Hat / Fedora e Debian e similares, mas podendo ser
usado em qualquer distribuio Linux.
No se esquea de fazer com que seu firewall de aceite conexes TCP e UDP na porta 53 no
iptables.
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
Para instalar o Bind no Debian use o comando apt-get e no Fedora o comando yum
Abaixo segue os arquivos do named no Red Hat / Fedora e Debian, em outras distribuies
Linux pode estar em diretrios diferentes.
* Obs - O Fedora instala o named com chroot, onde o usurio do named enjaulado no diretrio
/var/named/chroot, portanto a configurao do named fica localizado em /var/named/ .
/etc/bind/named.conf
/etc/named.conf
o arquivo principal de configurao dos nomes dos domnios e onde so definidas as zonas.
Neste arquivo todas as linhas que comeam com duas barras //, # um comentrio e em
cada final de linha inserido um ponto e vrgual ( ; ). J os caracteres /* */ comentrio de
vrias linhas.
// uma linha
# uma linha
/*
varias linhas
*/
Debian
// /etc/bind/named.conf
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
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";
};
include "/etc/bind/named.conf.local";
include - essa diretiva utiliza um arquivo de incluso externo onde contm opes de
configurao dentro do arquivo principal named.conf.
zone - essa diretiva usada para idntificar uma zona de um domnio e existem 3
opes de configurao: zona de servidor cache root (raiz), zona de servidor
master e zona servidor slave.
type - essa opo de configurao pode ser configurada de 3 formas:
hint - especifica os servidores raiz como servidores cache
slave - especifica os servidores escravos(slave)
master - especifica os servidores mestres(master)
file - especifica o arquivo a ser usado pela diretiva de zona dos domnios zone.
/etc/bind/db.root e
ponto ( . ) na diretiva zone.
/etc/bind/db.local e
local localhost na diretiva zone.
/etc/bind/db.127 e
named.local - representado pela zona
reversa local 127.in-addr.arpa na diretiva zone.
/etc/bind/named.conf.options
Este arquivo o prprio nome j diz options que um arquivo onde contm opes de
configurao global como a diretiva options e dentro dessa diretiva outras diretivas como:
directory, listen-on, recursion e etc. Na diretiva directory acima especificado o diretrio
onde so armazenados os arquivos de configurao e de zonas dos domnios.
// /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
};
Abaixo seguem as principais diretivas de instrues usada em named.conf
Diretiva
Significado
include
options
server
lwres
key
acl
zone
logging
view
/var/named/chroot/etc/rndc.conf
Arquivo de configurao da chave secreta do rndc usando na verso Bind 9.x.x, onde matm
um clone da chave no arquivo /etc/named.conf ou /etc/rndc.key.
/var/named/chroot/etc/rndc.key
Caso o arquivo /etc/named.conf no tenha a chave , ento usado o arquivo
/etc/rndc.key, onde armazena uma cpia da chave de controle do Bind.
/etc/bind/db.root
/var/named/chroot/etc/named.ca
Este arquivo onde fica armazenado os servidores root DNS da internet mundial, onde deve
ser atualizado aps algum tempo, para isso use o comando dig.
$ dig ns . > db.root.atual
$ dig ns . > named.ca.atual
Arquivo de configurao
/etc/bind/db.root
;
<<>> DiG 9.2.3
<<>> ns . @a.root-servers.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status:
NOERROR, id: 18944
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
;; Query time: 81 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net.)
;; WHEN: Sun Feb 1 11:27:14 2004
;; MSG SIZE rcvd: 436
/etc/nsswitch.conf
Este arquivo utilizado por servios DNS e NIS, no havendo a necessidade de edita-lo
/etc/bind/db.127
/var/named/chroot/var/named/named.local
Este arquivo contm as configuraes de zonas reversas para os domnios, repare que no
Debian este arquivo idntico ao arquivo db.local.
$TTL 604800
@
IN
SOA
localhost. root.localhost. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
@
IN
IN
NS
A
localhost.
127.0.0.1
/etc/bind/db.local
/var/named/chroot/var/named/named.local
Este arquivo contm as configuraes de domnio local (localhost) atravs da interface de
loopback (127.0.0.1).
$TTL 604800
@
IN
SOA
localhost. root.localhost. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
@
IN
IN
NS
A
localhost.
127.0.0.1
Caractere
Significado
pe um comentrio na linha
()
nome
TTL
classe
tipo
dados
Opes
SOA
Descrio
Serial
Refresh
Retry
Expire
TTL
SOA
NS
Zona
Bsicos
AAAA
A6
PTR
Segurana
Opcionais
MX
KEY
NXT
SIG
CNAME
LOC
SRV
TXT
Comentrios ou informaes
/etc/resolv.conf
Neste arquivo voc especificar os endereos IP de DNS e o nome do domnio para nosso
dominio dominio.com.br.
# /etc/resolv.conf
search dominio.com.br
nameserver 127.0.0.1
nameserver 192.168.1.100
Caso voc no tenha um servidor DNS na sua rede coloque os DNS do seu provedor.
# /etc/resolv.conf
search provedor.com.br
nameserver 200.000.000.001
nameserver 200.000.000.002
10
/etc/hosts
Neste arquivo voc especificar nomes de hosts e endereos IP e vice-versa, usado para
testes locais na rede e para loopback (localhost). No exemplo abaixo o nome de host dns1
corresponde ao IP 192.168.1.100 e vice-versa.
# /etc/hosts
127.0.0.1
localhost localhost.localdomain
192.168.1.100 dns1.dominio.com.br dns1
dns1
/etc/init.d/networking restart
/etc/hosts.conf
No Red Hat e Fedora altere as configuraes desse arquivo da seguinte forma:
#/etc/hosts.conf
order hosts,bind
multi on
/etc/hostname
Este arquivo define o nome do computador, aps as alteraes reinicie a computador com um
reboot.
dns1
11
Arquivos de configurao
Hostname
dns1
Domnio
dominio.com.br
DNS primrio
127.0.0.1
DNS secundrio
192.168.1.100
Endereo IP eth0
192.168.1.100
Mscara de rede
255.255.255.0
Endereo de rede
192.168.1.0
Gateway
192.168.1.1
Usaremos como exemplo de configurao um computador com o Debian 4.0 etch com o
hostname dns1.dominio.com.br e endereo IP 192.168.1.100.
/etc/bind/named.conf
Edite o arquivo e acrescente no final os arquvios de zona e zona reversa para o domnio.
Esses arquivos podem ser salvos no diretrio /etc/bind ou no diretrio especificado no
arquivo /etc/bind/named.conf.options que no diretrio /var/cache/bind.
// /etc/bind/named.conf
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
12
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";
// aqui criaremos a zona para o domnio dominio.com.br
zone "dominio.com.br" { // seu dominio
type master; // tipo master
file "/var/cache/bind/db.dominio.com.br"; // arquivo de zona
};
zone "db.1.168.192.in-addr.arpa" { // seu IP reverso
type master; // tipo master
file "/var/cache/bind/db.1.168.192"; // arquivo de zona reversa
};
/var/cache/bind/db.dominio.com.br
Este arquivo de zona armazena os dados do domnio dominio.com.br, onde definido o
servidor dns no computador dns1.dominio.com.br com endereo IP 192.168.1.100, o
servidor de email no computador mx1.dominio.com.br com endereo IP 192.168.1.101 e o
servidor www no computador com endereo IP 192.168.1.102.
// var/cache/bind/db.dominio.com.br
$TTL 604800
@
IN
SOA
dns1.dominio.com.br.
root.dns1.dominio.com.br. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
13
;
@
@
IN
IN
dns1
mx1
www
IN
IN
IN
NS
MX
dns1.dominio.com.br.
5
mx1.dominio.com.br.
A
A
A
192.168.1.100
192.168.1.101
192.168.1.102
/var/cache/bind/db.1.168.192
Este o arquivo de zona reversa db.1.168.192 para o domnio dominio.com.br, onde
convertido endereos IP em nomes de domnios. Repare abaixo que o endereo IP invertido
de 192.168.1.100 para 100.1.168.192, 192.168.1.101 para
101.1.168.192, 192.168.1.102 para 102.1.168.192, portanto no arquivo de zona reversa
utilizado apenas o ltimo nmero do endereo IP, neste caso 100, 101, 102 e assim por
diante.
// var/cache/bind/db.1.168.192
$TTL 604800
@
IN
SOA
dns1.dominio.com.br. root.dns1.dominio.com.br. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
IN
NS
dns1.dominio.com.br.
100
101
102
IN
IN
IN
PTR
PTR
PTR
dns1.dominio.com.br.
mx1.dominio.com.br.
www.dominio.com.br.
/etc/resolv.conf
Neste arquivo voc especificar os endereos IP de DNS e o nome para o nosso domnio
dominio.com.br.
# /etc/resolv.conf
search dominio.com.br
nameserver 127.0.0.1
14
nameserver
192.168.1.100
$ ping mx1.dominio.com.br
PING mx1.dominio.com.br (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.413 ms
$ ping www.dominio.com.br
PING www.dominio.com.br (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.413 ms
#
named-checkconf
# named-checkzone zonename
/var/cache/bind/db.dominio.com.br
zone zonename/IN: loaded serial 1
OK
# host -l dominio.com.br
dns1.dominio.com.br has address
192.168.1.100
mx1.dominio.com.br has address
192.168.1.101
www.dominio.com.br has address
192.168.1.102
15
;; QUESTION SECTION:
;dominio.com.br.
IN
ANY
;; ANSWER SECTION:
dominio.com.br.
604800 IN
86400 2419200 604800
dominio.com.br.
604800 IN
dominio.com.br.
604800 IN
;; ADDITIONAL SECTION:
dns1.dominio.com.br. 604800 IN
mx1.dominio.com.br. 604800 IN
;;
;;
;;
;;
SOA
NS
MX
A
A
192.168.1.100
192.168.1.101
# nslookup
> set q=any
> dominio.com.br
Server:
127.0.0.1
Address:
127.0.0.1#53
dominio.com.br
origin = dn1.dominio.com.br
mail addr = root.dns1.dominio.com.br
serial = 1
refresh = 604800
retry = 86400
expire = 2419200
minimum = 604800
dominio.com.br nameserver = dns1.dominio.com.br.
dominio.com.br mail exchanger = 5
mx1.dominio.com.br.
> exit
16
slave1
Domnio
dominio.com.br
DNS primrio
127.0.0.1
DNS secundrio
192.168.1.101
Endereo IP eth0
192.168.1.101
Mscara de rede
255.255.255.0
Endereo de rede
192.168.1.0
Gateway
192.168.1.1
Usaremos como exemplo de configurao um computador com o Debian 4.0 etch com o
hostname slave1.dominio.com.br e endereo IP 192.168.1.101.
/etc/bind/named.conf
Edite o arquivo e configure apenas na diretiva type para slave e logo em seguida
especifique o endereo IP do servidor master na diretiva masters. Aps as configuraes o
servidor escravo manter um backup do banco de dados dos nomes de domnio fazendo o
que chamamos de transferncia de zona.
// /etc/bind/named.conf
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
17
};
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";
};
include "/etc/bind/named.conf.local";
// aqui criaremos a zona para o domnio dominio.com.br
zone "dominio.com.br" { // seu dominio
type slave; // tipo slave
file "/var/cache/bind/db.dominio.com.br"; // arquivo de zona
masters { 192.168.1.100; } ; // endereo IP do servidor master
};
zone "db.1.168.192.in-addr.arpa" { // seu IP reverso
type slave; // tipo slave
file "/var/cache/bind/db.1.168.192"; // arquivo de zona reversa
masters { 192.168.1.100; } ; // endereo IP do servidor master
};
/etc/resolv.conf
Neste arquivo voc especificar os endereos IP de DNS e o nome para o nosso domnio
dominio.com.br.
# /etc/resolv.conf
search dominio.com.br
nameserver 127.0.0.1
nameserver 192.168.1.100 # IP do servidor mestre
/etc/hosts
No exemplo abaixo o nome de host slave1 corresponde ao IP 192.168.1.101 e vice-versa.
18
# /etc/hosts
127.0.0.1
localhost localhost.localdomain slave1
192.168.1.101 slave1.dominio.com.br slave1
/etc/hostname
Neste arquivo definido o nome do computador.
slave1
Aps as alteraes nos arquivos de zona reinicie o named
# /etc/init.d/bind9 stop
# /etc/init.d/bind9 start
Agora periodicamente de ser feito o backup do banco de dados dos domnios no diretrio
espificando na diretiva directory, neste caso em /var/cache/bind/. Repare que aps
reiniciar o Bind ser feito um cpia em /var/cache/bind/db.dominio.com.br
$ORIGIN .
$TTL 604800
; 1 week
dominio.com.br
IN SOA dn1.dominio1.com.br. root.dns1.dominio1.com.br. (
1
; serial
604800
; refresh (1 week)
86400
; retry (1 day)
2419200 ; expire (4 weeks)
604800
; minimum (1 week)
)
NS
dns1.dominio.com.br.
MX
5 mx1.dominio.com.br.
$ORIGIN dominio.com.br.
dns1
A
192.168.1.100
mx1
A
192.168.1.101
www
A
192.168.1.102
19
Usaremos como exemplo de configurao um computador com o Debian 4.0 etch com o
hostname cache1.dominio.com.br e endereo IP 192.168.1.102.
/etc/bind/named.conf
// /etc/bind/named.conf
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
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";
};
include "/etc/bind/named.conf.local";
/etc/bind/db.local
Esse arquivo usado para configurao de zona do DNS local para localhost (127.0.0.1).
$TTL 604800
@
IN
SOA
localhost. root.localhost. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
20
@
@
IN
IN
NS
A
localhost.
127.0.0.1
/etc/bind/db.127
Arquivo de zona reversa para localhost(127.0.0.1)
; BIND reverse data file for local loopback interface
$TTL 604800
@
IN
SOA
localhost. root.localhost. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
IN
1.0.0 IN
NS
PTR
localhost.
localhost.
/etc/hosts
No exemplo abaixo o nome de host cache1 corresponde ao IP 192.168.1.102 e vice-versa.
/etc/hosts
127.0.0.1
localhost localhost.localdomain cache1
192.168.1.102 cache1.dominio.com.br cache1
/etc/hostname
Neste arquivo definido o nome do computador.
cache1
/etc/resolv.conf
Neste arquivo voc especificar os endereos IP de DNS e o nome do domnio para nosso
domnio dominio.com.br.
# /etc/resolv.conf
search dominio.com.br
nameserver 127.0.0.1
nameserver 192.168.1.100 # IP do servidor mestre
21
Para isso utilizado um recurso no Linux chamado de IP Aliasing, onde permite atribuir
vrios endereos IP na mesma placa de rede.
22
23
IN
IN
MX
MX
5
10
webmail.dominio1.com.br.
mx1.dominio.com.br.
dominio1.com.br.
IN
A
192.168.1.10
www.dominio1.com.br.
IN
A
192.168.1.10
ftp.dominio1.com.br.
IN
A
192.168.1.10
webmail.dominio1.com.br.
IN
A
192.168.1.10
Crie o arquivo /var/cache/bind/db.dominio2.com.br
// var/cache/bind/db.dominio2.com.br
$TTL 604800
@
IN
SOA
dominio2.com.br.
root.dominio2.com.br. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
;
@
IN
NS
dns1.dominio.com.br.
@
IN
NS
dns2.dominio.com.br.
@
@
IN
IN
MX
MX
5
10
webmail.dominio2.com.br.
mx1.dominio.com.br.
www
IN
A
192.168.1.11
ftp
IN
A
192.168.1.11
webmail
IN
A
192.168.1.11
Edite o arquivo de zona reversa /var/cache/bind/db.1.168.192 e adicione as seguintes
24
25
$ ping www.dominio1.com.br
PING www.dominio1.com.br (192.168.1.10) 56(84) bytes of data.
64 bytes from dns1.local (192.168.1.10): icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from dns1.local (192.168.1.10): icmp_seq=2 ttl=64 time=0.041 ms
$ ping www.dominio2.com.br
PING www.dominio2.com.br (192.168.1.11) 56(84) bytes of data.
64 bytes from dns1.local (192.168.1.11): icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from dns1.local (192.168.1.11): icmp_seq=2 ttl=64 time=0.042 ms
26