Resolução de DNS falhando no DNS secundário - por quê?

2

Temos um grande número de filiais conectadas via VPN, mas sem qualquer tipo de infraestrutura de servidor. As máquinas clientes em cada escritório obtêm sua configuração de rede de um ASA 5505, que também é usado para a conexão VPN.

As máquinas cliente do Windows XP são configuradas para usar um dos nossos servidores DNS corporativos como o principal, com o servidor DNS do ISP como secundário. A ideia é que, se a conexão VPN falhar por algum motivo, a equipe do escritório ainda poderá acessar a Internet e acessar nosso portal de webmail e acesso doméstico. Na maioria dos casos, isso funciona bem.

No entanto, para escritórios localizados na América do Sul, estamos vendo a resolução de DNS nas máquinas clientes sendo feita regularmente contra o servidor DNS do ISP - isso resulta em nossos recursos corporativos efetivamente indisponíveis para a equipe nos escritórios.

As máquinas clientes conseguem fazer ping no servidor DNS corporativo, ok. Ao fazer um nslookup de um nome de host corporativo, recebo uma resposta.

Estou a pensar que um dos seguintes (ou uma combinação) está a acontecer:

  • nosso servidor DNS corporativo nem sempre responde às solicitações em tempo hábil (embora o motivo de isso afetar apenas clientes em uma região geográfica não sei)
  • As consultas DNS da América Latina estão de alguma forma atrasadas, fazendo com que o cliente a considere falha (embora tenhamos escritórios no final de conexões VSAT muito mais lentas que não têm esse problema)
  • uma única falha está resultando em uma entrada de cache do DNS no Windows que, de alguma forma, faz com que as pesquisas não ocorram nas tentativas subsequentes

Alguém mais se deparou com este problema? Alguma idéia para resoluções?

    
por dunxd 18.10.2011 / 11:38

2 respostas

4

O Windows consulta o DNS nesta ordem :

  • arquivo de hosts
  • cache DNS local
  • Servidores DNS preferidos
  • Outros servidores DNS

O MS também tem um artigo descrevendo como a lista de servidores DNS é obtida :

The DNS Client service uses a server search list, ordered by preference. This list includes all preferred and alternate DNS servers configured for each of the active network connections on the system.

The list is arranged based on the following criteria:

  • Preferred DNS servers are given first priority.
  • If no preferred DNS servers are available, then alternate DNS servers are used.
  • Unresponsive servers are removed temporarily from these lists.

O Windows tem um tempo limite crescente para solicitações de DNS :

Value      Default value  Attempt
1st limit       1 second  Query the preferred DNS server on a preferred connection.
2nd limit      2 seconds  Query the preferred DNS server on all connections.
3rd limit      2 seconds  Query all DNS servers on all connections (1st attempt).
4th limit      4 seconds  Query all DNS servers on all connections (2nd attempt).
5th limit      8 seconds  Query all DNS servers on all connections (3rd attempt).
6th value                 (Must be 0.)

Não consegui encontrar uma resposta clara sobre este ponto exato, mas parece que se não obtiver uma resposta do seu DNS primário em 1 ou 2 segundos (1ª ou 2ª tentativa, respectivamente), esse servidor será removido da lista de pesquisa do servidor DNS por 15 minutos e, portanto, usará os servidores DNS secundários. Como esses servidores têm um tempo limite de até 8 segundos, eles são muito mais propensos a responder. (Não está claro para mim se continua a consultar o servidor DNS preferido durante a terceira tentativa + se ele já falhou).

Também suspeito que você realmente tenha um problema de latência de WAN para essa área geográfica, pois isso explicaria por que os tempos limite estão funcionando.

Uma solução é alterar os tempos limite de consulta de DNS, usando o parâmetro de registro DNSQueryTimeouts . Veja também link

Outra solução é colocar um servidor DNS de cache local na rede e fazer com que os clientes o usem. Você pode usar um servidor DNS que pode estar embutido em um roteador ou instalar algo como dnsmasq .

    
por 19.10.2011 / 06:49
5

De acordo com a Technet link consultas posteriores são feitas para vários servidores DNS em paralelo.

E a maioria das pessoas tem apenas uma conexão de rede e uma conexão de banda larga rápida e normalmente deve esperar uma resposta de DNS dentro de 1s.

Por isso, defini meu DNSQueryTimeouts como 1 1 1 10 10 0 para que ele possa emitir consultas paralelas para todos os servidores DNS o mais rápido possível. Então eu coloco os servidores DNS do meu ISP na lista primeiro (já que eles estão fisicamente mais próximos e menos propensos a estarem sujeitos a pacotes de rede, com vários servidores DNS públicos para trás, e deixam o Windows fazer o seu trabalho.

E minha navegação na web acelerou imensamente !!!

Obviamente, não dê prioridade aos servidores DNS do ISP em um ambiente corporativo quando você quiser resolver nomes de hosts internos internamente!

    
por 04.06.2014 / 09:32