Você está na página 1de 135

Tutorial DNS

3° PTT Fórum

David Robert Camargo de Campos <david@registro.br>


Rafael Dantas Justo <rafael@registro.br>
Wilson Rogério Lopes <wilson@registro.br>

Registro.br

Dezembro de 2009

1 / 135
Objetivos

Entender os conceitos de DNS


Configurar servidores autoritativos
Configurar servidores recursivos
Entender as diferenças entre DNS e DNSSEC
Configurar corretamente o firewall
Testar performance dos servidores
Planejar escalabilidade de recursivos
Monitorar os servidores

2 / 135
Cronograma

1 DNS 5 DNSSEC
Conceitos Vulnerabilidades do DNS
Arquitetura Conceito
Configuração do Autoritativo
2 Servidores DNS Autoritativos
Configuração do Recursivo
Cenário
Arquivos de Zona 6 Firewalls
Configuração BIND DNS
Configuração NSD EDNS0
Configuração
3 Servidores DNS Recursivos
Cenário 7 Testes de Performance
Configuração BIND Recursivo
Servidores DNS Recursivos abertos Autoritativo
4 Recursivo e Autoritativo 8 Escalabilidade de Recursivos
9 Monitoramento
Autoritativo
Recursivo

3 / 135
Parte I

Conceitos DNS

4 / 135
DNS - Domain Name System

O Sistema de Nomes de Domı́nio é um banco de dados distribuı́do. Isso


permite um controle local dos segmentos do banco de dados global,
embora os dados em cada segmento estejam disponı́veis em toda a rede
através de um esquema cliente-servidor.
- Arquitetura hierárquica, dados dispostos em uma árvore invertida
- Distribuı́da eficientemente, sistema descentralizado e com cache
- O principal propósito é a resolução de nomes de domı́nio em
endereços IP e vice-versa

exemplo.foo.eng.br ←→ 200.160.10.251
www.cgi.br ←→ 200.160.4.2
www.registro.br ←→ 2001:12ff:0:2::3

5 / 135
Hierarquia

DNS UNIX
database "." filesystem /

br usr

eng local

foo bin

tutorial imake

tutorial.foo.eng.br /usr/local/bin/imake

6 / 135
Domı́nio Vs Zona

"." Delegação

com br org
Zona br

eng nom gov Delegação


silva
Zona eng.br
Zona nom.br
Zona gov.br Indica uma transferência
Zona foo.eng.br

de responsabilidade na
foo joao fazenda
administração apartir
daquele ponto na árvore
tutorial DNS
Zona tutorial.foo.eng.br Zona joao.silva.nom.br Zona fazenda.gov.br

Domínio br

7 / 135
Resource Records
Os dados associados com os nomes de domı́nio estão contidos em
Resource Records ou RRs (Registro de Recursos)
São divididos em classes e tipos
Atualmente existe uma grande variedade de tipos
O conjunto de resource records com o mesmo nome de domı́nio,
classe e tipo é denominado RRset

Alguns Tipos Comuns de Records

SOA Indica onde começa a autoridade a zona


NS Indica um servidor de nomes para a zona
A Mapeamento de nome a endereço (IPv4)

AAAA Mapeamento de nome a endereço (IPv6)

MX Indica um mail exchanger para um nome (servidor de email)

CNAME Mapeia um nome alternativo (apelido)

PTR Mapeamento de endereço a nome


8 / 135
Tipos de servidores

Servidor Recursivo
Ao receber requisições de resolução de nomes, faz requisições para os
servidores autoritativos e conforme a resposta recebida dos mesmos
continua a realizar requisições para outros servidores autoritativos até
obter a resposta satisfatória

Servidor Autoritativo
Ao receber requisições de resolução de nome, responde um endereço caso
possua, uma referência caso conheça o caminho da resolução ou uma
negação caso não conheça

9 / 135
Exemplo de requisição de endereço

Supondo que o
cache está vazio ou
sem informações de
br, eng.br,
foo.eng.br,
exemplo.foo.eng.br

Resolver
Serviço localizado
no cliente que tem
como
responsabilidade
resolver as
requisições DNS
para diversos
aplicativos
10 / 135
Exemplo de requisição de endereço

Supondo que o
cache está vazio ou
sem informações de
br, eng.br,
foo.eng.br,
exemplo.foo.eng.br

11 / 135
Exemplo de requisição de endereço

12 / 135
Exemplo de requisição de endereço

13 / 135
Exemplo de requisição de endereço

14 / 135
Exemplo de requisição de endereço

15 / 135
Exemplo de requisição de endereço

Servidor DNS
Autoritativo "."

r ?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS BR
Recursivo Autoritativo
Referencia servidores foo.eng.br

ENG
ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

n g.b
r?

Servidor DNS FOO


Autoritativo

TUTORIAL

Resolver

16 / 135
Exemplo de requisição de endereço

Servidor DNS
Autoritativo "."

r ?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS BR
Recursivo Autoritativo
Referencia servidores foo.eng.br

ENG
ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

20 n g.b
0.1
60 r?
.10
.25
1

Servidor DNS FOO


Autoritativo

TUTORIAL

Resolver

17 / 135
Exemplo de requisição de endereço

Servidor DNS
Autoritativo "."

r ?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS BR
Recursivo Autoritativo
Referencia servidores foo.eng.br

ENG
ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

20 n g.b
0.1
200.160.10.251

60 r?
.10
.25
1

Servidor DNS FOO


Autoritativo

TUTORIAL

Resolver

18 / 135
Exemplo de requisição de endereço

Servidor DNS
Autoritativo "."

r ?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS BR
Recursivo Autoritativo
Referencia servidores foo.eng.br

ENG
ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

20 n g.b
0.1
200.160.10.251

60 r?
.10
.25
1

