Google Public Domain Name System(DNS)

DNSは、ホスト名とドメイン名をIPアドレスに変換してくれるサービスです。

通常はインターネットサービスプロバイダが独自のサービスを提供してくれますが、

Googleさんも提供していると聞いて、早速やってみた。

Using Google Public DNS - Public DNS — Google Developers

ネットワーク設定でDNS設定を手動で設定しまーす。

リスト上位が優先的にアクセスされます。

f:id:bambinya:20150310220858p:plain

192.168.0.1  家ルーターIPアドレスルーターによっては過去のリクエストをキャッシュしてるらしい

2001:268:fd07:4::1  ルーター設定でDHCPが自動で割り当てたIPアドレス。インターネットサービスプロバイダが提供しているDNSサービス。ドメインはcdns01.kddi.ne.jp

2001:268:fd08:4::1  上と同じ。ドメインはcdns02.kddi.ne.jp

8.8.8.8  google public DNSドメインgoogle-public-dns-a.google.com

8.8.4.4  google public DNSドメインgoogle-public-dns-b.google.com

 

digる。digコマンドはDNSIPアドレス応答時間を返す。

digのオプションでDNSを指定できる。(ネットワーク設定で追加する必要ないす。)

$ dig @DNSドメイン ドメイン

f:id:bambinya:20150314122005p:plain

192.168.0.1に問い合わせる

f:id:bambinya:20150314151632p:plain

2001:268:fd07:4::1に問い合わせる

f:id:bambinya:20150314150626p:plain

2001:268:fd08:4::1に問い合わせる

f:id:bambinya:20150314150725p:plain

8.8.8.8に問い合わせる

f:id:bambinya:20150314150850p:plain

8.8.4.4に問い合わせる

f:id:bambinya:20150314150950p:plain

 

DNSがキャッシュを持った状態の応答時間を調べる

DNSは、聞かれたIPアドレスのキャッシュがなければ、上位階層のDNSに回帰的にドメインを聞きに行く。最上位はルートネームサーバーとか呼ばれる。

上位階層に聞きに行った場合は、結局どこで名前解決されたのか、追跡ができないので、

キャッシュを持った状態の応答時間を調べることにした。

そのため、上記の問い合わせを、それぞれ5回ずつ繰り返す。

DNSがキャッシュにyahooのドメイン情報を持つので、だいたい安定したミリ秒で応答が返るようになる。

 

結果:

192.168.0.1                                                           8ms

2001:268:fd07:4::1(cdns01.kddi.ne.jp)                 5ms

2001:268:fd08:4::1(cdns02.kddi.ne.jp)               12ms

8.8.8.8(google-public-dns-a.google.com)            5ms

8.8.4.4(google-public-dns-b.google.com)            4ms

 

結果から分かること

192.168.0.1は我が家のLANとプロバイダをつなぐルーターのプライベートIPアドレスだが、プロバイダの提供しているDNS(cdns01.kddi.ne.jp)に問い合わせた方が応答が速いので、キャッシュを持っていないのではないかと思う。

cdns02.kddi.ne.jpが他と比べて遅いのは、優先順位がcdns01.kddi.ne.jpより低く設定されており、サーバー自体のパフォーマンスも下げていると思われる。パフォーマンスにはCPUやメモリ、OS等が考えられる。

googleが提供するDNSは応答が速い(少なくともキャッシュがある場合は)。