다음을 통해 공유


DNS 클라이언트 이름 확인 문제 해결

이 문서는 DNS(도메인 이름 시스템) 클라이언트 이름 확인 문제를 해결하는 데 도움이 됩니다.

DNS(도메인 이름 시스템) 확인 문제는 다음과 같은 세 가지 주요 원인에 대해 발생할 수 있습니다.

  • DNS 클라이언트 문제 또는 구성.
  • DNS 서버 문제 또는 구성.
  • DNS 클라이언트와 DNS 서버 간의 중간 디바이스 또는 구성 또는 DNS 서버와 외부 확인자(예: 루트 힌트, 전달자 및 조건부 전달자) 간에 추가 조사가 필요할 수 있습니다.

참고 항목

이 문서에서는 DNS 클라이언트 문제 또는 구성으로 인한 DNS 해결 문제에 중점을 둡니다. DNS 서버 문제에 대한 자세한 내용은 DNS 서버 문제 해결을 참조 하세요.

DNS 확인 문제는 다음 시나리오에서 발생할 수 있습니다.

시나리오 1: 방화벽 규칙은 UDP 포트 53에서 아웃바운드 연결을 차단합니다.

UDP(사용자 데이터그램 프로토콜) 포트 53에서 아웃바운드 연결을 차단하는 아웃바운드 방화벽 규칙이 있다고 가정합니다.

이 경우 WiresharkResolve-DnsName contoso.com 실행 중인 PowerShell cmdlet을 실행하면 다음 오류가 발생합니다.

