dnsmasq
데비안 서버에서 캐싱 전용 DNS 서버로 구성 했으며 제대로 작동합니다 (발굴을 통해 DNS 응답 시간이 향상되고 있음).
그러나 dnsmasq
캐싱 이 무엇인지 한 번 에 알고 싶습니다 . 따라서 달성하는 효율성 (예 : 적중률)에 대해 생각하기 시작할 수 있습니다.
매뉴얼 페이지와 웹을 둘러 보았으며 dnsmasq
(예를 들어 dnsmasq.lease 파일에 보관 된 임대를 위해 할 수있는 것과 달리) 캐싱이 무엇인지 어떻게 볼 수 없습니다 .
는 IS dnsmasq
DNS 캐시는 메모리에? 아니면 로그 파일을 삭제해야합니까?
답변
액세스 할 수는 dnsmasq
없지만 제목이 dnsmasq입니다. 캐싱입니까? USR1 신호를 dnsmasq
프로세스로 보내서 시스템 로그에 통계를 덤프 할 수 있습니다.
$ sudo pkill -USR1 dnsmasq
그런 다음 시스템 로그를 참조하십시오.
$ sudo tail /var/log/syslog
Jan 21 13:37:57 dnsmasq[29469]: time 1232566677
Jan 21 13:37:57 dnsmasq[29469]: cache size 150, 0/475 cache insertions re-used unexpired cache entries.
Jan 21 13:37:57 dnsmasq[29469]: queries forwarded 392, queries answered locally 16
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.222.222#53: queries sent 206, retried or failed 12
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.220.220#53: queries sent 210, retried or failed 6
참고 :dnsmasq
캐시에 RAM 이 유지 된다고 생각합니다 .
따라서 캐시를 덤프하려면 호출이 -q
있을 때 스위치 를 활성화해야합니다 dnsmasq
. 이것은 dnsmasq
man 페이지 에서 언급됩니다 :
-d, --no-daemon
Debug mode: don't fork to the background, don't write a pid file,
don't change user id, generate a complete cache dump on
receipt on SIGUSR1, log to stderr as well as syslog, don't fork new
processes to handle TCP queries. Note that this option is for use in
debugging only, to stop dnsmasq daemonising in production, use -k.
-q, --log-queries
Log the results of DNS queries handled by dnsmasq. Enable a full
cache dump on receipt of SIGUSR1.
답변
매뉴얼 페이지에서이 정보를 얻는 또 다른 방법 :
캐시 통계는 또한 도메인 바인드에서 클래스 CHAOS 및 TXT 유형의 쿼리에 대한 응답으로 DNS에서 사용 가능합니다. 도메인 이름은 cachesize.bind, insertions.bind, evictions.bind, misses.bind, hits.bind, auth.bind 및 servers.bind입니다. dig 유틸리티를 사용하여 이것을 쿼리하는 예제 명령은 다음과 같습니다.
dig +short chaos txt cachesize.bind
dig +short chaos txt hits.bind
dig +short chaos txt misses.bind
시스템에 systemd-resolve와 같은 것이 있으면 다음을 사용하여 서버를 직접 쿼리해야합니다.
dig +short chaos txt hits.bind @serverIP