Otimizando o serviço de DNS até a tampa.
O primeiro passo é utilizar um cache de DNS, no nosso caso usamos o pDNSd (DNScache).
Funciona assim, você digita no seu browser, por exemplo,
http://www.google.com.br, o computador precisa converter isso em IP, então ele pergunta pro DNS cadastrado, que é o do BFW, lá o pDNSd esta monitorando e faz a resolução pra você, primeiro ele procura no cache e se não encontrar, resolve disparando as pesquisas em paralelo para todos os DNS cadastrados no seu arquivo .conf, aguarda a primeira resposta e responde o pedido, então guarda essa reposta na memória/disco pra acelerar os próximos pedidos respondendo direto do cache. Nesse processo um site com IP já cacheado é resolvido em 0ms, e um site que ainda não está no cache é resolvido em 250ms em media. Ok 250ms é pouco tempo, mas multiplique isso pelo numero de resoluções diárias e veja o estrago.
Legal, o pDNSd acelera muito bem as requisições DNS que você precisa, mas só quando já está no cache, quando não está ele fica lento, amarrado no tempo de resposta do DNS externo configurado nele. Se conseguirmos baixar esse tempo de 250ms pra 150, 100 ou 30ms já vai dar uma diferença perceptível, vamos fazer isso então.
Baixe a ferrementa DNS Benchmark da Precision Software - Steve Gibson em
http://www.grc.com/dns/benchmark.htm (freeware)
Crie uma lista de servidores DNS e salve com a extensão .ini, deixei uma pronta aqui
http://www.brazilfw.com.br/users/coidiloco/DNSBROPT.INI baseada na lista de DNS da abusar.org
http://www.abusar.org/dns.htmlPreparação:
Quando o DNS Bench roda pela primeira vez, já abre com uma lista padrão (img.1) de servidores DNS, essa lista não interessa muito pros brasileiros, então vamos remove-la. Pra isso clique em add/remove e depois Remove Public Nameservers, deve ficar apenas o IP do BFW. (img.2).
img.1
img.2
Vamos adicionar a nossa lista, vou usar a lista que já preparei, mais os dois servidores DNS que o provedor passa, repare no campo para entrada manual de IPs.
Clique em add/remove (img.3) e add .ini file nameservers que nada mais é do que uma lista de IPs no formato texto com a extensao .ini e aponte para a sua lista.
img.3
img.3-2
Rodando o teste:
Preparei meu BFW com os IPs fornecidos pelo provedor e mais os do OpenDNS.
Sabemos que o BFW será o mais rápido em respostas”cached” então classifiquei o resultado em repostas “uncached” (img.4)
img.4
img.4-2
Otimizando:
Lembra que o pDNSd faz as consultas em paralelo? Então vamos escolher os servidores com melhor desempenho individual, ou seja, o melhor com índice cached (vermelho), o melhor com índice uncached (verde) e o melhor com índice dotcom (azul). No meu caso foram esses:
Melhor servidor em uncached e dotcom
Melhor em cached foi meu provedor
Então os servidores com melhor tempo de resposta nos 3 itens são o 200.202.17.1 que é melhor em repostas uncached e dotcom e 200.175.5.139 que é o melhor em respostas cached. Vamos configurar o pDNSd pra usar esses dois.
Alterando as entradas circuladas
Depois de alteradas, ficaram assim:
Não removi os IPs do OpenDNS porque o pDNSd sempre vai aceitar a resposta mais rápida, mas se houver falhas no servidor rápido, o OpenDNS ta lá pra ajudar.
Não coloquei o IP do meu provedor porque ele já é passado na conexão PPPoE.
Agora é só reiniciar o serviço do DNScache (pDNSd) e comparar.
Antes:
Depois:
Um ganho de 65% para resoluções uncached e 354% para dotcom!!
Agora que seu BFW está otimizado até a tampa, então ta tudo certo?
Não!!
Ainda tem a questao da segurança, esses servidores podem ser vulneráveis a ataques de “Cache Poisoning” faça o teste clicando botão ao final da pagina em
https://www.grc.com/dns/dns.htm e se houver riscos, troque pelo próximo mais rápido da lista. ;)
By Coidiloco
Abrass