Servidor DNS FOO


Autoritativo

TUTORIAL

Resolver

19 / 135
Fluxo de dados

1 Resolver faz consultas no Recursivo


2 Recursivo faz consultas no Master ou Slave
3 Master tem a zona original (via arquivo ou Dynamic Update)
4 Slave recebe a zona do Master (AXFR ou IXFR)

20 / 135
Parte II

Configurando Servidores DNS Autoritativos

21 / 135
Cenário

Organização Foo Engenharia Ltda.


Possui o domı́nio foo.eng.br registrado no Registro.br;
Possui o bloco 200.160.0/24 designado de um provedor;
Possui o bloco 2001:12ff::/32 alocado pelo Registro.br.

Cliente A
Possui o domı́nio a.foo.eng.br delegado pela organização Foo;
Possui o bloco 200.160.0.127/28 designado pela organização Foo.

Cliente B
Possui o domı́nio b.foo.eng.br delegado pela organização Foo;
Possui o bloco 200.160.0.191/26 designado pela organização Foo.

22 / 135
Cenário

Organização Foo Engenharia Ltda.

foo.eng.br

2001:12ff::/32

200.160.0/24

200.160.0.127/28 200.160.0.191/26

a.foo.eng.br b.foo.eng.br

Cliente A Cliente B

23 / 135
Cenário

Alocados Livres

200.160.0.0/25 200.160.0.143/28

200.160.0.127/28 200.160.0.159/27

200.160.0.191/26

200.160.0/24

24 / 135
Organização Foo - Arquivo de zona

db.foo.eng.br
foo.eng.br. 86400 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona


foo.eng.br. 86400 IN NS ns1.foo.eng.br.
foo.eng.br. 86400 IN NS ns2.foo.eng.br.

;; Cliente A
a.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.
a.foo.eng.br. 86400 IN NS ns2.a.foo.eng.br.

;; Cliente B
b.foo.eng.br. 86400 IN NS ns1.b.foo.eng.br.
b.foo.eng.br. 86400 IN NS ns2.b.foo.eng.br.

25 / 135
Organização Foo - Arquivo de zona (continuação...)

db.foo.eng.br
;; Tradução nomes → IPs (GLUEs)
ns1.foo.eng.br. 86400 IN A 200.160.0.1
ns2.foo.eng.br. 86400 IN A 200.160.0.2
ns1.foo.eng.br. 86400 IN AAAA 2001:12ff::1
ns2.foo.eng.br. 86400 IN AAAA 2001:12ff::2

ns1.a.foo.eng.br. 86400 IN A 200.160.0.128


ns2.a.foo.eng.br. 86400 IN A 200.160.0.129
ns1.b.foo.eng.br. 86400 IN A 200.160.0.192
ns2.b.foo.eng.br. 86400 IN A 200.160.0.193

;; Web server
www.foo.eng.br. 86400 IN A 200.160.0.3
www.foo.eng.br. 86400 IN AAAA 2001:12ff::3

26 / 135
Organização Foo - Arquivo de zona reverso IPv4

db.0.160.200.in-addr.arpa
0.160.200.in-addr.arpa. 172800 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona reverso

0.160.200.in-addr.arpa. 172800 IN NS ns1.foo.eng.br.


0.160.200.in-addr.arpa. 172800 IN NS ns2.foo.eng.br.

;; Cliente A (200.160.0.127 → 200.160.0.142 = 200.160.0.127/28)

127/28.0.160.200.in-addr.arpa. 172800 IN NS ns1.a.foo.eng.br.


127/28.0.160.200.in-addr.arpa. 172800 IN NS ns2.a.foo.eng.br.

128.0.160.200.in-addr.arpa. 172800 IN CNAME 128.127/28.0.160.200.in-addr.arpa.


129.0.160.200.in-addr.arpa. 172800 IN CNAME 129.127/28.0.160.200.in-addr.arpa.
...
142.0.160.200.in-addr.arpa. 172800 IN CNAME 142.127/28.0.160.200.in-addr.arpa.

27 / 135
Organização Foo - Arquivo de zona reverso IPv4

db.0.160.200.in-addr.arpa (continuação...)
;; Cliente B (200.160.0.191 → 200.160.0.255 = 200.160.0.191/26)

191/26.0.160.200.in-addr.arpa. 172800 IN NS ns1.b.foo.eng.br.


191/26.0.160.200.in-addr.arpa. 172800 IN NS ns2.b.foo.eng.br.

192.0.160.200.in-addr.arpa. 172800 IN CNAME 192.127/28.0.160.200.in-addr.arpa.


193.0.160.200.in-addr.arpa. 172800 IN CNAME 193.127/28.0.160.200.in-addr.arpa.
...
254.0.160.200.in-addr.arpa. 172800 IN CNAME 254.127/28.0.160.200.in-addr.arpa.

;; Endereços reversos

1.0.160.200.in-addr.arpa. 86400 IN PTR ns1.foo.eng.br.


2.0.160.200.in-addr.arpa. 86400 IN PTR ns2.foo.eng.br.
3.0.160.200.in-addr.arpa. 86400 IN PTR www.foo.eng.br.
...

28 / 135
Organização Foo - Arquivo de zona reverso IPv4

Mas por que é necessário o CNAME?


Porque a RFC 2317 recomenda;
Esta solução não exige alterações nos softwares dos servidores DNS;
Alteração de hosts no reverso dos clientes não implicam em alterações
na zona reverso da organização Foo.

29 / 135
Organização Foo - Arquivo de zona reverso IPv6

db.f.f.2.1.1.0.0.2.ip6.arpa
f.f.2.1.1.0.0.2.ip6.arpa. 86400 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona


