반복적인 요청을 하는 DNS

반복적인 요청을 하는 DNS

재귀 대신 반복 쿼리를 수행하도록 Windows 또는 Linux에서 클라이언트를 구성할 수 있는지 묻고 싶습니다.

DNS 서버에서 재귀 기능을 끄는 방법에 대한 기사만 찾았습니다.

감사합니다

답변1

반복적인 DNS 쿼리가 무엇인지 전혀 모릅니다.

DNS 서버로 전송된 쿼리는 "재귀 요청" 플래그를 설정할 수 있습니다. Humanspeak에서는 "[사물]의 주소가 무엇인지 모르시면 찾아주세요"라고 말하는 것과 같습니다. 서버는 이를 거부하고 "모르고 묻지 않았습니다"에 해당하는 결과를 반환하거나 "내가 주변에 물었는데 [이것]입니다." 또는 "주변에 물었고 그랬습니다"라고 답할 수도 있습니다. [이것]이라고 말했어요." 또는 "나는 이것을 알고 있고, 그것은 [이것]이고, 나는 실제로 그 주소에 대한 권위자입니다."

비재귀 쿼리는 "[사물]의 주소가 무엇인지 모르면 그냥 그렇다고 말하세요"입니다. 서버는 어쨌든 이전 재귀 쿼리의 답을 이미 알고 이를 반환할 수도 있고 그렇지 않을 수도 있지만 어느 쪽이든 결과적으로 아무 것도 쿼리하지 않습니다.

서버가 S라고 가정하고 재귀 요청을 수락하면 이름(예: "www.example.com")을 사용하고 정보가 있는 가장 오른쪽 구성 요소부터 시작합니다.

이것은 전혀 아무것도 아닐 수도 있습니다. 이 경우 S는 루트 서버에 쿼리를 보냅니다. 루트 서버의 목록은 캐시되었거나 하드 코딩되거나 사전 구성된 목록으로 제공됩니다. 루트 서버 중 하나는 "www.example.com, 재귀 요청"에 대한 요청을 수신합니다. 루트 서버는 반복되지 않지만 자신이 알고 있는 차선의 정보, 즉 주소와 함께 ".com"에 대한 이름 서버를 반환합니다.
달리기를 해보세요dig www.google.com @c.root-servers.net

그런 다음 S는 그 중 하나에 "www.example.com, 재귀 요청"을 요청합니다. 그들은 또한 재귀하지 않지만 차선책인 "example.com"에 대한 네임서버와 해당 주소를 반환합니다(다시 얻은 위치를 건너뛰고 "접착 레코드"를 검색합니다).
달리기를 해보세요dig www.google.com @k.gtld-servers.net

그런 다음 S는 그 중 하나에 "www.example.com, 재귀 요청"을 요청합니다. 그들은 답을 알고 있기 때문에 반복할 필요가 없습니다. 따라서 "권한 있는 답변" 플래그와 함께 다시 보낼 것입니다.
실행해 보세요 dig www.google.com @ns3.google.com("aa" 플래그에 주의하세요. 여기응답 플래그 목록).

그런 다음 S는 권한이 없기 때문에 "aa" 플래그 없이 최종 답변을 클라이언트에 다시 보냅니다. 즉, 요청해야 했습니다.

어떤 측면에서 "재귀적" 쿼리는 S에 의해 "반복적으로" 처리됩니다. 클라이언트가 이를 직접 수행하려면 사전 구성된 루트 서버 목록(이를 요청하여 업데이트할 수 있음)이 있어야 하며, 다른 로컬 프로그램이 재사용할 수 있도록 결과를 캐시합니다. 이는 기본적으로 로컬 호스트에서 반복적인 캐싱 전용(아무 것도 신뢰할 수 없기 때문에) 네임서버를 실행한다는 의미입니다.

그럼... 질문을 명확히 해주실 수 있나요? 당신은 무엇을 하고 싶다고 생각하나요?

답변2

서버에 DNS 요청을 보낼 때 반복 모드로 조정할 수 있습니다. 이 요청에서는 DNS 서버 설정을 무시합니다.

예를 들어, dig 또는 nslookup에서 시도해 볼 수 있습니다.

dig +norecurse netpas.co

DNS 서버가 레코드를 캐시한 경우 A 레코드를 얻게 됩니다. 또는 다음에 시도해야 할 DNS 서버에 대한 제안입니다.

관련 정보