Por razões de desempenho, o DNS local é difícil de superar. Se você não precisa do seu próprio servidor para a resolução de nomes locais, a segunda melhor opção é usar o servidor DNS fornecido pelo seu ISP por um motivo simples: teoricamente, você não pode fazer uma resolução DNS mais rápida do que através do seu ISP simplesmente porque solicitações a qualquer outro servidor DNS público (como 8.8.8.8 ou 4.2.2.2) passará por seus servidores ISP de qualquer maneira. (obviamente, existe a possibilidade de que a configuração do DNS seja configurada incorretamente pelo seu ISP, mas eu assumirei que ele funciona como esperado).
Quando qualquer aplicativo tenta resolver um nome de host, primeiro o SO tenta resolvê-lo usando o cache interno, se o cache não estiver disponível, ele entrará em contato com o servidor DNS. Ao usar o dig , você pode ignorar o cache do sistema operacional, consultar diretamente o seu ou qualquer servidor DNS aleatório e ver as horas que ele leva para resolver usando esse servidor DNS.
Por exemplo, se eu quiser resolver google.com
usando o servidor DNS do meu provedor:
> dig -4 -u +notcp google.com @76.14.0.8
...
google.com. 210 IN A 172.217.6.46
;; Query time: 9027 usec
...
Demorou 9027 microssegundos para resolvê-lo. Se eu correr como 10 vezes, obtenho valores consistentes dentro do intervalo de 9 a 10 ms. Agora, se eu tentar usar o servidor DNS do google:
> dig -4 -u +notcp google.com @76.14.0.8
...
google.com. 168 IN A 216.58.192.14
;; Query time: 30024 usec
...
Demorou 30024 microssegundos. Se eu cavar usando seus servidores, recebo valores que variam de 20 a 60 ms, o que é muito pior do que usar o servidor DNS fornecido pelo meu provedor local. Estou fisicamente localizado a alguns quilômetros da sede do Google, talvez meu ponto local que lida com 8.8.8.8 também não esteja tão longe, mas para alguém distante de 8.8.8.8 a diferença será muito pior.
Se você tiver um servidor DNS local (o roteador pode tê-lo), então:
> dig -4 -u +notcp google.com @192.168.0.1
...
google.com. 4 IN A 216.58.195.78
;; Query time: 9368 usec
...
Demorou 9368 microssegundos, porque o meu router não tinha cache para google.com e tinha de contactar o meu ISP para o resolver. Mas, se eu executar na segunda vez, sempre obtenho resultados em cache que sejam consistentemente menores que 1 ms:
> dig -4 -u +notcp google.com @192.168.0.1
...
google.com. 2 IN A 216.58.195.78
;; Query time: 493 usec
...
Difícil de bater esse tipo de performance.
No geral, na ordem de desempenho:
-
O cache do sistema operacional é o mais rápido (talvez um microssegundo ou menos para resolver
), pois não há solicitações de rede envolvidas
-
Servidor DNS local com tempos de resolução de 0,5 a 1 ms
-
O servidor DNS do ISP (pode ser qualquer coisa, vamos supor que 10ms)
-
Qualquer outro servidor DNS que adicione aproximadamente o tempo extra necessário para processar a solicitação dos seus servidores ISP para o outro servidor DNS, pode ser de 20 a 60ms, na melhor das hipóteses.
Então, quando você usaria 8.8.8.8, a quarta opção de desempenho seria a segunda?
-
quando a sua rede estiver mal configurada ou você não souber o IP do seu servidor DNS quando precisar inseri-lo, basta usar o 8.8.8.8 como solução rápida.
-
use-o como um servidor DNS de backup secundário.
-
use-o se o seu servidor DNS primário filtrar alguns domínios (em alguns países para bloquear o acesso a determinados sites).