f.f.2.1.1.0.0.2.ip6.arpa. 86400 IN NS ns1.foo.eng.br.
f.f.2.1.1.0.0.2.ip6.arpa. 86400 IN NS ns2.foo.eng.br.

$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.2.1.1.0.0.2.ip6.arpa.
1 86400 IN PTR ns1.foo.eng.br.
2 86400 IN PTR ns2.foo.eng.br.
3 86400 IN PTR www.foo.eng.br.

Dificuldade
A inviabilidade de listar todos os reversos dos hosts de um bloco IPv6
gerou diversas discussões. O draft draft-howard-isp-ip6rdns-01 aborda este
tema.

30 / 135
Publicação de Reverso

Informação
Para as delegações informadas diretamente na interface do Registro.br
(/24 ou maior) as publicações das alterações ocorrem a cada 4 horas com
ı́nicio as 2hs.

31 / 135
Cliente A - Arquivo de zona

db.a.foo.eng.br
a.foo.eng.br. 86400 IN SOA ns1.a.foo.eng.br. hostmaster.a.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona


a.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.
a.foo.eng.br. 86400 IN NS ns2.a.foo.eng.br.

;; Tradução nomes → IPs (GLUEs)


ns1.a.foo.eng.br. 86400 IN A 200.160.0.128
ns2.a.foo.eng.br. 86400 IN A 200.160.0.129

;; Web server
www.a.foo.eng.br. 86400 IN A 200.160.0.142

32 / 135
Cliente A - Arquivo de zona reverso

db.127.0.160.200.in-addr.arpa
127/28.0.160.200.in-addr.arpa. 172800 IN SOA ns1.a.foo.eng.br. hostmaster.a.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona reverso

127/28.0.160.200.in-addr.arpa. 172800 IN NS ns1.a.foo.eng.br.


127/28.0.160.200.in-addr.arpa. 172800 IN NS ns2.a.foo.eng.br.

;; Endereços reversos

128.127/28.0.160.200.in-addr.arpa. 172800 IN PTR ns1.a.foo.eng.br.


129.127/28.0.160.200.in-addr.arpa. 172800 IN PTR ns2.a.foo.eng.br.
...
142.127/28.0.160.200.in-addr.arpa. 172800 IN PTR www.a.foo.eng.br.

33 / 135
Cliente B - Arquivo de zona

db.b.foo.eng.br
b.foo.eng.br. 86400 IN SOA ns1.b.foo.eng.br. hostmaster.b.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona


b.foo.eng.br. 86400 IN NS ns1.b.foo.eng.br.
b.foo.eng.br. 86400 IN NS ns2.b.foo.eng.br.

;; Tradução nomes → IPs (GLUEs)


ns1.b.foo.eng.br. 86400 IN A 200.160.0.192
ns2.b.foo.eng.br. 86400 IN A 200.160.0.193

;; Web server
www.b.foo.eng.br. 86400 IN A 200.160.0.254

34 / 135
Cliente B - Arquivo de zona reverso

db.191.0.160.200.in-addr.arpa
191/26.0.160.200.in-addr.arpa. 172800 IN SOA ns1.b.foo.eng.br. hostmaster.b.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum

;; Servidores DNS que respondem por esta zona reverso

191/26.0.160.200.in-addr.arpa. 172800 IN NS ns1.b.foo.eng.br.


191/26.0.160.200.in-addr.arpa. 172800 IN NS ns2.b.foo.eng.br.

;; Endereços reversos

192.191/26.0.160.200.in-addr.arpa. 172800 IN PTR ns1.b.foo.eng.br.


193.191/26.0.160.200.in-addr.arpa. 172800 IN PTR ns2.b.foo.eng.br.
...
254.191/26.0.160.200.in-addr.arpa. 172800 IN PTR www.b.foo.eng.br.

35 / 135
Organização Foo - Arquivo de configuração (BIND)

Gerando chave TSIG


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-foo

named.conf no master (200.160.0.1)


options {
listen-on { 200.160.0.1; };
listen-on-v6 { 2001:12ff::1; };
recursion no;
};

key ‘‘key-foo’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.2 {
keys { key-foo; };
};

server 2001:12ff::2 {
keys { key-foo; };
};

36 / 135
Organização Foo - Arquivo de configuração (BIND)

named.conf no master (200.160.0.1) (continuação...)


zone ‘‘foo.eng.br’’ {
type master;
file ‘‘db.foo.eng.br’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };
};

zone ‘‘0.160.200.in-addr.arpa’’ {
type master;
file ‘‘db.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };
};

zone ‘‘f.f.2.1.1.0.0.2.ip6.arpa’’ {
type master;
file ‘‘db.f.f.2.1.1.0.0.2.ip6.arpa’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };
};

37 / 135
Organização Foo - Arquivo de configuração (BIND)

named.conf no slave (200.160.0.2)


options {
listen-on { 200.160.0.2; };
listen-on-v6 { 2001:12ff::2; };
recursion no;
};

key ‘‘key-foo’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.1 {
keys { key-foo; };
};

server 2001:12ff::1 {
keys { key-foo; };
};

38 / 135
Organização Foo - Arquivo de configuração (BIND)

named.conf no slave (200.160.0.2) (continuação...)


zone ‘‘foo.eng.br’’ {
type slave;
file ‘‘db.foo.eng.br’’;
masters { 200.160.0.1; 2001:12ff::1; };
};

zone ‘‘0.160.200.in-addr.arpa’’ {
type slave;
file ‘‘db.0.160.200.in-addr.arpa’’;
masters { 200.160.0.1; 2001:12ff::1; };
};

zone ‘‘f.f.2.1.1.0.0.2.ip6.arpa’’ {
type slave;
file ‘‘db.f.f.2.1.1.0.0.2.ip6.arpa’’;
masters { 200.160.0.1; 2001:12ff::1; };
};

