하나의 권한 있는 이름 서버에는 특정 레코드가 없지만 다른 하나에는 특정 레코드가 있는 경우 DNS 확인자의 동작은 무엇입니까?

하나의 권한 있는 이름 서버에는 특정 레코드가 없지만 다른 하나에는 특정 레코드가 있는 경우 DNS 확인자의 동작은 무엇입니까?

m1._domainkey.amazon.com에 대한 TXT 레코드에 대한 쿼리를 보냈다고 가정해 보겠습니다.

nslookup -q=txt m1._domainkey.amazon.com

amazon.com의 권한 있는 네임서버는 다음과 같습니다.

amazon.com  nameserver = ns1.amzndns.com.
amazon.com  nameserver = ns1.amzndns.org.
amazon.com  nameserver = ns1.amzndns.net.

이 TXT 레코드가 확인자가 쿼리하는 첫 번째 권한 있는 네임서버인 ns1.amzndns.com에 없지만 다른 ns1.amzndns.org에는 있는 경우 어떻게 되나요? 확인자가 응답을 얻을 때까지 이름 서버에 계속 쿼리하는 것이 일반적입니까?

실제로 모든 네임서버에 있지 않더라도 TXT 레코드를 얻을 수 있다는 것을 보았습니다.

답변에 문서/참고자료를 포함해 주세요.그래서 나는 이것을 독립적으로 공부할 수 있습니다.

읽어 주셔서 감사합니다.

답변1

그만큼신뢰할 수 있는 네임서버프로토콜 플래그를 설정합니다."정답"(AA)응답에 비트가 포함되어 있고 리졸버는 해당 응답을 진실로 받아들입니다.

응답이 긍정적이면 요청된 리소스 레코드가 응답에 포함됩니다.

권한 있는 이름 서버에 해당 리소스 레코드가 없으면 응답은 NXDOMAIN 메시지가 됩니다.

권한 있는 이름 서버가 일관되지 않은 경우 클라이언트가 받는 응답은 쿼리된 권한 있는 이름 서버에 따라 달라집니다. 그리고 그 반응은 진실로 간주될 것이다.

확인자가 응답을 얻을 때까지 이름 서버에 계속 쿼리하는 것이 일반적입니까?

예, 하지만 첫 번째 이름 서버가 전혀 응답하지 않는 경우에만 해당됩니다.

긍정적이거나 부정적인 응답이 수신되면 확인자는 다른 이름 서버에 쿼리할 필요가 없습니다.

(여러분의 해결사가 6세 어린이처럼 행동하는 것과는 다릅니다. 한 부모가 한 가지 대답을 하면 다른 부모에게 가서 자신이 더 좋아할 다른 대답을 얻기를 바라기 때문입니다.)

답변2

확인자의 동작은 구현에 따라 다릅니다.

예를 들어 Microsoft Windows 10은 모든 이름 서버를 병렬로 쿼리합니다. 클라이언트는 부정적인 응답이더라도 첫 번째 서버를 사용하여 응답합니다.

클라이언트가 순차적으로 이름 서버를 쿼리하는 경우 이를 수행하고 응답이 수신되지 않으면 시간 초과되어 구성된 다음 이름 서버로 진행됩니다. 응답이 수신되면 부정적인 응답이라도 쿼리가 완료됩니다.

발생하지 않는 일은 클라이언트가 모든 이름 서버가 응답할 때까지 기다리지 않는다는 것입니다. 클라이언트는 여러 응답을 사용하지 않고 첫 번째 응답만 사용합니다.

Amazon에 100개의 이름 서버가 있고 하나만 리소스 레코드가 있고 클라이언트가 다른 99개의 이름 서버 중 하나를 쿼리하는 경우 리소스 레코드에 대한 부정적인 응답을 받게 됩니다.

https://superuser.com/questions/969171/multihomed-windows-10-dns-solution-timeouts/970322#970322

in practice, I have seen that I will get the TXT record even though it is not on all nameservers.

기록에 대해 질문이 있는 경우 고객 세부 정보를 포함하여 행동을 재현한 기록을 자유롭게 공유하여 재현할 수 있도록 하십시오.


추가 정보:

Microsoft는 이름 서버가 잘못 구성된 수많은 사건으로 인해 A/AAAA 레코드에 대한 병렬 이름 확인을 도입했습니다. 이로 인해 기본 이름 서버를 사용할 수 없어 기본 이름 서버가 아닌 서버를 쿼리할 때 일반적으로 심각한 문제가 발생했습니다. 반복 해결 프로세스에는 시간 초과가 있으며, 각 수준에는 서로 다른 시간 초과와 누적 시간 초과가 있을 수 있습니다. 여러 네트워크 어댑터의 결과를 사용하는 규칙도 있습니다. 이로 인해 일부 조직에서는 고가용성을 목적으로 4~5개의 이름 서버를 구성한 시나리오가 발생했습니다. 불행하게도 세 번째 서버 이후 프로세스 시간이 초과되어 DNS 전략과 재해 복구 전략이 유효하지 않아 다른 문제가 발생했습니다.


nslookup을 사용할 때 확인자의 동작을 시뮬레이션하고 특정 이름 서버에 대해 반복 쿼리를 수행하려면 스위치를 사용하십시오 -norecurse.

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup-set-recurse

관련 정보