BIND で /24 未満のサブネットへのゾーン委任を逆にします。 使い方

ある日、私はクライアントの 28 人に、そのクライアントに割り当てられた /24 サブネットの PTR レコードを編集する権利を付与するという課題に直面しました。 外部から BIND 設定を編集するための自動化機能がありません。 したがって、私は別のルートを取ることにしました - /XNUMX サブネットの PTR ゾーンの一部をクライアントに委任することにしました。

もっと簡単なことは何でしょうか? サブドメインの場合と同様に、必要に応じてサブネットを登録し、目的の NS に送信するだけです。 しかし、そうではありません。 それはそれほど単純ではありません(実際には一般に原始的ですが、直感は役に立ちません)、それが私がこの記事を書いている理由です。

自分で調べたい人は読んでください RFC
既製のソリューションが必要な方は、cat へようこそ。

コピペの方法が好きな人を遅らせないように、最初に実践的な部分を投稿し、次に理論的な部分を投稿します。

1. 練習します。 委任ゾーン /28

サブネットがあるとします。 7.8.9.0/24。 サブネットを委任する必要があります 7.8.9.240/28 DNSクライアントへ 7.8.7.8 (ns1.client.domain).

プロバイダーの DNS で、このサブネットの逆方向ゾーンを説明するファイルを見つける必要があります。 なるがままに 9.8.7.in-addr.harp.
240 から 255 までのエントリがある場合は、コメントします。 そして、ファイルの最後に次のように記述します。

255-240  IN  NS      7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240

シリアルゾーンを増やすことを忘れないでください。

rndc reload

これでプロバイダー部分は完了です。 クライアントDNSに移りましょう。

まずはファイルを作成しましょう /etc/bind/master/255-240.9.8.7.in-addr.arpa 次のコンテンツ:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

そして named.conf 新しいファイルの説明を追加します。

zone "255-240.9.8.7.in-addr.arpa." IN {
        type master;
        file "master/255-240.9.8.7.in-addr.arpa";
};

B バインドプロセスを再起動します。

/etc/init.d/named restart

全て。 これで確認できるようになりました。

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

PTR レコードだけでなく、CNAME も指定されることに注意してください。 そうあるべきです。 理由が気になる方は、次の章へようこそ。

2. 理論。 使い方。

ブラック ボックスの構成とデバッグは困難です。 内部で何が起こっているのかを理解すれば、はるかに簡単になります。

ドメイン内のサブドメインを委任する場合 ドメイン、次に次のように書きます。

client.domain.	NS	ns1.client.domain.
ns1.client.domain.	A	7.8.7.8

私たちは質問する人全員に、この分野については私たちには責任がないこと、そして誰が責任があるのか​​を伝えます。 そして、すべてのリクエストは、 クライアント.ドメイン 7.8.7.8 にリダイレクトします。 確認すると、次の図が表示されます (クライアントがそこに持っているものは省略します。問題ありません)。

# host test.client.domain
test.client.domain has address 7.8.9.241

それらの。 そのような A レコードがあり、その IP は 7.8.9.241 であることがわかりました。 不要な情報はありません。

同じことをサブネットでどのように実行できるでしょうか?

なぜなら当社の DNS サーバーが RIPE に登録されている場合、当社のネットワークから PTR IP アドレスをリクエストする場合、最初のリクエストは引き続き当社に対して行われます。 ロジックはドメインの場合と同じです。 しかし、ゾーン ファイルにサブネットを入力するにはどうすればよいでしょうか?

次のように入力してみましょう。

255-240  IN  NS      7.8.7.8

そして...奇跡は起こりませんでした。 リクエストのリダイレクトは受け付けていません。 問題は、bind は逆引きゾーン ファイル内のこれらのエントリが IP アドレスであることさえ認識せず、さらに範囲エントリを認識しないことです。 彼にとって、これはある種の象徴的なサブドメインにすぎません。 それらの。 バインドの場合、「」の間に違いはありません。255-240"そして"私たちのスーパークライアント」。 リクエストが必要な場所に送信されるようにするには、リクエスト内のアドレスは次のようになります。 241.255-240.9.8.7.in-addr.arpa。 または、文字サブドメインを使用する場合は次のようになります。 241.oursuperclient.9.8.7.in-addr.arpa。 これは通常とは異なります: 241.9.8.7.in-addr.harp.

このようなリクエストを手動で行うのは困難です。 たとえうまくいったとしても、それを実際の生活にどのように適用するかはまだ不明です。 やっぱりリクエストに応じて 7.8.9.241 クライアントの DNS ではなく、プロバイダーの DNS が引き続き応答します。

ここで彼らが活躍します CNAME.

プロバイダー側​​では、リクエストをクライアント DNS に転送する形式で、サブネットのすべての IP アドレスのエイリアスを作成する必要があります。

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
и т.д.

これは勤勉な人のためのものです =)。

怠け者には、以下のデザインの方が適しています。

255-240  IN  NS      ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240

今すぐ情報をリクエストしてください 7.8.9.241241.9.8.7.in-addr.harp プロバイダーの DNS サーバー上では に変換されます。 241.255-240.9.8.7.in-addr.arpa そしてDNSクライアントに行きます。

クライアント側はそのようなリクエストを処理する必要があります。 したがって、ゾーンを作成します 255-240.9.8.7.in-addr.arpa。 その中で、原則として、/24 サブネット全体の任意の IP に対して逆エントリを配置できますが、プロバイダーが転送したものについてのみ質問されるため、いじることはできません =)。
説明のために、クライアント側からの逆ゾーン ファイルの内容の例をもう一度示します。

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

これは、プロバイダー側​​で CNAME を使用しており、IP アドレスによるデータのリクエストに応じて、XNUMX つではなく XNUMX つのレコードを受信するためです。

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

ACL を正しく設定することを忘れないでください。 なぜなら、自分だけの PTR ゾーンを取得し、外部からの誰にも応答しないのは意味がないからです =)。

出所: habr.com

コメントを追加します