39 / 135
Cliente A - Arquivo de configuração (BIND)
Gerando chave TSIG
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-a

named.conf no master (200.160.0.128)


options {
listen-on { 200.160.0.128; };
recursion no;
};

key ‘‘key-cliente-a’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.129 {
keys { key-cliente-a; };
};

zone ‘‘a.foo.eng.br’’ {
type master;
file ‘‘db.a.foo.eng.br’’;
allow-transfer { 200.160.0.129; key key-cliente-a; };
};

zone ‘‘127/28.0.160.200.in-addr.arpa’’ {
type master;
file ‘‘db.127.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.129; key key-cliente-a; };
};
40 / 135
Cliente A - Arquivo de configuração (BIND)

named.conf no slave (200.160.0.129)


options {
listen-on { 200.160.0.129; };
recursion no;
};

key ‘‘key-cliente-a’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.128 {
keys { key-cliente-a; };
};

zone ‘‘a.foo.eng.br’’ {
type slave;
file ‘‘db.a.foo.eng.br’’;
masters { 200.160.0.128; };
};

zone ‘‘127/28.0.160.200.in-addr.arpa’’ {
type slave;
file ‘‘db.127.0.160.200.in-addr.arpa’’;
masters { 200.160.0.128; };
};

41 / 135
Cliente B - Arquivo de configuração (BIND)
Gerando chave TSIG
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-b

named.conf no master (200.160.0.192)


options {
listen-on { 200.160.0.192; };
recursion no;
};

key ‘‘key-cliente-b’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.193 {
keys { key-cliente-b; };
};

zone ‘‘b.foo.eng.br’’ {
type master;
file ‘‘db.b.foo.eng.br’’;
allow-transfer { 200.160.0.193; key key-cliente-b; }
};

zone ‘‘191/26.0.160.200.in-addr.arpa’’ {
type master;
file ‘‘db.191.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.193; key key-cliente-b; };
};
42 / 135
Cliente B - Arquivo de configuração (BIND)

named.conf no slave (200.160.0.193)


options {
listen-on { 200.160.0.193; };
recursion no;
};

key ‘‘key-cliente-b’’ {
algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};

server 200.160.0.192 {
keys { key-cliente-b; };
};

zone ‘‘b.foo.eng.br’’ {
type slave;
file ‘‘db.b.foo.eng.br’’;
masters { 200.160.0.192; };
};

zone ‘‘191/26.0.160.200.in-addr.arpa’’ {
type slave;
file ‘‘db.191.0.160.200.in-addr.arpa’’;
masters { 200.160.0.192; };
};

43 / 135
Organização Foo - Arquivo de configuração (NSD)

Gerando chave TSIG - Com uma ferramenta do BIND!


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-foo

nsd.conf no master (200.160.0.1)


key:
name: key-foo
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: foo.eng.br
zonefile: db.foo.eng.br
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo

44 / 135
Organização Foo - Arquivo de configuração (NSD)

nsd.conf no master (200.160.0.1) (continuação...)


zone:
name: 0.160.200.in-addr.arpa
zonefile: db.0.160.200.in-addr.arpa
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo

zone:
name: f.f.2.1.1.0.0.2.ip6.arpa
zonefile: db.f.f.2.1.1.0.0.2.ip6.arpa
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo

Observação
O NSD quando utilizado como master não envia IXFR para os slaves. Mas
caso o NSD seja utilizado como slave, ele entende requisições IXFR.

45 / 135
Organização Foo - Arquivo de configuração (NSD)
nsd.conf no slave (200.160.0.2)
key:
name: key-foo
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: foo.eng.br
zonefile: db.foo.eng.br
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo

zone:
name: 0.160.200.in-addr.arpa
zonefile: db.0.160.200.in-addr.arpa
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo

zone:
name: f.f.2.1.1.0.0.2.ip6.arpa
zonefile: db.f.f.2.1.1.0.0.2.ip6.arpa
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo

46 / 135
Cliente A - Arquivo de configuração (NSD)

Gerando chave TSIG - Com uma ferramenta do BIND!


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-a

nsd.conf no master (200.160.0.128)


key:
name: key-cliente-a
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: a.foo.eng.br
zonefile: db.a.foo.eng.br
notify: 200.160.0.129 NOKEY
provide-xfr: 200.160.0.129 key-cliente-a

zone:
name: 127/28.0.160.200.in-addr.arpa
zonefile: db.127.0.160.200.in-addr.arpa
notify: 200.160.0.129 NOKEY
provide-xfr: 200.160.0.129 key-cliente-a

47 / 135
Cliente A - Arquivo de configuração (NSD)

nsd.conf no slave (200.160.0.129)


key:
name: key-cliente-a
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: a.foo.eng.br
zonefile: db.a.foo.eng.br
allow-notify: 200.160.0.128 NOKEY
request-xfr: 200.160.0.128 key-cliente-a

zone:
name: 127/28.0.160.200.in-addr.arpa
zonefile: db.127.0.160.200.in-addr.arpa
allow-notify: 200.160.0.128 NOKEY
request-xfr: 200.160.0.128 key-cliente-a

48 / 135
Cliente B - Arquivo de configuração (NSD)

Gerando chave TSIG - Com uma ferramenta do BIND!


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-b

nsd.conf no master (200.160.0.192)


key:
name: key-cliente-b
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: b.foo.eng.br
zonefile: db.b.foo.eng.br
notify: 200.160.0.193 NOKEY
provide-xfr: 200.160.0.193 key-cliente-b

zone:
name: 191/26.0.160.200.in-addr.arpa
zonefile: db.191.0.160.200.in-addr.arpa
notify: 200.160.0.193 NOKEY
provide-xfr: 200.160.0.193 key-cliente-b

