DNS 클라이언트와 Nslookup - SRV 레코드에 대한 DNS 클라이언트 수동 테스트 수행

DNS 클라이언트와 Nslookup - SRV 레코드에 대한 DNS 클라이언트 수동 테스트 수행

다양한 참고 자료가 있습니다(예:DNS는 호스트 이름을 확인할 수 없습니다. nslookup은 가능합니다또는https://web.archive.org/web/20160525082756/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/nslookup-flaws.html또는https://web.archive.org/web/20121113214415/http://cbfive.com/blog/post/PING-vs-NSLookup.aspx) 다음이나 유사한 내용을 명시하지만 사용할 대안을 제안하지는 않습니다.

ping은 호스트 이름을 확인할 수 없지만 nslookup은 확인할 수 있는 이유는 nslookup이 Windows DNS 클라이언트를 우회하는 하위 수준 도구이기 때문입니다. 이는 사용자가 지정한 DNS 서버(기본적으로 첫 번째 서버)를 사용하고 즉시 쿼리를 수행합니다.

내 질문은, 내가 어떻게 할 수 있느냐는 것입니다.수동으로SRV 레코드를 확인하기 위해 DNS 클라이언트를 테스트하시겠습니까? 사용하려는 DNS 정보를 볼 수 있는 방법이 있습니까? 모든 환경의 모든 서버에 Wireshark를 설치할 수는 없으므로 문제를 해결할 수 있는 다른 방법을 찾고 있습니다. 나는 대답이 "아니요"라고 가정합니다. 그렇지 않으면 왜 nslookup을 사용하겠습니까(결함이 있는 그대로). 분명히 SRV 레코드에는 핑을 사용할 수 없습니다.

업데이트된 결과로 편집됨: UDP 쿼리가 너무 길어서 잘림 플래그가 포함된 DNS 응답이 클라이언트에 전송되므로 TCP 쿼리를 작성해야 합니다. TCP DNS 쿼리 이후의 다음 패킷은 (TargetDNS에서 클라이언트로): "재조립된 PDU의 TCP 세그먼트"(응답 정보가 포함된 것처럼 보임)이며 시나리오에 따라 다릅니다.

  • Nslookup 쿼리 - nslookup 쿼리에는 실제로 정보가 포함된 DNS 응답 패킷이 있습니다.
  • ApplicationX(Windows DNS 클라이언트를 사용하는 것으로 생각됨) - Windows DNS 클라이언트 쿼리, DNS 응답 패킷이 없습니다(예: 다른 TCP 패킷이 손실된 것처럼).
    • SRV 레코드에 대한 DNS 캐시(ipconfig /displaydns) 또는 클라이언트 DNS 서버 캐시에는 아무 것도 없습니다(음수도 아님).

이는 당연히 DNS 클라이언트와 nslookup이 서로 다른 결과를 얻는다는 것을 증명합니다. 그러나 정확히 무엇을 다르게 수행하고 있습니까(호스트 할인, lmhosts, DNS 검색 접미사 추가 등)? 그들은 동일한 DNS 서버를 사용하고 있습니다(Wireshark에서 입증됨). 결함이 있는 부분을 어떻게 좁힐 수 있나요?

답변1

nslookup일반적인 응용 프로그램을 대신하여 OS가 수행하는 작업과는 별개로 자체적으로 DNS 클라이언트 역할을 한다는 귀하의 이해가 정확합니다 .

Resolve-DnsName반면 Powershell cmdlet은 기본 Windows DNS 클라이언트를 사용합니다. 따라서 이는 애플리케이션과 별도로 DNS 조회(또는 이름에도 불구하고 다른 소스)에 대한 일반적인 OS 동작을 트리거하는 데 사용할 수 있는 도구입니다.

예를 들어 조회 의 예로서 다음과 같습니다 SRV.

Resolve-DnsName -Type SRV _sip._tcp.example.com

참고: DNS 동작을 조사하는 데 유용한 등의
동작 (일반적 으로 이 범주에서 선택되는 도구)은 특히 로컬 환경이 결과에 영향을 미치지 않지만 동시에 이러한 도구를 동작 조사에 적합하지 않게 만들기 때문입니다. 로컬 OS 환경의nslookupdig

관련 정보