CentOS pesquisa de DNS extremamente lenta

2

Por algum motivo, duas das minhas máquinas começaram a sofrer pesquisas de DNS extremamente lentas.

Exemplo de saída programada do comando 'host':

[root@ns507403 ~]# time host www.google.com
www.google.com has address 172.217.5.4
www.google.com has IPv6 address 2607:f8b0:4006:80d::2004

real    0m3.050s
user    0m0.000s
sys     0m0.004s

As pesquisas parecem demorar pelo menos 3 segundos, independentemente do endereço usado ou quantas vezes a pesquisa é feita. O mais alto que eu vi foi de 9 segundos para pesquisar www.paypal.com

Eu descartei a possibilidade de um servidor DNS lento porque estou usando o mesmo resolvedor de DNS em 4 outros servidores, todos localizados no mesmo data center, e todos funcionam bem. (pesquisas de < 1 ms)

Coisas que já experimentei sem sucesso:

  • Adicionando options single-request ao /etc/resolv.conf
  • Adicionando options single-request-reopen ao /etc/resolv.conf
  • Desativando o IPv6 usando sysctl -w net.ipv6.conf.all.disable_ipv6=1
  • Desativando o NetworkManager (não está instalado no meu servidor)

Este é o meu arquivo /etc/resolv.conf atual:

nameserver 127.0.0.1
nameserver 213.186.33.99
search ovh.net

O comando dig parece funcionar bem, mostrando 0ms de tempo de consulta.

Alguma idéia do que poderia estar causando isso? Estou usando o CentOS 6 em ambas as máquinas.

    
por Elite_Dragon1337 26.07.2016 / 01:27

6 respostas

0

Acontece que, afinal de contas, era um problema de firewall. A OVH tem um firewall baseado na Web com muitos bugs que estava causando os problemas. A equipe da OVH me disse que meu firewall estava 100% correto, porque senão não seria possível resolver usando 213.186.33.99 . Isto foi incorrecto, o firewall é ignorado por este IP específico porque está aparentemente alojado dentro da rede OVH.

    
por 26.07.2016 / 13:43
3

127.0.0.1 é sua interface de loopback de localhost, o que significa que você está acessando seu próprio servidor. Por vários motivos, seu servidor está usando o primeiro para procurar DNS e, como seu servidor não sabe como responder a uma consulta DNS, é preciso esperar até que a consulta atinja o tempo limite e passe para o segundo servidor de nomes.

Use apenas o servidor de nomes DNS real como a única entrada:

nameserver 213.186.33.99

Por que você tem 127.0.0.1 como servidor de nomes?

    
por 26.07.2016 / 02:24
1

Mais do que provavelmente você está apontado para 127.0.0.1 (localhost) porque sua distro usa um daemon de serviço de nome de armazenamento em cache. Pense nisso como um servidor DNS em cache que é executado em seu próprio computador. O uso de tal daemon é de eficácia discutível.

Ele tem alguns benefícios em acelerar alguns tipos de uso da Internet, reduzindo o número de solicitações de DNS que saem para a Internet. No entanto, eu os vi bater e queimar por conta própria, resultando em erros "a rede está lenta" que muitos de nós simplesmente amamos.

Se bem me lembro, o CentOS usa o nscd (daemon de cache de serviços de nomes) para executar essa função. Um sudo service nscd restart rápido deve corrigir isso.

Ou você pode fazer o que você fez e cortar o intermediário para falar. Se esse for o caso e você não quiser executar o daemon de armazenamento em cache, desative-o com:

sudo service nscd stop
sudo chkconfig nscd off
    
por 26.07.2016 / 11:25
0

No meu caso, usei o DNS do Google em vez dos meus roteadores (Gateway)

Substitui 192.168.1.1 e adicionei:

nameserver 8.8.8.8
nameserver 8.8.4.4
    
por 11.04.2018 / 04:29
-1

Inverta a ordem do servidor de nomes e isso será acelerado.

nameserver 213.186.33.99
nameserver 127.0.0.1
    
por 26.07.2016 / 01:59
-1

Esta configuração funciona para mim:

nameserver 213.186.33.99
nameserver 127.0.0.1
nameserver 208.67.222.222
search ovh.net
    
por 05.07.2017 / 00:37