33.6. DNS 転送の管理

DNS 転送は、DNS クエリーの返答方法に影響を与えます。デフォルトでは、IdM と統合されている BIND サービスは、権威 DNS サーバーおよび再帰 DNS サーバーの両方として機能するように設定されます。
IdM サーバーが権威サーバーとなっている DNS ゾーンに属する名前のクエリーを DNS クライアントが行うと、BIND は設定済みゾーンに含まれているデータで応答します。権威データは常に他のデータよりも優先されます。
IdM サーバーが権威を持っていない名前のクエリーを DNS クライアントが行うと、BIND は他の DNS サーバーを使ってこのクエリーを解決しようとします。フォワーダーが定義されていない場合は、BIND はインターネット上の root サーバーに質問し、再帰解決アルゴリズムを使用して DNS クエリーに答えます。
以下のような場合には、BIND が他の DNS サーバーに直接連絡してインターネット上で利用可能なデータを元に再帰を実行することは望ましくありません。
  • DNS サーバーが異なるクライアントに異なる応答をする Split DNS 設定または DNS views 設定となっている場合。Split 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 はクライアントにエラーを返します。forward only ポリシーは、split DNS 環境で推奨されます。
None: 転送の無効化
DNS クエリーは転送されません。転送の無効化は、グローバルの転送設定でゾーン固有の上書きとしてのみ、役に立ちます。このオプションは、BIND 設定でフォワーダーの空のリストを指定する IdM と同等のものです。

転送は IdM と他の DNS サーバーからのデータを結合しない

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

例33.9 シナリオ例

IdM サーバーは test.example. DNS ゾーンに対して権威があります。BIND は、192.0.2.254 IP アドレスの DNS サーバーにクエリーを転送するように設定されています。
クライアントが nonexistent.test.example. DNS 名 のクエリーを送信すると、BIND は IdM サーバーが test.example. ゾーンに対して権威があることを検出し、192.0.2.254. サーバーにクエリーを転送しません。このため、DNS クライアントは NXDomain の応答を受信し、クエリーされたドメインが存在しないことをユーザーに知らせます。
IdM DNS マスターゾーンのゾーン委任
IdM DNS のマスターゾーンの特定のサブゾーンにクエリを転送することができます。例えば、IdM DNS が 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 アドレスと転送ポリシーを設定することができます。
IdM Web UI での ipa dnsconfig-mod コマンドの使用
これらのネイティブ IdM ツールを使用した設定は、全 IdM DNS サーバーに即座に適用されます。「DNS 設定の優先順位」 の説明にあるように、グローバル DNS の設定は、/etc/named.conf ファイルで定義されたローカル設定よりも優先度が高くなります。
/etc/named.conf ファイルの編集
各 IdM DNS 上の /etc/named.conf を手動で編集すると、サーバーごとに異なるグローバルフォワーダーとポリシーを使用できるようになります。/etc/named.conf の変更後に BIND サービスを再起動する必要があることに注意してください。

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

IdM Web UI で DNS グローバル設定を定義するには、以下の手順に従います。
  1. Network Services タブをクリックして DNS サブタブを開き、DNS Global Configuration セクションを選択します。
  2. 新規のグローバルフォワーダーを追加するには、Add をクリックして IP アドレスを入力します。新規の転送ポリシーを定義するには、利用可能なポリシー一覧から選択します。
    Web UI でのグローバル DNS 設定の編集

    図33.28 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

33.6.2. 正引きゾーンの設定

正引きゾーンには権威 データが含まれず、特定のゾーンに属する名前へのクエリーを指定されたフォワーダーに転送するようにネームサーバーに指示します。

重要

正引きゾーンは、絶対に必要な場合以外は使用しないでください。これは、グローバル転送の設定の上書きに限定してください。ほとんどの場合は、「グローバルフォワーダーの設定」 にあるように、グローバル転送の設定のみで十分 で、正引きゾーンは必要ありません。
正引きゾーンは非標準の解決法で、これを使用すると予想外かつ問題のある動作につながる恐れがあります。新規 DNS ゾーン作成の際には、Red Hat では NS レコードを使用した標準 DNS 委任を常に使用し、正引きゾーンの使用は回避することを推奨しています。
サポートされる転送ポリシーについての情報は、「転送ポリシー」 を参照してください。
BIND サービスについての詳細情報は、『Red Hat Enterprise Linux ネットワークガイド』/usr/share/doc/bind-version_number/ ディレクトリーにある BIND 9 Administrator Reference Manual、または外部ソース [5]

