palestra sobre dns apresentada no 3 ptt forum

135
Tutorial DNS 3 PTTF´orum David Robert Camargo de Campos <[email protected]> Rafael Dantas Justo <[email protected]> Wilson Rog´ erio Lopes <[email protected]> Registro.br Dezembro de 2009 1 / 135

Upload: wilson-rogerio-lopes

Post on 06-Jul-2015

603 views

Category:

Documents


4 download

DESCRIPTION

Palestra sobre DNS apresentada no 3 PTT Forum em 12/2009 - Encontro dos Sistemas Autonomos da Internet do Brasil

TRANSCRIPT

Tutorial DNS

3° PTT Forum

David Robert Camargo de Campos <[email protected]>

Rafael Dantas Justo <[email protected]>

Wilson Rogerio Lopes <[email protected]>

Registro.br

Dezembro de 2009

1 / 135

Objetivos

Entender os conceitos de DNS

Configurar servidores autoritativos

Configurar servidores recursivos

Entender as diferencas entre DNS e DNSSEC

Configurar corretamente o firewall

Testar performance dos servidores

Planejar escalabilidade de recursivos

Monitorar os servidores

2 / 135

Cronograma

1 DNSConceitosArquitetura

2 Servidores DNS AutoritativosCenarioArquivos de ZonaConfiguracao BINDConfiguracao NSD

3 Servidores DNS RecursivosCenarioConfiguracao BINDServidores DNS Recursivos abertos

4 Recursivo e Autoritativo

5 DNSSECVulnerabilidades do DNSConceitoConfiguracao do AutoritativoConfiguracao do Recursivo

6 FirewallsDNSEDNS0Configuracao

7 Testes de PerformanceRecursivoAutoritativo

8 Escalabilidade de Recursivos

9 MonitoramentoAutoritativoRecursivo

3 / 135

Parte I

Conceitos DNS

4 / 135

DNS - Domain Name System

O Sistema de Nomes de Domınio e um banco de dados distribuıdo. Issopermite um controle local dos segmentos do banco de dados global,embora os dados em cada segmento estejam disponıveis em toda a redeatraves de um esquema cliente-servidor.

- Arquitetura hierarquica, dados dispostos em uma arvore invertida

- Distribuıda eficientemente, sistema descentralizado e com cache

- O principal proposito e a resolucao de nomes de domınio emenderecos IP e vice-versa

exemplo.foo.eng.br ←→ 200.160.10.251www.cgi.br ←→ 200.160.4.2

www.registro.br ←→ 2001:12ff:0:2::3

5 / 135

Hierarquia

"."

br

eng

foo

tutorial

DNS

database

tutorial.foo.eng.br

/

usr

local

bin

imake

UNIX

filesystem

/usr/local/bin/imake

6 / 135

Domınio Vs Zona

Zona gov.brZona nom.br

Zona eng.br

Domínio br

Zona joao.silva.nom.brZona tutorial.foo.eng.br

Zona foo.eng.br

Zona br

"."

com

eng

br org

nom gov

foo

tutorial

joao

Zona fazenda.gov.br

fazenda

Delegação

silva

Delegacao

Indica uma transferencia

de responsabilidade na

administracao apartir

daquele ponto na arvore

DNS

7 / 135

Resource RecordsOs dados associados com os nomes de domınio estao contidos emResource Records ou RRs (Registro de Recursos)

Sao divididos em classes e tiposAtualmente existe uma grande variedade de tiposO conjunto de resource records com o mesmo nome de domınio,classe e tipo e denominado RRset

Alguns Tipos Comuns de Records

SOA Indica onde comeca a autoridade a zona

NS Indica um servidor de nomes para a zona

A Mapeamento de nome a endereco (IPv4)

AAAA Mapeamento de nome a endereco (IPv6)

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

CNAME Mapeia um nome alternativo (apelido)

PTR Mapeamento de endereco a nome8 / 135

Tipos de servidores

Servidor Recursivo

Ao receber requisicoes de resolucao de nomes, faz requisicoes para osservidores autoritativos e conforme a resposta recebida dos mesmoscontinua a realizar requisicoes para outros servidores autoritativos ateobter a resposta satisfatoria

Servidor Autoritativo

Ao receber requisicoes de resolucao de nome, responde um endereco casopossua, uma referencia caso conheca o caminho da resolucao ou umanegacao caso nao conheca

9 / 135

Exemplo de requisicao de endereco

Supondo que o

cache esta vazio ou

sem informacoes de

br, eng.br,

foo.eng.br,

