DNS 서버 문제 해결

가상 에이전트 를 사용해 보세요. 일반적인 DNS 문제를 빠르게 식별하고 해결하는 데 도움이 될 수 있습니다.

이 문서에서는 DNS 서버의 문제를 해결하는 방법을 설명합니다.

IP 구성 확인

  1. 명령 프롬프트에서 실행하고 ipconfig /all IP 주소, 서브넷 마스크 및 기본 게이트웨이를 확인합니다.

  2. DNS 서버가 조회 중인 이름에 대해 신뢰할 수 있는지 확인합니다. 그렇다면 신뢰할 수 있는 데이터와 관련된 문제 확인을 참조 하세요.

  3. 다음 명령을 실행합니다.

    nslookup <name> <IP address of the DNS server>
    

    예시:

    nslookup app1 10.0.0.1
    

    오류 또는 시간 제한 응답이 발생하는 경우 재귀 문제 확인을 참조 하세요.

  4. 확인자 캐시를 플러시합니다. 이렇게 하려면 관리 명령 프롬프트 창에서 다음 명령을 실행합니다.

    dnscmd /clearcache
    

    또는 관리 PowerShell 창에서 다음 cmdlet을 실행합니다.

    Clear-DnsServerCache
    
  5. 3단계를 반복합니다.

DNS 서버 문제 확인

이벤트 로그

다음 로그를 확인하여 기록된 오류가 있는지 확인합니다.

  • 애플리케이션

  • System

  • DNS 서버

nslookup 쿼리를 사용하여 테스트

다음 명령을 실행하고 클라이언트 컴퓨터에서 DNS 서버에 연결할 수 있는지 여부를 검사.

nslookup <client name> <server IP address>
  • 확인자에서 클라이언트의 IP 주소를 반환하는 경우 서버에 문제가 없습니다.

  • 확인자가 "서버 오류" 또는 "쿼리가 거부됨" 응답을 반환하면 영역이 일시 중지되었거나 서버 과부하일 가능성이 있습니다. DNS 콘솔에서 영역 속성의 [일반] 탭을 확인하여 일시 중지되었는지 여부를 알아볼 수 있습니다.

확인자에서 "서버에 대한 요청 시간 초과" 또는 "서버의 응답 없음" 응답을 반환하는 경우 DNS 서비스가 실행되고 있지 않을 수 있습니다. 서버의 명령 프롬프트에서 다음을 입력하여 DNS 서버 서비스를 다시 시작합니다.

net start DNS

서비스가 실행 중일 때 문제가 발생하면 서버가 nslookup 쿼리에서 사용한 IP 주소에서 수신 대기하지 않을 수 있습니다. DNS 콘솔의 서버 속성 페이지의 인터페이스 탭에서 관리자는 선택한 주소에서만 수신하도록 DNS 서버를 제한할 수 있습니다. DNS 서버가 구성된 IP 주소의 특정 목록으로 서비스를 제한하도록 구성된 경우 DNS 서버에 연결할 때 사용되는 IP 주소가 목록에 없을 수 있습니다. 목록에서 다른 IP 주소를 시도하거나 목록에 IP 주소를 추가할 수 있습니다.

드물게 DNS 서버에 고급 보안 또는 방화벽 구성이 있을 수 있습니다. 서버가 중간 호스트(예: 패킷 필터링 라우터 또는 프록시 서버)를 통해서만 연결할 수 있는 다른 네트워크에 있는 경우 DNS 서버는 비표준 포트를 사용하여 클라이언트 요청을 수신하고 수신할 수 있습니다. 기본적으로 nslookup은 UDP 포트 53의 DNS 서버에 쿼리를 보냅니다. 따라서 DNS 서버가 다른 포트를 사용하는 경우 nslookup 쿼리가 실패합니다. 문제가 될 수 있다고 생각되면 중간 필터가 잘 알려진 DNS 포트의 트래픽을 차단하는 데 의도적으로 사용되는지 여부를 검사. 그렇지 않은 경우 UDP/TCP 포트 53에서 트래픽을 허용하도록 방화벽에서 패킷 필터 또는 포트 규칙을 수정해 봅니다.

신뢰할 수 있는 데이터 문제 확인

잘못된 응답을 반환하는 서버가 영역에 대한 주 서버(영역에 대한 표준 주 서버 또는 Active Directory 통합을 사용하여 영역을 로드하는 서버)인지 또는 영역의 보조 복사본을 호스팅하는 서버인지 확인합니다.

서버가 주 서버인 경우

이 문제는 사용자가 영역에 데이터를 입력할 때 사용자 오류로 인해 발생할 수 있습니다. 또는 Active Directory 복제본(replica)tion 또는 동적 업데이트에 영향을 주는 문제로 인해 발생할 수 있습니다.

