NET: DNS: Tempos limite de resolução de reencaminhadores e reencaminhadores condicionais

Este artigo descreve o comportamento de contingência e tempo limite que existe quando um ou mais IPs de Servidores DNS são configurados como reencaminhadores ou reencaminhadores condicionais num servidor DNS.

Número original da BDC: 2834250

Resumo

Verificar NET: DNS: tempos limite de resolução do cliente DNS para obter mais informações sobre os tempos limite de resolução do cliente DNS.

Da mesma forma que os clientes DNS, a configuração de servidores DNS com mais do que um Reencaminhador ou Reencaminhador Condicional adiciona tolerância a falhas adicionais à sua infraestrutura de DNS. Adicionar múltiplos Servidores DNS como Reencaminhadores ou Reencaminhadores Condicionais permite que os nomes DNS continuem a ser resolvidos em caso de falhas do único Servidor configurado, da ligação de rede subjacente ou da infraestrutura de rede de suporte.

No entanto, adicionar tolerância a falhas em Servidores é ainda mais crítico porque existe potencialmente uma operação transitiva que algum servidor está a fazer em nome de uma pluralidade de clientes que estão agora suspensos. Os recursos estão a ser consumidos por tempos incrementalmente mais longos.

Certifique-se de que otimiza corretamente os parâmetros se pretender utilizar três ou mais reencaminhadores/reencaminhadores condicionais porque as predefinições podem não estar otimizadas para esta elevada quantidade de servidores.

Qual é o comportamento predefinido de um servidor DNS quando mais de dois servidores DNS são configurados como reencaminhadores

Para compreender como isto funciona, as principais variáveis são:

  • RecursionTimeout – durante quanto tempo o Sistema de Nomes de Domínio (DNS) aguarda que os servidores remotos respondam a uma consulta de cliente recursiva antes de terminar a pesquisa.

    É guardado no registo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**RecursionTimeoutem e configurável via dnscmd /config /RecursionTimeout <value>.

    O valor predefinido é:

    • 15 segundos no Windows Server 2003

    • 8 segundos no Windows Server 2008, 2008 R2 e 2012

      O RecursionTimeout é definido ao nível do servidor DNS e é independente da zona específica consultada.

  • ForwardingTimeout – durante quanto tempo o Sistema de Nomes de Domínio (DNS) aguarda que cada servidor na lista em Reencaminhadores responda a uma consulta.

    É guardado no registo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\**ForwardingTimeout em e configurável através de dnscmd /config /ForwardingTimeout <value>.

    O valor predefinido é:

    • 5 segundos no Windows Server 2003

    • 3 segundos no Windows Server 2008, 2008R2 e 2012

      O ForwardingTimeout é definido ao nível do servidor DNS e é independente da zona específica consultada.

Quando o servidor DNS recebe uma consulta para um registo numa zona para a qual não é autoritativo e precisa de utilizar reencaminhadores, o comportamento predefinido é o seguinte:

Tempo (segundos desde o início) Ação
0 O cliente consulta o servidor DNS. O servidor DNS reencaminha imediatamente a consulta para o primeiro reencaminhador
<forwarding_timeout> Após <forwarding_timeout> segundos, se o primeiro reencaminhador não tiver respondido, o servidor DNS consulta o segundo reencaminhador.
2 * <forwarding_timeout> +1 Após <forwarding_timeout> +1 segundos a mais, se o segundo reencaminhador não responder, o servidor DNS consulta o terceiro reencaminhador.
... ...
N * <forwarding_timeout> +(N-1) Após <forwarding_timeout> + mais 1 segundos, se o reencaminhador N não responder, o servidor DNS consulta o (N+1)th forwarder.

Observação

Além do atraso configurado, pode haver um atraso adicional de meio segundo devido à sobrecarga do sistema.

O algoritmo para quando o tempo decorrido excedeu o valor RecursionTimeout

Se o RecursionTimeout expirar, o servidor DNS responderá ao cliente com uma Falha de Servidor.

Observação

