DJBDNS

Daniel Bernstein's DNS

ESPECIALIZAÇÃO EM REDES

IC-UNICAMP

por Felipe M Pereira

DJB??? DNS???

DJB = Daniel J. Bernstein, Ph.D.

Professor da Universidade de Illinois, Chicago

Programador exímio

Recompensas para furos

DNS = Domain Name System

Dependências

DJBDNS depende de sistemas auxiliares do mesmo autor

Pré-requisitos para DJBDNS:

DAEMONTOOLS e UCSPI-TCP

Por quê?

Portabilidade

Manutenção do software

Auxiliar: daemontools

manutenção dos serviços

similar a /etc/init.d/*

diretório /service

daemon: svscan

Procura novos serviços em /service

Período de 5s

Para cada um executa supervise

controle via svc

logging via multilog

Auxiliar: ucspi-tcp

servidor/cliente TCP

similar a inetd e netcat

tcpclient e tcpserver abre conexões e passa para programa

Ex.: axfr-get via tcpclient

tcpclient quasar.las.ic.unicamp.br 53\ axfr-get las.ic.unicamp.br zone-las\ zone-las.tmp

Servidor x Cache

Recomendável separar servidor de cache

por Segurança e Confiabilidade:

Se servidor+cache atacado, atacante ganha controle dos dois

Se usuários da rede interna sobrecarregam cache, não resolve para Internet

por Modularidade:

Mais fácil trocar servidor

Analogia: Apache/squid

Servidor x Cache

DJBDNS é nome do sistema

Servidor: tinydns

resolve nomes das suas máquinas para a Internet (sem recursão)

Cache: dnscache

resolve os nomes das máquinas da Internet para as suas máquinas (com recursão)

dnscache

Cache do djbdns

Resolve nomes da Internet para suas máquinas

Várias configurações:

local ou externo

Ou seja, se resolve para localhost ou para outras máquinas também

forwarding ou não

Ou seja, se pergunta a outro cache ou entra em contato com root-servers diretamente

Ferramentas de linha de comando

dnsip fqdn

Resolve nome qualificado

dnsipq udn

Resolve nomes não qualificados

dnsname a.b.c.d

Resolve reverso (devolve IP)

dnsmx fqdn

dnstxt fqdn

dnsq e dnsqr

dnsfilter

tinydns

Resolve as pesquisas que Internet faz acerca de seu domínio

Configuração partindo de BIND já instalado (a seguir)

Idéia é transferir zona com axfr-get (utilitário do djbdns)

Pergunta para servidor BIND como se fosse secundário, e então...

Armazena como dados do tinydns

Desvantagem: se começasse do zero arquivo ficaria mais “limpo”

tinydns (2)

Configuração partindo de BIND:

# cria diretório com dados sobre o serviço

tinydns-conf Gtinydns Gdnslog /etc/tinydns 143.106.60.15

# para importar dados do BIND, basta fazer:

cd /etc/tinydns/root

tcpclient bastion.las.ic.unicamp.br 53 axfr-get \

las.ic.unicamp.br data zone-las.tmp

# data está em formato para consumo humano,

# devemos chamar make para criar o .cdb

make

# avisa svscan

ln -s /etc/tinydns /service

Arquivos tinydns

Linhas usuais:

.fqdn:ip:x:ttl:timestamp:lo

.unicamp.br:143.106.2.2:ns1.unicamp.br

&fqdn:ip:x:ttl:timestamp:lo

&unicamp.br:143.106.2.40:ns3.unicamp.br

=fqdn:ip:ttl:timestamp:lo

=lvs0.unicamp.br:143.106.10.30

+fqdn:ip:ttl:timestamp:lo

+www.unicamp.br:143.106.10.30

@fqdn:ip:x:dist:ttl:timestamp:lo

@unicamp.br:143.106.2.37:styx.iqm.unicamp.br:15

Ver na Web

http://cr.yp.to/djbdns/tinydns-data.html

Mais informações

http://cr.yp.to/djbdns.html

Site oficial

http://www.lifewithdjbdns.org/

Pacotes, dicas de compilação

felipe@las.ic.unicamp.br

2004-05-05T18:31:03