Web UI での正引きゾーンの設定

Web UI で正引きゾーンを管理するには、Network Services タブから DNS サブタブを開き、DNS Forward Zones セクションを選択します。
DNS 正引きゾーンの管理

図33.29 DNS 正引きゾーンの管理

DNS 正引きゾーン のセクションでは、管理者は以下の正引きゾーンに関する全操作を処理できます。正引きゾーンの現行一覧の表示、新規正引きゾーンの追加、正引きゾーンの削除、正引きゾーンの表示、正引きゾーンのフォワーダーおよび転送ポリシーの修正、正引きゾーンの有効化および無効化。

コマンドラインからの正引きゾーンの設定

コマンドラインから正引きゾーンを管理するには、以下のように ipa dnsforwardzone-* コマンドを使用します。

注記

ipa dnsforwardzone-* コマンドは、マスターゾーンの管理に使用する ipa dnszone-* コマンドと同様の動作をします。
ipa dnsforwardzone-* コマンドは、--forwarder--forward-policy、および --name-from-ip などのオプションを受け付けます。利用可能なオプションについての詳細情報は、表33.1「ゾーン属性」 を参照するか、以下のようにコマンドに --help オプションを追加して実行してください。
ipa dnsforwardzone-add --help
正引きゾーンの追加
dnsforwardzone-add コマンドを使って新規の正引きゾーンを追加します。転送ポリシーが none に設定されている場合を除いて、少なくとも 1 つのフォワーダーを指定する必要があります。
[user@server ~]$ ipa dnsforwardzone-add zone.test. --forwarder=172.16.0.1 --forwarder=172.16.0.2 --forward-policy=first

Zone name: zone.test.
Zone forwarders: 172.16.0.1, 172.16.0.2
Forward policy: first
正引きゾーンの修正
dnsforwardzone-mod コマンドを使って正引きゾーンを修正します。転送ポリシーが none に設定されている場合を除いて、少なくとも 1 つのフォワーダーを指定する必要があります。修正は以下のいずれかの方法で実行できます。
[user@server ~]$ ipa dnsforwardzone-mod zone.test. --forwarder=172.16.0.3

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: first
[user@server ~]$ ipa dnsforwardzone-mod zone.test. --forward-policy=only

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: only
正引きゾーンの表示
dnsforwardzone-show コマンドを使用して指定した正引きゾーンの情報を表示します。
[user@server ~]$ ipa dnsforwardzone-show zone.test.

Zone name: zone.test.
Zone forwarders: 172.16.0.5
Forward policy: first
正引きゾーンの検索
dnsforwardzone-find コマンドを使用して指定した正引きゾーンを検索します。
[user@server ~]$ ipa dnsforwardzone-find zone.test.

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: first
----------------------------
Number of entries returned 1
----------------------------
正引きゾーンの削除
dnsforwardzone-del コマンドを使用して指定した正引きゾーンを削除します。
[user@server ~]$ ipa dnsforwardzone-del zone.test.

----------------------------
Deleted forward DNS zone "zone.test."
----------------------------
正引きゾーンの有効化および無効化
dnsforwardzone-enablednsforwardzone-disable のコマンドを使用して正引きゾーンを有効化および無効化します。正引きゾーンはデフォルトでは有効化されています。
[user@server ~]$ ipa dnsforwardzone-enable zone.test.

----------------------------
Enabled forward DNS zone "zone.test."
----------------------------
[user@server ~]$ ipa dnsforwardzone-disable zone.test.

----------------------------
Disabled forward DNS zone "zone.test."
----------------------------
パーミッションの追加および削除
dnsforwardzone-add-permissiondnsforwardzone-remove-permission のコマンドを使用してシステムのパーミッションを追加または削除します。
[user@server ~]$ ipa dnsforwardzone-add-permission zone.test.

---------------------------------------------------------
Added system permission "Manage DNS zone zone.test."
---------------------------------------------------------
  Manage DNS zone zone.test.
[user@server ~]$ ipa dnsforwardzone-remove-permission zone.test.

---------------------------------------------------------
Removed system permission "Manage DNS zone zone.test."
---------------------------------------------------------
  Manage DNS zone zone.test.


[5] 詳細は BIND 9 Configuration Reference を参照してください。