MoinQ:

1. DNS/サーバ/落とし穴

さくらで使われているDNSサーバには問題があります。

前野はサーバの動作がDNS RFCに従ったものとは考えていない。-- ToshinoriMaeno 2012-06-18 06:09:11

2. 問題とは

親子(祖先、子孫)関係にあるゾーン(ドメイン)がおなじサーバでサービスされているときに、

この動作は世間でよく使われているBINDも同様らしい。

djbdns/tinydnsでもcdbファイルの作成時に検査を怠っていると発生する。

現状でこの問題発生をさけるには(ドメイン所有を確認しないなら)ふたつの方法が考えられる。

-- ToshinoriMaeno 2012-06-21 00:09:07

サーバの動作に問題があるが、ただちに直せない事情があるのかもしれない。

委譲関係の確認がキャッシュサーバだけでは済まないことが分かったのだから。

3. 環境

使われている権威サーバは一台だけです。

リゾルバは関係ありません。

問い合わせ先の権威サーバを指定する方法をご存知なら、別の例題もお見せできます。

4. DNSサーバ側の問題

あるドメインのためのゾーンがあったとします。

そこにサブドメインに対するゾーンがDBに追加されたとします。

ところが、さくらで使っているコンテンツサーバはそれを権威あるゾーンとして扱っているようです。

5. 対策

この実装上の問題を回避するひとつの運用手段として、 サブドメイン(とさらにそのサブドメインと)を同じサーバには同居させないというものが考えられます。

おなじ所有者に属するドメインとそのサブドメインであれば、 このような動作をしても問題としては発症しないので、気付かれないでしょう。

しかし、所有者が異なるとハイジャックということになってしまいます。

サーバの不良と運用の間違いが重なることで今回の問題が起きたという見解です。

委譲が行われていないサブドメインをゾーンとしてどこかのサーバに作ったとしても 問題にはならないと考えるのは普通です。 参照されることはないからです。

ただし、そのゾーンが親ドメイン(ゾーン)とおなじサーバでサービスされるとおかしなことになります。

登録させてはならないゾーンをDBに登録してしまっても、
 権威サーバが委譲のリンクを正しく追いかけていれば、不正なデータは使わないですむ。
というのが私の頭にありました。
現時点での多くのサーバソフトは使ってしまう。つまり、委譲検査はしていないということです。

6. 影響範囲

[委譲されていないゾーン]?を権威があるとして答えるのは正しくない。

現実にはこのような実装が多いらしい。 BIND以外のものも調べなくてはいかんのか。

-- ToshinoriMaeno 2012-06-18 06:09:11

さくらからの連絡

とりあえず、Nominum社に確認することにしました。
基本的には委譲されていないゾーンは登録すべきでない&削除すべきなのですが、
移転を考えると先に登録せざるを得ない状況もあります。

-- ToshinoriMaeno 2012-06-20 00:11:19