Não enviamos a Falha do Servidor imediatamente após a expiração do RecursionTimeout, mas apenas quando for altura de experimentar o reencaminhador seguinte.

Se o servidor conseguir contactar todos os reencaminhadores antes de o RecursionTimeout expirar sem obter respostas, tentará utilizar as sugestões de raiz para a resolução de nomes (predefinição, a menos que a recursão tenha sido desativada ao nível do servidor).

Isto significa que, com as predefinições, um servidor 2008R2 poderá consultar no máximo 3 reencaminhadores. Não haverá tempo suficiente para chegar para utilizar o quarto reencaminhador. Na verdade, com as predefinições em 2008R2, o servidor irá:

  • Consultar o primeiro reencaminhador após 0 segundos
  • Consultar o segundo reencaminhador após 3,5 segundos
  • Consultar o terceiro reencaminhador após 3,5 + 4 = 7,5 segundos

No oitavo segundo, RecursionTimeout expira, pelo que não chegaremos ao ponto em que o quarto reencaminhador é consultado (o que teria acontecido após 3,5 + 4 + 4 = 11,5 segundos).

Enviaremos a resposta de Falha do Servidor após 11,5 segundos.

Exemplo:

O servidor DNS com o endereço IP 192.168.0.1 está configurado com cinco reencaminhadores (10.0.0.1-10.0.0.5).

O cliente tem o endereço IP 10.0.0.31 e está a consultar Microsoft.com

Numa captura de rede, veríamos a seguinte saída do Monitor de Rede (nota 10.0.0.4 e 10.0.0.5 nunca consultada):

Time Time Offset TimeDelta Source Destination Details
6:33:51.7507293 0.2731738 0.0000000 10.0.0.31 192.168.0.1 DNS:QueryId = 0xF03, QUERY (Consulta Padrão), Consulta do microsoft.com tipo Suplemento anfitrião na classe Internet
6:33:51.7510021 0.2734466 0.0002728 192.168.0.1 10.0.0.1 DNS:QueryId = 0xBD57, QUERY (Consulta Padrão), Consulta do microsoft.com tipo Suplemento anfitrião na classe Internet
6:33:55.2997074 3.8221519 3.5487053 192.168.0.1 10.0.0.2 DNS:QueryId = 0xBD57, QUERY (Consulta Padrão), Consulta do microsoft.com tipo Suplemento anfitrião na classe Internet
6:33:59.2931644 7.8156089 3.9934570 192.168.0.1 10.0.0.3 DNS:QueryId = 0xBD57, QUERY (Consulta Padrão), Consulta para microsoft.com o tipo Suplemento anfitrião na classe Internet
6:34:03.3112753 11.8337198 4.0181109 192.168.0.1 10.0.0.31 DNS:QueryId = 0xF03, CONSULTA (Consulta Padrão), Resposta - Falha do servidor

Qual é o comportamento predefinido de um servidor DNS quando mais de dois servidores DNS são configurados como reencaminhadores condicionais

Semelhante aos reencaminhadores, existem duas variáveis-chave para Reencaminhadores Condicionais. Ainda temos RecursionTimeout (que está a funcionar ao nível do servidor), mas neste cenário estamos a utilizar ForwarderTimeout em vez de ForwardingTimeout. Note especificamente que ForwarderTimeout está a funcionar numa base de zona e tem valores predefinidos diferentes:

  • RecursionTimeout – durante quanto tempo o Sistema de Nomes de Domínio (DNS) aguarda que os servidores remotos respondam a uma consulta de cliente recursiva antes de terminar a pesquisa.

    É guardado no registo em HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\RecursionTimeout

    É configurável através de dnscmd /config /RecursionTimeout <value>.

    O valor predefinido é:

    • 15 segundos no Windows Server 2003

    • 8 segundos no Windows Server 2008 e 2008R2

      O RecursionTimeout é definido ao nível do servidor DNS e é independente da zona específica consultada

  • ForwarderTimeout – quanto tempo o Sistema de Nomes de Domínio (DNS) aguarda por cada servidor na lista de Reencaminhadores Condicionais para responder a uma consulta.

    Uma vez que os Reencaminhadores Condicionais estão configurados para zonas específicas, o ForwarderTimeout também depende da zona.

    É guardado no registo HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\ <zone_name>\ForwarderTimeoutem .

    O valor predefinido é 5 segundos no Windows Server 2003, 2008, 2008R2 e 2012.

    Esta é também a definição que pode ver na GUI dos Reencaminhadores Condicionais.