서버가 영역의 보조 복사본을 호스팅하는 경우

  1. 주 서버의 영역(이 서버가 영역 전송을 가져오는 서버)을 검사합니다.

    참고 항목

    DNS 콘솔에서 보조 영역의 속성을 검사하여 주 서버인 서버를 확인할 수 있습니다.

    주 서버에서 이름이 올바르지 않으면 4단계로 이동합니다.

  2. 주 서버에서 이름이 올바른 경우 주 서버의 일련 번호가 보조 서버의 일련 번호보다 작거나 같은지 여부를 검사. 이 경우 주 서버의 일련 번호가 보조 서버의 일련 번호보다 크도록 주 서버 또는 보조 서버를 수정합니다.

  3. 보조 서버에서 DNS 콘솔 내에서 또는 다음 명령을 실행하여 영역 전송을 강제로 수행합니다.

    dnscmd /zonerefresh <zone name>
    

    예를 들어 영역이 corp.contoso.com 경우 다음 dnscmd /zonerefresh corp.contoso.com을 입력합니다.

  4. 보조 서버를 다시 검사하여 영역이 올바르게 전송되었는지 확인합니다. 그렇지 않은 경우 영역 전송 문제가 있을 수 있습니다. 자세한 내용은 영역 전송 문제를 참조 하세요.

  5. 영역이 올바르게 전송된 경우 데이터가 올바른지 여부를 검사. 그렇지 않은 경우 기본 영역에서 데이터가 올바르지 않습니다. 이 문제는 사용자가 영역에 데이터를 입력할 때 사용자 오류로 인해 발생할 수 있습니다. 또는 Active Directory 복제본(replica)tion 또는 동적 업데이트에 영향을 주는 문제로 인해 발생할 수 있습니다.

재귀 문제 확인

재귀가 성공적으로 작동하려면 재귀 쿼리의 경로에 사용되는 모든 DNS 서버가 올바른 데이터에 응답하고 전달할 수 있어야 합니다. 가능하지 않은 경우 다음 이유 중 어떤 이유로든 재귀 쿼리가 실패할 수 있습니다.

  • 쿼리가 완료되기 전에 시간이 초과됩니다.

  • 쿼리 중에 사용되는 서버가 응답하지 않습니다.

  • 쿼리 중에 사용되는 서버는 잘못된 데이터를 제공합니다.

원래 쿼리에 사용된 서버에서 문제 해결을 시작합니다. DNS 콘솔의 서버 속성에서 전달자 탭을 검사하여 이 서버가 다른 서버에 쿼리를 전달하는지 확인합니다. 전달자 검사 사용 상자가 선택되어 있고 하나 이상의 서버가 나열되면 이 서버는 쿼리를 전달합니다.

이 서버가 다른 서버에 쿼리를 전달하는 경우 이 서버가 쿼리를 전달하는 서버에 영향을 주는 문제를 검사. 문제를 검사 DNS 서버 문제 확인을 참조하세요. 해당 섹션에서 클라이언트에서 작업을 수행하도록 지시하는 경우 대신 서버에서 작업을 수행합니다.

서버가 정상이고 쿼리를 전달할 수 있는 경우 이 단계를 반복하고 이 서버가 쿼리를 전달하는 서버를 검사합니다.

이 서버가 다른 서버에 쿼리를 전달하지 않는 경우 이 서버가 루트 서버를 쿼리할 수 있는지 테스트합니다. 이렇게 하려면 다음 명령을 실행합니다.

nslookup
server <IP address of server being examined>
set q=NS
  • 확인자에서 루트 서버의 IP 주소를 반환하는 경우 루트 서버와 확인하려는 이름 또는 IP 주소 간에 위임이 끊어졌을 수 있습니다. 끊어진 위임 프로시저 테스트에 따라 위임이 끊어진 위치를 확인합니다.

  • 확인자에서 "서버에 대한 요청 시간 초과" 응답을 반환하는 경우 루트 힌트가 작동하는 루트 서버를 가리키는지 여부를 검사. 이렇게 하려면 현재 루트 힌트 프로시저를 보려면 To를 사용합니다. 루트 힌트가 루트 서버 작동을 가리키는 경우 네트워크 문제가 있거나 DNS 서버 문제 확인 섹션에 설명된 대로 해결 프로그램이 서버를 쿼리하지 못하게 하는 고급 방화벽 구성을 서버에서 사용할 수 있습니다. 재귀 시간 제한 기본값이 너무 짧을 수도 있습니다.

끊어진 위임 테스트

