Acelerar resolução de DNS com o pdnsd
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
- Clique Iniciar Sessão ou registar-se para colocar comentários







Comentários
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,
[[[]]]