web-dev-qa-db-ja.com

DNSの「ビュー」とTSIGによるゾーン転送の制御

バインド9.8.2の実行。 DNSマスター/サーバーペアを使用して「ビュー」のTSIGキーを正常にセットアップしました。ゾーン転送は、各ビューの2つのサーバー間で期待どおりに機能しています。これを使用して本番環境に移行する前に、いくつかの点について説明する必要があります。当社の製品サーバーは、スレーブサーバー以外のいくつかの他のサーバーへのゾーン転送も許可しています。これに似たACLセットアップがあります。

other_xfer_allowed {
x.x.x.x; // This is our Secondary DNS server
127.0.0.1; // localhost can make zone transfers
x.x.x.x/24; // Corporate server farm range is allowed to make zone-transfers
x.x.x.x/24; // NAT pool for internal DNS server Zone Transfers
}; // end of "other_xfer_allowed" ACL

そして、「転送を許可する」ステートメントに、そのACLを含めました。私の質問は:

TSIGを使用しているので、これらの他のすべてのサーバーの管理者と連絡を取り、ゾーン転送を要求できるようにTSIGキーを提供する必要がありますか?スレーブサーバーで設定する必要があったので、そういうことも必要だと思いますが、よくわかりません。

次、

レコードを要求するときに「内部」ネットワーク上のクライアントに、外部のクライアントとは異なるレコードが表示されるように、ビューを設定します。そして現時点では、異なるレコードを持つ必要があるゾーンは1つだけです。ただし、ビューはソースIPに基づいているため、「内部」ビューにその1つのゾーンのみを含める場合、同じIPから別のゾーンにレコードが要求された場合、おそらくnxdomainを取得することになると理解しています。そのIPはその1つのビューに制限されているので答えてください。

したがって、私の質問は、2つの異なるゾーンファイルを指すゾーンが(現時点では)1つしかない場合でも、すべてのクライアントが結果を取得できるように、両方のビューにすべてのゾーンを含める必要があるかどうかです。もちろん、内部クライアントに別のビューを提示する必要がある別のゾーンがない限り、両方のビューの他のすべては同じゾーンファイルを指します。

さて、最後の質問です。

Allow-queryステートメントについて懸念があります。本番サーバーには、「許可」と呼ばれるACLリストがあります。グローバルオプションにallowqueryステートメントがあり、許可されたACLのIPからのクエリのみを許可します。ただし、confファイル内のすべてのゾーンエントリにも「allow-query {any;};」ステートメントがあります。これは、クエリに「許可された」ACLを設定するという目的に反しませんか?これは悪い設計ですか?そうではありませんか?ゾーンステートメントはグローバルステートメントよりも優先されますか?

2
user53029

TSIGを使用しているので、これらの他のすべてのサーバーの管理者と連絡を取り、ゾーン転送を要求できるようにTSIGキーを提供する必要がありますか?スレーブサーバーで設定する必要があったので、そういうことも必要だと思いますが、よくわかりません。

まず、「TSIGキーを提供する」に関して:いいえ、1つのキーを生成して、セットアップに関係するすべての人と共有することはあまり意味がありません。
パーティごとに1つのキーを作成すると、結局のところ、必要な数のキーを使用できます。このようにして、全員のアクセスを取り消すことなく、異なるパーティに異なるアクセスを許可し、1つのパーティのアクセスを取り消すことができます。

また、一部の目的でTSIGを使用することは、必ずしもすべての目的でTSIGを使用することを意味するわけではありません(ただし、多くの場合、望ましいことです)。


したがって、私の質問は、2つの異なるゾーンファイルを指すゾーンが(現時点では)1つしかない場合でも、すべてのクライアントが結果を取得できるように、両方のビューにすべてのゾーンを含める必要があるかどうかです。もちろん、内部クライアントに別のビューを提示する必要がある別のゾーンがない限り、両方のビューの他のすべては同じゾーンファイルを指します。

すべてのクエリは、1つのビュー(一致する最初のビュー)のみにヒットします。
つまり、クライアントがクエリでヒットしたビューでデータが利用できない場合、そのビューのゾーンで、または再帰を介して(クライアントが再帰を利用でき、クライアントが要求した場合)、彼らはそのデータを取得できません。

ビュー間で複製されるゾーンがさらに必要になる可能性は十分にあります。


Allow-queryステートメントについて懸念があります。本番サーバーには、「許可」と呼ばれるACLリストがあります。グローバルオプションにallowqueryステートメントがあり、許可されたACLのIPからのクエリのみを許可します。ただし、confファイル内のすべてのゾーンエントリにも「allow-query {any;};」ステートメントがあります。これは、クエリに「許可された」ACLを設定するという目的に反しませんか?これは悪い設計ですか?そうではありませんか?ゾーンステートメントはグローバルステートメントよりも優先されますか?

はい、zoneで指定されたallow-queryは、グローバルなallow-query値を上書きします。ゾーンに一致するクエリの場合、これはグローバル設定が使用されないことを意味しますが、再帰が有効になっている場合は、どのゾーンにも一致しないクエリも処理しています。

これらの設定がどのように相互作用するかについては、 マニュアルのallow-*設定 を参照してください。

3