Digamos que eu enviei uma consulta para registro TXT para m1._domainkey.amazon.com
nslookup -q=txt m1._domainkey.amazon.com
Digamos que os servidores de nomes oficiais para amazon.com sejam
amazon.com nameserver = ns1.amzndns.com.
amazon.com nameserver = ns1.amzndns.org.
amazon.com nameserver = ns1.amzndns.net.
O que aconteceria se esse registro TXT NÃO estivesse presente no primeiro servidor de nomes oficial que o resolvedor consulta, ns1.amzndns.com, mas ESTÁ presente em outro, ns1.amzndns.org? É normal que o resolvedor continue consultando os servidores de nomes até obter uma resposta?
Na prática, tenho visto que conseguirei o registro TXT mesmo que ele não esteja em todos os nameservers.
Por favor inclua documentação/referência em sua respostapara que eu possa estudar isso de forma independente.
Obrigado por ler.
Responder1
Oservidores de nomes autorizadosdefinir um sinalizador de protocolo, chamado"Resposta Autorizada" (AA)bit em suas respostas e o resolvedor considera essa resposta como verdade.
Quando a resposta for afirmativa, a resposta conterá o registro do recurso solicitado.
Quando o servidor de nomes autoritativo não possui esse registro de recurso, a resposta será uma mensagem NXDOMAIN.
Quando seus servidores de nomes autoritativos são inconsistentes, a resposta que um cliente obtém dependerá de qual servidor de nomes autoritativo foi consultado. E essa resposta será considerada a verdade.
É normal que o resolvedor continue consultando os servidores de nomes até obter uma resposta?
Sim, mas apenas quando o(s) primeiro(s) servidor(es) de nomes não responder(em) de todo.
Assim que qualquer resposta (positiva ou negativa) for recebida, o resolvedor não precisará consultar seus outros servidores de nomes.
(Não é como se o seu resolvedor se comportasse como uma criança de seis anos, quando um dos pais dá uma resposta, eles vão até o outro pai na esperança de obter uma resposta diferente da qual gostem mais.)
Responder2
O comportamento dos resolvedores depende da implementação.
O Microsoft Windows 10, por exemplo, consulta todos os servidores de nomes em paralelo. O cliente usará o primeiro servidor para responder, mesmo que seja uma resposta negativa.
Se um cliente consultar os servidores de nomes sequencialmente, ele o fará e atingirá o tempo limite se uma resposta não for recebida e prosseguirá para o próximo servidor de nomes configurado. Quando uma resposta é recebida, a consulta é finalizada, mesmo que seja uma resposta negativa.
O que não ocorrerá é que o cliente não esperará a resposta de todos os servidores de nomes. O cliente não usará múltiplas respostas, apenas a primeira resposta.
Se a Amazon tiver 100 servidores de nomes e apenas um tiver um registro de recursos, e um cliente consultar um dos outros 99 servidores de nomes, receberá uma resposta negativa para o registro de recursos.
https://superuser.com/questions/969171/multihomed-windows-10-dns-resolution-timeouts/970322#970322
in practice, I have seen that I will get the TXT record even though it is not on all nameservers.
Se você tiver dúvidas sobre um registro, sinta-se à vontade para compartilhar o registro que reproduz o comportamento, incluindo detalhes do cliente, para que possamos reproduzi-lo.
Mais Informações:
A Microsoft introduziu a resolução de nomes paralela para registros A/AAAA devido a vários incidentes em que os servidores de nomes foram configurados incorretamente. Isso geralmente causava grandes problemas quando servidores de nomes não primários eram consultados devido à indisponibilidade do primário. O processo de resolução iterativa possui tempos limite e cada nível pode ter tempos limites diferentes e um tempo limite cumulativo. Também existem regras para usar resultados de vários adaptadores de rede. Isto levou a cenários em que algumas organizações configuraram quatro ou cinco servidores de nomes para fins de alta disponibilidade. Infelizmente, o processo expira após o terceiro servidor, portanto a estratégia DNS era inválida, a estratégia de recuperação de desastres era inválida e causava outros problemas próprios.
Ao usar o nslookup, para simular o comportamento de um resolvedor e executar uma consulta iterativa em um servidor de nomes específico, use a -norecurse
opção.