こんにちは。日々是発見が楽しみな西山です。
先日、PC関連のメディアでこのような記事が掲載されました。
WindowsのChromeやEdgeでネットにつながりにくくなる現象、一部の家庭用ルーターが原因かも?
Google Chromeの挙動が変更されてDNSのクエリがUDPではなくTCPで多数送出されるようになり、TCPでの問い合わせが考慮されていないキャッシュDNSでトラブルが多発した、という内容です。
家庭用のルーターは標準的にキャッシュDNS機能を搭載しています。
そしてデフォルトのDHCP設定でPCやスマホにIPアドレスを払い出すと、DNSは「ルーター自身」を指し、搭載されているキャッシュDNSを使うようになります。
もしルーターのキャッシュDNSが性能不足だった場合、何が起こるでしょう?
ご自宅のPCでこの画面が出た場合、その原因はネット回線ではなく、ルーターのキャッシュDNSかも知れません。
私見ですが、家庭用ルーターのDNS機能は必要最低限の機能・性能で抑えられている場合が多いように思われます。
メイン機能となるインターネット接続のスループット性能に比べると、キャッシュDNS機能は付いてればいい程度の、空気のような存在感で扱われています。
キャッシュDNSの性能や設定に注意が払われないまま出荷されているルーターも相当数ありそうです。
しかし数年前と比べても、スマホ、タブレット、スマート家電と、家庭内Wi-Fiに接続される機器の数は増え続けています。
ご家族が何人もおられ、一人一人がパソコンとスマホを起動すると、1台の家庭用ルーターに10台や20台の機器が当たり前のように接続されてきます。
キャッシュDNSが「割り当てメモリが少ない」「EDNS0やTCP問い合わせに非対応の設定」「キャッシュ容量やクエリ上限設定が不適切」のような状態で動いていると、性能限界を超えてしまう事が考えられます。
「ネット接続が不安定」
その原因は、よく言われる
「回線速度」「セッション上限数」
以外に
「キャッシュDNSの性能不足で名前解決が遅延したり、リセット応答が発生」
のパターンも少なくないのでは? というわけです。
キャッシュDNSの性能はベンチマークソフトで測定できますので、気になった方はぜひお試しのほどを(主にパブリックDNSの比較に使われるソフトですが、もちろん自宅キャッシュDNSの性能も測定できます)。
さて、キャッシュDNSの限界がトラブルの原因だった場合、どう解決すればいいでしょうか?
一番簡単な方法は「各PCやスマホのDNS設定を、プロバイダやGoogle、CloudflareなどのDNSアドレスに変更する」です。
(※ルーターの「DNSサーバーアドレス設定」を変えても効果がないのでご注意を。ルーター内蔵のDNS機能はバイパスさせないといけません)
ですがここでひと手間かけて、キャッシュDNSサーバーを自作してみるのはいかがでしょうか?
手元にラズパイがあればそれを使うもよし、最近は家庭用NASでDockerを動かせるモデルもあります。
お好きなLinuxディストリにUnbound DNSあたりをさくっとインストールして、ルーターのDHCP設定をちょっと変更して、家庭内LAN接続のパソコンやスマホがそのDNSを向くようにする。
それだけでご家庭でのネット接続が改善するかも知れません。
ネットが遅い、不安定だとお悩みの方。
お金をかけてルーターを買い替えたり、プロバイダを乗り換える前に、自作キャッシュDNSで改善するか試してみてはいかがでしょうか?