Você está na página 1de 26

Administrao de redes

Servidor de nomes DNS


O servidor de nomes DNS um servio que faz a traduo de endereos IP (200.xxx.xxx.xxx)
para nome de domnios como linuxbrasil.org.br, google.com.br etc e vice-versa. O programa
usado no Linux / Unix o Bind que iniciou com a verso 4 depois 8, 9 e atualmente disponvel
na verso 9.4.2 e o servio (chamado de daemon) que responde pelas requisies de nomes
de domnios o servio named.

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

# apt-get install bind9

# yum install bind

Servidor mestre (master) - o servidor principal (servidor primrio) onde est


armazenado em arquivos de configurao local todas as configuraes de nomes de
domnios com autoridade mxima para consultas de um domnio.
Servidor escravo (slave) - tambm chamado de servidor secundrio com autoridade
para responder consultas de nomes de domnio caso o servidor mestre saia do ar, no
servidor escravo feito uma transferncia do banco de dados de arquivos de nomes de

domnios do servidor mestre mantendo uma copia local do servidor mestre,


essa transferncia chamada de zona de transferncia.
Servidor cache (chaching) - um servidor cache um servidor que no tem
autoridade de respostas de domnios e tem apenas instalado e executado o servio
named, com as respostas das consultas de domnios atravs de servidores mestres e
escravos remotos.
Dependendo da quantidade de domnios ou do domnio necessrio para as requisies de
consultas DNS apenas um servidor mestre (primrio) ou um servidor mestre(primrio) e um
ou mais escravo(s) (secundrio).

Para aumentar e desempenho e confiabilidade caso algum servidor saia fora do ar


necessrio colocar dois ou mais servidores mestres e escravos e um servidor cache em cada
rede ou sub-rede local para atender e armazenar as pesquisas de nomes de domnios.

Arquivos de configurao do named


Para uma configurao do named so necessrio os seguintes arquivos: arquivo de nomes de
hosts (localhost), arquivos dos servidores root(raz) (db.root no Debian e named.ca no
Fedora e Red Hat) e o arquivo do named (named.conf).

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/ .

localhost - (/etc/hosts) - arquivo que contm de consulta de dominio local


(localhost) e nome do computador (hostname).

hint Red Hat / Fedora(/etc/named.ca) e


Debian
(/etc/bind/db.root)- armazena os nomes dos servidores root (raiz) da internet.

named Red Hat / Fedora(/etc/named.conf) e


Debian
(/etc/bind/named.conf) - arquivo de configurao principal do named onde fica
armazenado as informaes dos nomes dos domnios podendo ser locais ou remotos.
Abaixo seguem os arquivos de zonas e zonas reversas onde so armazenados os nomes dos
domnios, sendo necessrios apenas no servidor mestre(primrio).
arquivos de zona - o arquivo onde fica armazenado as informaes dos domnios e
nomes dos hosts apontando para os endereos IP, geralmente armazenado
formato dominio.zone. (Ex : dns1.dominio.com.br => 200.000.000.000).
arquivos de zona reversa - o inverso dos arquivos de zona aponta endereos IP
para nome de hosts, geralmente armazenado formato dominio.rev. (Ex :
=> 200.000.000.000 => dns1.dominio.com.br ).

/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.

named.ca - representado por um

/etc/bind/db.local e
local localhost na diretiva zone.

named.local - representado pela zona

/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

Anexa um arquivo a named.conf (como chaves, opes e etc) sendo


legiveis apenas pelo usurio do named

options

Configura opes globais de configurao

server

Especifica opes por servidor

lwres

Configura o servidor DNS como um resolvedor leve

key

Define uma chave de autnticao

acl

Define listas de controle de acesso

zone

Define uma zona de registros

trusted-keys Utiliza chaves preconfiguradas


controls

Especifica o canal de comunicao para controlar servidores de nomes


com ndc

logging

Define categorias de registros e seus destinos

view

Especifica uma viso de opes de nomes de domnio

/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

Neste tipo de arquivo contm as configuraes de zona do DNS no formato de Registros de


Recursos Padro (RRs) separados por espaos ou tabulaes e podem conter caracteres
especiais exibidos na tabela abaixo. Sua sintaxe :

Caractere

Significado

pe um comentrio na linha

especifica o nome de domnio atual

()

Permite que seja inserido dados em varias linhas como data do


serial, atualizao, expirao e etc

Este caractere chamado de coringa usado apenas para o campo nome

nome

TTL

classe

tipo

dados

Campo nome - onde especifica a identidade (geralmente pode ser um computador(host)


ou um domnio) que o registro especifica. O nome pode ser relativo ou absoluto:
Absoluto - terminam sempre com um ponto no final ( . ) e o nome de domnio e
completo. (no esquea de colocar o ponto " . ") Por exemplo ( dns1.dominio.com.br.) repare um ponto no final aps o br.
Relativo - a falta de um ponto no final onde um erro cometido com freqncia,
implica em um nome relativo por exemplo ( webmail.dominio.com.br ), isso resultaria
em webmail.dominio.com.br.dominio.com.br. anexando ao domnio
principal .dominio.com.br

