본문 바로가기

Trouble Shooting

Windows XP 및 Windows Server 2003에서 클라이언트쪽 DNS 캐싱을 해제하는 방법

Windows에는 클라이언트쪽 DNS(Domain Name System) 캐시가 들어 있습니다. 클라이언트쪽 DNS 캐싱 기능으로 인해 DNS 서버에서 Windows 클라이언트 컴퓨터로 DNS "라운드 로빈"이 발생하지 않는다는 잘못된 인상을 줄 수 있습니다. ping 명령을 사용하여 동일한 A 레코드 도메인 이름을 검색하면 클라이언트가 동일한 IP 주소를 사용할 수 있습니다. 이 문제는 Windows 2000 이전의 Microsoft 운영 체제와는 다릅니다. 이러한 운영 체제에는 클라이언트쪽 DNS 캐싱 기능이 없습니다. 이 문서에서는 DNS 캐싱을 해제하는 방법을 설명합니다.
참고 이 문서는 DNS의 클라이언트 부분과 관련된 것입니다. DNS 서버를 변경하는 데 이 정보를 사용하지 마십시오.

위로 가기

추가 정보

DNS 캐싱을 중지하려면 다음 명령 중 하나를 실행하십시오.

net stop dnscache
-또는-

sc servername stop dnscache

Windows에서 DNS 캐시를 영구히 해제하려면 서비스 컨트롤러 도구나 서비스 도구를 사용하여 DNS 클라이언트 서비스 시작 유형을 사용 으로 설정하십시오. Windows DNS 클라이언트 서비스 이름이 "Dnscache"로 나타날 수도 있습니다
참고 DNS 확인자 캐시가 비활성화되면 클라이언트 컴퓨터의 전체 성능이 떨어지고 DNS 쿼리의 네트워크 트래픽이 증가합니다.
DNS 클라이언트 서비스는 이전에 확인된 이름을 메모리에 저장하여 DNS 이름 확인 성능을 최적화합니다. DNS 클라이언트 서비스가 해제되면 컴퓨터는 네트워크의 DNS 서버를 사용하여 DNS 이름을 확인할 수도 있습니다.
Windows 확인자가 쿼리에 대해 긍정적인 응답이나 부정적인 응답을 받으면 긍정적인 응답이나 부정적인 응답을 캐시에 추가하므로, 결과적으로 DNS 리소스 레코드가 만들어집니다. 확인자는 DNS 서버에 쿼리하기 전에 항상 캐시를 확인합니다. DNS 리소스 레코드가 캐시에 있으면 확인자는 서버에 쿼리하는 대신 캐시의 레코드를 사용합니다. 이 동작은 쿼리를 신속하게 처리하고 DNS 쿼리의 네트워크 트래픽을 감소시킵니다.
Ipconfig 도구를 사용하여 DNS 확인자 캐시를 보고 플러시할 수 있습니다. DNS 확인자 캐시를 보려면 명령 프롬프트에 ipconfig /displaydns를 입력하십시오. Ipconfig는 호스트 파일과 시스템이 확인한 최근에 쿼리된 이름에서 미리 로드한 DNS 리소스 레코드를 포함하여 DNS 확인자 캐시의 콘텐트를 표시합니다. 일정 시간이 지난 후에 확인자는 캐시에서 레코드를 삭제합니다. 시간은 DNS 리소스 레코드와 관련된 TTL(Time to Live)에 지정됩니다. 캐시를 수동으로 플러시할 수도 있습니다. 캐시를 플러시한 후에는 컴퓨터가 이전에 확인한 DNS 리소스 레코드의 경우에도 DNS 서버에 다시 쿼리해야 합니다. DNS 확인자 캐시의 항목을 삭제하려면 명령 프롬프트에서 ipconfig /flushdns를 입력하십시오.

위로 가기

레지스트리를 사용하여 캐싱 시간 제어

중요: 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하고 문제 발생 시 이를 복원하는 방법을 이해해야 합니다. 레지스트리 백업, 복원 및 편집 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