exemplo.foo.eng.br

ResolverServico localizado

no cliente que tem

como

responsabilidade

resolver as

requisicoes DNS

para diversos

aplicativos10 / 135

Exemplo de requisicao de endereco

Supondo que o

cache esta vazio ou

sem informacoes de

br, eng.br,

foo.eng.br,

exemplo.foo.eng.br

11 / 135

Exemplo de requisicao de endereco

12 / 135

Exemplo de requisicao de endereco

13 / 135

Exemplo de requisicao de endereco

14 / 135

Exemplo de requisicao de endereco

15 / 135

Exemplo de requisicao de endereco

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

"."

BR

ENG

FOO

TUTORIAL

16 / 135

Exemplo de requisicao de endereco

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

200.160.10.251

"."

BR

ENG

FOO

TUTORIAL

17 / 135

Exemplo de requisicao de endereco

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

20

0.1

60

.10

.25

1

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

200.160.10.251

"."

BR

ENG

FOO

TUTORIAL

18 / 135

Exemplo de requisicao de endereco

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

20

0.1

60

.10

.25

1

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

200.160.10.251

"."

BR

ENG

FOO

TUTORIAL

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

Cenario

Organizacao 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 organizacao Foo;

Possui o bloco 200.160.0.127/28 designado pela organizacao Foo.

Cliente B

Possui o domınio b.foo.eng.br delegado pela organizacao Foo;

Possui o bloco 200.160.0.191/26 designado pela organizacao Foo.

22 / 135

Cenario

Cliente BCliente A

Organização Foo Engenharia Ltda.

200.160.0/24

200.160.0.127/28 200.160.0.191/26

foo.eng.br

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

2001:12ff::/32

23 / 135

Cenario

200.160.0/24

200.160.0.0/25

200.160.0.191/26

200.160.0.127/28

200.160.0.143/28

200.160.0.159/27

Alocados Livres

24 / 135

Organizacao Foo - Arquivo de zona

db.foo.eng.brfoo.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 zonafoo.eng.br. 86400 IN NS ns1.foo.eng.br.

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

;; Cliente Aa.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.

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

;; Cliente Bb.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

Organizacao Foo - Arquivo de zona (continuacao...)

db.foo.eng.br;; Traducao 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 serverwww.foo.eng.br. 86400 IN A 200.160.0.3

www.foo.eng.br. 86400 IN AAAA 2001:12ff::3

26 / 135

Organizacao Foo - Arquivo de zona reverso IPv4

db.0.160.200.in-addr.arpa0.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

Organizacao Foo - Arquivo de zona reverso IPv4

db.0.160.200.in-addr.arpa (continuacao...);; 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.

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

Organizacao Foo - Arquivo de zona reverso IPv4

Mas por que e necessario o CNAME?

Porque a RFC 2317 recomenda;

Esta solucao nao exige alteracoes nos softwares dos servidores DNS;

Alteracao de hosts no reverso dos clientes nao implicam em alteracoesna zona reverso da organizacao Foo.

29 / 135

Organizacao Foo - Arquivo de zona reverso IPv6

db.f.f.2.1.1.0.0.2.ip6.arpaf.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 zonaf.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 IPv6gerou diversas discussoes. O draft draft-howard-isp-ip6rdns-01 aborda estetema.

30 / 135

Publicacao de Reverso

Informacao

Para as delegacoes informadas diretamente na interface do Registro.br(/24 ou maior) as publicacoes das alteracoes ocorrem a cada 4 horas comınicio as 2hs.

31 / 135

Cliente A - Arquivo de zona

db.a.foo.eng.bra.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 zonaa.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.

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

;; Traducao 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 serverwww.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.arpa127/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.

;; Enderecos 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.brb.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 zonab.foo.eng.br. 86400 IN NS ns1.b.foo.eng.br.

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

;; Traducao 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 serverwww.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.arpa191/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.

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

Organizacao Foo - Arquivo de configuracao (BIND)

Gerando chave TSIGdnssec-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

Organizacao Foo - Arquivo de configuracao (BIND)

named.conf no master (200.160.0.1) (continuacao...)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

