web-dev-qa-db-ja.com

CIDRの世界でのDNSの反転

リバースDNSはクラス境界に強く結びついているようですが、CIDRがサブネットの権限を委任するための標準となっている現在、どのような方法が存在しますか?複数の方法が存在する場合、どれが最適ですか? DNSサーバー(Bind、djbdns、Microsoft DNS、その他)に応じて異なる方法で委任を処理する必要がありますか?クラスB 168.192.in-addr.arpaであるネットワークを制御しているとしましょう。

  • / 22の権限を委任する方法は?
  • / 25の権限を委任する方法は?
24
Zoredache

/ 22の委任は簡単で、4/24の委任です。/14は4/16の委任などです。

RFC2317 は、/ 24より長いネットマスクを持つ特殊なケースをカバーします。基本的に、オクテット境界以外でin-addr.arpaゾーンの委任を行うための非常にクリーンな方法はありませんが、これを回避できます。 172.16.23.16/29を委任するとします。これは、IPアドレス172.16.23.16-> 172.16.23.23になります。

23.16.172.in-addr.arpaゾーンの所有者として、これを私の23.16.172.revゾーンファイルに入れて、この範囲を顧客に委任することができます。

16-29              IN NS  ns1.customer.com
16-29              IN NS  ns2.customer.com
16                 IN CNAME    16.16-29.23.16.172.in-addr.arpa.
17                 IN CNAME    17.16-29.23.16.172.in-addr.arpa.
18                 IN CNAME    18.16-29.23.16.172.in-addr.arpa.
19                 IN CNAME    19.16-29.23.16.172.in-addr.arpa.
20                 IN CNAME    20.16-29.23.16.172.in-addr.arpa.
21                 IN CNAME    21.16-29.23.16.172.in-addr.arpa.
22                 IN CNAME    22.16-29.23.16.172.in-addr.arpa.
23                 IN CNAME    23.16-29.23.16.172.in-addr.arpa.

これで、新しいゾーン(16-29.23.16.172.in-addr.arpa。)を定義して、それを顧客のネームサーバーに委任していることがわかります。次に、新しく委任されたゾーンの下の対応する番号に委任されるIPからCNAMEを作成しています。

これらが委任された顧客として、私はnamed.confで次のようなことを行います。

zone "16-29.23.16.172.in-addr.arpa" { 
    type master;
    file "masters/16-29.23.16.172.rev";
};

そして、.revファイルでは、通常のin-addr.arpaゾーンのようにPTRを作成します。

17                 IN PTR office.customer.com.
18                 IN PTR www.customer.com.
(etc)

それはそれを行うためのクリーンな方法のようなものであり、PTRを入れるin-addr.arpaゾーンがあるなどの知識のある顧客を幸せにします。ゾーン全体を設定したいのは、CNAMEの個々のレコードをメインゾーンの類似した名前に変更する場合です。

この場合、委任者としての23.16.172.revファイルには次のようなものが含まれます。

16                 IN CNAME    16.customer.com.
17                 IN CNAME    17.customer.com.
18                 IN CNAME    18.customer.com.
19                 IN CNAME    19.customer.com.
20                 IN CNAME    20.customer.com.
21                 IN CNAME    21.customer.com.
22                 IN CNAME    22.customer.com.
23                 IN CNAME    23.customer.com.

つまり、概念は他のアイデアと似ていますが、新しいゾーンを作成してそれを顧客に委任する代わりに、顧客の既存のメインゾーンの名前にレコードをCNAMEすることになります。

顧客のcustomer.comゾーンファイルには次のようなものが含まれます。

office             IN A   172.16.23.17
17                 IN PTR office.customer.com.
www                IN A   172.16.23.18
18                 IN PTR www.customer.com.
(etc)

それは顧客のタイプに依存します。私が言ったように、それは顧客のタイプに依存します。精通した顧客は、独自のin-addr.arpaゾーンを設定することを好み、ドメイン名ゾーンにPTRがあるのは非常に奇妙だと思います。経験の浅いお客様は、追加の設定を大量に行うことなく、「そのまま」機能することを望んでいます。

他の方法もあると思いますが、私がよく知っている2つを詳しく説明します。


私は/ 22と/ 14がどのように簡単であるかについての私の声明について考えていましたが、なぜそれが真実であるのかを考えていましたが、25と32の間はどれも難しいです。私はこれをテストしていませんが、/ 32全体を次のように顧客に委任できるかどうか迷っています。

16                 IN NS ns1.customer.com.
17                 IN NS ns1.customer.com.
(etc)

次に、顧客側で/ 32全体をキャッチします。

zone "16.23.16.172.in-addr.arpa" { type master; file "masters/16.23.16.172.rev"; };
zone "17.23.16.172.in-addr.arpa" { type master; file "masters/17.23.16.172.rev"; };
(etc)

そして、個々のファイルには次のようなものがあります:

@            IN PTR office.customer.com.

明らかな欠点は、/ 32ごとに1つのファイルが粗雑なことです。しかし、私はそれがうまくいくに違いない。

私が言及したものはすべて純粋なDNSです。DNSサーバーが許可しなかった場合、それはDNSのすべての機能を制限しているためです。私の例では明らかにBINDを使用していますが、Windows DNSとBINDを使用してこれを顧客側で行いました。どのサーバーでも機能しない理由はわかりません。

31
jj33

はい、 RFC 2317 は非常に優れた読み物です。

また、 私の記事 (フランス語)。

3
bortzmeyer

http://aa.net.uk/kb-domains-reversedns.html (約半分)は、私のISPがリバースDNSをどのように処理するかを説明しています。私はあなたがそれをするどんな方法でも地獄のように醜いことになると思います。

0
David Pashley

BINDには、PTRレコードのシーケンスを作成するための独自の$ GENERATEマクロがありますが、クラスフルな世界を想定しているため、あまり役に立ちません。 CIDRリバースゾーンを特別にサポートしている他のサーバーについては知りませんが、需要があると思います!

PowerDNSには、問題が努力に値するほど大きい場合に独自に記述できる、Niceバックエンドインターフェイスがあります。 「PipeBackend」を使用してプロトタイプを作成することもできます。 MySQL/PostgreSQLインターフェースを介していくつかの魔法のSQLを実行することもできます-特にPostgresには「cidr」データ型があるためです。

0
Gavin Brown