256986 (http://support.microsoft.com/kb/256986/KO/) Microsoft Windows 레지스트리 설명

긍정적인 응답이나 부정적인 응답을 캐싱하는 기간은 다음 레지스트리 키에 있는 항목 값에 따라 달라집니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

긍정적인 응답에 대한 TTL은 값이 다음과 같을 경우 더 적습니다.

확인자가 받은 쿼리 응답에 지정된 시간(초)

MaxCacheTtl 레지스트리 설정의 값

참고

긍정적인 응답의 기본 TTL은 86,400초(하루)입니다.

부정적인 응답의 TTL은 MaxNegativeCacheTtl 레지스트리 설정에 지정된 시간(초)입니다.

부정적인 응답의 기본 TTL은 900초(15분)입니다.

부정적인 응답을 캐싱하지 않으려면 MaxNegativeCacheTtl 레지스트리 설정을 0으로 설정하십시오.
클라이언트 컴퓨터에서 캐싱 시간을 설정하려면 다음과 같이 하십시오.

1.

레지스트리 편집기(Regedit.exe)를 시작합니다.

2.

레지스트리에서 다음 키를 찾아 누릅니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

3.

편집 메뉴에서 새로 만들기를 가리키고 DWORD 을 누르고 다음 레지스트리를 추가합니다.

값 이름: MaxCacheTtl
데이터 형식: REG_DWORD
기본값: 86400초
값 데이터: 클라이언트 DNS 캐시에서 최대 TTL 값을 1초로 줄이면 클라이언트쪽 DNS 캐시가 해제된 것처럼 나타납니다.
값 이름: MaxNegativeCacheTtl
데이터 형식: REG_DWORD
기본값: 900초
값 데이터: 부정적인 응답을 캐싱하지 않으려면 값을 0으로 설정합니다.

4.

사용할 값을 입력한 다음 확인을 누릅니다.

5.

레지스트리 편집기를 끝냅니다.

위로 가기

서브넷 우선 순위 지정

Windows XP DNS 확인자도 서브넷 우선 순위 지정을 사용합니다. 확인자가 DNS 서버로부터 여러 IP 주소 매핑(리소스 레코드)을 받고 일부 레코드에 컴퓨터가 직접 연결된 네트워크의 IP 주소가 있는 경우 확인자는 이러한 리소스 레코드를 먼저 배치합니다. 이 동작은 컴퓨터가 더 가까이 있는 네트워크 리소스에 연결하도록 함으로써 서브넷에서 네트워크 트래픽을 감소시킵니다.
서브넷 우선 순위는 서브넷에서 네트워크 트래픽을 감소시키지만 경우에 따라서는 RFC 1794에서 설명하는 라운드 로빈 기능을 사용하는 것이 더 나을 수 있습니다. 이 경우 다음 레지스트리 키에서 값이 0(REG_DWORD 데이터 형식)인 PrioritizeRecordData 레지스트리 항목을 추가하여 클라이언트에서 서브넷 우선 순위 지정 기능을 해제할 수 있습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DnsCache\Parameters

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

297510 (http://support.microsoft.com/kb/297510/KO/) HOWTO: 도메인 이름 시스템 레코드에서 TTL(Time to Live) 수정

286834 (http://support.microsoft.com/kb/286834/KO/) 목록에서 첫 번째 서버를 사용하여 DNS 클라이언트 서비스가 되돌려지지 않는다

자세한 내용은 Windows 2000 DNS 백서를 참조하십시오. 이 백서를 보려면 아래의 Microsoft 웹 사이트를 방문하십시오.

http://www.microsoft.com/windows2000/docs/w2kdns.doc (http://www.microsoft.com/windows2000/docs/w2kdns.doc)

http://www.microsoft.com/korea/windows2000/techinfo/howitworks/communications/nameadrmgmt/w2kdns.asp (http://www.microsoft.com/windows2000/techinfo/howitworks/communications/nameadrmgmt/w2kdns.asp)

자세한 내용은 Microsoft Windows XP Professional Resource Kit 설명서 "DNS Caching, Network Prioritization, and Security" 장을 참조하십시오.