[server] DNS에서 신뢰할 수있는 네임 서버를 보내는 이유는 무엇입니까?

호기심으로 Wireshark DNS 패킷을 확인하고 있습니다. 호스트의 DNS 쿼리가 있고 DNS 서버의 DNS 응답이 있음을 알 수 있습니다. 모든 것이 예상대로입니다.

그러나 쿼리를 추가로 체크인하면 서버가 NS (Authoritative Name Server)도 전송 함을 알 수 있습니다. 내 질문은 : 왜?

호스트로서 나는 IP에만 관심이 있습니다. 즉,의 DNS의 주요 지점 에, IP 주소로 이름을 확인할 .

왜 호스트로서 NS 정보가 필요합니까?



답변

전통적으로 서버가 쿼리에 짧은 응답하지만, RFC 보내지 않는 이름 (1034)(1035) 리소스 레코드가 들어있는 권한 섹션을 포함 준수 전체 응답을하는 권위있는 네임 서버 (들)을 향해 가리 킵니다.

그 이유는 아마도 DNS의 분산되고 위임 된 특성으로 인해 “진리의 근원”을 응답에 포함시키는 것이 좋은 생각 인 것 같습니다.

편집 : 그런데 : 권한 섹션을 보내는 것은 RFC를 준수하지만 모든 쿼리 응답에 필수는 아닙니다.

BIND에서이 동작은 minimal-responses yes | no;지시문 으로 조정할 수 있습니다 . 여기서 기본값은 no쿼리 응답의 권한 및 추가 섹션이 항상 채워집니다.
다른 네임 서버 CloudFlare, AWS Route 53, Infoblocks 및 아마도 다른 서버는 기본적으로 항상 최소한의 최소 응답을 보냅니다. Google의 공개 리졸버는 사용 가능한 경우 권한 섹션을 Cloudflare에 반환합니다.


내가 생각하는 실제 질의 응답이 폐지에서 (의사)의 코드를 루트를 발견으로 그 전통의 기원뿐만 아니라에서 권한 섹션을 모두 포함하는 RFC882의 페이지 15-16

If the name server is not authoritative, the code copies
the RRs for a closer name server into the response.

The last section of the code copies all relevant RRs into the response.

답변

서버는 요청이 최종 클라이언트에서 오는지 또는 다른 네임 서버의 재귀 요청인지 알 수 없습니다. 다른 이름 서버 인 경우 권한 섹션을 캐시하고 나중에 해당 이름 서버를 직접 쿼리 할 수 ​​있습니다.

나는 이것이 프로토콜의 원래 정당화라고 생각하지만 보안에 영향을 미칩니다. 응답에는 가짜 이름 서버를 나열하는 권한 섹션이 포함될 수 있으며 이는 캐시 포이즈 닝 공격에 사용되었습니다. 따라서 네임 서버는 쿼리하는 도메인의 하위 도메인에 대한 위임 레코드가 아닌 한 NS 레코드를 캐시하지 않습니다.


답변