IPアドレスが変わる影響は?

 ルートサーバーのIPアドレスが変更になると、キャッシュDNSサーバーは名前解決時に最初に問い合わせる先がわからなくなってしまわないだろうか。実は現在のキャッシュDNSサーバーの主な実装には、最新のルートサーバーの一覧を入手する仕組み「プライミング」が備わっている。

 キャッシュDNSサーバーのプログラム内には、ルートサーバーの一覧が記述された「ルートヒント」が格納されている。プライミング機能が備わるキャッシュDNSサーバーでは、ルートヒントは文字通り最新のルートサーバーのリストを取得するための「ヒント情報」として利用される。

 プライミングに対応したキャッシュDNSサーバーは最初の名前解決をする前に、ルートヒントに記述されているルートサーバー一覧から1つを選び、ルートサーバーのホスト名(“.”(ルート)のNSレコード)を問い合わせる(図1)。得られた情報はメモリー上にキャッシュとして保存する。次回以降の名前解決ではルートヒントは利用せず、キャッシュされた情報を使うのだ。この一連の仕組みをプライミングと呼ぶ。

図1●キャッシュDNSサーバーはルートサーバーのIPアドレスが変更になったらどうする?
図1●キャッシュDNSサーバーはルートサーバーのIPアドレスが変更になったらどうする?
プライミングに対応したキャッシュDNSサーバーには「ルートヒント」という、「最新のルートサーバーの一覧情報を取得するための情報」が備わる。このルートヒント上の情報を基に、最新のルートサーバーの情報を取得する。
[画像のクリックで拡大表示]

 プライミングは明確に規格化されていないため、DNSのマニュアルなどであまり詳しく説明されていない。また詳細な動作はDNSサーバーソフトの種類によって異なる。JPRSで調べた範囲では、「BIND 9(バインドナイン)」や「Unbound(アンバウンド)」の最新版では「プロセスが起動して最初に名前解決をする直前」に、「Power(パワー)DNS recursor(リカーサー)」の最新版では「プロセスが起動した直後」にプライミングを実施している。

 プライミングによって、ルートヒントに古いルートサーバーの情報が残っていても、キャッシュDNSサーバーの名前解決に大きな影響は出ない