다음을 통해 공유


DNS 서버 문제 해결

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

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

IP 구성 검사

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

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

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

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

    For example:

    nslookup app1 10.0.0.1
    

    실패 또는 시간 제한 응답이 발생하는 경우 재귀 문제가 있는지 확인을 참조하세요.

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

    dnscmd /clearcache
    

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

    Clear-DnsServerCache
    

    Note

    서버가 DNS 클라이언트로 작동하는 경우(예: 자체 작업에 대한 이름을 확인해야 하는 경우) Clear-DnsClientCache 로컬 DNS 클라이언트 캐시를 지웁니다. DNS 서버로서의 서버 역할(다른 클라이언트에 DNS 레코드 제공)과 관련된 문제를 해결하는 경우 서버의 신뢰할 수 있는 캐시를 지우고 오래된 DNS 정보를 제공하지 못하도록 하는 데 사용합니다 Clear-DnsServerCache .

  5. 3단계를 반복합니다.

DNS 서버 문제 확인

Event log

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

  • Application

  • System

  • DNS Server

nslookup 쿼리를 사용하여 테스트

다음 명령을 실행하고 클라이언트 컴퓨터에서 DNS 서버에 연결할 수 있는지 확인합니다.

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

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

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

net start DNS

서비스가 실행 중일 때 문제가 발생하면 서버가 nslookup 쿼리에서 사용한 IP 주소에서 수신 대기하지 않을 수 있습니다. On the Interfaces tab of the server properties page in the DNS console, administrators can restrict a DNS server to listen on only selected addresses. DNS 서버가 구성된 IP 주소의 특정 목록으로 서비스를 제한하도록 구성된 경우 DNS 서버에 연결할 때 사용되는 IP 주소가 목록에 없을 수 있습니다. 목록에서 다른 IP 주소를 시도하거나 목록에 IP 주소를 추가할 수 있습니다.

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

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

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

서버가 기본 서버인 경우

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

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

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

    Note

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

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

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

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

    dnscmd /zonerefresh <zone name>
    

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

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

  5. 영역이 올바르게 전송된 경우 데이터가 올바른지 확인합니다. 올바르지 않은 경우 기본 영역의 데이터가 올바르지 않은 것입니다. 이 문제는 사용자가 영역에 데이터를 입력할 때 사용자 오류로 인해 발생할 수 있습니다. 또는 Active Directory 복제 또는 동적 업데이트에 영향을 미치는 문제로 인해 발생할 수 있습니다.

재귀 문제가 있는지 확인

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

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

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

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

원래 쿼리에 사용된 서버에서 문제 해결을 시작합니다. Check whether this server forwards queries to another server by examining the Forwarders tab in the server properties in the DNS console. If the Enable forwarders check box is selected, and one or more servers are listed, this server forwards queries.

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

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

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

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

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

끊어진 위임 테스트

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

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

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

    Note

    리소스 레코드 유형은 원래 쿼리에서 쿼리했었던 리소스 레코드 유형이며, FQDN은 쿼리 중이던 FQDN입니다(마침표로 끝남).

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

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

    • If the response contains "NS" resource records, but no "A" resource records, enter set recursion, and query individually for "A" resource records of servers that are listed in the "NS" records. 영역의 각 NS 리소스 레코드에서 "A" 리소스 레코드의 유효한 IP 주소를 하나 이상 찾지 못하면 위임이 끊어집니다.

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

현재 루트 힌트 보기

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

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

  3. Right-click the server, and select Properties.

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

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

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

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

영역 전송 문제

다음 검사를 실행합니다.

  • 기본 및 보조 DNS 서버 모두의 이벤트 뷰어를 확인합니다.

  • 보안 때문에 전송을 거부하는지 여부를 확인하려면 기본 서버를 확인합니다.

  • Check the Zone Transfers tab of the zone properties in the DNS console. If the server restricts zone transfers to a list of servers, such as those listed on the Name Servers tab of the zone properties, make sure that the secondary server is on that list. 서버가 영역 전송을 보내도록 구성되어 있는지 확인합니다.

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

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

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

    • Windows Server의 정방향 조회 영역에 보조 서버에서 지원하지 않는 레코드 유형(예: SRV 레코드)이 포함된 경우 보조 서버에서 영역을 끌어오는 데 문제가 있을 수 있습니다.

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

마스터 또는 보조 서버가 다른 DNS 서버 구현을 실행하는 경우 두 서버가 동일한 기능을 지원하는지 확인합니다. You can check the Windows server in the DNS console on the Advanced tab of the properties page for the server. In addition to the Enable Bind secondaries box, this page includes the Name checking drop-down list. 이렇게 하면 DNS 이름의 문자에 대해 엄격한 RFC 준수 적용을 선택할 수 있습니다.