Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
Areas: Principal | Apache | DNS | FreeSWAN | giFT | LDAP | Mutt | Postfix | Sincronia | Vim | VNC
1. Objetivo
Quando falamos de DNS, o assunto pode se estender por horas e horas, visto que a especificao do protocolo ampla e complexa em seus
muitos detalhes.
A inteno hoje que voc entenda o bsico da estrutura de funcionamento do seu DNS para poder "se virar" com seus probleminhas,
entender porque o Terra de repente passou a no gostar mais dos seus emails, porque seu amigo l da Conchichina te manda um email e
demora bastante pra chegar at voc, ou que voc possa dar respostas altura ao pessoal da Embratel que lhe manda criar uma zona de
reverso com um nome, no mnimo, bizarro.
21/07/2014 15:39
2 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
Existem diversos tipos diferentes de registros DNS disponveis. A lista a seguir no pretende, de maneira alguma, ser extensa ou exaustiva,
mas antes mostrar os mais comuns que vai encontrar por ai.
A - Address; especifica um endereo IP direto
AAAA - Address IPv6; especifica um endereo IPv6
NS - NameServer; especifica servidores DNS para o domnio ou subdomnio
CNAME - Canonical NAME; um apelido para outro hostname
MX - Mail eXchanger; o servidor de email
PTR - PoinTeR; aponta o hostname/domnio reverso a partir de um endereo IP
SOA - Start Of Authority; indica o responsvel por respostas autoritativas por um domnio
TXT - TeXT; permite incluir um texto curto em um hostname; usado para implementar o SPF
SRV - SeRVice; permite definir servios disponveis em um domnio
Estes so os principais, e que voc provavelmente vai achar por a. Vamos agora considerar alguns deles que requerem carinho especial dos
administradores.
IN MX 10 mail.dominio.com.br
IN MX 50 mail2.dominio.com.br
O "." se refere ao domnio imediatamente superior, ou seja, a zona atual (no se trata de um subdomnio). O nmero define a preferncia do
MX. Quanto menor o nmero, maior sua preferncia ou prioridade de receber emails.
Note que os hostnames mail.dominio.com.br e mail2.dominio.com.br DEVEM ser registros "A", jamais "CNAMEs" nem endereos IP.
Embora esses tipos de registros possam funcionar, no esto de acordo com as definies de melhores prticas de DNS publicadas em RFCs,
e iro causar dores de cabea ao administrador responsvel, uma vez que haver atrasos e falhas de entrega de email para seu domnio.
J os registros PTR devem estar colocados debaixo de uma zona especfica chamada "in-addr.arpa". Vamos considerar essa zona especial
mais adiante.
O registro PTR deve ser colocado com os octetos do endereo IP invertidos, e o hostname indicado PRECISA existir e apontar para o mesmo
endereo IP. Por exemplo, se tivermos o endereo 201.202.203.204, seu registro PTR seria: -- 204.203.202.201 IN PTR
meureverso.sardine.com.br
E, obrigatoriamente, para que seu registro PTR seja vlido e funcional, o host meureverso.sardine.com.br PRECISA apontar de volta para
201.202.203.204.
Para consultarmos se nosso reverso est ok, basta rodarmos o seguinte comando:
dig -t ptr 204.203.202.201.in-addr.arpa
No boa idia ter mltiplos destinos para um mesmo PTR, embora isso seja permitido. Tal comportamento pode causar confuso nas
aplicaes tentando consultar essa informao.
21/07/2014 15:39
3 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
SRV
5 0 5269 jabber.grupogeo.com.br.
O servio chama-se "jabber", protocolo tcp, 3600 segundos de TTL, Prioridade 5, Peso 0 (para registros com mesma prioridade), porta 5269,
hostname jabber.grupogeo.com.br.
Dentro dos SRVs, pode-se definir diversos servidores para o mesmo servio, com prioridades e portas no-convencionais.
Os servios que usam registros SRV mais conhecidos so o protocolo SIP de telefonia IP, o protocolo Jabber de Instant Messaging e, segundo
dizem as ms lnguas, o Active Directory daquele outro sistema ali.
IN
NS ns1-sp.empresa.com.br.
Vamos entender agora um pouquinho mais dos Root Servers e do seu papel como "pais" da Internet
172724
172724
172724
172724
172724
IN
IN
IN
IN
IN
NS
NS
NS
NS
NS
NS
d.dns.br.
e.dns.br.
a.dns.br.
b.dns.br.
c.dns.br.
Esses servers tambem contem informaes de como chegar at os referidos DNS indicados.
thefallen@Sardine:~$ dig a.dns.br @c.root-servers.net
(...)
;; QUESTION SECTION:
;a.dns.br.
IN
A
;; ADDITIONAL SECTION:
21/07/2014 15:39
4 de 9
a.dns.br.
B.dns.br.
C.dns.br.
D.dns.br.
E.dns.br.
a.dns.br.
(...)
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
172800
172800
172800
172800
172800
172800
IN
IN
IN
IN
IN
IN
A
A
A
A
A
AAAA
200.160.0.10
200.209.30.5
200.130.31.5
204.152.184.70
139.91.1.20
2001:12ff::10
Esses registros, que no fazem parte da zona que estamos consultando diretamente, so chamados de Glue Records, ou registros de "cola".
Eles fazem com que a informao e o caminho de pesquisa fique coeso no DNS. Imagine que eles no tivessem essa informao. Como
descobriramos quem o a.dns.br?
172800
172800
172800
IN
IN
IN
NS
AAAA
A
A.DNS.br.
2001:12ff::10
200.160.0.10
br.
B.DNS.br.
172800
172800
IN
IN
NS
A
B.DNS.br.
200.209.30.5
br.
C.DNS.br.
172800
172800
IN
IN
NS
A
C.DNS.br.
200.130.31.5
br.
D.DNS.br.
172800
172800
IN
IN
NS
A
D.DNS.br.
204.152.184.70
br.
E.DNS.br.
172800
172800
IN
IN
NS
A
E.DNS.br.
139.91.1.20
Uma peculiaridade do BIND que ele no depende do arquivo de Hints para o seu funcionamento (depois do boot). Quando ele iniciado,
ele conecta-se a um dos Root Servers especificados no arquivo de Hints e baixa a lista atualizada para a memria.
4.4. Recurso
Imagine esta situao: voc pergunta a um amigo seu "sabe aonde est o Joo?" e ele lhe responde "est na casa do Pedro". Mas aonde ser
que fica a casa do Pedro? Voc novamente teria que perguntar ao seu amigo como chegar na casa desta pessoa. Se este que lhe passa as
informaes estivesse um pouco mais disposto, ele teria lhe respondido da primeira vez "est na casa do Pedro, ali na Rua Endereo IP,
nmero 200.200.200.200"
Transportando isto para nossa situao de DNS, um DNS pode lhe responder uma consulta sem lhe fornecer a resposta completa. Pode lhe
passar, por exemplo, s o "apelido" de um hostname sem resolv-lo para voc. Por exemplo, tenho um domnio chamado "recurs.com.br", e
seu www.recurs.com.br um "apelido" (CNAME ou CANONICAL NAME) para www.recursivecorp.com. Uma vez que o destino do apelido
no faz parte de meu domnio recurs.com.br, meu DNS estaria desobrigado a resolv-lo tambm, j que isto tarefa sua e no dele. Com a
recurso habilitada, o prprio DNS que resolve o www.recurs.com.br j lhe mandaria junto na MESMA resposta de DNS o endereo IP de
www.recursivecorp.com, evitando que voc tivesse que fazer uma segunda consulta DNS.
Parece bom, no ? Agora imagine se eu fizesse uma consulta em que o resultado passaria por inmeros CNAMEs/apelidos, pulando de um
domnio para o outro. Consegue imaginar o trfego intil que eu estaria causando em meu servidor DNS?
Recurso um recurso excelente, mas que deve ser usado com cautela em servidores expostos na Internet.
21/07/2014 15:39
5 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
Algo muito comum de acontecer fazer alterao de servidores de email e ficar dias sem receber email das empresas parceiras, fornecedoras
ou clientes. Como so pessoas que esto sempre em contato com voc, muito provavelmente esto com seus registros DNS em cache nos
respectivos servidores de nomes. Valores ideais mudam de situao para situao, de caso para caso; uma corporao pode necessitar do TTL
em 5 minutos, outra pode t-lo em 1 hora, outra usa 1 dia, ainda outra, 1 semana.
Note a seqencia: consultamos os Root Servers, eles nos encaminharam para os servidores dns.br, estes nos remeteram aos 2 name servers do
UOL, eliot e borges, e estes nos resolveram o hostname www.uol.com.br.
5. Zonas DNS
Existem algumas zonas e funes especiais dentro da hierarquia de DNS alm das consultas "diretas": a pesquisa de reversos e as
transferncias de zona.
5.1. in-addr.arpa
Esta zona especial define os reversos. Normalmente, as delegaes acontecem em ranges de IP /24, /16 ou /8. No DNS ficaria assim:
200.in-addr.arpa.
168.200.in-addr.arpa.
86400
86400
IN
IN
NS
NS
NS.LACNIC.NET.
B.DNS.BR.
Mas e quando no se pode delegar todo esse range? Quando se precisa de intervalos menores? A comeam as dores de cabea dos
administradores e os acontecimentos bizarros com os provedores. Cada um resolve fazer de um jeito, normalmente usando uma macro dentro
do BIND, para fazer essa delegao.
A maioria dos provedores costuma delegar dessas 2 maneiras. Alguns outros, como a Embratel e outros grandes provedores de servio, por
21/07/2014 15:39
6 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
exemplo, preferem que voc crie uma zona com algum nome esquisito, como esses, e eles fazem transferncia para o servidor deles e
incorporam na zona DNS da sub-rede, ao invs de lhe delegar isso.
6. RBLs
RBLs (Real-time Black List - criadas em 1997 por Paul Vixie no projeto MAPS) so zonas DNS especiais usadas para publicar listas negras
de endereos IPs em Tempo Real. Durante muito tempo foram nossa nica arma contra sistemas mal-configurados (os Open Relays) ou
contra spammers. A tcnica consiste em, de alguma forma, consultar uma lista que diz se o endereo IP pode ou no acessar o servio.
A forma mais comum de RBL sao as DNSRBL (DNS RBL), onde a consulta eh feita via DNS. Por exemplo, supondo que estamos usando a
RBL "relays.ordb.org" para saber se o IP 127.0.0.2 esta bloqueado ou nao. O endereo IP deve ser invertido para a consulta. Isso facilita
termos no servidor DNS algo do tipo *.0.0.127. Fariamos uma consulta assim:
$ host -t A 2.0.0.127.relays.ordb.org
2.0.0.127.relays.ordb.org has address 127.0.0.2
Se o comando retornar um endereo IP, isso significa que o host esta bloqueado. Adicionalmente, pode haver tambem um registro TXT que
informa o motivo do bloqueio. Por exemplo:
$ host -t txt 2.0.0.127.relays.ordb.org
2.0.0.127.relays.ordb.org text "Listed by ORDB - for testing purposes only"
7.1. MX
Pode-se fazer balanceamento de MX colocando diversos MX com a mesma prioridade. Se tiverem prioridades diferentes, o procedimento
padro tentar o de nmero menor, se falhar, o imediatamente acima dele, e assim por diante. Quando todos tem a mesma prioridade, eles
tero a carga dividida entre si. Pode acontecer de TODOS os hosts que se conectam resolverem usar o mx1 e ignorarem os outros, mas a
tendncia que fiquem iguais.
thefallen@Sardine:~$ dig -t mx hotmail.com
(...)
;; ANSWER SECTION:
hotmail.com.
3600
IN
MX
hotmail.com.
3600
IN
MX
hotmail.com.
3600
IN
MX
hotmail.com.
3600
IN
MX
(...)
5
5
5
5
mx4.hotmail.com.
mx1.hotmail.com.
mx2.hotmail.com.
mx3.hotmail.com.
21/07/2014 15:39
7 de 9
mx4.hotmail.com.
mx4.hotmail.com.
mx4.hotmail.com.
mx4.hotmail.com.
(...)
3528
3528
3528
3528
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
IN
IN
IN
IN
A
A
A
A
65.54.167.230
65.54.190.179
65.54.190.230
65.54.253.230
O mesmo host mx4.hotmail.com tem diversas definies de endereos IP, e a cada consulta eles podem se apresentar em ordem diferente.
9.1. Macros
O BIND vem com diversas macros pra facilitar a manuteno das zonas. A mais conhecidas so a $GENERATE e $INCLUDE.
Como vimos nos exemplos acima, a $GENERATE cria hosts em massa, ao passo que a $INCLUDE permite incluir um arquivo como se fosse
parte da zona.
9.2. ACLs
Podemos definir acls para facilitar nossa vida na configurao das zonas, pra no precisarmos repetir sequencias de IPs, por exemplo.
acl "intranet" {
10.0.0.0/8;
192.168.0.0/16;
};
acl "internet" {
200.200.200.200;
100.100.100.100;
21/07/2014 15:39
8 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
};
9.3. Views
Podem-se definir "views" dentro do BIND, ou seja, se voc estiver consultando a zona dominio.com.br a partir do IP 192.168.0.1, voc ver
as informaes do arquivo em disco /var/lib/named/intranet/dominio.com.br.zone, e se voc estiver vindo do ip 200.200.200.200, vai
enxergar as informaes do arquivo /var/lib/named/internet/dominio.com.br.zone.
O inconveniente das Views do BIND que, quando se usa Views, TODAS as suas zonas tem que estar presentes em todas as views. Por
exemplo, no exemplo acima, se eu tivesse ainda a zona "empresa.net" (que no necessita de Views) junto com o dominio "dominio.com.br",
eu obrigatoriamente teria que coloc-la em ambas as Views tambm (se a quisesse publicada para ambas as origens).
Isto bastante til quando voc tem informaes na zona de sua empresa que no quer ver publicada para fora da empresa, ou para que seus
usurios acessem o servidor WWW direto na rede interna/DMZ sem ter que passar pelo firewall/proxy.
Um exemplo:
# MACRO/ACL
acl "intranet" {
10.0.0.0/8;
192.168.0.0/16;
};
view "internal" {
match-clients { "intranet"; };
recursion yes;
(...)
Zonas aqui
(...)
};
view "external" {
match-clients { any; };
recursion yes;
(...)
Zonas aqui
(...)
};
9.5. Logs
Podemos solicitar ao BIND que gere log de eventos especficos ou que gere estatsticas de consultas das zonas DNS. Veja o exemplo abaixo
options {
21/07/2014 15:39
9 de 9
http://www.unitednerds.org/thefallen/docs/index.php?area=DNS&tuto...
directory "/var/named";
pid-file "named.pid";
statistics-file "/var/log/statistics.log";
};
logging {
category lame-servers { null; };
category cname { null; };
channel update_debug {
file "/var/log/named-update.log";
severity
debug 5;
print-time
yes;
print-severity yes;
};
channel security_info {
file "/var/log/named-auth.log";
severity
info;
print-time
yes;
print-severity yes;
};
channel ztransfer {
file "/var/log/named-xfer.log";
print-time
yes;
print-severity yes;
};
category update { update_debug; };
category security { security_info; };
category xfer-in { ztransfer; };
category xfer-out { ztransfer; };
};
zone "grupogeo.com.br" {
type master;
file "internal/grupogeo.zone";
allow-transfer { "nameservers"; key XFER; };
zone-statistics yes;
};
10. Bibliografia
BIND v9 Administrator Reference Manual (pdf disponvel no site do ISC)
http://en.wikipedia.org/wiki/Dns
A menos que especificado de outra maneira, todos os documentos e textos sao protegidos sob licenca BSD - Veja a licenca para mais detalhes
Leia tambem sobre o motivo de uso de licencas em documentacao.
21/07/2014 15:39