どうしてDNSをGoogle8.8.8.8にすると速くなるのかその仕組みと原理
GoogleパブリックDNSに変更するとどうしてブラウジングが高速化するのかその理由を説明します。またセカンダリDNSは不要なのでは?という疑問に答えを書きます。
目次
Google Public DNSとは
よく、ネット記事や口コミでDNSを「8.8.8.8」にすると速くなるよ!というのを見かけます。
そして実際に体感速度が速くなります。また、ネットが繋がりにくい時などもこの設定にすると快調に動くようになったりします。
この「8.8.8.8」は「Public DNS」というものでインターネット上にGoogleが用意してくれているDNSです。
パブリックDNSはGoogle以外にもCDNで有名なCroudFlareが提供してるもの(1.1.1.1と.0.0.1)やNICが管理しているものなどたくさん存在します。
DNSはご存じの通りドメイン名とIPアドレスを変換するサービスです。
通常はプロバイダが提供したものが使われているはずです。これをGoogleやCroudFlareのものに変更するというわけですね。
うたい文句としては「パブリックDNSはたくさん使われているから、大量にキャッシュされているので早い」「セキュリティの面でもDHCPに不正なDNSを仕込まれてフィッシングサイトへ誘導される不安がなくなる」などなど。
さて、本当にそうなのでしょうか?
プロバイダのDNSは本当に遅いのか
プロバイダのDNSは本当に遅いのでしょうか。
インターネットは網の目状につながっていてリレー方式で通信が行われます。つまり一番自宅と近いプロバイダの方がGoogleより近く速いはずです。
実際にOCN回線でベンチマークをとってみました。
見ての通り、OCN回線ではOCN自身、つまりプロバイダが提供しているDNSのほうが圧倒的に速いですね。
これは経路的に近いからで当たり前のことなのです。
それではどうしてDNSを「8.8.8.8」にすると速くなるのでしょうか。気のせいなのでしょうか?
実はそうではないのです。
本当の問題はルータのDNS
PCやスマホは回線を契約したときに借りたり市販品のルータに繋ぎます。そのルーターにはDHCPが搭載されており、自動的にDNSがそれぞれの端末に伝えられます。
そこまでは良いのですが、ここからが問題で、実際に教えられたDNSを見てみると、「そのルータ自身のIPアドレス」が登録されていることが多いのです。
これはどういうことでしょう。
実はルータの中にDNSサーバーがあり、それがプロバイダのDNS情報をキャッシュしているからなのです。
たしかにインターネットに出ずに名前解決するのは速そうです。
しかし実際はそうではないことがほとんどなのです。
プロバイダや大手のDNSは高性能なプロセッサを搭載しているサーバーマシンが驚異的な速度でDNSリクエストを処理します。
ところが、市販品のルーターの中身はよくてスマホ並みのプロセッサしか入っていません。しかもメモリも最低限の、言い換えればスマホ以下のク〇マシンのことがほとんどなのです。
それでもネットワークの処理は専用チップやロジックが行っているので問題にはなりませんが、DNSの処理は上のような亀CPUが限られたリソースで行います。
何百万円のサーバーマシンのDNS応答速度 vs 1000円のラズバイもどきのDNS応答速度
では前者の方が明らかに速い、というわけなのです。
またメモリも最低限なのでとにかくよく不具合を起こすのもルーター内蔵DNSの特徴です。
なのでしょっちゅうインターネットの調子が悪くなる人はルータのDNSがおかしくなっており、8.8.8.8にするとそれが回避される、というわけですね。
最高の選択はプロバイダのDNS
ということで、GoogleのバブリックDNSが決して最高に速いわけではなく、単にルータの内蔵DNSが遅いだけであり、経路的な理由により、最適解は「プロバイダのDNS」となります。
なので単純に8.8.8.8にするのではなく、まずはルータの設定でDHCP設定を開き、そこのクライアントに通知されるDNSサーバーにプロバイダのDNSアドレス(ルータのステータスで確認できます)をコピペすることで、PCやスマホはルータのDNSを回避して直接プロバイダのDNSを参照できるようになり、より快適になるはずです。
それでは8.8.8.8は使わないほうがいいの?
それでは8.8.8.8は使わないほうがいいのか、という問題ですが、使う場面もあります。
それは公共WiFiやどこかの信用の少ないWiFiに繋ぐ場合です。そんな場合はDNSが汚染されている可能性があるので、8.8.8.8や1.1.1.1をスマホに直接設定すると速くて安心です。
ところでセカンダリDNSは不要なの?
ところでDNSには2つ必ず設定欄があります。プライマリDNSとセカンダリDNSです。ルール的にはセカンダリDNSはプライマリDNSのコピーでプライマリDNSがダウンした場合に補助的に使うことになっています。
それでも昨今、そんなサーバーダウンを心配する必要なんであるのでしょうか。実際プライマリDNSだけを設定してセカンダリDNSを書かないくてもちゃんと動きます。
プライマリDNSだけでよいのでは?と思いませんか。
それは半分は正しいですが、半分はもったいないことなのです。
ルータを通過するパケットを見るとわかりますが、PCやスマホのネットワークスタックはプライマリDNSだけを使うのではなく、均等にプライマリDNSとセカンダリDNSに分散してリクエストすることで高速化を行っているのです。
なので、セカンダリDNSは書かないよりは書いた方が速くなるということになります。
まとめ
ということでGoogleパブリックDNSに変更するとどうしてブラウジングが高速化するのかその仕組みを解説しました。答えは決して8.8.8.8が最速なわけではなく、ボトルネックはルータの内蔵DNSサーバーの遅さと不安定さで、プロバイダのDNSをDHCP情報に入れてPCやスマホからはルータのDNSをバイパスささせるのが良いことを書きました。またそれでも公共WiFiのDNSの危険性回避にDNS直指定は有効であることも付記し、セカンダリDNSの重要性も記述しました。ご参考ください。
ということで快適なネットライフを(^^)/。