chrome dns cache

크롬 브라우저는 dns cache 설정이 되어있다. 하지만 dns cache 를 clear 할 수 있는 방법이 있다. chrome://net-internals/#dns 에 접속하며 아래의 화면과 같이 Clear host cache 를 클릭하면 된다. dns lookup 도 제공한다.

chrome://net-internals/#dns 에 접속했을때 노출되는 창

command 로는 아래처럼 입력할 수 있다. (www.naver.com nslookup 수행 시, 결과값)

❯ nslookup www.naver.com
Server:		168.126.63.1
Address:	168.126.63.1#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
Name:	www.naver.com.nheos.com
Address: 223.130.195.200
Name:	www.naver.com.nheos.com
Address: 223.130.200.107

 

java dns cache

VIP 로 묶인 MySQL 서버에 실제 물리장비가 스위칭되는 경우에 거기에 붙은 서버도 같이 변경이 이뤄나야 한다. 그렇지 않으면 변경전 MySQL 서버에 세션이 붙어있는 현상이 발생될 수 있다. 따라서 자바단에서 dns cache 비활성화 처리를 해줘야 한다. 아래처럼 할 수 있다.

// DNS 캐시 비활성화
java.security.Security.setProperty("networkaddress.cache.ttl" , "0");
java.security.Security.setProperty("networkaddress.cache.negative.ttl", "0");

- networkaddress.cache.ttl 은 DNS 조회결과를 캐시하는데 사용되는 TTL 값이다. 초단위로 표시된다. 따라서 해당 값이 0이면 DNS 서버에 새로운 요청을 매번 수행한다.

- networkaddress.cache.negative.ttl 은 실패한 DNS 조회결과를 캐시하는데 사용되는 TTL 값이다. 초단위로 표시된다. 해당 값이 0이면 실패한 dns cache 에 대해서 반복적으로 dns 서버에 요청을 보내게 된다.

 

결국 매번 dns 서버에 질의하여 IP 를 찾는다.

 

java 8 이전버전에서 java dns cache

java8 이전버전에서만 사용된 dns cache disable 방법이 있다. 아래처럼 작성하고 java8 이후부터는 networkaddress.cache.ttl 로 사용한다고 한다. 그래도 java8 이후의 위 속성은 여전히 동작한다고 한다. 다만 java8 이후에선 권장되는 방식이 아니라고 한다.

(참고 : https://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html)

System.setProperty("sun.net.inetaddr.ttl", "0");

 

Posted by doubler
,