Organizacao Foo - Arquivo de configuracao (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

Organizacao Foo - Arquivo de configuracao (BIND)

named.conf no slave (200.160.0.2) (continuacao...)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 configuracao (BIND)

Gerando chave TSIGdnssec-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 configuracao (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 configuracao (BIND)

Gerando chave TSIGdnssec-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 configuracao (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

Organizacao Foo - Arquivo de configuracao (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

Organizacao Foo - Arquivo de configuracao (NSD)

nsd.conf no master (200.160.0.1) (continuacao...)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

Observacao

O NSD quando utilizado como master nao envia IXFR para os slaves. Mascaso o NSD seja utilizado como slave, ele entende requisicoes IXFR.

45 / 135

Organizacao Foo - Arquivo de configuracao (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 configuracao (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 configuracao (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 configuracao (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 configuracao (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

Cenario

A organizacao Foo deseja disponibilizar um servidor DNS recursivo parasua infra-estrutura local e para todos os seus clientes. Este servidor DNSrecursivo tera o IPv4 200.160.0.6 e o IPv6 2001:12ff::6.

52 / 135

Organizacao Foo (BIND)

named.confacl 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

Nao utilizem a opcao “query-source”. Ao fixar uma porta de origem oservidor DNS fica muito mais vulneravel a ataques de poluicao de cache.Principalmente aos ataques descritos por Dan Kaminsky.

53 / 135

Organizacao Foo (BIND)

named.conf (continuacao...)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

Organizacao Foo (Unbound)

unbound.confserver:

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 nao configura o servidor DNS recursivo para responderapenas para os clientes de sua rede.

Efeito

Aceitam consultas DNS vindas de qualquer computador da Internet.Possibilita ataques de amplificacao de respostas DNS e uso de banda porterceiros.

Solucao

Configuracao correta do firewall.

BIND:acl clientes { 127.0.0.0/8; 200.160.0.0/24; };allow-query { clientes; };allow-query-cache { clientes; };allow-recursion { clientes; };

NSD:access-control: 0.0.0.0/0 refuse

access-control: 200.160.0.0/24 allow

access-control: 127.0.0.0/8 allow

56 / 135

Cuidado com Recursivos Abertos!

57 / 135

Parte IV

Importancia da Separacao de Autoritativo e Recursivo

58 / 135

Por que separar?

Motivo

Possibilita ataques ao servidor DNS recursivo;

Aumenta a complexidade na administracao do servidor.

Explicando...

Recursivo e autoritativo possui configuracoes de acesso diferentes;

As regras de firewalls sao distintas;

Sem “recursos” para separar os servidores?

Para servidores DNS utilizando BIND a sintaxe “view” pode ser utilizadapara separar os cenarios.

59 / 135

Parte V

O que muda com DNSSEC?

60 / 135

Vulnerabilidades do DNS

61 / 135

Vulnerabilidades do DNS - Solucoes

62 / 135

O que e DNSSEC?

Extensao da tecnologia DNS(o que existia continua a funcionar)

Possibilita maior seguranca para o usuario na Internet(corrige falhas do DNS)

O que garante?

Origem (Autenticidade)

Integridade

A nao existencia de um nome ou tipo

O que NAO garante?

Confidencialidade

Protecao contra ataques de negacao de servico (DOS)

63 / 135

O que e DNSSEC?

DNSSEC utiliza o conceito de chaves assimetricas− chave publica e chave privada

64 / 135

O que e DNSSEC?

DNSSEC utiliza o conceito de chaves assimetricas− chave publica e chave privada

65 / 135

O que e DNSSEC?

O resolver recursivo japossui a chave publicada zona “.br”ancorada.

66 / 135

O que e DNSSEC?

Nesta simulacao deresolucao supomos quea raiz nao estaassinada.

67 / 135

O que e DNSSEC?

Retorna sem resposta,mas com referenciapara os Records: NSdo “.br”.

68 / 135

O que e DNSSEC?

O servidor recursivorequisita a DNSKEYao verificar que o nomeda zona e igual aonome da zona queconsta em suatrusted-key.

69 / 135

O que e DNSSEC?

O servidor DNSresponde enviandoDNSKEY e o RRSIG

70 / 135

O que e DNSSEC?

Compara a trusted-keycom a DNSKEY, casofor valida continuacom as requisicoes

71 / 135

O que e DNSSEC?

72 / 135

O que e DNSSEC?

Retorna sem resposta,mas com referenciapara os Records:

- NS do “foo.eng.br”

e com autoridade sobreos Records:

- DS do “foo.eng.br”

- RRSIG do Record DS

73 / 135

O que e DNSSEC?

O servidor DNSrecursivo utiliza aDNSKEY para checara assinatura (RRSIG)do Record DS

74 / 135

O que e DNSSEC?

75 / 135

O que e DNSSEC?

76 / 135

O que e DNSSEC?

O servidor DNSrecursivo verificaatraves do DS e daDNSKEY, se esteservidor DNS e valido.

77 / 135

O que e DNSSEC?

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

Autoritativo sobre o FOO.ENG.BR

e TUTORIAL.FOO.ENG.BR

78 / 135

O que e DNSSEC?

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

200.160.10.251

Autoritativo sobre o FOO.ENG.BR

e TUTORIAL.FOO.ENG.BR

Retorna o Record A esua assinatura RRSIG.

79 / 135

O que e DNSSEC?

Resolver

Servidor DNS

Recursivo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

Servidor DNS

Autoritativo

exem

plo

.foo.e

ng.b

r ?

exemplo.fo

o.eng.br ?

Refere

ncia se

rvidore

s .br

exemplo.foo.eng.br ?

Referencia servidores foo.eng.br

exemplo.foo.eng.br ?

200.160.10.251

Autoritativo sobre o FOO.ENG.BR

e TUTORIAL.FOO.ENG.BR

O servidor DNSrecursivo utiliza aDNSKEY para checara assinatura (RRSIG)do Record A

80 / 135

O que e DNSSEC?

81 / 135

O que muda com DNSSEC no DNS autoritativo?

Startup

Gerar a chave assimetrica;

Incluir a chave na zona;

Assinar a zona;

Mudar a referencia para o arquivo de zona nas configuracoes;

Incluir o DS na interface do Registro.br.

Manutencao

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 referencia no arquivo de configuracao named.conf:file ‘‘db.foo.eng.br.signed’’;

5 Incluir o DS no website do Registro.br.http://registro.br/cgi-bin/nicbr/dscheck

Manutencao1 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 Automatizavel

Manutencao de chaves/assinaturas

Publico Alvo

Provedores de hospedagem ou qualquer outra instituicao responsavel poradministrar servidores DNS autoritativos para muitas zonas

84 / 135

O que muda com DNSSEC no DNS recursivo?

Startup

Ancorar a chave publica do.BR

Manutencao

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 rolloverno .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’’

Manutencao

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 e utilizado

Transferencias 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 esta truncada;3 Cliente refaz consulta via TCP.

89 / 135

EDNS0 - Extension Mechanisms for DNS

Definido na RFC 2671;

Extensao do protocolo DNS original para eliminar alguns limites doprotocolo;

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 secao Additionalda mensagem DNS, informando qual o tamanho maximo de respostasUDP que pode processar;

Se servidor suportar EDNS0, pode aumentar o limite para o tamanhoda resposta que vai retornar ao cliente, evitando re-query via TCP;

Se servidor nao suportar EDNS0, envia resposta com ate 512 bytes depayload 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 resolucao DNS, ou seja, evitar atrasos e,principalmente, a impossibilidade de resolucao de nomes;

Evitar overhead desnecessario em servidores DNS, tanto recursivoscomo autoritativos.

93 / 135

Configurando o Firewall

Autoritativos

Consultas com destino a porta 53 UDP e TCP do servidor autoritativo erespectivas respostas devem ser permitidas.

Recursivos

Consultas do servidor recursivo com destino a porta 53 UDP e TCP dequalquer outro servidor e respectivas respostas devem ser permitidas;

Consultas vindas de clientes autorizados com destino a porta 53 UDPe TCP do servidor recursivo e respectivas respostas devem serpermitidas;

Bloqueio as 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 permitedatagramas UDP/DNS com mais de 512 bytes. Um teste pode ser feitoatraves da seguinte consulta (935 bytes de payload DNS):

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

Se a resposta nao for recebida, pode-se:

corrigir o comportamento do firewall;

diminuir o payload maximo enviado via record OPT na configuracao;

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 mensagensDNS maiores que 512 bytes, verifique se seu firewall e capaz de fazer ocorreto reassembly de datagramas UDP fragmentados. Um teste pode serfeito atraves da seguinte consulta (2185 bytes de payload DNS):

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

Se a resposta nao for recebida, pode-se:

corrigir o comportamento do firewall;

diminuir o payload maximo enviado via record OPT na configuracaoEDNS0 do resolver. RFC EDNS0 sugere que se configure baseado emMTU 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 a consultas

consultas ja em cache

consulta servidores autoritativos

Aviso

Exatidao de uma simulacao depende da comunicacao com os autoritativos

99 / 135

Testes de Performance - Recursivo

Testes Propostos

Consultas em cacheAlgumas dezenas de consultasrepetidas por 5 minutos

!CacheServidor com cache limpoConsultas unicas durante 5 minutosTodas as consultas validas

100 / 135

Testes de Performance - Recursivo

Ambiente

Servidor Recursivo2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’sFreeBSD 7.2 amd64Bind 9.6.1-P1 compilado com suporte a threadsUnbound 1.4.0

Cliente1 Xeon X5560 2.80GHz QuadCore HTDNSPERF 1.0.1.0-1

resperf - mede throughput do recursivoDisponı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 unicas - !Cache

N.threads = 8 ( named ... -n 8 )

105 / 135

Testes de Performance - Recursivo

Unbound - Consultas unicas - !Cache

N.threads = 8 ( unbound.conf )

106 / 135

Testes de Performance - Autoritativo

Responde apenas consultas para zonas configuradas

Zonas carregadas em memoria

107 / 135

Testes de Performance - Autoritativo

Teste Proposto

Servidor autoritativo com 1000 zonas configuradas

Dois clientes consultam aleatoriamente registros existentes nessaszonas

108 / 135

Testes de Performance - Autoritativo

Ambiente

Servidor Autoritativo2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’sFreBSD 7.2 amd64Bind 9.6.1-P1 compilado com threadsNSD 3.2.3

Clientes1 Xeon X5560 2.80GHz QuadCore HTQueryperf 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

Motivacao

DNS recursivo instavel e foco de reclamacoes constantes

114 / 135

Escalabilidade de Recursivos

Escalabilidade e Estabilidade

Suporte a alto trafego

Suporte a muitos usuarios

Facil upgrade caso a demanda aumente

Manutencao 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

Solucao

Roteador + [UNIX + Quagga + BIND]

Endereco do servico roda na loopback dos servidores

Anycast dentro do cluster

Protocolo de roteamento dinamico 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 trafego

O balanceamento de carga nao e exato

Incoerencia de cache entre os servidores

O cache dos servidores nao sao identicos, pois o trafego que elesrecebem tambem nao e

Nao ha problema!

121 / 135

Escalabilidade de Recursivos

Detalhes do BIND

BIND rodando nas duas interfaces

Queries chegam para a loopback

Monitoracao pelo endereco individual

acl

Max-cache-size

recursive-clients

122 / 135

Escalabilidade de Recursivos

Controle1 Iniciar processo do BIND

2 Subir interface loopbackQuagga envia LSA para o roteadorifconfig lo1 up

3 Tirar o servidor do arEnviar LSA removendo a rotaifconfig lo1 down

123 / 135

Escalabilidade de Recursivos

Recursos

Exemplo:Rede com 1M de usuarios simultaneos

Media de 50 q/h (por usuario)

50 x 1M = 50M q/h 14k q/sUm unico servidor (com hardware robusto) e capaz de suportar esta cargaSugestao para atingir alta disponibilidade:

- cluster com 3 ou 4 servidores

124 / 135

Escalabilidade de Recursivos

Monitoracao

Processo do BIND esta no ar?Monitorar endereco unicast de cada servidor

Qual servidor que esta respondendo?dig @192.168.1.1 chaos txt hostname.bind +short

WatchdogCaso o BIND pare de responderifconfig lo1 down

125 / 135

Parte IX

Monitoramento

126 / 135

Monitoramento

Autoritativos

Disponibilidade

Autoridade sobre as zonas

Versao da zona (serial)

DNSSEC - validacao

Recursos

127 / 135

Monitoramento - Autoritativo

SNMP - cpu, memoria, trafego

Nagios

Plugin check dnsAlertas 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 CollectorDisponıvel em http://dns.measurement-factory.com/tools/dsc/

Collector - Processo que usa a libpcap para coletar pacotes DNSArmazena em XML

Presenter - Recebe datasets XML dos coletores CGI plota asestatı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, memoria, trafego

Nagios

Plugin check dnsDNS OK: 0.009 seconds response time. www.registro.br returns 200.160.2.3

Custom Plugins

133 / 135

Perguntas?

134 / 135

Referencias

◮ RFC 2317Classless IN-ADDR.ARPA delegation

◮ DNS recursivo estavel e escalavelftp://ftp.registro.br/pub/gter/gter23/05-DNSrecEstavelEscalavel.pdf

◮ Firewalls e DNS, como e porque configurar corretamenteftp://ftp.registro.br/pub/doc/dns-fw.pdf

◮ Recomendacoes para Evitar o Abuso de Servidores DNS Recursivos Abertoshttp://www.cert.br/docs/whitepapers/dns-recursivo-aberto

◮ A ultima versao do tutorial de DNSSEC pode ser encontrada em

ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf

135 / 135