resolve-dnsname : contoso.com : This operation returned because the timeout period expired
At line:1 char:1
+ resolve-dnsname contoso.com
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationTimeout: (contoso.com:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName

Wireshark 추적을 확인할 때 도메인 컨트롤러(DC)에 대한 아웃바운드 DNS 트래픽이 없습니다.

이 경우 Windows 방화벽 규칙을 검토하고 UDP 또는 TCP(Transmission Control Protocol) 포트 53에서 패킷 삭제에 대한 타사 보안 제품을 확인합니다.

응답 없이 DNS 확인 요청을 발견하면 포트 미러링을 사용하여 스위치에서 Wireshark 추적을 수집하여 DNS UDP 패킷이 클라이언트 머신을 떠났는지 확인하는 것이 좋습니다. 요청은 다음과 유사합니다.

139 3.149039    10.0.1.10   10.0.1.2    DNS 71  Standard query 0xcdc6 A contoso.com
140 3.149192    10.0.1.10   10.0.1.2    DNS 71  Standard query 0x8168 AAAA contoso.com

이러한 요청은 응답 없이 호스트 A 및 호스트 AAAA에 대한 표준 쿼리 요청입니다. 추적을 확인하면 문제를 격리할 수 있습니다. 스위치에 UDP 패킷이 표시되면 패킷이 클라이언트 머신을 이미 떠났고 문제가 클라이언트 머신을 넘어서는 것을 의미합니다.

시나리오 2: 호스트 파일에 도메인 이름에 대한 항목이 있습니다.

C:\Windows\System32\drivers\etc있는 호스트 파일에 확인하려는 도메인 이름에 대한 항목이 있다고 가정합니다. 예시:

192.168.1.10 contoso.com

이 경우 Wireshark가 실행 중인 도메인 이름을 contoso.com 확인하면 다음 출력이 표시됩니다.

PS C:\Windows\System32\drivers\etc> Resolve-DnsName contoso.com

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
contoso.com                                    A      60440 Answer     192.168.1.10

또한 Wireshark에서 트래픽을 검색할 수 없습니다.

DNS 클라이언트는 이름을 확인할 때 다음 시퀀스를 사용하기 때문입니다.

  1. 캐시를 확인합니다.
  2. 호스트 파일을 확인합니다.
  3. DNS 서버에 쿼리를 보냅니다.

호스트 파일에 항목이 있으므로 DNS 클라이언트 서비스는 DNS 서버를 쿼리하지 않습니다.

시나리오 3: 클라이언트가 잘못되거나 연결할 수 없는 DNS 서버를 가리킵니다.

DNS 클라이언트의 NIC(네트워크 인터페이스 카드)에 있는 DNS 서버가 연결할 수 없는 DNS 서버의 IP로 구성되어 있다고 가정합니다. 클라이언트 IP 구성은 다음 예제와 같습니다.

IPv4 Address. . . . . . . . . . . : 10.0.1.10<Preferred>
Default Gateway . . . . . . . . . : 10.0.1.1
DNS Servers . . . . . . . . . . . : 192.168.0.1

DNS 서버에 연결할 수 없으므로 클라이언트가 응답을 받지 않아 쿼리 시간이 초과됩니다. 이 시간 제한은 Wireshark에서 관찰할 수 있습니다. 응답 없이 DNS 표준 쿼리:

439 14.482923   10.0.1.10   192.168.0.1 DNS 71  Standard query 0xa384 A contoso.com
440 14.482923   10.0.1.10   192.168.0.1 DNS 71  Standard query 0x4fe0 AAAA contoso.com

이 경우 PowerShell cmdlet을 Resolve-DnsName contoso.com 실행하면 다음 출력이 표시됩니다.

PS C:\Windows\System32\drivers\etc> Resolve-DnsName contoso.com
Resolve-DnsName : contoso.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName contoso.com
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationTimeout: (contoso.com:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName

시나리오 4: 여러 DNS 서버가 NIC에 구성되어 있으며, 그 중 일부는 연결할 수 없습니다.

클라이언트 DNS 설정이 다음과 같이 연결할 수 없는 일부 DNS 서버로 구성되어 있다고 가정합니다.

DNS Servers . . . . . . . . . . . : 192.168.0.1
                                    172.16.1.1
                                    192.168.1.20
                                    10.0.1.2

이 경우 PowerShell cmdlet을 사용하여 Resolve-DnsName contoso.com DNS 확인을 수행하는 경우 해당 DNS 서버 주소를 제외한 10.0.1.2 모든 DNS 서버 주소에 연결할 수 없습니다.

기본적으로 DNS 클라이언트는 특정 순서로 구성된 DNS 서버로 이 쿼리를 보내기 시작하고 특정 유예 기간 내에 응답을 기다립니다.

이 프로세스는 필터 dns.qry.name == contoso.com를 사용하여 Wireshark에서 볼 수 있습니다.

Wireshark 출력은 쿼리를 완료하는 데 거의 4초가 걸린다는 것을 보여줍니다. 네트워킹 관점에서 이 기간은 길어질 수 있으며 일부 애플리케이션의 시간이 초과될 수 있습니다.

30  03:56:58.634623 10.0.1.10   192.168.0.1  DNS 71  Standard query 0x9f32 A contoso.com
33  03:56:59.643171 10.0.1.10   172.16.1.1   DNS 71  Standard query 0x9f32 A contoso.com
38  03:57:02.646443 10.0.1.10   192.168.0.1  DNS 71  Standard query 0x9f32 A contoso.com
42  03:57:02.646556 10.0.1.10   172.16.1.1   DNS 71  Standard query 0x9f32 A contoso.com
43  03:57:02.646573 10.0.1.10   192.168.1.20 DNS 71  Standard query 0x9f32 A contoso.com
47  03:57:02.646684 10.0.1.10   10.0.1.2     DNS 71  Standard query 0x9f32 A contoso.com

참고 항목

이 시나리오에서는 사용을 nslookup 적용할 수 없으며 항상 실패합니다. 이는 nslookup.exe 사용하여 구성된 주 DNS 서버에만 연결하기 때문 nslookup 입니다. 이 경우입니다192.168.0.1.

시나리오 5: 긴 DNS 접미사 검색 목록

DNS 클라이언트의 DNS 접미사 검색 목록이 다음과 같이 구성되어 있다고 가정합니다.

참고 항목

contoso.com 는 올바른 DNS 접미사입니다.

DNS Suffix Search List. . . . . . : microsoft.com
                                    ms.com
                                    azure.com
                                    ms.local
                                    contoso.local
                                    contoso.com

이 경우 PowerShell cmdlet을 사용하여 Resolve-DnsName internal 이름 확인을 수행하는 경우 DNS 클라이언트가 DNS 접미사를 순서대로 추가하므로 필요한 쿼리가 목록에서 더 낮은 경우 지연이 발생할 수 있습니다. Wireshark에서 필터 dns.qry.name contains internal 를 사용하면 쿼리가 다음과 같이 표시됩니다.

116 04:33:38.164251 10.0.1.10   10.0.1.2    DNS 82  Standard query 0xc557 A internal.microsoft.com
120 04:33:38.177186 10.0.1.10   10.0.1.2    DNS 75  Standard query 0x0a4b A internal.ms.com
124 04:33:38.453625 10.0.1.10   10.0.1.2    DNS 78  Standard query 0x4245 A internal.azure.com
128 04:33:38.466154 10.0.1.10   10.0.1.2    DNS 77  Standard query 0xfaca A internal.ms.local
131 04:33:38.471033 10.0.1.10   10.0.1.2    DNS 82  Standard query 0xa9d6 A internal.contoso.local
136 04:33:38.476248 10.0.1.10   10.0.1.2    DNS 80  Standard query 0x611f A internal.contoso.com

참고 항목

특정 쿼리를 테스트해야 하는 경우 마지막에 후행 기간(.)을 추가할 수 있습니다. 예를 들어 internal.contoso.com.

DNS 확인 쿼리에 걸리는 시간 측정

DNS 확인 쿼리가 완료되는 데 걸리는 시간을 측정하려면 다음 PowerShell cmdlet을 실행합니다.

참고 항목

1초 미만의 결과는 허용 가능한 것으로 간주됩니다.

(Measure-Command {Resolve-DnsName -Name contoso.com -Server <IP Address> -DnsOnly}).TotalMilliseconds

타사 정보 고지 사항

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.