Acelerar resolução de DNS com o pdnsd

Admin

Um limitador de performance no acesso através da rede é a resolução de DNS. A resolução de DNS é o processo em que um nome associado a uma máquina é traduzido para o seu endereço IP. Por exemplo, a resolução DNS de www.debian.org é 192.25.206.10. Usar o nome em vez do IP é mais confortável, é por isso que foi criada a resolução DNS. Mas adiante...

Vamos ver um exemplo do tempo que demora a resolução do nome do domínio debian.org:


skit@Argon:~$ dig debian.org|grep msec
Query time: 423 msec

Como podemos ver ao aceder ao domínio debian.org são gastos 0.423 segundos só para resolver o nome. Uma forma de acelerar o acesso é utilizar uma cache local de DNS, e reutilizar as resoluções anteriores em vez de estar sempre a fazer um novo query aos servidores de DNS. Um pacote que está nos repositórios Debian simples e leve que nos permite fazer isto de forma rápida é o pdnsd. Aqui ficam umas dicas para a sua instalação:

A configuração é feita em 2 passos:
* 1º Indicar ao pdnsd qual o servidor a consultar quando não tiver a resolução de um domínio na sua cache.
* 2º Passar a utilizar a cache do pdnsd para a resolução de DNS.

  • Instalar o pacote: apt-get install pdnsd

Configurar o pacote através do ficheiro /etc/pdnsd.conf :

  • Indicar que o localhost vai ser o nosso novo nameserver. Na secção global indicar server_ip="127.0.0.1";
  • Indicar qual o servidor de DNS a recorrer quando o nome de domínio não estiver em cache. Para isso, na secção server utiliza-se: ip="194.65.3.20,194.5.3.21" (estas duas máquinas são os servidores de DNS do ISP Telepac.)

Aqui fica um exemplo do /etc/pdnsd.conf que estou a utilizar neste momento:


global {
perm_cache=2048;
cache_dir="/var/cache/pdnsd";
max_ttl=604800;
run_as="pdnsd";
paranoid=off;
status_ctl=on;
server_ip="127.0.0.1";
}

server {
ip="10.0.0.2";
timeout=30;
interval=1200;
uptest=none;
ping_timeout=50;
purge_cache=off;
}

source {
ttl=86400;
owner="localhost.";
file="/etc/hosts";
}

Finalmente, para usar a cache:

  • alterar o ficheiro /etc/resolv.conf para:

    nameserver 127.0.0.1

Re-iniciar o pdnsd para usar as alterações que fizemos

~# /etc/init.d/pdnsd restart

...e já está. Acedendo uma segunda vez ao domínio utilizado no exemplo inicial obtemos:


skit@Argon:~$ dig debian.org|grep msec
Query time: 1 msec

Comentários

Opções de visualização dos comentários

Seleccione a sua forma preferida de visualização de comentários e clique "Gravar configuração" para activar as suas alterações.

poupa-se um bocadinho mas val

poupa-se um bocadinho mas valerá os recursos?

a segunda vez que uso o comando dig o caso muda:

cusco@Portatil:~$ dig debian.org|grep msec
;; Query time: 305 msec
cusco@Portatil:~$ dig debian.org|grep msec
;; Query time: 20 msec
cusco@Portatil:~$ dig debian.org|grep msec
;; Query time: 17 msec

Poupa-se um bocadão, com um

Poupa-se um bocadão, com um bocadinho.

"No ínicio não havia nada e Ele disse: apt-get install light"

Isso é facil de responder!

Isso é facil de responder!

Esse fenomono acontece porque quando máquina pede o IP do servidor a que se quer ligar o servidor de DNS responde e ao responder a máquina que fez o pedido regista durante alguns minutos (5 - 15min., já nao estou bem certo)! E se não for a tua máquina a faze-lo, faz o teu router! (se tiveres algo claro :o) ) Eu por acaso já vi isso acontecer foi numa máquina com Windows!
A "novidade" que o pdnsd veio trazer foi a possibilidade de controlar o tempo e a gestão dessas mesmas resoluções de nomes, porque com o pdnsd podes desligar a máquina ou estares não sei quanto tempo (dependendo da config) sem fazeres pedidos a um servidor de DNS! O que não acontecia anteriormente!

Fikem bem,
[[[]]]