Campo TTL(Time to Live - Tempo de vida) - especifica o tempo em segundos que os


dados desse registro possa ser colocado em cache e considerado vlido. Seu valor padro e
especificado pela diretiva $TTL no incio do arquivo de dados da zona. Caso no seja
especificado nenhum valor utilizado o valor padro do registro SOA.
Campo classe - especifica o tipo de rede e so trs valores:
IN - servidores de Internet (usaremos somente este)
HS - servidores de Hesiod
CH - servidores de ChaosNet
Campo tipo - este campo especifica o tipo de registro DNS e seus principais tipos so
exibidos na tabela abaixo:
Tipo

Opes
SOA

Descrio

Especifica a localizao do nome de domnio atual

Serial

Serve para sincronizar servidores escravos com servidores


mestres e para avisar os servidores escravos quando o registro
SOA no servidor mestre atualizado. Se o serial do servidor
mestre(20080315001)(15/03/2008) for maior que o serial
do escravo(20080312001)(12/03/2008) ento ser feito a
transferncia de zona, caso contrrio apenas mantm um
backup e no faz a transferncia de zona. Repare que 001
indica que foi a primeira mudana

Refresh

Tempo usado para o servidor escravo fazer a comparao do


serial com o servidor mestre.

Retry

Se o servidor mestre sair do ar, o servidor escravo ir


seqencialmente tentar restabelecer a conexo com servidor
mestre

Expire

Tempo de vida do banco de dados de um domnio no servidor


escravo, se no for realizado uma conexo com o servidor
mestre nesse tempo, o banco de dados de nomes de domnios
ficar desatualizado podendo at interromper a resoluo de
nomes de domnios (DNS).

TTL

(Time to Live - Tempo de vida) o tempo de resposta usado


para resolver um nome de domnio em um servidor

SOA

Define uma zona DNS definindo a autoridade dos dados para


esse domnio

NS

Servidor de nomes - identifica os servidores de zonas onde tem


autoridade para delegar sobre domnios e subdomnios

Endereo IPV4 usado converter nome de domnios


em endereos IP(Ex: www.dominio.com.br. <=> 192.168.0.10)

Zona

Bsicos

AAAA

Endereo IPV6 estava obsoleto mas agora est sendo utilizado

A6

Endereo IPV6 converte endereo de nome IPV6

PTR

Apontador usado para converter endereos IP em nomes de


domnios (dns reverso). (Ex: 192.168.0.10 <=>
www.dominio.com.br.)

DNAME Redirecionador para consultas IPV6 reversas

Segurana

Opcionais

MX

Especifica os servidores de E-mail

KEY

Especifica a chave pblica para um nome e domnio

NXT

(Next - Prximo) usado com DNSSEC para respostas negativas

SIG

Especifica a zona com assinatura autnticada

CNAME

(Nome cannico - Alias ou Apelido) especifica um apelido ou


nome para um computador host

LOC

Especifica a localizao geogrfica e extenso

SRV

Especifica a localizao de servios mais conhecidos

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

Aps as alteraes reinicie a rede

/etc/init.d/networking restart

/sbin/service network 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

Configurando um servidor master


Neste exemplo de configurao o computador dns1.dominio.com.br ser o servidor master
chamado de 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.

* no esquea do ponto ( . ) depois no final de dn1.dominio.com.br.


e root.dns1.dominio.com.br. por que ocorrer erro.

// 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

Aps as alteraes nos arquivos de zona reinicie o named


# /etc/init.d/bind9 stop
# /etc/init.d/bind9 start

Agora faa os teste com ping, named-checkconf, named-checkzone, host, dig e


nslookup
$ ping dns1.dominio.com.br
PING dns1.dominio.com.br (192.168.1.100) 56(84) bytes of data.
64 bytes from dns1.dominio.com.br (192.168.1.100): icmp_seq=1 ttl=64 time=0.050 ms

$ 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

# dig -t ANY dominio.com.br


;;
;;
;;
;;

global options: printcmd


Got answer:
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56566
flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 2

;; 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

dn1.dominio.com.br. root.dns1.dominio.com.br. 1 604800


dns1.dominio.com.br.
5 mx1.dominio.com.br.

192.168.1.100
192.168.1.101

Query time: 2 msec


SERVER: 127.0.0.1#53(127.0.0.1)
WHEN: Tue Dec 4 21:54:32 2007
MSG SIZE rcvd: 149

# 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

Configurando um servidor escravo

16

Neste exemplo de configurao o computador slave1.dominio.com.br ser o servidor slave


(escravo), ou seja, servidor secundrio para responder pelas consultas de nomes de domnios
caso o servidor master (primrio) saia fora do ar.
Arquivos de configurao
Hostname

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

Configurando um servidor cache


Quando instalado o Bind ele j vem configurado para atuar como somente cache para
guardar as consultas das respostas, no nosso exemplo usaremos um ou mais servidores
cache na nossa rede em conjunto com um ou mais servidores master (primrio) ou um ou
mais servidores slaves (secundrios).
Arquivos de configurao

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

