Public DNS 「8.8.8.8」「129.250.35.250」は本当に速いのか?
ネタフルさんの以下の記事を筆頭に、普段使っているプロバイダのDNSサーバーをPublic DNSに設定することにより、ネットワーク接続が向上するという噂が見受けられたので検証してみました。
[N] iPhoneのWiFi接続を高速化する魔法の数字「8.8.8.8,8.8.4.4」「8.8.8.8,8.8.4.4」より速い「129.250.35.250」: 小粋空間
こちらの2つの記事を参考に、「1.何も変更していない状態」、「2.Google Public DNS」、「NTT America Technical Operations」それぞれ3つのベンチマークを測定してみました。
テスト環境
PC:ASROCK P67 Pro3 (マザーボード) Windows 7 Home Premium(OS)回線:auひかり PLCモデム接続、北海道札幌市
測定サイト:Speedtest.net – The Global Broadband Speed Test
Public DNS変更による検証結果
結論から申し上げますと、何も変更していないdefaultでのベンチマークが一番成績が優秀でした。default

Google Public DNS

NTT America Technical Operations

(それぞれのテスト結果の最大値)
DNSベンチマークソフト『namebench』による結果
Mean Response Duration(応答時間)Fastest Individual Response Duration(最も速かった応答時間)
※長さが短い方がレスポンスがいい
Response Distribution Chart (First 200ms)
Response Distribution Chart (Full)
おそらく、公衆無線LANサービスや東京などの都心部で計測した場合に変化があるかもしれませんが、普段利用している分には気にするものではないという結論です。
参考:Geekなぺーじ : 「魔法の数字8.8.8.8」を検証する
まず最初に、調査前からの私のスタンスとしては「ISP(インターネットサービスプロバイダ)が提供するDNSキャッシュサーバを使っている方が早いことが多いので、ISPが提供するDNSキャッシュサーバに不満があるなど明確な理由がない限りは変更しない方が良いのでは?」という感じです。
ただ、8.8.8.8と覚えやすいことや、セキュリティ上の理由でオープンリゾルバ(組織の内部だけでなく外部からも利用できるキャッシュサーバ)が減少してしまったという背景もあり、私もGoogle Public DNSを使うことがあります。
たとえば、イベント等の会場でうまく現地のDNSキャッシュサーバに関する情報が提供されていなときに、とりあえず8.8.8.8と入れてみることが多いです。
また、以前、ISPのDNSキャッシュサーバ障害が発生して、Twitter上で「インターネットが使えない!」と多くの人々が言っていたときに「8.8.8.8をDNSキャッシュサーバとして登録したら障害を回避できますよ」とアドバイスしたりもしています。
ということで、私にとってGoogle Public DNSは日常的に使うものというよりは、知っていると障害時等に便利なサービスという位置づけです。
Google Public DNSの早さを産み出しているもの
ISPのDNSと比べてGoogle Public DNSが優れているのは、恐らくキャッシュヒット率の高さだろうと思います。
ユーザからのリクエストがなくても、自動的にDNS権威サーバへの問い合わせを行うなど、出来るだけ多くのキャッシュを保持し続けるような仕組みになっています。
ユーザからのリクエストを受けとってから再帰検索を行うのではなく、はじめからキャッシュが存在している場合が多くなるというのがGoogle Public DNSの「早さ」を実現しています。
さらに、キャッシュの検索が高速であるという特徴もありそうです。既にキャッシュされている項目を問い合わせた時の回答送信のスピードは結構早い印象があります。
ただ、この「早さ」はISPのDNSと比べて1~2msec早いとか、数msec早いという場合が多いので、人間が認知できる違いではなさそうです。
また、Public DNSを利用するのにあたって、セキュリティについて把握しておく必要があります。
参考:Google Public DNS を使う理由を学びました。ちゃんちゃん。の巻 | TrippyBoyの愉快な日々
DNSサーバーに対して行われる攻撃として大きく2つあります。これらについて、一般の方が分かりやすいように、噛み砕いて説明している記事は目につきません。
「DNSキャッシュポイズニング」と「DDosアタック」です。
DNSキャッシュポイズニングとは
利用するリゾルバが権威DNSサーバーに名前解決を行い、通常であれば権威DNSサーバーからの回答待ち、権威DNSサーバーからの回答を利用するのですが、この「権威DNSサーバーからの応答」を偽って、誤った名前解決結果をリゾルバに渡し誤った情報をキャッシュさせることです。
DDos(Distributed Denial of Service)アタックとは
大量の名前解決をリゾルバに行わせること、また名前解決の結果処理する必要があるデーター量が大きくなるような問い合わせを故意にと行い、DNSサーバーのリソースを利用しサービスに影響を与えるまたは停止させる攻撃のことです。特殊なパケットをDNSサーバーに処理させることでDNSサーバーを停止させるなどの脆弱性も過去に有りました。
ホッテントリとなった記事に対して、はてなブックマークを使って上から目線でコメントするだけの人が多く、実際にその仕組や危険性については語られない、自己アピールするだけという悪循環とも言える状況が続いているだけかと感じます。
例.コレはヤバイ!Wi-Fiのページ読み込みを爆速にする「魔法の数字」は本物だったぞ!設定はコピペでOK – アップス!!!-iPhoneの小技やiOS系ニュースを配信
Public DNSの件を本屋の書籍で例えると、良書は目次が見やすく目的のページに速く辿り着くことができますが、世の中には沢山の本があり、中には誤った情報や危険な情報を正しいものとして提供しているものもあるというイメージでしょうか。
以上のことから、Public DNSはあくまで緊急手段であり、常用するものでは無いと考えられます。