Quando o servidor DNS recebe uma consulta para um registo numa zona para a qual não é autoritativo e está configurado para utilizar Reencaminhadores Condicionais para o mesmo, o comportamento predefinido é o seguinte:

Tempo (segundos desde o início) Ação
0 O cliente consulta o servidor DNS. O servidor DNS reencaminha imediatamente a consulta para o primeiro reencaminhador condicional
<forwarder_timeout> Após <forwarder_timeout> segundos, se o primeiro reencaminhador condicional não responder, o servidor DNS consulta o segundo reencaminhador condicional
2 * <forwarder_timeout> +1 Após <forwarder_timeout> +1 segundos a mais, se o segundo reencaminhador condicional não responder, o servidor DNS consulta o terceiro reencaminhador condicional
... ...
N * <forwarder_timeout> +(N-1) Após <forwarder_timeout> +1 segundos a mais, se o reencaminhador condicional N não responder, o servidor DNS consulta o (N+1)th reencaminhador condicional

Observação

Além do atraso configurado, pode haver um atraso adicional de meio segundo devido à sobrecarga do sistema

O algoritmo para quando o tempo decorrido excedeu o valor RecursionTimeout

Se o RecursionTimeout expirar, o servidor DNS responderá ao cliente com uma Falha de Servidor.

Observação

Não enviamos a Falha do Servidor imediatamente após a expiração do RecursionTimeout , mas apenas quando for a altura de experimentar o reencaminhador condicional seguinte.

Isto significa que, com as predefinições, um servidor 2008 R2 poderá consultar, no máximo, 2 reencaminhadores condicionais. Não haverá tempo suficiente para chegar para utilizar o terceiro reencaminhador condicional. Na verdade, com as predefinições em 2008R2, o servidor irá:

  • Consultar o primeiro reencaminhador após 0 segundos
  • Consultar o segundo reencaminhador após 5,5 segundos

No oitavo segundo, RecursionTimeout expira, pelo que não chegaremos ao ponto em que o terceiro reencaminhador condicional é consultado (o que teria acontecido após 5,5 + 6 = 11,5 segundos).

Enviaremos a resposta de Falha do Servidor após 11,5 segundos.

Exemplo:

O servidor DNS com o endereço IP 192.168.0.1 está configurado com cinco reencaminhadores condicionais (10.0.0.1-10.0.0.5) para a zona Microsoft.com.

O cliente tem o endereço IP 10.0.0.31 e está a consultar para Microsoft.com.

Numa captura de rede, veríamos a seguinte saída do Monitor de Rede (nota 10.0.0.3, 10.0.0.4 e 10.0.0.5 nunca consultada):

Time Time Offset TimeDelta Source Destination Details
6:50:32.5481816 0.4306857 0.0000000 10.0.0.33 192.168.0.1 DNS:QueryId = 0x245A, QUERY (Consulta Padrão), Consulta do microsoft.com tipo Suplemento anfitrião na classe Internet
6:50:32.5484341 0.4309382 0.0002525 192.168.0.1 10.0.0.1 DNS:QueryId = 0x252B, QUERY (Consulta Padrão), Consulta do microsoft.com tipo Suplemento anfitrião na classe Internet
6:50:38.1695163 6.0520204 5.6210822 192.168.0.1 10.0.0.2 DNS:QueryId = 0x252B, QUERY (Consulta Padrão), Consulta para microsoft.com o tipo Suplemento anfitrião na classe Internet
6:50:44.1856567 12.0681608 6.0161404 192.168.0.1 10.0.0.33 DNS:QueryId = 0x245A, CONSULTA (Consulta Padrão), Resposta - Falha do servidor

Referências