IKEDA Kenji <noroi-fj@mob.or.jp> writes:

> > 池田さんのおっしゃるforward lastってのは,
> > 「まず自分で反復問い合わせを行ない,失敗したらforwardersに問い合わせる」
> > ことを期待されてるんでしょうか? 
> 
> やりたいことはそうです。詳しくは <86k7k5yb1s.fsf@poe.mob.or.jp> を。

この記事は読めませんでしたので,推測で書きます.

> 結論からすると、bind ではできません。ただ、forward first って、何が嬉
> しいのかなと、グチが…
> 
> 先のを投稿した後、つらつら考えるに、hint に書かれた root server 群が、
> アクセスするには遠い(ないしは高価な)ネットワーク上にあり、forwarders 
> に書かれたサーバーに再帰問合せする方が近い(ないしは安価な)環境のための
> 仕組みなのでしょうね。うちと逆。つうか、FW 内に大規模なネットワーク持っ
> てるところって、どこもうちと同じなんじゃなかろうか?

ようするに,FW内だけで(root-servers.netとは別のツリーの)コンテンツサー
バを立てることは,あまり考慮していないんだと思います.

forward onlyは「外へ引きに行くにはforwarders経由でしかできない」場合.
forward firstは「外へ引きに行った結果は,なるべくforwardersでキャッシュ
したい(その方が速い)けど,forwardersが落ちている場合はしかたないから自
分で引きに行くことができる」場合.

中を引く場合(というか,ドメインによってルートサーバが異なる場合)の話は,
あまり考えていないんじゃないかと.

> A. 中が見えればいい type hint (+0.0.127.in-addr.arpa) だけのもの
> B. 外も見せたい type hint + forwarders のもの
> 
> です。で、B が、『まず自分で反復問い合わせを行ない、失敗したら 
> forwarders に問い合わせる』のタイプです。
>
> もちろん、A は簡単に実現できます。問題は B。
> 
> 上に「できません」と書きましたが、不本意な方法を使えばできます。
> 
> 1. options の forwarders に、外を引けるキャッシュサーバーを指定。
> 2. type hint な指定は無し。(意味がないから)
> 3. XXXX.JP 等のゾーンの slave になる。

> でも、3. を実現するには XXXX.JP 等のゾーンの master に、zone transfer を
> 許可する必要があります。が、そんなことはしたくはないのです。

確かにそんなのは嫌ですよね.独立して管理できるにこした事はない.

(別解1)
1. type hintな(Aのタイプの)キャッシュサーバを別に立てる.
2. Bのサーバでは,type forwardで,内部の名前は1に聞きに行く.
というのはどうでしょう?

あるいはもうあっさり,
(別解2)
・djbdnsのdnscacheを使う.
が簡単な気がします.
 echo 1 > env/FORWARDONLY
 root/servers/@ にforwardersのリストを書く
 root/servers/local.domain にlocal.domainのルートサーバのリストを書く
で良いですよね.

キャッシュならBINDから乗り換えても他のマシンの設定は全く変える必要がな
いし.

> # FW 内から外の名前が引けなきゃいけないのかといわれると…
> # でも、あると便利なんですよ。

外が引きたいのは当然だと思います.BINDでもその辺は考慮していると思う.
ただ,「中だけのDNSサーバを立てる」というのが考慮されてないだけで.

                                前田敦司