49 / 135
Cliente B - Arquivo de configuração (NSD)

nsd.conf no slave (200.160.0.193)


key:
name: key-cliente-b
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’

zone:
name: b.foo.eng.br
zonefile: db.b.foo.eng.br
allow-notify: 200.160.0.192 NOKEY
request-xfr: 200.160.0.192 key-cliente-b

zone:
name: 191/26.0.160.200.in-addr.arpa
zonefile: db.191.0.160.200.in-addr.arpa
allow-notify: 200.160.0.192 NOKEY
request-xfr: 200.160.0.192 key-cliente-b

50 / 135
Parte III

Configurando Servidores DNS Recursivos

51 / 135
Cenário

A organização Foo deseja disponibilizar um servidor DNS recursivo para


sua infra-estrutura local e para todos os seus clientes. Este servidor DNS
recursivo terá o IPv4 200.160.0.6 e o IPv6 2001:12ff::6.

52 / 135
Organização Foo (BIND)

named.conf
acl clientes { 127.0.0.0/8; 200.160.0.0/24; 2001:12ff::/32; };

options {
listen-on { 127.0.0.1; 200.160.0.6; };
listen-on-v6 { 2001:12ff::6; };
directory ‘‘/etc’’;
pid-file ‘‘/var/run/named/pid’’;
statistics-file ‘‘/var/stats/named.stats’’;
allow-query { clientes; };
allow-query-cache { clientes; };
allow-recursion { clientes; };
max-cache-size 512M;
clients-per-query 0;
max-clients-per-query 0;
};

Aviso
Não utilizem a opção “query-source”. Ao fixar uma porta de origem o
servidor DNS fica muito mais vulnerável a ataques de poluição de cache.
Principalmente aos ataques descritos por Dan Kaminsky.

53 / 135
Organização Foo (BIND)

named.conf (continuação...)
logging {
channel all {
file ‘‘/var/log/named.log’’;
versions 5 size 1M;
print-time yes;
};

category default { all; };


category security { all; };
};

zone ‘‘.’’ {
type hint;
file ‘‘named.root’’;
};

zone ‘‘0.0.127.in-addr.arpa’’ {
type master;
file ‘‘db.127.0.0’’;
};

54 / 135
Organização Foo (Unbound)

unbound.conf
server:
port: 53
interface: 127.0.0.1
interface: 200.160.0.6
interface: 2001:12ff::6
access-control: 0.0.0.0/0 refuse
access-control: 200.160.0.0/24 allow
access-control: 127.0.0.0/8 allow
access-control: ::0/0 refuse
access-control: 2001:12ff::/32 allow
directory: ‘‘/usr/local/unbound/etc/unbound’’
chroot: ‘‘/usr/local/unbound/etc/unbound’’
username: ‘‘unbound’’
logfile: ‘‘unbound.log’’
do-ip4: yes
do-ip6: yes

55 / 135
Cuidado com Recursivos Abertos!
Causa
O administrador não configura o servidor DNS recursivo para responder
apenas para os clientes de sua rede.

Efeito
Aceitam consultas DNS vindas de qualquer computador da Internet.
Possibilita ataques de amplificação de respostas DNS e uso de banda por
terceiros.

Solução
Configuração correta do firewall.

BIND: NSD:
acl clientes { 127.0.0.0/8; 200.160.0.0/24; }; access-control: 0.0.0.0/0 refuse
allow-query { clientes; }; access-control: 200.160.0.0/24 allow
allow-query-cache { clientes; }; access-control: 127.0.0.0/8 allow
allow-recursion { clientes; };

56 / 135
Cuidado com Recursivos Abertos!

57 / 135
Parte IV

Importância da Separação de Autoritativo e Recursivo

58 / 135
Por que separar?

Motivo
Possibilita ataques ao servidor DNS recursivo;
Aumenta a complexidade na administração do servidor.

Explicando...
Recursivo e autoritativo possui configurações de acesso diferentes;
As regras de firewalls são distintas;

Sem “recursos” para separar os servidores?


Para servidores DNS utilizando BIND a sintaxe “view” pode ser utilizada
para separar os cenários.

59 / 135
Parte V

O que muda com DNSSEC?

60 / 135
Vulnerabilidades do DNS

61 / 135
Vulnerabilidades do DNS - Soluções

62 / 135
O que é DNSSEC?

Extensão da tecnologia DNS


(o que existia continua a funcionar)
Possibilita maior segurança para o usuário na Internet
(corrige falhas do DNS)

O que garante?
Origem (Autenticidade)
Integridade
A não existência de um nome ou tipo

O que NÃO garante?


Confidencialidade
Proteção contra ataques de negação de serviço (DOS)

63 / 135
O que é DNSSEC?

DNSSEC utiliza o conceito de chaves assimétricas


− chave pública e chave privada

64 / 135
O que é DNSSEC?

DNSSEC utiliza o conceito de chaves assimétricas


− chave pública e chave privada
65 / 135
O que é DNSSEC?

O resolver recursivo já


possui a chave pública
da zona “.br”
ancorada.

66 / 135
O que é DNSSEC?

Nesta simulação de
resolução supomos que
a raiz não está
assinada.

67 / 135
O que é DNSSEC?

Retorna sem resposta,


mas com referência
para os Records: NS
do “.br”.

68 / 135
O que é DNSSEC?

O servidor recursivo
requisita a DNSKEY
ao verificar que o nome
da zona é igual ao
nome da zona que
consta em sua
trusted-key.

69 / 135
O que é DNSSEC?

O servidor DNS
responde enviando
DNSKEY e o RRSIG

70 / 135
O que é DNSSEC?

Compara a trusted-key
com a DNSKEY, caso
for válida continua
com as requisições

71 / 135
O que é DNSSEC?

72 / 135
O que é DNSSEC?

