自宅のPiholeがやたらと遅いので解決してみる

2023/10/30に公開

DNSの名前解決がやたらと遅い

家の公告ブロック用に立てているDNS Serverの名前解決がやたらと時間かかって原因がいまいちわからず苦労していたので調査してみた。
少し遅い位なら支障が無いのだけれど、数秒・数十秒終わっても何も表示されないのは流石に不便が過ぎる。

結論:UpstreamのDNS Serverへの問い合わせに時間がかかっていた

Piholeの設定画面

今はこうしてかなり良くなっている。

設定変更前はほぼ全てにチェックを付けていたのだが、それが悪さをしていたらしい。

DNS パフォーマンステスト

ふとDNS Serverへの問い合わせに時間がかかっているのでは?と思ったのでパフォーマンステストをやってみた。
使ったツールはこちら
dnsperftest
見たところshellscriptで書かれていて非常に簡単にパフォーマンステストができるようで試してみることにした。
便利なツールを作ってくれている神々に感謝の日々

設定

shellscriptのPROVIDERの部分で問い合わせを投げるDNS Serverを指定しているようだったのでここに自宅やら特別に調べたいDNS ServerのIPを指定すると追加できるらしい。

PROVIDERSV4="
1.1.1.1#cloudflare 
4.2.2.1#level3 
8.8.8.8#google 
9.9.9.9#quad9 
80.80.80.80#freenom 
208.67.222.123#opendns 
199.85.126.20#norton 
185.228.168.168#cleanbrowsing 
77.88.8.7#yandex 
176.103.130.132#adguard 
156.154.70.3#neustar 
8.26.56.26#comodo
45.90.28.202#nextdns
192.168.xxx.xxx#yamaha-rtx1210
192.168.xxx.xxx#Pihole
"

IPv6も指定できるようだけれどいったんv4だけで

テスト

特にオプションを付けるわけでもなく実行してみた

$ bash ./dnstest.sh
                     test1   test2   test3   test4   test5   test6   test7   test8   test9   test10  Average
172.17.0.1           10 ms   19 ms   39 ms   9 ms    19 ms   19 ms   1 ms    49 ms   1 ms    10 ms     17.60
cloudflare           19 ms   9 ms    29 ms   29 ms   19 ms   29 ms   29 ms   29 ms   1 ms    1 ms      19.40
level3               9 ms    9 ms    1 ms    1 ms    10 ms   10 ms   9 ms    1 ms    9 ms    9 ms      6.80
google               9 ms    9 ms    29 ms   10 ms   1 ms    9 ms    9 ms    49 ms   1 ms    9 ms      13.50
quad9                159 ms  129 ms  109 ms  99 ms   109 ms  99 ms   89 ms   99 ms   109 ms  109 ms    111.00
freenom              259 ms  269 ms  269 ms  289 ms  289 ms  269 ms  289 ms  279 ms  289 ms  299 ms    280.00
opendns              1 ms    9 ms    79 ms   79 ms   1 ms    79 ms   1 ms    10 ms   10 ms   10 ms     27.90
norton               9 ms    9 ms    9 ms    9 ms    10 ms   9 ms    9 ms    19 ms   9 ms    10 ms     10.20
cleanbrowsing        129 ms  119 ms  109 ms  129 ms  119 ms  139 ms  139 ms  169 ms  129 ms  199 ms    138.00
yandex               389 ms  389 ms  419 ms  369 ms  369 ms  369 ms  379 ms  379 ms  369 ms  379 ms    381.00
adguard              189 ms  189 ms  209 ms  229 ms  179 ms  199 ms  179 ms  269 ms  179 ms  249 ms    207.00
neustar              1000 ms 49 ms   59 ms   59 ms   59 ms   59 ms   49 ms   59 ms   49 ms   59 ms     150.10
comodo               49 ms   49 ms   29 ms   39 ms   29 ms   39 ms   29 ms   39 ms   39 ms   49 ms     39.00
nextdns              59 ms   69 ms   49 ms   9 ms    1 ms    10 ms   9 ms    9 ms    1 ms    9 ms      22.50
yamaha-rtx1210       1 ms    1 ms    1 ms    1 ms    9 ms    1 ms    1 ms    1 ms    1 ms    1 ms      1.80
pihole               1 ms    1 ms    1 ms    9 ms    9 ms    1 ms    1 ms    1 ms    1 ms    1 ms      2.60

と言うわけで、Piholeのデフォルトでも設定できるいくつかのDNS Serverへの問い合わせ時間が異様に長いことがわかった
このツール以外と面白いので今後も定期的に使ってみたい

まとめ

そんなこんなで遅すぎるDNS問題も解決したのでひとまず終わり。
選定するDNS Serverのパフォーマンステストもきちんとやった方が良いという当たり前な知見を得たので今後に活かしていきたいですわ!

Discussion