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

33.6.2. 正引きゾーンの設定

正引きゾーンには権限データが含まれておらず、ネームサーバーに、特定のゾーンに属する名前のクエリーのみを、設定されたフォワーダーに転送するように指示します。
重要
絶対に必要な場合を除き、正引きゾーンは使用しないでください。グローバル転送設定の上書きだけに使用を限定します。ほとんどの場合、「グローバルフォワーダーの設定」 で説明されているグローバル転送のみを設定すれば十分で、正引きゾーンは必要ありません。
正引きゾーンは、標準的な解決策ではないので、正引きゾーンを使用すると予期しない問題のある動作が発生する可能性があります。新しい DNS ゾーンを作成する場合には、Red Hat は、NS レコードで標準の DNS 委譲を常に使用し、正引きゾーンを回避することを推奨します。
サポート対象の転送ポリシーに関する情報は、「フォワードポリシー」 を参照してください。
BIND サービスの詳細は、Red Hat Enterprise Linux ネットワークガイド/usr/share/doc/bind-version_number/ ディレクトリーに含まれる BIND 9 管理者リファレンスマニュアル、または外部ソースを参照してください。 [5] .

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

Web UI で正引きゾーンを管理するには、ネットワークサービス タブをクリックし、DNS サブタブを選択してから、DNS 正引きゾーン セクションを選択します。

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

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-enable コマンドおよび dnsforwardzone-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-permission コマンドおよび dnsforwardzone-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 を参照してください。