유효한 루트 서버를 쿼리하여 다음 절차에서 테스트를 시작합니다. 이 테스트는 루트에서 중단된 위임을 테스트하는 서버까지 모든 DNS 서버를 쿼리하는 프로세스를 안내합니다.

  1. 테스트 중인 서버의 명령 프롬프트에서 다음을 입력합니다.

    nslookup
    server <server IP address>
    set norecursion
    set querytype= <resource record type>
    <FQDN>
    

    참고 항목

    리소스 레코드 유형은 원래 쿼리에서 쿼리한 리소스 레코드의 형식이며, FQDN은 쿼리 중이던 FQDN입니다(마침표로 종료됨).

  2. 응답에 위임된 서버에 대한 "NS" 및 "A" 리소스 레코드 목록이 포함된 경우 각 서버에 대해 1단계를 반복하고 "A" 리소스 레코드의 IP 주소를 서버 IP 주소로 사용합니다.

    • 응답에 "NS" 리소스 레코드가 포함되어 있지 않으면 위임이 끊어집니다.

    • 응답에 "NS" 리소스 레코드가 포함되어 있지만 "A" 리소스 레코드가 없는 경우 집합 재귀를 입력하고 "NS" 레코드에 나열된 서버의 "A" 리소스 레코드를 개별적으로 쿼리합니다. 영역의 각 NS 리소스 레코드에 대한 "A" 리소스 레코드의 유효한 IP 주소를 하나 이상 찾지 못하면 위임이 끊어집니다.

  3. 위임이 끊어진 것으로 확인되면 위임된 영역에 올바른 DNS 서버에 유효한 IP 주소를 사용하여 부모 영역에서 "A" 리소스 레코드를 추가하거나 업데이트하여 수정합니다.

현재 루트 힌트를 보려면

  1. DNS 콘솔을 시작합니다.

  2. 재귀 쿼리에 실패한 DNS 서버를 추가하거나 연결합니다.

  3. 서버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 루트 힌트를 클릭합니다.

루트 서버에 대한 기본 연결을 확인합니다.

  • 루트 힌트가 올바르게 구성된 것으로 보이는 경우 실패한 이름 확인에 사용되는 DNS 서버가 IP 주소로 루트 서버를 ping할 수 있는지 확인합니다.

  • 루트 서버가 IP 주소로 ping에 응답하지 않는 경우 루트 서버의 IP 주소가 변경되었을 수 있습니다. 그러나 루트 서버의 재구성을 보는 것은 드문 일입니다.

영역 전송 문제

다음 검사 실행합니다.

  • 주 및 보조 DNS 서버 모두에 대한 이벤트 뷰어 확인합니다.

  • 보안을 위해 전송을 거부하는지 여부를 확인하려면 주 서버를 확인합니다.

  • DNS 콘솔에서 영역 속성의 영역 전송 탭을 확인합니다. 서버가 영역 속성의 이름 서버 탭에 나열된 서버와 같은 서버 목록으로 영역 전송을 제한하는 경우 보조 서버가 해당 목록에 있는지 확인합니다. 서버가 영역 전송을 보내도록 구성되어 있는지 확인합니다.

  • DNS 서버 문제 확인 섹션의 단계에 따라 주 서버에서 문제를 확인합니다 . 클라이언트에서 작업을 수행하라는 메시지가 표시되면 대신 보조 서버에서 작업을 수행합니다.

  • 보조 서버가 BIND와 같은 다른 DNS 서버 구현을 실행하고 있는지 확인합니다. 문제가 있는 경우 다음 원인 중 하나가 발생할 수 있습니다.

    • Windows 주 서버는 빠른 영역 전송을 보내도록 구성될 수 있지만 타사 보조 서버는 빠른 영역 전송을 지원하지 않을 수 있습니다. 이 경우 서버 속성의 고급 탭에서 보조 검사 바인딩 사용 상자를 선택하여 DNS 콘솔 내에서 주 서버에서 빠른 영역 전송을 사용하지 않도록 설정합니다.

    • Windows 서버의 앞으로 조회 영역에 보조 서버가 지원하지 않는 레코드 형식(예: SRV 레코드)이 포함된 경우 보조 서버에서 영역을 끌어당기는 데 문제가 있을 수 있습니다.

주 서버가 BIND와 같은 다른 DNS 서버 구현을 실행하고 있는지 확인합니다. 이 경우 주 서버의 영역에 Windows에서 인식하지 못하는 호환되지 않는 리소스 레코드가 포함되어 있는 것일 수 있습니다.

마스터 또는 보조 서버가 다른 DNS 서버 구현을 실행하는 경우 두 서버를 검사 동일한 기능을 지원하는지 확인합니다. 서버에 대한 속성 페이지의 고급 탭에 있는 DNS 콘솔에서 Windows 서버를 검사 수 있습니다. 이 페이지에는 바인딩 보조 사용 상자 외에도 이름 검사 드롭다운 목록이 포함되어 있습니다. 이렇게 하면 DNS 이름의 문자에 대해 엄격한 RFC 준수 적용을 선택할 수 있습니다.