Retorna sem resposta,


mas com referência
para os Records:
- NS do “foo.eng.br”

e com autoridade sobre


os Records:
- DS do “foo.eng.br”
- RRSIG do Record DS

73 / 135
O que é DNSSEC?

O servidor DNS
recursivo utiliza a
DNSKEY para checar
a assinatura (RRSIG)
do Record DS

74 / 135
O que é DNSSEC?

75 / 135
O que é DNSSEC?

76 / 135
O que é DNSSEC?

O servidor DNS
recursivo verifica
através do DS e da
DNSKEY, se este
servidor DNS é válido.

77 / 135
O que é DNSSEC?

Servidor DNS
Autoritativo

r?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS
Recursivo Autoritativo
Referencia servidores foo.eng.br

ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

n g.b
r?

Servidor DNS
Autoritativo

Autoritativo sobre o FOO.ENG.BR


e TUTORIAL.FOO.ENG.BR
Resolver

78 / 135
O que é DNSSEC?

Retorna o Record A e
sua assinatura RRSIG.
Servidor DNS
Autoritativo

r?
n g.b
o.e
.fo .br
plo re
s
em ido
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS
Recursivo Autoritativo
Referencia servidores foo.eng.br

ex
em
plo
.fo
o.e
exemplo.foo.eng.br ?

20 n g.b
0.1
60 r?
.10
.25
1

Servidor DNS
Autoritativo

Autoritativo sobre o FOO.ENG.BR


e TUTORIAL.FOO.ENG.BR
Resolver

79 / 135
O que é DNSSEC?

O servidor DNS
recursivo utiliza a
Servidor DNS
Autoritativo DNSKEY para checar
n g.b
r? a assinatura (RRSIG)
o.e

em
plo
.fo
ido
re
s .br
do Record A
ex rv
se
n cia
fe re
Re

exemplo.foo.eng.br ?
Servidor DNS Servidor DNS
Recursivo Autoritativo
Referencia servidores foo.eng.br

ex
em
plo
.fo
o.e
20
exemplo.foo.eng.br ?

0.1 n g.b
60 r?
.10
.25
1

Servidor DNS
Autoritativo

Autoritativo sobre o FOO.ENG.BR


e TUTORIAL.FOO.ENG.BR
Resolver

80 / 135
O que é DNSSEC?

81 / 135
O que muda com DNSSEC no DNS autoritativo?

Startup
Gerar a chave assimétrica;
Incluir a chave na zona;
Assinar a zona;
Mudar a referência para o arquivo de zona nas configurações;
Incluir o DS na interface do Registro.br.

Manutenção
Reassinar periodicamente a zona.

82 / 135
E como fazer isso no DNS autoritativo? (BIND)
Startup
1 Execute o comando (gera um arquivo .key e um .private):
dnssec-keygen -f KSK -a RSASHA1 -b 1024 -n ZONE -r /dev/urandom foo.eng.br

2 Inclua no final do arquivo de zona db.foo.eng.br (incremente o SOA):


$include Kfoo.eng.br+005.5423.key

3 Execute o comando (gera um arquivo .signed):


dnssec-signzone -z -o foo.eng.br -e 20100102120000 db.foo.eng.br

4 Altere a referência no arquivo de configuração named.conf:


file ‘‘db.foo.eng.br.signed’’;

5 Incluir o DS no website do Registro.br.


http://registro.br/cgi-bin/nicbr/dscheck

Manutenção
1 Altere o arquivo de zona db.foo.eng.br incrementando o SOA;
2 Execute o comando:
dnssec-signzone -z -o foo.eng.br -e 20100102120000 db.foo.eng.br
83 / 135
DNSSHIM - DNS Secure Hidden Master

http://registro.br/dnsshim/

Open-Source
Automatiza o processo de provisionamento de zonas
Suporte a DNSSEC
Interface Automatizável
Manutenção de chaves/assinaturas

Público Alvo
Provedores de hospedagem ou qualquer outra instituição responsável por
administrar servidores DNS autoritativos para muitas zonas

84 / 135
O que muda com DNSSEC no DNS recursivo?

Startup
Ancorar a chave pública do.BR

Manutenção
Para servidores DNS com suporte a RFC 5011:
Nada!
Para servidores DNS sem suporte a RFC 5011:
Trocar a chave ancorada todas as vezes em que ocorrer um rollover
no .BR

85 / 135
E como fazer isso no DNS recursivo?

Startup
BIND (named.conf):
trusted-keys {
br. 257 3 5
‘‘AwEAAdDoVnG9CyHbPUL2rTnE22uN66gQCrUW5W0NTXJB
NmpZXP27w7PMNpyw3XCFQWP/XsT0pdzeEGJ400kdbbPq
Xr2lnmEtWMjj3Z/ejR8mZbJ/6OWJQ0k/2YOyo6Tiab1N
GbGfs513y6dy1hOFpz+peZzGsCmcaCsTAv+DP/wmm+hN
x94QqhVx0bmFUiCVUFKU3TS1GP415eykXvYDjNpy6AM=’’;
};

Unbound (unbound.conf):
trust-anchor: ‘‘br. DS 18457 5 1 1067149C134A5B5FF8FC5ED0996E4E9E50AC21B1’’

Manutenção
1 Obtenha a nova chave em https://registro.br/ksk/;
2 Ancore a nova chave no servidor DNS recursivo.

86 / 135
Parte VI

Firewalls

87 / 135
DNS

Definido nas RFCs 1034 e 1035;


Servidores aceitam consultas em transporte TCP/UDP, porta 53;
Payload maximo em transporte UDP de 512 bytes;
Payload maximo por mensagem DNS em TCP de 64 Kbytes.

88 / 135
DNS

Quando TCP é utilizado


