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\**RecursionTimeout
em e configurávelvia 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 dednscmd /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 domicrosoft.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 domicrosoft.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 domicrosoft.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 paramicrosoft.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>\ForwarderTimeout
em .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 domicrosoft.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 domicrosoft.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 paramicrosoft.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