DNS 클라이언트는 여러 답변을받을 때 IP 주소를 어떻게 선택합니까? IP 주소를 검색 할 때

DNS 서버가 클라이언트의 IP 주소를 검색 할 때 쿼리 할 여러 DNS 서버 목록을 받으면 어떻게 선택합니까? 마찬가지로 DNS 클라이언트가 FQDN에 대한 여러 IP 주소 목록을 받으면 어떻게 선택합니까? 구현이 구체적입니까, 아니면 RFC에 포함되어 있습니까?



답변

쿼리를 해결하는 DNS 서버는 내역 응답 시간 데이터를 기반으로 나열된 서버를 사용하는 순서를 우선 순위로 지정할 수 있습니다 (RFC1035 섹션 7.2). 또한 더 가까운 서브넷으로 우선 순위를 지정할 수도 있습니다 (RFC에서이 내용을 보았지만 어느 것을 기억하지는 않습니다). 사용 가능한 기록 또는 서브넷 우선 순위가없는 경우 임의로 선택하거나 첫 번째 것을 선택할 수 있습니다. DNS 서버 구현이 위의 다양한 조합을 수행하는 것을 보았습니다.

A / AAAA 레코드 목록에서 IP 주소를 선택하는 클라이언트 프로그램은 일반적으로 DNS 서버 (라운드 로빈)가 반환 한 순서대로 주소를 시도합니다. 클라이언트가 반환 된 첫 번째 IP 주소에 연결할 수 없으면 두 번째 IP 주소 등을 시도해야합니다. 예를 들어 모든 주요 브라우저에서이 작업을 수행하지만 다른 많은 인터넷 클라이언트 프로그램은이 단계를 “잊어”첫 번째 IP 주소에 연결할 수 없으면 실패합니다.


답변

RFC 1794 요청하신 라운드 로빈 문제를 다룹니다.

답이 나오면 대부분의 DNS 클라이언트는 목록의 첫 번째 IP 주소를 사용하고, 일부는 서브넷 계산을 통해 더 가까운 것을 알아 내고, 다른 서버는 임의로 선택하지만, 대부분 DNS 서버에 의존하여 목록을 보냅니다.


답변

클라이언트에 따라 다릅니다-Windows 상점을 운영하는 사람에게는 특히 관련성이 있습니다. Vista \ Windows Server 2008은 첫 번째 주소를 선택하는 이전 Windows 버전과 다른 메커니즘 (ipv6 스택이 설치된 경우)을 사용하여 주소를 선택한다는 사실입니다 . 많은 경우에 이것은 항상 같은 것을 선택한다는 것을 의미합니다. 즉, 이전 버전과 같은 방식으로 DNS 라운드 로빈 응답을 “명예롭게하지”않습니다. 이 technet 블로그 기사 에서 이에 대한 자세한 설명이 있습니다.

링크 된 기사는 Windows 7 및 Server 2008 R2 가이 기본 동작을 다시 변경하지만 백업 할 항목을 찾을 수 없음을 나타냅니다.

또한 이것이 내가 알 수있는 한 ipv6의 표준 준수 동작이라는 것을 지적 할 가치가 있지만, 내가 틀렸다는 것을 알게되어 매우 기쁩니다.


답변