Transferências de zona (AXFR);
Respostas com payload maior do que 512 bytes:
1 Consulta inicial via UDP;
2 Resposta maior do que 512 bytes, flag TC e marcada para indicar que
sua resposta está truncada;
3 Cliente refaz consulta via TCP.

89 / 135
EDNS0 - Extension Mechanisms for DNS

Definido na RFC 2671;


Extensão do protocolo DNS original para eliminar alguns limites do
protocolo;
Permite:
◮ mais flags e RCODEs ao cabe alho DNS;
◮ novos tipos de labels;
◮ payloads maiores em transporte UDP (limitado a 64 Kbytes);
◮ define um novo pseudo-RR: OPT.

90 / 135
EDNS0 - Extension Mechanisms for DNS

Depende de suporte tanto no cliente como no servidor;


Cliente envia consulta UDP com pseudo-RR OPT na seção Additional
da mensagem DNS, informando qual o tamanho máximo de respostas
UDP que pode processar;
Se servidor suportar EDNS0, pode aumentar o limite para o tamanho
da resposta que vai retornar ao cliente, evitando re-query via TCP;
Se servidor não suportar EDNS0, envia resposta com até 512 bytes de
payload DNS.

91 / 135
EDNS0 - Extension Mechanisms for DNS

Alguns exemplos de servidores que suportam EDNS0:


Bind (desde 8.3.x - 2001);
Microsoft DNS server (Windows 2003);
NSD (auth only - desde 1.x - 2003);
ANS/CNS.

92 / 135
Configurando o Firewall

Por que configurar corretamente?


Garantir qualidade na resolução DNS, ou seja, evitar atrasos e,
principalmente, a impossibilidade de resolução de nomes;
Evitar overhead desnecessário em servidores DNS, tanto recursivos
como autoritativos.

93 / 135
Configurando o Firewall

Autoritativos
Consultas com destino à porta 53 UDP e TCP do servidor autoritativo e
respectivas respostas devem ser permitidas.

Recursivos
Consultas do servidor recursivo com destino à porta 53 UDP e TCP de
qualquer outro servidor e respectivas respostas devem ser permitidas;
Consultas vindas de clientes autorizados com destino à porta 53 UDP
e TCP do servidor recursivo e respectivas respostas devem ser
permitidas;
Bloqueio às demais consultas DNS direcionadas ao servidor recursivo.

94 / 135
Configurando o Firewall

Firewalls e DNS/UDP > 512 bytes


Se seu servidor recursivo suporta EDNS0, verifique se seu firewall permite
datagramas UDP/DNS com mais de 512 bytes. Um teste pode ser feito
através da seguinte consulta (935 bytes de payload DNS):

dig @a.dns.br br ns +dnssec +bufsize=1000

Se a resposta não for recebida, pode-se:


corrigir o comportamento do firewall;
diminuir o payload máximo enviado via record OPT na configuração;
EDNS0 do servidor para 512 bytes.

95 / 135
Configurando o Firewall

Firewalls e DNS/UDP > 512 bytes


Se seu servidor recursivo suporta EDNS0 e o firewall suporta mensagens
DNS maiores que 512 bytes, verifique se seu firewall é capaz de fazer o
correto reassembly de datagramas UDP fragmentados. Um teste pode ser
feito através da seguinte consulta (2185 bytes de payload DNS):

dig @a.dns.br br dnskey +dnssec +bufsize=2500

Se a resposta não for recebida, pode-se:


corrigir o comportamento do firewall;
diminuir o payload máximo enviado via record OPT na configuração
EDNS0 do resolver. RFC EDNS0 sugere que se configure baseado em
MTU de 1280 bytes.

96 / 135
Parte VII

Testes de Performance

97 / 135
Testes de Performance - Recursivo

Dependente de fatores externos


Link, banda local
Capacidade dos autoritativos

98 / 135
Testes de Performance - Recursivo

Responde à consultas
consultas já em cache
consulta servidores autoritativos

Aviso
Exatidão de uma simulação depende da comunicação com os autoritativos

99 / 135
Testes de Performance - Recursivo

Testes Propostos
Consultas em cache
Algumas dezenas de consultas
repetidas por 5 minutos
!Cache
Servidor com cache limpo
Consultas únicas durante 5 minutos
Todas as consultas válidas

100 / 135
Testes de Performance - Recursivo

Ambiente
Servidor Recursivo
2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’s
FreeBSD 7.2 amd64
Bind 9.6.1-P1 compilado com suporte a threads
Unbound 1.4.0
Cliente
1 Xeon X5560 2.80GHz QuadCore HT
DNSPERF 1.0.1.0-1
resperf - mede throughput do recursivo
Disponı́vel em http://www.nominum.com
Cliente e Servidor no mesmo seguimento de rede

101 / 135
Testes de Performance - Recursivo

$resperf -d <arquivo consultas> -s <servidor> -r 300

-d: Especifica um aquivo contendo as consultas


Formato: HOST RR
www.registro.br A
nic.br MX
...

-s: IP ou nome do servidor recursivo

-r: Tempo do teste, em segundos

102 / 135
Testes de Performance - Recursivo
Bind - Consultas em Cache
N.threads = 8 ( named ... -n 8 )

103 / 135
Testes de Performance - Recursivo
Unbound - Consultas em cache
N.threads = 8 ( unbound.conf )

104 / 135
Testes de Performance - Recursivo
Bind - Consultas únicas - !Cache
N.threads = 8 ( named ... -n 8 )

105 / 135
Testes de Performance - Recursivo
Unbound - Consultas únicas - !Cache
N.threads = 8 ( unbound.conf )

106 / 135
Testes de Performance - Autoritativo

Responde apenas consultas para zonas configuradas


Zonas carregadas em memória

107 / 135
Testes de Performance - Autoritativo

