来月から l.root-servers.netの IPアドレスが変わります、という話

2007 年 10 月 24 日(米国西部時間)、ルートネームサーバの一つである
L.root-servers.net の IP アドレスが 2007 年 11 月 1 日に変更されるこ
とが、ICANN から発表されました。

Advisory - “L Root” changing IP address on 1st November
October 24th, 2007 by Kim Davies
http://blog.icann.org/?p=227

L.root-servers.net の新しい IP アドレスは 199.7.83.42 となります。現
在既に新しい IP アドレスは運用可能な状態となっており、11 月 1 日のルー
トゾーンにおける変更作業をもって、正式運用が開始されることになります。

発表では、現在の IP アドレス 198.32.64.12 は今後少なくとも 6 ヶ月間に
渡り引き続き参照可能とするとのことですが、移行完了後、最終的にはサー
ビスを終了する予定であるため、11 月 1 日のルートゾーンにおける情報変
更後に各 DNS キャッシュサーバのルートヒントファイルを更新する等の、適
切な対応が必要になります。

えらい急だけど、オープンな情報源としては ICANN Blogにリリースがある、と。

« IDN wiki - 1Week Stats UpdateAdvisory — “L Root” changing IP address on 1st November
October 24th, 2007 by Kim Davies
This is advance notice that there is a scheduled change to the IP address for one of the authorities listed for the DNS root zone. The change is to L.ROOT-SERVERS.NET, which is administered by ICANN.

この事前予告は DNS root zoneの計画的な変更を予定しています。
新しい ICANNで管理している L.ROOT-SERVERS.NETのアドレス変更です。

The new IPv4 address for this authority is 199.7.83.42.

L.ROOT-SERVERS.NETの新しい IPv4権威アドレスは 199.7.83.42です。

This change is anticipated to be implemented in the root zone on 1 November 2007, however the new address is operational now. It will replace the previous IP address of 198.32.64.12.

この変更は、2007年の11月1日から実行されます。
新しい IPアドレスは既に運用が開始されており、古い IPアドレス 198.32.64.12から変更可能です。

We encourage operators of DNS infrastructure to update any references to the old IP address, and replace it with the new address. In particular, many DNS resolvers have a DNS root “hints” file. This should be updated with the new IP address.

古いIPアドレス(198.32.64.12)を参照している箇所を新しいIPアドレス(199.7.83.42)へ更新することを推奨します。
多くの DNSサーバは hintsファイルを参照していますので、これを新しい IPアドレスへ更新するべきです。

New hints files will be available at the following URLs once the change has been formally executed:

新しい hintsファイルは以下から入手可能です。

ftp://rs.internic.net/domain/db.cache
ftp://rs.internic.net/domain/named.cache
ftp://rs.internic.net/domain/named.root
ftp://ftp.internic.net/domain/db.cache
ftp://ftp.internic.net/domain/named.cache
ftp://ftp.internic.net/domain/named.root

It is expected that the old address will continue to work for at least six months after the transition, but will ultimately be retired from service.

最低六ヶ月の間は古いIPアドレスにサーバを稼働させますが、最終的にはサービスを停止させます。


うーん、これらの cacheファイルは古いままだった。
手作業で l.root-servers.netを 199.7.83.42に書き換えてオワリ。

root server DNSIPアドレス変更の影響について

hintsファイルが古くて、古い IPアドレスにクエリを投げると以下の可能性がある

の二通り。

後者は結構マズイことになる可能性がある。前者なら何とかなる。

 殆んどの再帰ネームサーバは、 現行のルートネームサーバの一覧を決定するための primingと呼ばれるブートストラッププロセスを実行しますが、 これはルートヒントファイルのローカルコピーが古いかも知れないためです。 最初に、再帰ネームサーバは、 ローカルなルートヒントファイル内で一覧化されたルートネームサーバのうちのいずれかのルート(".") にNSタイプのDNSクエリを送ります。 再帰ネームサーバは、 稼動しているルートネームサーバから返って来たレスポンス内のルートネームサーバ一覧を名前解決の目的で使用します。 primingは、 再帰ネームサーバが常にルートネームサーバ内の最新の一覧によってオペレーションを開始することを保証するものです。

BINDでは priming/primeという動作をして、起動時に hintsに書かれているIPアドレスに対して、
QTYPE=NS QNAME=.のクエリを投げる。で、結果を hintとして使うと。


要するにディスク上の hintはあくまでも DNSサーバの起動時にしか参照されない、と。
ソースコードまで見ていないが、failした場合は別のアドレスに問い合わせすると想像される。


ということで、単に不達の場合は、root server DNSへの問い合わせが失敗する1回と、その次の 1回を投げることになり、
failするまでの timeout時間だけ起動が転ける、ということになるのかな。


一方で、二つ目の可能性である「root server DNSが使っていたアドレスで偽の root DNSが立ち上がっている」場合で、
かつ古いIPアドレスにクエリを投げた場合、この primingの時に今のインターネット名前空間と違うところに繋がる、かもしれない。

まあ、しかし、古い IPアドレス 198.32.64.12を持っている ep.netが悪意のあるサーバに割り当てたりしないで、
正しく使っている限りはこの可能性もなさそうだな。