Aps as alteraes nos arquivos de zona reinicie o named


# /etc/init.d/bind9 stop
# /etc/init.d/bind9 start

Configurao de dominios virtuais

Para a configurao de domnios virtuais no mesmo servidor para a hospedagem de um site


web, necessrio que o servidor DNS esteja configurado e respondendo por requisies de
um determinado nome de domnio atrs de um firewall ou roteador utilizando NAT (veja a
aula de configurao do roteador NAT).

Para isso utilizado um recurso no Linux chamado de IP Aliasing, onde permite atribuir
vrios endereos IP na mesma placa de rede.

Neste exemplo iremos utilizar os endereos IP virtuais 192.168.1.10 e 192.168.1.11 para


os domnios virtuais dominio1.com.br e dominio2.com.br.
Configurao do servidor master DNS1
Crie os endereos IP virtuais criando o script abaixo em /etc/init.d
# /etc/init.d/rc.alias
echo "configurando IP Aliasing"
/sbin/ifconfig eth0:0 192.168.1.10 netmask 255.255.255.0
/sbin/ifconfig eth0:1 192.168.1.11 netmask 255.255.255.0
/sbin/route add -host 192.168.1.10 dev eth0:0
/sbin/route add -host 192.168.1.11 dev eth0:1
Mude as permisses do arquivo tornando-o executvel
# chmod +x /etc/init.d/rc.alias
Execute o script e repare o endereo de hardware 00:90:F5:63:33:EE da placa de rede eth0

22

o mesmo das interfaces virtuais eth0:0 e eth0:1.


# /etc/init.d/rc.alias
eth0
Encapsulamento do Link: Ethernet Endereo de HW 00:90:F5:63:33:EE
inet end.: 192.168.1.100 Bcast:192.168.1.255 Masc:255.255.255.0
endereo inet6: fe80::290:f5ff:fe63:33ee/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:2656 errors:0 dropped:0 overruns:0 frame:0
TX packets:2671 errors:0 dropped:0 overruns:0 carrier:0
colises:0 txqueuelen:1000
RX bytes:287927 (281.1 KiB) TX bytes:1262904 (1.2 MiB)
IRQ:50 Endereo de E/S:0x4800
eth0:0
Encapsulamento do Link: Ethernet Endereo de HW 00:90:F5:63:33:EE
inet end.: 192.168.1.10 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:50 Endereo de E/S:0x4800
eth0:1
Encapsulamento do Link: Ethernet Endereo de HW 00:90:F5:63:33:EE
inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:50 Endereo de E/S:0x4800
Adicione o script na inicializao do sistema no final do arquivo /etc/rc.local
# /etc/rc.local
/etc/init.d/rc.alias
Edite o arquivo named.conf e adicione as seguintes linhas referentes aos domnios
virtuais dominio1.com.br e dominio2.com.br
// /etc/bind/named.conf
// aqui criaremos as zonas para os domnios dominio1.com.br e
dominio2.com.br
zone "dominio1.com.br" {
type master;
file "/var/cache/bind/db.dominio1.com.br";
};
zone "dominio2.com.br" {
type master;
file "/var/cache/bind/db.dominio2.com.br";
};

23

Crie o arquivo /var/cache/bind/db.dominio1.com.br


// var/cache/bind/db.dominio1.com.br
$TTL 604800
@
IN
SOA
dominio1.com.br.
root.dominio1.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.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

linhas referentes aos domnios virtuais dominio1.com.br e dominio2.com.br


// 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.
@
IN
NS
dns2.dominio.com.br.
; dominio1.com.br
10
IN
PTR
dominio1.com.br.
10
IN
PTR
www.dominio1.com.br.
10
IN
PTR
ftp.dominio1.com.br.
10
IN
PTR
webmail.dominio1.com.br.
; dominio2.com.br
11
IN
PTR
dominio2.com.br.
11
IN
PTR
www.dominio2.com.br.
11
IN
PTR
ftp.dominio2.com.br.
11
IN
PTR
webmail.dominio2.com.br.
Reinicie o bind
# /etc/init.d/bind9 restart

Configurao do servidor slave DNS2


O servidor DNS2 ser configurado como slave, para isso edite o arquivo named.conf e
adicione as seguintes linhas referentes aos domnios virtuais dominio1.com.br e
dominio2.com.br
// /etc/bind/named.conf
// 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
};

25

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
};
// aqui criaremos as zonas para os domnios dominio1.com.br e
dominio2.com.br
zone "dominio1.com.br" {
type slave; // tipo slave
file "/var/cache/bind/db.dominio1.com.br";
masters { 192.168.1.100; } ;
};
zone "dominio2.com.br" {
type master;
file "/var/cache/bind/db.dominio2.com.br";
masters { 192.168.1.100; } ;
};
Reinicie o bind e teste com comandos ping, host, dig e nslookup
# /etc/init.d/bind9 restart

$ 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

Você também pode gostar