<< 2008년 7월 9일 (수) | | 2008년 7월 11일 (금) >>

DNS 캐싱 식별 여부 확인 방법

1. Linux
 - root권한으로 ps - ef | grep nscd 해당 프로세스가 떠 있으면 /etc/nscd.conf 파일을 확인
 enable-cache passwd yes
 enable-cache group yes
 enable-cache hosts yes

- 캐싱안되게 할 경우

 enable-cache passwd no
 enable-cache group no
 enable-cache hosts no
 저장한 다음 /etc/rc.d/init.d/nscd restart 커맨드 실행
- 그외 /etc/resolv.conf, /etc/dnsmasq.conf에서 캐싱 여부를 판단하면 되고 캐싱 해제를 할 경우 리플레쉬를 해주면 됨

2. Window
 - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters 에서 MaxCacheTtl, MaxNegativeCacheTtl 값이 10으로 되어 있으면 10초 캐싱한다는 의미를 나타냄.
   (참고 사이트 : http://support.microsoft.com/kb/318803/ko)
 - 캐싱 안하게 할 경우는 레지스트리에서 0으로 하던가 아니면  net stop dnscache 명령어를 사용하거나 ipconfig /flushdns 커맨드를 사용함

3. 컴파일러
 - Java
  . $JAVA_HOME/jre/lib/security/java.security
  networkaddress.cache.ttl=10(또는 임의의 정수)
  설명) 네임 서비스로부터의 이름의 검색에 성공했을 경우의 캐싱 정책를 나타냄.
지정하는 값은, 성공한 검색 결과를 캐쉬하는 초수를 나타내는 정수.
-1의 값은, 「쭉 캐쉬한다」라고 하는 의미
  networkaddress.cache.negative.ttl=10
  설명) 네임 서비스로부터의 이름의 검색에 실패했을 경우의 캐싱 정책를 나타냄.
지정하는 값은, 실패한 검색 결과를 캐쉬하는 초수를 나타내는 정수.
0 의 값은, 「캐쉬하지 않는다」라고 하는 의미. -1 의 값은, 「쭉 캐쉬한다」라고 하는 의미.

  .어플리케이션에서 캐싱 설정한 경우

  java.security.Security.setProperty("networkaddress.cache.ttl" , "10");

 - 캐싱안하게 할 경우 ttl을 0으로 셋팅해주면 됨

태그 :