DNS Optimization · 5 min read · Oct 01, 2025

Acelerando o Acesso DNS em Regiões com Infraestrutura Muito Baixa

Acelerando o Acesso DNS em Regiões com Infraestrutura Muito Baixa

Introdução

Vamos supor que você esteja em uma conexão via satélite cara que mal consegue fornecer largura de banda suficiente para o acesso à Internet da sua empresa e você vai querer fazer o que puder para obter o máximo possível dessa conexão. Além disso, ocasionalmente você perde energia da companhia de energia, o suficiente para que seu no-break se esgote. Existem algumas coisas que você pode fazer para obter muito mais de sua conexão. Neste artigo, vamos analisar como acelerar suas solicitações DNS mantendo um cache de respostas para suas solicitações DNS em seu disco rígido. Solicitações DNS subsequentes são então atendidas a partir do cache e, como uma cópia está no disco, você não a perde quando há uma queda de energia ou um reinício.

A versão atualizada deste documento está em: www.httpcompression.net.

Análise

Eu preciso disso? Bem, vamos ver. A partir do seu Linux, emita o seguinte comando:

dig www.httpcompression.net

Entre outras coisas, eu obtive o seguinte resultado:

;; Tempo de consulta: 583 msec

Após alguns segundos, emiti o comando novamente e obtive:

;; Tempo de consulta: 612 msec

Obviamente, os servidores DNS do meu ISP simplesmente encaminham as solicitações para os EUA (eu estou em Acra, Gana, Oeste da África, conectando-me à Internet através de cabo de fibra óptica submarino SAT3). Aparentemente, os resultados da primeira solicitação não foram armazenados em cache. Se tivessem sido, teriam expirado até o momento da segunda solicitação. Certamente, tal ambiente é um candidato perfeito para essa configuração.

Como Fazer

Estou trabalhando em um servidor Ubuntu. O software que usaremos é o pdnsd. O site diz o seguinte sobre o pdnsd:

“pdnsd é um servidor DNS proxy com cache permanente (o conteúdo do cache é gravado no disco rígido ao sair) que é projetado para lidar com servidores DNS inacessíveis ou fora do ar (por exemplo, em redes de discagem). Desde a versão 1.1.0, o pdnsd suporta cache negativo.”

A partir do seu Ubuntu ou qualquer outra distribuição baseada em Debian, emita o seguinte comando:

apt-get install pdnsd

Uma página de configuração apareceu com três opções “resolvconf / Usar servidores raiz / Manual”. Eu selecionei “Manual” e continuei com a instalação.

A instalação padrão tem um arquivo de configuração, partes do qual foram comentadas. Uma linha é comentada com “//“ enquanto várias linhas são comentadas com “/ /“. Ex:

// Esta é uma linha comentada no arquivo de configuração.
/*
Estas são linhas comentadas
no arquivo de configuração.
*/

Use seu editor de texto favorito para editar os seguintes arquivos de configuração:

  1. /etc/default/pdnsd Edite a linha com START_DAEMON da seguinte forma: START_DAEMON=yes
  2. /etc/pdnsd.conf No bloco global, você pode querer alterar a seguinte configuração: server_ip = 127.0.0.1; Este é o IP no qual o pdnsd pode ser acessado. Se o endereço for deixado no padrão de 127.0.0.1, apenas programas no próprio servidor podem acessar o servidor pdnsd. No entanto, se você quiser que outros servidores e PCs usem esta instalação do pdnsd como seu servidor DNS, então você deve alterar o endereço IP para o endereço IP apropriado em seu servidor que você deseja que seus clientes usem. Use o bloco de servidor para definir os servidores DNS que o pdnsd consultará para resolver nomes de domínio. Existem dois blocos de servidor que estão comentados por padrão. Os servidores opendns são muito confiáveis e populares, você pode querer usá-los: server { label="opendns"; ip = 208.67.220.220,208.67.222.222; }

Certifique-se de que o bloco do servidor não esteja comentado. Se o seu ISP tiver um servidor DNS confiável, você pode usá-lo em vez disso. Tanto quanto possível, evite os servidores raiz.

  1. /etc/resolv.conf Este arquivo contém os servidores DNS que programas em seu servidor (digamos squid, apache) normalmente consultarão para resolução de nomes. Agora, você vai querer consultar o servidor pdnsd local que você acabou de instalar, então você insere o endereço IP da sua interface de loopback (lo), ou seja, 127.0.0.1. Esta deve ser a única entrada neste arquivo. 127.0.0.1

Testes e Conclusão

Agora inicie seu servidor pdnsd:

/etc/init.d/pdnsd start

Agora emita o seguinte comando e fique atento ao Tempo de consulta: na resposta para determinar como você está indo:

dig www.httpcompression.net
;  DiG 9.4.2-P2  www.httpcompression.net
;; Tempo de consulta: 3323 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; QUANDO: Seg Nov  3 20:02:37 2008
;; TAMANHO MSG  recebido: 71

Após um tempo, emita o comando novamente:

dig www.httpcompression.net
;  DiG 9.4.2-P2  www.httpcompression.net
;; Tempo de consulta: 1 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; QUANDO: Seg Nov  3 20:03:07 2008
;; TAMANHO MSG  recebido: 71

Dos dois resultados acima, a primeira consulta levou 3323 msecs enquanto a segunda, 30 segundos depois, levou apenas 1 msec para resolver. Agora, após um reinício do servidor:

dig www.httpcompression.net
;; Tempo de consulta: 3 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; QUANDO: Seg Nov  3 20:06:38 2008
;; TAMANHO MSG  recebido: 71

Após o reinício, a consulta levou apenas 3ms para resolver. Não perdemos nosso cache. Você pode querer ler o manual e alterar algumas configurações para se adequar à sua situação. Algumas dessas configurações são:

  1. min_ttl: O tempo mínimo padrão que uma resposta em cache deve ser mantida é de 15 minutos. Você pode querer aumentar isso para reduzir a frequência com que você contata servidores pai. O efeito colateral é que, se o endereço de um site mudar, levará um tempo para o seu qdnsd contatar os servidores pai para o novo endereço. Se o tempo mínimo não for longo o suficiente, você também perderá seu cache após uma queda de energia prolongada.
  2. perm_cache: Este é o tamanho do espaço em disco para o seu cache. Dependendo do tráfego em sua rede, você pode querer aumentar isso para um valor que possa armazenar confortavelmente pelo menos uma semana de dados. Você pode monitorar o tamanho do arquivo de cache ao longo do tempo para ter uma ideia do que deve ser adequado para você.
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.