Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

33.6. DNS 転送の管理

DNS 転送は、DNS クエリーへの応答に影響を及ぼします。デフォルトでは、IdM と統合された BIND サービスは、信頼できる DNS サーバーおよび再帰的な DNS サーバーの両方として機能するように設定されています。
IdM サーバーが権威のある DNS ゾーンに所属する名前のクエリーを DNS クライアントが出した場合に、BIND は設定済みのゾーンに含まれるデータで応答します。権威データは常に他のデータよりも優先されます。
IdM サーバーが権威のない名前のクエリーを DNS クライアントが出した場合に、BIND は他の DNS サーバーを使用してこのクエリーを解決しようとします。フォワーダーが定義されていない場合は、BIND がインターネット上のルートサーバーにクエリーを出し、再帰解決アルゴリズムを使用して DNS クエリーに応答します。
BIND を使用して他の DNS サーバーに直接問い合わせて、インターネットで利用可能なデータをもとに再帰を実行することは推奨されません。ユースケースには以下が含まれます。
  • 分割 DNS 設定 (DNS ビュー 設定 とも呼ばれます)。DNS サーバーがさまざまなクライアントに異なる応答を返す設定です。スプリット DNS 設定とは一般的に、会社のネットワーク内で一部の DNS 名が利用できますが、外部からは利用できない環境です。
  • ファイアウォールがインターネット上の DNS へのアクセスを制限する設定。
  • DNS レベルでの集中フィルタリングまたはロギングを使用した設定
  • ローカルの DNS キャッシュへの転送を使用した設定。これにより、ネットワークトラフィックが最適化されます。
このような設定では、BIND はパブリックインターネットで完全再帰を使用しません。代わりに、別の DNS サーバー (フォワーダー と呼ばれます) を使用してクエリーを解決します。フォワーダーを使用するように BIND を設定すると、クエリーと応答が IdM サーバーとフォワーダーの間で送受信され、IdM サーバーが権威データ以外の DNS キャッシュとして機能します。

フォワードポリシー

IdM は、first および only の BIND 転送ポリシーと、IdM 固有の転送ポリシー none をサポートします。
forward first (デフォルト)
DNS クエリーは設定済みのフォワーダーに転送されます。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はインターネット上のサーバーを使用して再帰解決にフォールバックします。Forward first ポリシーはデフォルトのポリシーです。トラフィックの最適化に適しています。
Forward only
DNS クエリーは設定済みのフォワーダーに転送されます。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はエラーをクライアントに返します。分割された DNS 設定の環境では、forward only ポリシーが推奨されます。
None: 転送の無効化
DNS クエリーは転送されません。グローバル転送設定をゾーン別に上書きする場合にのみ、転送の無効化は有用です。このオプションは、IdM の BIND 設定で空のフォワーダー一覧を指定するのと同じです。

転送で IdM サーバーおよびその他の DNS サーバーのデータが結合されない

転送を使用して、IdM のデータを、その他の DNS サーバーのデータと組み合わせることはできません。IdM DNS のマスターゾーン内にある特定のサブゾーンのクエリーのみを転送できます。「IdM DNS マスターゾーンのゾーン委譲」を参照してください。
デフォルトでは、IdM サーバーが権威サーバーとなっているゾーンに、クエリーされた DNS 名が所属する場合には、BIND サービスは、クエリーを別のサーバーに転送しません。このような場合は、クエリーされた DNS 名が IdM データベースに見つからない場合は、NXDOMAIN との応答が返されます。転送は使用されません。

例33.9 サンプルシナリオ

IdM サーバーは、test.example の権威サーバーです。DNS ゾーン。BIND は、IP アドレス 192.0.2.254 でクエリーを DNS サーバーに転送するように設定されています。
クライアントが nonexistent.test.example のクエリーを送信する場合DNS 名である BIND は、IdM サーバーが test.example. ゾーンの権威サーバーであることを検出して、クエリーを 192.0.2.254. サーバーには転送しません。その結果、DNS クライアントは NXDomain の応答を受け取り、クエリーされたドメインが存在しないことをユーザーに通知します。
IdM DNS マスターゾーンのゾーン委譲
IdM DNS では、マスターゾーンの特定のサブゾーンに対するクエリーを転送できます。たとえば、IdM DNS がゾーンidm.example.comを処理する場合は、sub_zone1.idm.example.com サブゾーンの権限を別の DNS サーバーに委譲できます。この動作を実現するには、上述のように転送を使用する必要があります。また、サブゾーンを別の DNS サーバーに委譲するネームサーバーレコードも使用する必要があります。以下の例では、sub_zone1 がサブゾーンで、192.0.2.1 は、サブゾーンが委譲される DNS サーバーの IP アドレスです。
$ ipa dnsrecord-add idm.example.com. sub_zone1 --ns-rec=192.0.2.1
正引きゾーンを追加すると、以下のようになります。
$ ipa dnsforwardzone-add  sub_zone1.idm.example.com. --forwarder 192.0.2.1

33.6.1. グローバルフォワーダーの設定

グローバルフォワーダー は、「DNS 転送の管理」で説明されているように、IdM サーバーに権限がない場合の全 DNS クエリーの解決に使用される DNS サーバーです。
管理者は、次の 2 つの方法で、グローバル転送の IP アドレスと転送ポリシーを設定できます。
ipa dnsconfig-mod コマンドまたは IdM Web UI の使用
このネイティブの IdM ツールを使用して指定した設定は、すべての IdM DNS サーバーにすぐに適用されます。「DNS 設定の優先順位」 で説明しているように、グローバル DNS 設定は、/etc/named.conf ファイルで定義されているローカル設定よりも優先されます。
/etc/named.conf ファイルの編集により
すべての IdM DNS サーバーで/etc/named.confを手動で編集すると、サーバーごとに異なるグローバルフォワーダーとポリシーを使用できるようになります。/etc/named.conf を変更した後は、再起動が必要です。

Web UI でのフォワーダーの設定

IdM Web UI で DNS グローバル設定を定義するには、次のコマンドを実行します。
  1. ネットワークサービス タブをクリックし、DNS サブタブを選択してから、DNS グローバル設定 セクションを選択します。
  2. 新しいグローバルフォワーダーを追加するには、Add をクリックして IP アドレスを入力します。新しい転送ポリシーを定義するには、使用可能なポリシーの一覧からポリシーを選択します。

    図33.28 Web UI でのグローバル DNS 設定の編集

    Web UI でのグローバル DNS 設定の編集
  3. Save をクリックして、新しい設定を確定します。

コマンドラインでのフォワーダーの設定

コマンドラインからフォワーダーのグローバルリストを設定するには、ipa dnsconfig-mod コマンドを使用します。LDAP データを編集することで、DNS グローバル設定を編集します。ipa dnsconfig-mod コマンドとそのオプションは、IdM DNS サーバーすべてを一度に設定して、ローカル設定を上書きします。
たとえば、ipa dnsconfig-mod を使用してグローバルフォワーダーの一覧を編集する場合は、次のコマンドを実行します。
[user@server ~]$ ipa dnsconfig-mod --forwarder=192.0.2.254
  Global forwarders: 192.0.2.254