ご自宅のルーター、キャッシュDNSの性能は足りてますか?

こんにちは。日々是発見が楽しみな西山です。

先日、PC関連のメディアでこのような記事が掲載されました。

WindowsのChromeやEdgeでネットにつながりにくくなる現象、一部の家庭用ルーターが原因かも?

Google Chromeの挙動が変更されてDNSのクエリがUDPではなくTCPで多数送出されるようになり、TCPでの問い合わせが考慮されていないキャッシュDNSでトラブルが多発した、という内容です。

家庭用のルーターは標準的にキャッシュDNS機能を搭載しています。
そしてデフォルトのDHCP設定でPCやスマホにIPアドレスを払い出すと、DNSは「ルーター自身」を指し、搭載されているキャッシュDNSを使うようになります。

もしルーターのキャッシュDNSが性能不足だった場合、何が起こるでしょう?
スクリーンショット 2023-08-09 103100

ご自宅のPCでこの画面が出た場合、その原因はネット回線ではなく、ルーターのキャッシュDNSかも知れません。

私見ですが、家庭用ルーターのDNS機能は必要最低限の機能・性能で抑えられている場合が多いように思われます。
メイン機能となるインターネット接続のスループット性能に比べると、キャッシュDNS機能は付いてればいい程度の、空気のような存在感で扱われています。
キャッシュDNSの性能や設定に注意が払われないまま出荷されているルーターも相当数ありそうです。

しかし数年前と比べても、スマホ、タブレット、スマート家電と、家庭内Wi-Fiに接続される機器の数は増え続けています。
ご家族が何人もおられ、一人一人がパソコンとスマホを起動すると、1台の家庭用ルーターに10台や20台の機器が当たり前のように接続されてきます。
キャッシュDNSが「割り当てメモリが少ない」「EDNS0やTCP問い合わせに非対応の設定」「キャッシュ容量やクエリ上限設定が不適切」のような状態で動いていると、性能限界を超えてしまう事が考えられます。

「ネット接続が不安定」

その原因は、よく言われる

「回線速度」
「セッション上限数」

以外に

「キャッシュDNSの性能不足で名前解決が遅延したり、リセット応答が発生」

のパターンも少なくないのでは? というわけです。

キャッシュDNSの性能はベンチマークソフトで測定できますので、気になった方はぜひお試しのほどを(主にパブリックDNSの比較に使われるソフトですが、もちろん自宅キャッシュDNSの性能も測定できます)。

Domain Name Speed Benchmark

さて、キャッシュDNSの限界がトラブルの原因だった場合、どう解決すればいいでしょうか?
一番簡単な方法は「各PCやスマホのDNS設定を、プロバイダやGoogle、CloudflareなどのDNSアドレスに変更する」です。
(※ルーターの「DNSサーバーアドレス設定」を変えても効果がないのでご注意を。ルーター内蔵のDNS機能はバイパスさせないといけません)

ですがここでひと手間かけて、キャッシュDNSサーバーを自作してみるのはいかがでしょうか?
手元にラズパイがあればそれを使うもよし、最近は家庭用NASでDockerを動かせるモデルもあります。
お好きなLinuxディストリにUnbound DNSあたりをさくっとインストールして、ルーターのDHCP設定をちょっと変更して、家庭内LAN接続のパソコンやスマホがそのDNSを向くようにする。
それだけでご家庭でのネット接続が改善するかも知れません。

ネットが遅い、不安定だとお悩みの方。
お金をかけてルーターを買い替えたり、プロバイダを乗り換える前に、自作キャッシュDNSで改善するか試してみてはいかがでしょうか?