외부 이름에 대한 이름 조회를 수행하도록 구성된 전달자, 조건부 전달자 또는 루트 힌트가 있습니다. 그러나 사용하거나 Resolve-DnsName
사용 하 여 nslookup
클라이언트에서 외부 이름을 확인할 수 없습니다. 이 문서에서는 DNS(도메인 이름 시스템) 전달자 관련 이름 확인 실패 문제를 해결하는 방법을 소개합니다.
증상 분석
이름을 확인할 수 없는 클라이언트가 외부 또는 내부인지 확인합니다.
문제가 내부 도메인 또는 외부 이름과 관련된 경우 이 정보를 통해 DNS 서버의 도메인 특정 구성을 확인할 수 있습니다.모든 클라이언트가 문제에 직면하고 있는지 또는 특정 클라이언트만 있는지 확인합니다.
이렇게 하면 문제가 DNS 전달 서버와 관련이 있는지 여부를 격리할 수 있습니다.DNS 서버를 확인합니다.
- 클라이언트에서 이름 확인이 실패하는 경우 구성된 기본 DNS 서버에서도 이름 확인이 실패하는지 확인합니다.
- DNS 서버 자체에서 확인이 실패하는지 확인합니다. 그렇다면 클라이언트와 DNS 서버 간의 클라이언트 또는 네트워크와 관련된 문제를 배제할 수 있습니다.
문제 해결 순서도
문제 해결 단계
1단계: 클라이언트와 DNS 서버 간의 네트워크 연결 확인
DNS 구성을 확인합니다. 클라이언트에서 실행하고
ipconfig /all
올바른 DNS 서버 IP가 구성되어 있는지 확인합니다. 올바르지 않으면 다음 명령을 사용하여 구성합니다.Set-DnsClientServerAddress -InterfaceAlias "Interface-Name" -ServerAddresses ("IP1")
UDP 포트 53 통신을 확인합니다. 클라이언트와 DNS 서버 간의 UDP 포트 53 통신이 허용되는지 확인합니다.
클라이언트에서 DNS 서버로 ping 테스트를 수행하고 그 반대로 ping 테스트를 수행하여 기본 네트워크 연결을 보장합니다.
2단계: DNS 서버 구성 확인
다음 단계에 따라 이 DNS 서버가 로컬이 아닌 이름을 확인할 수 있도록 올바르게 구성되어 있는지 확인합니다.
조건부 전달자가 해당 도메인에 대해 구성되어 있는지 확인합니다.
Get-DnsServerZone -Name <domainname>
조건부 전달자를 찾을 수 없는 경우 구성된 일반 전달자가 있는지 확인합니다.
Get-DnsServerForwarder
Useroothints가 TRUE로 설정되어 있는지 확인합니다 .
전달자가 구성되지 않은 경우 루트 힌트를 확인합니다.
Get-DnsServerRootHint
구성되지 않은 경우 이름 확인에 실패할 것으로 예상됩니다. 내부 도메인인 경우 조건부 전달자 만들기를 계속 진행하거나 외부 도메인(바람직하게는)에 대한 전달자입니다.
참고 항목
DNS 서버인 조건부 전달자 또는 전달자는 이름에 대한 레코드가 있거나 이름을 확인하도록 구성해야 합니다.
3단계: DNS 서비스 상태 및 연결 확인
DNS 서버 서비스가 전달 및 전달자 DNS 서버 모두에서 실행되고 있는지 확인합니다.
Get-Service -Name DNS
서비스가 실행되고 있지 않은 경우 시작합니다.
Start-Service -Name DNS
DNS 전달 서버와 전달자 서버 간의 UDP 포트 53 통신이 허용되는지 확인합니다.
4단계: 네트워크 캡처를 수집하여 DNS 패킷 추적
클라이언트 컴퓨터에서 네트워크 캡처를 수행하려면 항상 DNS 클라이언트 쪽 캐시를 지우는 것이 좋습니다.
ipconfig /flushdns
그런 다음, 다음 단계를 사용하여 네트워크 캡처를 수집합니다.
- 클라이언트, DNS 서버 및 전달자에서 네트워크 캡처 도구(예: Wireshark)를 시작합니다.
- 클라이언트에서 수행
nslookup <name>
하여 오류를 재현합니다. - 캡처를 중지하고 추적을 검토합니다. UDP 포트 53을 필터링하여 관련 DNS 트래픽을 확인합니다.
시나리오를 분석합니다.
다음 섹션에서는 발생할 수 있는 몇 가지 시나리오를 나열합니다. 이러한 시나리오에는 조건부 전달자 구성이 포함되지만, 표준 전달자를 처리하는 경우 문제 해결 단계는 동일합니다.
시나리오 1: 네트워크 대기 시간 또는 시간 제한
DNS 이름 서버 192.168.10.10은 쿼리를 첫 번째 전달자 192.168.5.5로 전달합니다. 네트워크 대기 시간 또는 중간 네트워크 문제로 인해 응답은 ForwarderTimeout 기간 내에 DNS 서버에 도달하지 않습니다. 따라서 DNS 서버는 쿼리를 구성한 다음 전달자(192.168.5.6)로 전달합니다. 다시 말하지만, 대기 시간 또는 중간 네트워크 문제로 인해 응답이 DNS 서버에 도달하지 않습니다. DNS 서버는 쿼리 nodeA.contoso.com
에 대한 응답을 가져올 수 없으므로 클라이언트에 "서버 오류" 응답을 보냅니다.
해결 방법: 네트워크 팀과 협업하여 대기 시간을 해결합니다. 대기 시간이 예상되는 경우 DNS 서버에 ForwarderTimeout 및 RecursionTimeout 기간을 늘려 시간이 초과되기 전에 조건부 전달자의 응답을 대기할 충분한 시간이 있는지 확인합니다.
이렇게 하려면 NET: DNS: 전달자 및 조건부 전달자 확인 시간 제한을 참조 하세요.
시나리오 2: 전달자가 거부한 쿼리
DNS 이름 서버 192.168.10.10은 조건부 전달자 192.168.5.5에 쿼리를 전달합니다. 이 서버에서 특정 레코드 또는 영역에 대한 쿼리를 거부하거나 거부하도록 구성된 정책이 있는 경우 조건부 전달자는 "거부됨" 응답으로 전달 DNS 이름 서버에 응답합니다. 이제 DNS 서버는 이 오류를 서버 오류로 클라이언트에 전달합니다. 첫 번째 서버에서 이미 응답을 받았으므로 DNS 서버가 두 번째 조건부 전달자에게 연락하지 않습니다(오류 응답임에도 불구하고).
해결 방법: 전달자가 Microsoft Windows DNS 서버인 경우 조건부 전달자에 구성된 DNS 쿼리 확인 정책을 확인하여 영역 fab.com
또는 특정 레코드 NodeA.fab.com
에 대한 쿼리를 "거부"합니다. 명령을 get-dnsserverqueryresolutionpolicy
사용하여 구성된 정책 목록을 가져올 수 있습니다. 이렇게 하려면 Get-DnsServerQueryResolutionPolicy를 참조 하세요.
이러한 정책을 배치하지 않아야 하는 경우 해당 정책을 제거하여 문제를 해결합니다.
타사 DNS 서버인 경우 해당 공급업체에 문의하세요.
시나리오 3: 전달자에 대한 레코드 누락
DNS 이름 서버 192.168.10.10은 쿼리를 첫 번째 조건부 전달자 192.168.5.5로 전달합니다. 조건부 전달자에는 영역 아래에 이름 NodeA
에 대한 호스트 A 레코드가 fab.com
없습니다. 이 경우 조건부 전달자는 "이름 오류" 응답으로 DNS 서버에 응답합니다. 그런 다음 DNS 서버는 클라이언트에 동일한 응답을 전달합니다. DNS 서버는 이미 첫 번째 조건부 전달자로부터 응답을 받았으므로 여기서 두 번째 조건부 전달자에게 연락하지 않습니다. 일반적으로 이 시나리오가 발생하는 경우 도메인의 모든 이름이 아니라 특정 이름에 대한 확인이 실패하는 증상이 fab.com
표시됩니다.
해결 방법: 정적 또는 동적으로 해당 영역의 전달자에 누락된 레코드를 등록합니다.
데이터 수집
Microsoft 지원의 도움이 필요한 경우 Microsoft 지원에 문의하기 전에 문제에 대한 정보를 수집하는 것이 좋습니다.
- TSS(TroubleShootingScript 도구 집합) 소개에 제공된 단계에 따라 TSS 도구를 사용하여 로그를 다운로드하고 수집합니다.
- 영향을 받은 컴퓨터에서 로그 수집을 사용하도록 설정하려면 다음 명령을 실행합니다.
DNS 서버에서:
.\TSS.ps1 -Scenario NET_DNSsrv
DNS 클라이언트에서:
.\TSS.ps1 -Scenario NET_DNScli