Teste Proposto
Servidor autoritativo com 1000 zonas configuradas
Dois clientes consultam aleatoriamente registros existentes nessas
zonas

108 / 135
Testes de Performance - Autoritativo

Ambiente
Servidor Autoritativo
2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’s
FreBSD 7.2 amd64
Bind 9.6.1-P1 compilado com threads
NSD 3.2.3
Clientes
1 Xeon X5560 2.80GHz QuadCore HT
Queryperf 1.12
Disponı́vel no contrib do bind
Servidor e clientes no mesmo seguimento de rede

109 / 135
Testes de Performance - Autoritativo

$queryperf -d <arquivo consultas> -s <servidor> -l <tempo>

-d: Especifica um aquivo contendo as consultas


Formato: HOST RR
www.registro.br A
nic.br MX
...

-s: IP ou nome do servidor recursivo

-l: Tempo do teste, em segundos

110 / 135
Testes de Performance - Autoritativo
Bind
12 Threads = 224000 qps

111 / 135
Testes de Performance - Autoritativo
NSD
5 servidores = 257770 qps

112 / 135
Parte VIII

Escalabilidade de Recursivos

113 / 135
Escalabilidade de Recursivos

Motivação
DNS recursivo instável é foco de reclamações constantes

114 / 135
Escalabilidade de Recursivos

Escalabilidade e Estabilidade
Suporte a alto tráfego
Suporte a muitos usuários
Fácil upgrade caso a demanda aumente
Manutenção sem parada do sistema
Alta disponibilidade
Balanceamento de carga

115 / 135
Escalabilidade de Recursivos

Cluster

116 / 135
Escalabilidade de Recursivos
Flexibilidade
Mais de um roteador
Mais de um switch

117 / 135
Escalabilidade de Recursivos

Solução
Roteador + [UNIX + Quagga + BIND]
Endereço do serviço roda na loopback dos servidores
Anycast dentro do cluster
Protocolo de roteamento dinâmico com suporte a ECMP - OSPF

118 / 135
Escalabilidade de Recursivos
Topologia

119 / 135
Escalabilidade de Recursivos
Anycast na Rede
Redundancia
IBGP entre os clusters

120 / 135
Escalabilidade de Recursivos

ECMP
Assimetria de tráfego
O balanceamento de carga não é exato
Incoerência de cache entre os servidores
O cache dos servidores não são idênticos, pois o tráfego que eles
recebem também não é

Não há problema!

121 / 135
Escalabilidade de Recursivos

Detalhes do BIND
BIND rodando nas duas interfaces
Queries chegam para a loopback
Monitoração pelo endereço individual
acl
Max-cache-size
recursive-clients

122 / 135
Escalabilidade de Recursivos

Controle
1 Iniciar processo do BIND
2 Subir interface loopback
Quagga envia LSA para o roteador
ifconfig lo1 up
3 Tirar o servidor do ar
Enviar LSA removendo a rota
ifconfig lo1 down

123 / 135
Escalabilidade de Recursivos

Recursos
Exemplo:
Rede com 1M de usuários simultâneos
Média de 50 q/h (por usuário)
50 x 1M = 50M q/h 14k q/s
Um único servidor (com hardware robusto) é capaz de suportar esta carga
Sugestão para atingir alta disponibilidade:
- cluster com 3 ou 4 servidores

124 / 135
Escalabilidade de Recursivos

Monitoração
Processo do BIND está no ar?
Monitorar endereço unicast de cada servidor
Qual servidor que está respondendo?
dig @192.168.1.1 chaos txt hostname.bind +short
Watchdog
Caso o BIND pare de responder
ifconfig lo1 down

125 / 135
Parte IX

Monitoramento

126 / 135
Monitoramento

Autoritativos
Disponibilidade
Autoridade sobre as zonas
Versão da zona (serial)
DNSSEC - validação
Recursos

127 / 135
Monitoramento - Autoritativo

SNMP - cpu, memória, tráfego


Nagios
Plugin check dns
Alertas via email, sms
Status Information:OK: Servidor a.dns.br. (200.160.0.10)
respondendo com autoridade para ”com.br”
Custom Plugins - Serial, DNSSEC

128 / 135
Monitoramento - Autoritativo

DSC - DNS Statistics Collector


Disponı́vel em http://dns.measurement-factory.com/tools/dsc/
Collector - Processo que usa a libpcap para coletar pacotes DNS
Armazena em XML
Presenter - Recebe datasets XML dos coletores CGI plota as
estatı́sticas

129 / 135
Monitoramento - Autoritativo

Diversas estatı́sticas importantes para um autoritativo


By Node
Qtypes
Client Geography
IP Version
DNS Transport
...

130 / 135
Monitoramento - Autoritativo

Query Types

131 / 135
Monitoramento

Recursivos
Disponibilidade
Recursos

132 / 135
Monitoramento - Recursivo

SNMP - cpu, memória, tráfego


Nagios
Plugin check dns
DNS OK: 0.009 seconds response time. www.registro.br returns 200.160.2.3

Custom Plugins

133 / 135
Perguntas?

134 / 135
Referências

◮ RFC 2317
Classless IN-ADDR.ARPA delegation
◮ DNS recursivo estável e escalável
ftp://ftp.registro.br/pub/gter/gter23/05-DNSrecEstavelEscalavel.pdf
◮ Firewalls e DNS, como e porque configurar corretamente
ftp://ftp.registro.br/pub/doc/dns-fw.pdf
◮ Recomendações para Evitar o Abuso de Servidores DNS Recursivos Abertos
http://www.cert.br/docs/whitepapers/dns-recursivo-aberto
◮ A última versão do tutorial de DNSSEC pode ser encontrada em
ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf

135 / 135

Você também pode gostar