DNS 캐시 효율성/캐싱 항목을 측정하는 방법은 무엇입니까?

DNS 캐시 효율성/캐싱 항목을 측정하는 방법은 무엇입니까?

dnsmasq내 Debian 서버에 캐싱 전용 DNS 서버를 구성했는데 제대로 작동하고 있습니다(dig를 통해 DNS 응답 시간이 향상되는 것을 확인했습니다) .

dnsmasq그러나 나는 내가 달성하고 있는 효율성(예: 적중률)에 대해 생각해 볼 수 있도록 캐싱이 무엇인지 계속 알고 싶습니다 .

매뉴얼 페이지와 웹 페이지를 살펴봤지만 dnsmasq캐시의 내용을 보는 방법을 찾을 수 없습니다(예를 들어 dnsmasq.lease 파일에 저장되는 임대 작업과 달리).

DNS dnsmasq캐시는 메모리에만 보관되나요? 아니면 일부 로그 파일을 수정해야 합니까?

답변1

접근 권한이 없지만 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

노트:나는 그것이 dnsmasqRAM에 캐시를 유지한다고 믿습니다.

따라서 캐시를 덤프하려면 -q호출 시 스위치를 활성화해야 합니다. 매뉴얼 페이지에는 dnsmasq다음이 언급되어 있습니다 dnsmasq.

   -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.

답변2

매뉴얼 페이지에서 이 정보를 얻는 또 다른 방법은 다음과 같습니다.

캐시 통계는 DNS에서 도메인 바인딩의 CHAOS 클래스 및 TXT 유형 쿼리에 대한 응답으로도 사용됩니다. 도메인 이름은 캐시 크기.바인드, 삽입.바인드, evictions.bind, misses.bind, Hits.bind, auth.bind 및 server.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

관련 정보