日本から OpenDNS を使っても無意味。Akamaiは逆効果。

最近、
・「http://sourceforge.jp/magazine/07/02/02/0130245/2
・「Mozilla Re-Mix: 安全・高速なWebサーフィンを実現する「OpenDNS」
・「安全で高速なDNSを提供する「OpenDNS」 - GIGAZINE
といった記事がはてぶに登場したのですが、OpenDNSについて誤解する人がいると残念なので、本当のところどうなのかをMEMOしなきゃと思った次第。

間違いなく言えることとして日本でOpenDNSを使っても遅くなります

第一の理由は日本から OpenDNSは遠いということ。

日本から選べるのはシアトルとパロアルトのどちらかです。仮にOpenDNSが世界一早くレスポンスを返せるサーバだったとしても、海底ケーブルを流れて日本に応答が帰ってくるまで 100-150msec の遅延(厳密にはRTT)が発生するわけです。
新しいWEBサイトを訪れるたびに毎度はるばる100msecかけてアメリカに聞きに行くぐらいなら10msecでアクセスできる日本のDNSを使うほうが圧倒的に高速です。日本人がアクセスするようなサイトは大方日本のDNSにキャッシュされているわけですから・・・。

第二の理由はAkamaiサイトとの接続性が最悪であること。

Yahoo!IntelMicrosoftSONY任天堂も世界中に張り巡らされたAkamaiサービスを使っています*1
Akamaiは世界中に2万台ものEdgeサーバを持っているのだとか。ユーザーは地理的に直近のEdgeサーバからダウンロードできるので、世界中どこでも高速ダウンロードができるわけです。

ところがOpenDNSを使うと、ユーザーからではなくOpenDNSのサーバーから最も近い(シアトルやパロアルトあたりの)Edgeサーバがチョイスされる模様です。
そうなると Windows Update を含む大容量のAkamaiコンテンツが、はるばる米国西海岸から送られてくる(つまり激遅!)・・・という事態に直面します。

一応実証実験。

論より証拠と思ったのでテストしてみました。


例えば 国内ODNDNS(143.90.130.165) に download.windowsupdate.com を名前解決させてみたのが下の結果です。
12msecの超スピード解決な上に、2個AkamaiのEdgeサーバーが出てきた。どれも国内のIPアドレス

発行コマンド 「dig @143.90.130.165 download.windowsupdate.com」
                                                                                                                                              • -
;; ANSWER SECTION: download.windowsupdate.com. 278 IN CNAME download.windowsupdate.nsatc.net. download.windowsupdate.nsatc.net. 365 IN CNAME main.dl.wu.akadns.net. main.dl.wu.akadns.net. 89 IN CNAME intl.dl.wu.akadns.net. intl.dl.wu.akadns.net. 89 IN CNAME dl.wu.ms.geo.akadns.net. dl.wu.ms.geo.akadns.net. 3389 IN CNAME a26.ms.akamai.net. a26.ms.akamai.net. 19 IN A 60.254.140.162 a26.ms.akamai.net. 19 IN A 60.254.140.178 ;; ADDITIONAL SECTION: n0ms.akamai.net. 27 IN A 211.131.226.34 n1ms.akamai.net. 727 IN A 61.113.95.14 n2ms.akamai.net. 3339 IN A 60.254.185.38 n3ms.akamai.net. 1119 IN A 60.254.185.39 n4ms.akamai.net. 630 IN A 61.113.95.28 n5ms.akamai.net. 3251 IN A 211.131.226.28 n6ms.akamai.net. 27 IN A 211.131.226.34 ;; Query time: 12 msec ;; SERVER: 143.90.130.165#53(143.90.130.165) ;; WHEN: Wed Apr 29 21:10:40 2009 ;; MSG SIZE rcvd: 511

国内ODNDNSが教えてくれた download.windowsupdate.com に ping を飛ばしてみたら平均3msec!恐ろしく近い!

発行コマンド  ping 60.254.140.162
                                                                                                                                              • -
PING 60.254.140.162 (60.254.140.162) 56(84) bytes of data. 64 bytes from 60.254.140.162: icmp_seq=0 ttl=56 time=3.02 ms 64 bytes from 60.254.140.162: icmp_seq=1 ttl=56 time=3.04 ms 64 bytes from 60.254.140.162: icmp_seq=2 ttl=56 time=2.82 ms 64 bytes from 60.254.140.162: icmp_seq=3 ttl=56 time=3.08 ms 64 bytes from 60.254.140.162: icmp_seq=4 ttl=56 time=2.85 ms 5 packets transmitted, 5 received, 0% packet loss, time 4042ms rtt min/avg/max/mdev = 2.826/2.966/3.083/0.116 ms, pipe 2


比べるために OpenDNSのDNS(208.67.222.222) に download.windowsupdate.com を名前解決させてみたのが下の結果です。
遠いところはるばるご苦労様な感じでパケットが130msecもかかった上に西海岸風なIPアドレスが・・・。

発行コマンド 「dig @208.67.222.222 download.windowsupdate.com」
                                                                                                                                              • -
;; ANSWER SECTION: download.windowsupdate.com. 1583 IN CNAME download.windowsupdate.nsatc.net. download.windowsupdate.nsatc.net. 1 IN CNAME mscom-wui.vo.llnwd.net. mscom-wui.vo.llnwd.net. 7 IN A 68.142.123.186 mscom-wui.vo.llnwd.net. 7 IN A 68.142.123.179 ;; Query time: 133 msec ;; SERVER: 208.67.222.222#53(208.67.222.222) ;; WHEN: Wed Apr 29 21:16:45 2009 ;; MSG SIZE rcvd: 155

OpenDNSが教えてくれた download.windowsupdate.com に ping を飛ばしてみました。平均143msec!これは遅い。
国内Edgeサーバの47倍時間がかかってます。

発行コマンド  ping 68.142.123.186
                                                                                                                                              • -
PING 68.142.123.186 (68.142.123.186) 56(84) bytes of data. 64 bytes from 68.142.123.186: icmp_seq=0 ttl=49 time=144 ms 64 bytes from 68.142.123.186: icmp_seq=1 ttl=49 time=142 ms 64 bytes from 68.142.123.186: icmp_seq=2 ttl=49 time=142 ms 64 bytes from 68.142.123.186: icmp_seq=3 ttl=49 time=144 ms 64 bytes from 68.142.123.186: icmp_seq=4 ttl=49 time=145 ms 5 packets transmitted, 5 received, 0% packet loss, time 4044ms rtt min/avg/max/mdev = 142.781/143.931/145.250/1.057 ms, pipe 2

結論として

ブラウジング速度を求めるなら迷わず日本のメジャーなDNS選びましょう。
何も考えずにOpenDNSは早いと勘違いすると数倍どころではなく数十倍遅くなる可能性ありです。

OpenDNSは・・・。うーん、フィルタリングとか多機能なところはいいんですけどね。(^_^.)

*1:Akamaiの詳しい情報はここがよさそうです→みんなが知らずに使ってるAkamai:Geekなぺーじ