Identity Management での DNS の操作
IdM 統合 DNS サービスの管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 Ansible Playbook を使用した IdM でのグローバル DNS 設定の管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ansible Engine の dnsconfig モジュールを使用して、Identity Management (IdM) DNS のグローバル設定を設定できます。グローバル DNS 設定で定義したオプションは、すべての IdM DNS サーバーに適用されます。ただし、グローバル設定は、特定の IdM DNS ゾーンの設定よりも優先度が低くなります。
dnsconfig モジュールは以下の変数をサポートします。
- グローバルフォワーダー (特に通信に使用する IP アドレスとポート)
- グローバル転送ポリシー: only、first、または none。これらのタイプの DNS 転送ポリシーに関する詳細は、IdM の DNS 転送ポリシー を参照してください。
- 正引きルックアップおよび逆引きルックアップゾーンの同期。
前提条件
DNS サービスが IdM サーバーにインストールされている。統合 DNS のある IdM サーバーをインストールする方法は、以下のリンクのいずれかを参照してください。
この章では、以下のセクションを説明します。
- IdM を使用して /etc/resolv.conf のグローバルフォワーダーが NetworkManager に削除されないようにする方法
- Ansible を使用して IdM に DNS グローバルフォワーダーが存在する状態にする
- Ansible を使用して IdM に DNS グローバルフォワーダーが存在しない状態にする
-
ipadnsconfig ansible-freeipa モジュールの
action: memberオプション - IdM での DNS 転送ポリシー の概要
- Ansible Playbook を使用して forward first ポリシーを IdM DNS グローバル設定で指定する手順
- Ansible Playbook を使用して IdM DNS でグローバルフォワーダーを無効にする手順
- Ansible Playbook を使用して IdM DNS で正引きおよび逆引きルックアップゾーンの同期を無効にする手順
1.1. IdM を使用して /etc/resolv.conf のグローバルフォワーダーが NetworkManager に削除されないようにする方法 リンクのコピーリンクがクリップボードにコピーされました!
統合 DNS で Identity Management (IdM) をインストールすると、/etc/resolv.conf ファイルが localhost アドレス (127.0.0.1) を参照するように設定されます。
# Generated by NetworkManager search idm.example.com nameserver 127.0.0.1
# Generated by NetworkManager
search idm.example.com
nameserver 127.0.0.1
DHCP (Dynamic Host Configuration Protocol) を使用するネットワークなど、環境によっては、/etc/resolv.conf ファイルへの変更が NetworkManager サービスにより元に戻されてしまう場合があります。IdM DNS のインストールプロセスでは、以下のように NetworkManager サービスも設定し、DNS 設定を永続化します。
DNS インストールスクリプトを使用して、
/etc/NetworkManager/conf.d/zzz-ipa.confNetworkManager設定ファイルを作成し、検索の順序と DNS サーバーリストを制御します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
NetworkManagerサービスが再読み込みされ、/etc/NetworkManager/conf.d/ディレクトリーにある以前のファイルの設定を使用して/etc/resolv.confファイルを作成します。今回の場合は、zzz-ipa.confファイルです。
/etc/resolv.conf ファイルは手動で変更しないでください。
1.2. Ansible を使用して IdM に DNS グローバルフォワーダーが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して IdM に DNS グローバルフォワーダーが存在する状態にするには、次の手順を実行します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 7.7.9.9、IPv6 アドレスが 2001:db8::1:0 で指定されている DNS サーバーに、DNS グローバルフォワーダーが配置されるようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml
$ cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-presence-of-a-global-forwarder.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数をPlaybook to ensure the presence of a global forwarder in IdM DNSに変更します。 -
tasksセクションで、タスクのnameをEnsure the presence of a DNS global forwarder to 7.7.9.9 and 2001:db8::1:0 on port 53に変更します。 ipadnsconfigのforwardersセクションで以下を行います。-
最初の
ip_addressの値は、グローバルフォワーダーの IPv4 アドレス (7.7.9.9) に変更します。 -
2 番目の
ip_addressの値は、グローバルフォワーダーの IPv6 アドレス (2001:db8::1:0) に変更します。 -
portの値が53に設定されていることを確認します。
-
最初の
stateをpresentに変更します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-of-a-global-forwarder.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. Ansible を使用して IdM に DNS グローバルフォワーダーが存在しない状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、IdM に DNS グローバルフォワーダーが存在しない状態にするには、次の手順を実行します。以下の例では、IdM 管理者は、インターネットプロトコル (IP) v4 アドレス 8.8.6.6 および IP v6 アドレス 2001:4860:4860::8800 を持ち、ポート 53 で待ち受ける DNS グローバルフォワーダーが存在しない状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml
$ cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-absence-of-a-global-forwarder.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数は、IdM DNS でグローバルフォワーダーを配置しない Playbookの設定に変更します。 -
tasksセクションで、タスクのnameをEnsure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53に変更します。 ipadnsconfigのforwardersセクションで以下を行います。-
最初の
ip_addressの値は、グローバルフォワーダーの IPv4 アドレス8.8.6.6. -
2 番目の
ip_addressの値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。 -
portの値が53に設定されていることを確認します。
-
最初の
-
action変数はmemberに設定します。 -
stateがabsentに設定されていることを確認します。
今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Playbook で
action: memberを使用せずにstate: absentオプションだけを使用すると、その Playbook は失敗します。-
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. ipadnsconfig ansible-freeipa モジュールの action: member オプション リンクのコピーリンクがクリップボードにコピーされました!
ansible-freeipa ipadnsconfig モジュールを使用して Identity Management (IdM) のグローバルフォワーダーを除外するには、state: absent オプションの他に action: member オプションを使用する必要があります。Playbook で action: member を使用せずに state: absent だけを使用すると、その Playbook は失敗します。そのため、すべてのグローバルフォワーダーを削除するには、Playbook でこれらをすべて個別に指定する必要があります。一方、state: present オプションに action: member は必要ありません。
次の表 に、action: member オプションの正しい使用法を示す DNS グローバルフォワーダーの追加と削除の両方の設定例を示します。この表の各行には、以下が含まれます。
- Playbook を実行する前に設定されたグローバルフォワーダー
- Playbook からの抜粋
- Playbook の実行後に設定されたグローバルフォワーダー
| 以前のフォワーダー | Playbook の抜粋 | 後のフォワーダー |
|---|---|---|
| 8.8.6.6 |
| 8.8.6.7 |
| 8.8.6.6 |
| 8.8.6.6、8.8.6.7 |
| 8.8.6.6、8.8.6.7 |
| Playbook を実行しようとすると、エラーが発生します。元の設定 (8.8.6.6、8.8.6.7) は変更されません。 |
| 8.8.6.6、8.8.6.7 |
| 8.8.6.6 |
1.5. IdM での DNS 転送ポリシー リンクのコピーリンクがクリップボードにコピーされました!
IdM は、first および only の BIND 転送ポリシーと、IdM 固有の転送ポリシー none をサポートします。
- forward first (デフォルト)
-
IdM BIND サービスは、DNS クエリーを設定済みのフォワーダーに転送します。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はインターネット上のサーバーを使用して再帰解決にフォールバックします。
forward firstポリシーはデフォルトのポリシーで、DNS トラフィックの最適化に適しています。 - Forward only
-
IdM BIND サービスは、DNS クエリーを設定済みのフォワーダーに転送します。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はエラーをクライアントに返します。分割された DNS 設定の環境では、
forward onlyポリシーが推奨されます。 - None (転送の無効化)
-
DNS クエリーは、
none転送ポリシーで転送されません。グローバル転送設定をゾーン別にオーバーライドする場合にのみ、転送の無効化は有用です。このオプションは、IdM の BIND 設定で空のフォワーダーリストを指定するのと同じです。
転送を使用して、IdM のデータと、他の DNS サーバーのデータと統合できません。IdM DNS のプライマリーゾーン内にある特定のサブゾーンのクエリーのみを転送できます。
デフォルトでは、IdM サーバーが権威サーバーとなっているゾーンに、クエリーされた DNS 名が所属する場合には、BIND サービスは、クエリーを別のサーバーに転送しません。このような場合は、クエリーされた DNS 名が IdM データベースに見つからない場合は、NXDOMAIN との応答が返されます。転送は使用されません。
例1.1 シナリオ例
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 エラーメッセージを受け取り、クエリーされたドメインが存在しないことをユーザーに通知します。
1.6. Ansible Playbook を使用して forward first ポリシーを IdM DNS グローバル設定で指定する手順 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して、IdM DNS のグローバル転送ポリシーが forward first に設定されていることを確認します。
forward first DNS 転送ポリシーを使用する場合には、DNS クエリーは設定済みのフォワーダーに転送されます。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はインターネット上のサーバーを使用して再帰解決にフォールバックします。forward first ポリシーはデフォルトのポリシーです。トラフィックの最適化に適しています。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- IdM 環境に統合 DNS サーバーが含まれている。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (set-configuration.yml) のコピーを作成します。以下に例を示します。
cp set-configuration.yml set-forward-policy-to-first.yml
$ cp set-configuration.yml set-forward-policy-to-first.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - set-forward-policy-to-first.yml ファイルを開いて編集します。
ipadnsconfigタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 forward_policy変数は first に設定します。元の Playbook で関連性の他の行はすべて削除します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file set-forward-policy-to-first.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file set-forward-policy-to-first.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. Ansible Playbook を使用して IdM DNS でグローバルフォワーダーを無効にする手順 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して、IdM DNS でグローバルフォワーダーが無効になっていることを確認します。グローバルフォワーダーの無効化は、forward_policy 変数を none に設定します。
グローバルフォワーダーを無効にすると、DNS クエリーは転送されません。グローバル転送設定をゾーン別にオーバーライドする場合にのみ、転送の無効化は有用です。このオプションは、IdM の BIND 設定で空のフォワーダーリストを指定するのと同じです。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- IdM 環境に統合 DNS サーバーが含まれている。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (disable-global-forwarders.yml) のコピーを作成します。以下に例を示します。
cp disable-global-forwarders.yml disable-global-forwarders-copy.yml
$ cp disable-global-forwarders.yml disable-global-forwarders-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - disable-global-forwarders-copy.yml ファイルを開いて編集します。
ipadnsconfigタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 forward_policy変数を none に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8. Ansible Playbook を使用して IdM DNS で正引きおよび逆引きルックアップゾーンの同期を無効にする手順 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して、正引きおよび逆引きルックアップゾーンが IdM DNS で同期されないようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- IdM 環境に統合 DNS サーバーが含まれている。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (disallow-reverse-sync.yml) のコピーを作成します。以下に例を示します。
cp disallow-reverse-sync.yml disallow-reverse-sync-copy.yml
$ cp disallow-reverse-sync.yml disallow-reverse-sync-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - disallow-reverse-sync-copy.yml ファイルを開きます。
ipadnsconfigタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 allow_sync_ptr変数を no に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file disallow-reverse-sync-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disallow-reverse-sync-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 IdM での DNS ゾーンの管理 リンクのコピーリンクがクリップボードにコピーされました!
IdM 管理者として Identity Management (IdM) DNS ゾーンを管理する方法を説明します。
前提条件
DNS サービスが IdM サーバーにインストールされている。統合 DNS のある IdM サーバーをインストールする方法は、以下のリンクのいずれかを参照してください。
2.1. サポート対象の DNS ゾーンタイプ リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Identity Management (IdM) がサポートする プライマリー ゾーンと 正引き ゾーンという 2 種類の DNS ゾーンについて説明し、DNS 転送の例を示します。
このセクションでは、ゾーンの種類に BIND 用語を使用します。これは、Microsoft Windows DNS で使用される用語とは異なります。BIND のプライマリーゾーンは、Microsoft Windows DNS の 正引きルックアップゾーン と 逆引きルックアップゾーン と同じ目的で使用されます。BIND の正引きゾーンは、Microsoft Windows DNS の 条件付きフォワーダー と同じ目的で使用されます。
- プライマリー DNS ゾーン
プライマリー DNS ゾーンには、権威 DNS データが含まれ、DNS を動的に更新できます。この動作は、標準の BIND 設定の
type master設定と同じです。プライマリーゾーンは、ipa dnszone-*コマンドを使用して管理できます。標準 DNS ルールに準拠するには、プライマリーゾーンすべてに
start of authority(SOA) とnameserver(NS) レコードを含める必要があります。IdM では、DNS ゾーンの作成時にこれらのレコードが自動的に生成されますが、NS レコードを親ゾーンに手動でコピーして適切な委譲を作成する必要があります。あるドメイン名へのクエリーに対してサーバーが権威を持っていない場合、そのクエリーは、標準的な BIND の動作に従って、他の DNS サーバーに転送されます。この DNS サーバー (フォワーダーとも呼ばれます) は、そのクエリーに対して権威がある場合もない場合もあります。
例2.1 DNS 転送のシナリオ例
IdM サーバーには
test.example.プライマリーゾーンが含まれています。このゾーンには、sub.test.example.名前の NS 委譲レコードが含まれます。さらに、test.example.ゾーンは、sub.text.exampleサブゾーンのフォワーダー IP アドレス192.0.2.254で設定されます。クライアントが
nonexistent.test.example.の名前をクエリーすると、NXDomainの応答を受け取りますが、IdM サーバーはこの名前に対して権威があるため、転送は発生しません。反対に、
host1.sub.test.example.の名前をクエリーすると、IdM サーバーはこの名前に対して権威がないので、設定済みのフォワーダー (192.0.2.254) に転送されます。- 正引き DNS ゾーン
IdM の観点からは、正引き DNS ゾーンには権威データは含まれません。実際、正引きの "ゾーン" には、通常以下情報 2 つのみが含まれます。
- ドメイン名
- ドメインに関連付けられた DNS サーバーの IP アドレス
定義済みのドメインに所属する名前のクエリーはすべて、指定の IP アドレスに転送されます。この動作は、標準 BIND 設定の type forward 設定と同じです。正引きゾーンは、ipa dnsforwardzone-* コマンドを使用して管理できます。
正引き DNS ゾーンは、IdM-Active Directory (AD) 信頼のコンテキストで特に便利です。IdM DNS サーバーが idm.example.com ゾーンに対して、AD DNS サーバーが ad.example.com ゾーンに対して権威がある場合には、ad.example.com が idm.example.com プライマリーゾーンの DNS 正引きゾーンになります。つまり、somehost.ad.example.com の IP アドレスに対するクエリーが IdM クライアントから送信されると、IdM DNS サーバーは、ad.example.com IdM DNS 転送ゾーンで指定された AD ドメインコントローラーにクエリーを転送します。
2.2. IdM Web UI でのプライマリー DNS ゾーンの追加 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) Web UI を使用してプライマリー DNS ゾーンを追加するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。図2.1 IdM DNS プライマリーゾーンの管理
- すべてのゾーンリストの上部にある をクリックします。
ゾーン名を指定します。
図2.2 新しい IdM プライマリーゾーンの入力
- をクリックします。
2.3. IdM CLI でのプライマリー DNS ゾーンの追加 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) コマンドラインインターフェイス (CLI) を使用してプライマリー DNS ゾーンを追加するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
ipa dnszone-addコマンドは、新しいゾーンを DNS ドメインに追加します。新しいゾーンを追加するには、新しいサブドメイン名を指定する必要があります。サブドメイン名を直接指定するには、以下のコマンドを実行します。ipa dnszone-add newzone.idm.example.com
$ ipa dnszone-add newzone.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa dnszone-addに名前を指定しない場合には、スクリプトにより自動的に名前を求めるプロンプトが表示されます。
2.4. IdM Web UI でのプライマリー DNS ゾーンの削除 リンクのコピーリンクがクリップボードにコピーされました!
IdM Web UI を使用して Identity Management (IdM) からプライマリー DNS ゾーンを削除するには、この手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
-
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。 ゾーン名の横にあるチェックボックスを選択し、 をクリックします。
図2.3 プライマリー DNS ゾーンの削除
- DNS ゾーンの削除 ダイアログウィンドウで、選択したゾーンの削除を確定します。
2.5. IdM CLI でのプライマリー DNS ゾーンの削除 リンクのコピーリンクがクリップボードにコピーされました!
IdM コマンドラインインターフェイス (CLI) を使用して Identity Management (IdM) からプライマリー DNS ゾーンを削除するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
プライマリー DNS ゾーンを削除するには、
ipa dnszone-delコマンドの後に、削除するゾーンの名前を入力します。以下に例を示します。ipa dnszone-del idm.example.com
$ ipa dnszone-del idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. DNS 設定の優先順位 リンクのコピーリンクがクリップボードにコピーされました!
多くの DNS 設定オプションは、次のレベルで設定できます。優先度は、レベルごとに異なります。
- ゾーン固有の設定
-
IdM に定義されている特定のゾーンに固有の設定は、優先度が最も高いレベルです。
ipa dnszone-*コマンドおよびipa dnsforwardzone-*コマンドを使用して、ゾーン固有の設定を管理できます。 - サーバーごとの設定
-
IdM サーバーのインストール時に、サーバーごとのフォワーダーを定義するように求められます。サーバーごとのフォワーダーは、
ipa dnsserver-*コマンドを使用して管理できます。レプリカのインストール時にサーバーごとのフォワーダーを設定しない場合は、--no-forwarderオプションを使用できます。 - グローバル DNS 設定
-
ゾーン固有の設定が定義されていない場合は、IdM は LDAP に保存されているグローバル DNS 設定を使用します。グローバル DNS 設定は、
ipa dnsconfig-*コマンドを使用して管理できます。グローバル DNS 設定で定義したオプションは、すべての IdM DNS サーバーに適用されます。 /etc/named.confの設定IdM DNS サーバーごとに
/etc/named.confファイルで定義されている設定の優先度は、最も低くなります。これは各サーバーに固有のものであり、手動で編集する必要があります。/etc/named.confファイルを使用するのは通常、ローカル DNS キャッシュへの DNS 転送を指定する場合のみです。他のオプションは、上記のゾーン固有の設定と、グローバル DNS 設定のコマンドを使用して管理します
DNS オプションは、同時に複数のレベルで設定できます。このような場合に、最も優先度が高い設定は、レベルが低い設定よりも優先されます。
2.7. プライマリー IdM DNS ゾーンの設定属性 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、更新期間、転送設定、キャッシュ設定など、特定のデフォルト設定を指定して新しいゾーンを作成します。IdM DNS ゾーン属性 には、デフォルトのゾーン設定属性があります。これは、以下のオプションのいずれかを使用して変更できます。
-
コマンドライン (CLI) の
dnszone-modコマンド。詳細は、IdM CLI でのプライマリー DNS ゾーンの設定の編集 を参照してください。 - IdM Web UI。詳細は IdM Web UI でのプライマリー DNS ゾーンの設定の編集 を参照してください。
-
ipadnszoneモジュールを使用する Ansible Playbook詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
ここではゾーンの実際の情報を設定するほか、DNS サーバーが start of authority (SOA) レコードエントリーを処理する方法と、DNS ネームサーバーからの記録を更新する方法を定義します。
| 属性 | コマンドラインオプション | 説明 |
|---|---|---|
| 権威ネームサーバー |
| プライマリー DNS ネームサーバーのドメイン名 (別称: SOA MNAME) を設定します。
デフォルトでは、各 IdM サーバーは SOA MNAME フィールドで自己アドバタイズします。したがって、 |
| 管理者の電子メールアドレス |
| ゾーン管理者が使用する電子メールアドレスを設定します。デフォルトでは、ホストの root アカウントになります。 |
| SOA serial |
| SOA レコードにシリアル番号を設定します。IdM ではバージョン番号が自動的に設定され、この番号のユーザーによる変更は想定されていません。 |
| SOA refresh |
| セカンダリー DNS サーバーがプライマリー DNS サーバーから更新を要求するまでの待機時間を秒単位で設定します。 |
| SOA retry |
| 失敗した更新操作を再試行するまでに待機する時間を秒単位で設定します。 |
| SOA expire |
| セカンダリー DNS サーバーが操作の試行を終了するまでに、更新操作を実行する時間を秒単位で設定します。 |
| SOA minimum |
| RFC 2308 に準拠し、ネガティブキャッシュの Time To Live (TTL) 値を秒単位で設定します。 |
| SOA time to live |
|
ゾーン apex のレコードの TTL を秒単位で設定します。たとえば、 |
| デフォルトの time to live |
|
これまでに個別の Time To Live (TTL) 値が設定されたことのないゾーンで、すべての値のネガティブキャッシュのデフォルト TTL を秒単位で設定します。変更を有効にするには、すべての IdM DNS サーバーで |
| BIND 更新ポリシー |
| DNS ゾーンでクライアントに許可されるパーミッションを設定します。 |
| Dynamic update |
| クライアントの DNS レコードへの動的更新を有効にします。 false に設定すると、IdM クライアントマシンは IP アドレスを追加または更新できなくなる点に注意してください。 |
| Allow transfer |
| 指定のゾーンを転送できる IP アドレスまたはネットワーク名のセミコロン区切りのリストを指定します。
デフォルトでは、ゾーン転送は無効です。デフォルトの |
| Allow query |
| DNS クエリーを発行できる IP アドレスまたはネットワーク名のセミコロン区切りのリストを指定します。 |
| Allow PTR sync |
| ゾーンの A または AAAA レコード (正引きレコード) が自動的に PTR (逆引き) レコードと同期されるかどうかを設定します。 |
| Zone forwarder |
| DNS ゾーン向けに特別に設定されたフォワーダーを指定します。これは、IdM ドメインで使用されるグローバルフォワーダーとは別のものです。 複数のフォワーダーを指定する場愛には、オプションを複数回使用します。 |
| 転送ポリシー |
| 転送ポリシーを指定します。サポート対象のポリシーに関する情報は、IdM での DNS 転送ポリシー を参照してください。 |
2.8. IdM Web UI でのプライマリー DNS ゾーン設定の編集 リンクのコピーリンクがクリップボードにコピーされました!
IdM Web UI を使用してプライマリー Identity Management (IdM) DNS の設定属性を編集するには、この手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。図2.4 DNS プライマリーゾーンの管理
DNS ゾーンセクションで、全ゾーンのリストにあるゾーン名をクリックし、DNS ゾーンページを開きます。図2.5 プライマリーゾーンの編集
Settingsをクリックします。図2.6 プライマリーゾーンの編集ページの設定タブ
必要に応じてゾーン設定を変更します。
利用可能な設定の詳細は、IdM DNS ゾーン属性 を参照してください。
をクリックして、新しい設定を確定します。
注記ゾーンのデフォルトの Time To Live (TTL) を変更する場合は、変更を有効にするために、すべての IdM DNS サーバーで
namedサービスを再起動してください。他の全設定は、すぐに自動的に有効になります。
2.9. IdM CLI でのプライマリー DNS ゾーンの設定の編集 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) コマンドラインインターフェイス (CLI) を使用してプライマリー DNS ゾーンの設定を編集するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
既存のプライマリー DNS ゾーンを変更するには、
ipa dnszone-modコマンドを使用します。たとえば、失敗した更新操作を再試行するまでに待機する時間を 1800 秒に設定します。ipa dnszone-mod --retry 1800
$ ipa dnszone-mod --retry 1800Copy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能な設定と、対応する CLI オプションの詳細は、IdM DNS ゾーン属性 を参照してください。
特定の設定で、変更する DNS ゾーンエントリーに値が指定されていない場合は、
ipa dnszone-modコマンドで値を追加します。設定に値がない場合は、このコマンドを実行すると、指定の値に上書きされます。注記ゾーンのデフォルトの Time To Live (TTL) を変更する場合は、変更を有効にするために、すべての IdM DNS サーバーで
namedサービスを再起動してください。他の全設定は、すぐに自動的に有効になります。
2.10. IdM でのゾーン転送 リンクのコピーリンクがクリップボードにコピーされました!
DNS が統合された Identity Management (IdM) デプロイメントでは、ゾーン転送 を使用して、すべてのリソースレコードを 1 つのネームサーバーから別のネームサーバーにコピーできます。ネームサーバーは、ゾーンの権威データを保持します。DNS ゾーン zone A に権威のある DNS サーバーでゾーンに変更を加えると、zone A 以外にある IdM DNS ドメインの他のネームサーバーに変更を配信する必要があります。
IdM 統合 DNS には、複数のサーバーで同時に記述できます。IdM ゾーンの Start of Authority (SOA) シリアル番号は、個別の IdM DNS サーバーと同期されません。このような理由から、転送予定ゾーン外にある DNS サーバーは、転送予定ゾーン内の特定の DNS サーバー 1 台だけを使用するように設定します。こうすることで、同期されていない SOA シリアル番号が原因でゾーン転送が失敗しないようにします。
IdM は、RFC 5936 (AXFR) および RFC 1995 (IXFR) 標準に準拠するゾーン転送をサポートします。
2.11. IdM Web UI でのゾーン転送の有効化 リンクのコピーリンクがクリップボードにコピーされました!
IdM Web UI を使用して Identity Management (IdM) でゾーン転送を有効にするには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
-
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。 -
Settingsをクリックします。 Allow transferで、ゾーンレコードを転送するネームサーバーを指定します。図2.7 ゾーン転送の有効化
- DNS ゾーンページの上部にある をクリックして、新しい設定を確定します。
2.12. IdM CLI でのゾーン転送の有効化 リンクのコピーリンクがクリップボードにコピーされました!
IdM コマンドラインインターフェイス (CLI) を使用して Identity Management (IdM) でゾーン転送を有効にするには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
- セカンダリー DNS サーバーへの root アクセス権限がある。
手順
BINDサービスでゾーン転送を有効にするには、ipa dnszone-modコマンドを入力し、ゾーンレコードの転送先となる転送予定ゾーンに含まれないサーバー名のリストを--allow-transferオプションを使用して指定します。以下に例を示します。ipa dnszone-mod --allow-transfer=192.0.2.1;198.51.100.1;203.0.113.1 idm.example.com
$ ipa dnszone-mod --allow-transfer=192.0.2.1;198.51.100.1;203.0.113.1 idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ゾーン転送が有効な DNS サーバーの 1 つに SSH 接続します。
ssh 192.0.2.1
$ ssh 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow digユーティリティーなどのツールを使用して、IdM DNS ゾーンを転送します。dig @ipa-server zone_name AXFR
# dig @ipa-server zone_name AXFRCopy to Clipboard Copied! Toggle word wrap Toggle overflow
コマンドでエラーが返されない場合は、zone_name のゾーン転送が正常に有効化されています。
第3章 Ansible Playbook を使用した IdM DNS ゾーンの管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) 管理者は、ansible-freeipa パッケージに含まれる dnszone モジュールを使用して IdM DNS ゾーンの動作を管理できます。
前提条件
- DNS サービスが IdM サーバーにインストールされている。Ansible を使用して、統合 DNS を使用する IdM サーバーをインストールする方法の詳細は、Ansible Playbook を使用した Identity Management サーバーのインストール を参照してください。
3.1. サポート対象の DNS ゾーンタイプ リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Identity Management (IdM) がサポートする プライマリー ゾーンと 正引き ゾーンという 2 種類の DNS ゾーンについて説明し、DNS 転送の例を示します。
このセクションでは、ゾーンの種類に BIND 用語を使用します。これは、Microsoft Windows DNS で使用される用語とは異なります。BIND のプライマリーゾーンは、Microsoft Windows DNS の 正引きルックアップゾーン と 逆引きルックアップゾーン と同じ目的で使用されます。BIND の正引きゾーンは、Microsoft Windows DNS の 条件付きフォワーダー と同じ目的で使用されます。
- プライマリー DNS ゾーン
プライマリー DNS ゾーンには、権威 DNS データが含まれ、DNS を動的に更新できます。この動作は、標準の BIND 設定の
type master設定と同じです。プライマリーゾーンは、ipa dnszone-*コマンドを使用して管理できます。標準 DNS ルールに準拠するには、プライマリーゾーンすべてに
start of authority(SOA) とnameserver(NS) レコードを含める必要があります。IdM では、DNS ゾーンの作成時にこれらのレコードが自動的に生成されますが、NS レコードを親ゾーンに手動でコピーして適切な委譲を作成する必要があります。あるドメイン名へのクエリーに対してサーバーが権威を持っていない場合、そのクエリーは、標準的な BIND の動作に従って、他の DNS サーバーに転送されます。この DNS サーバー (フォワーダーとも呼ばれます) は、そのクエリーに対して権威がある場合もない場合もあります。
例3.1 DNS 転送のシナリオ例
IdM サーバーには
test.example.プライマリーゾーンが含まれています。このゾーンには、sub.test.example.名前の NS 委譲レコードが含まれます。さらに、test.example.ゾーンは、sub.text.exampleサブゾーンのフォワーダー IP アドレス192.0.2.254で設定されます。クライアントが
nonexistent.test.example.の名前をクエリーすると、NXDomainの応答を受け取りますが、IdM サーバーはこの名前に対して権威があるため、転送は発生しません。反対に、
host1.sub.test.example.の名前をクエリーすると、IdM サーバーはこの名前に対して権威がないので、設定済みのフォワーダー (192.0.2.254) に転送されます。- 正引き DNS ゾーン
IdM の観点からは、正引き DNS ゾーンには権威データは含まれません。実際、正引きの "ゾーン" には、通常以下情報 2 つのみが含まれます。
- ドメイン名
- ドメインに関連付けられた DNS サーバーの IP アドレス
定義済みのドメインに所属する名前のクエリーはすべて、指定の IP アドレスに転送されます。この動作は、標準 BIND 設定の type forward 設定と同じです。正引きゾーンは、ipa dnsforwardzone-* コマンドを使用して管理できます。
正引き DNS ゾーンは、IdM-Active Directory (AD) 信頼のコンテキストで特に便利です。IdM DNS サーバーが idm.example.com ゾーンに対して、AD DNS サーバーが ad.example.com ゾーンに対して権威がある場合には、ad.example.com が idm.example.com プライマリーゾーンの DNS 正引きゾーンになります。つまり、somehost.ad.example.com の IP アドレスに対するクエリーが IdM クライアントから送信されると、IdM DNS サーバーは、ad.example.com IdM DNS 転送ゾーンで指定された AD ドメインコントローラーにクエリーを転送します。
3.2. プライマリー IdM DNS ゾーンの設定属性 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、更新期間、転送設定、キャッシュ設定など、特定のデフォルト設定を指定して新しいゾーンを作成します。IdM DNS ゾーン属性 には、デフォルトのゾーン設定属性があります。これは、以下のオプションのいずれかを使用して変更できます。
-
コマンドライン (CLI) の
dnszone-modコマンド。詳細は、IdM CLI でのプライマリー DNS ゾーンの設定の編集 を参照してください。 - IdM Web UI。詳細は IdM Web UI でのプライマリー DNS ゾーンの設定の編集 を参照してください。
-
ipadnszoneモジュールを使用する Ansible Playbook詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
ここではゾーンの実際の情報を設定するほか、DNS サーバーが start of authority (SOA) レコードエントリーを処理する方法と、DNS ネームサーバーからの記録を更新する方法を定義します。
| 属性 | ansible-freeipa 変数 | 説明 |
|---|---|---|
| 権威ネームサーバー |
| プライマリー DNS ネームサーバーのドメイン名 (別称: SOA MNAME) を設定します。
デフォルトでは、各 IdM サーバーは SOA MNAME フィールドで自己アドバタイズします。したがって、 |
| 管理者の電子メールアドレス |
| ゾーン管理者が使用する電子メールアドレスを設定します。デフォルトでは、ホストの root アカウントになります。 |
| SOA serial |
| SOA レコードにシリアル番号を設定します。IdM ではバージョン番号が自動的に設定され、この番号のユーザーによる変更は想定されていません。 |
| SOA refresh |
| セカンダリー DNS サーバーがプライマリー DNS サーバーから更新を要求するまでの待機時間を秒単位で設定します。 |
| SOA retry |
| 失敗した更新操作を再試行するまでに待機する時間を秒単位で設定します。 |
| SOA expire |
| セカンダリー DNS サーバーが操作の試行を終了するまでに、更新操作を実行する時間を秒単位で設定します。 |
| SOA minimum |
| RFC 2308 に準拠し、ネガティブキャッシュの Time To Live (TTL) 値を秒単位で設定します。 |
| SOA time to live |
|
ゾーン apex のレコードの TTL を秒単位で設定します。たとえば、 |
| デフォルトの time to live |
|
これまでに個別の Time To Live (TTL) 値が設定されたことのないゾーンで、すべての値のネガティブキャッシュのデフォルト TTL を秒単位で設定します。変更を有効にするには、すべての IdM DNS サーバーで |
| BIND 更新ポリシー |
| DNS ゾーンでクライアントに許可されるパーミッションを設定します。 |
| Dynamic update |
| クライアントの DNS レコードへの動的更新を有効にします。 false に設定すると、IdM クライアントマシンは IP アドレスを追加または更新できなくなる点に注意してください。 |
| Allow transfer |
| 指定のゾーンを転送できる IP アドレスまたはネットワーク名のセミコロン区切りのリストを指定します。
デフォルトでは、ゾーン転送は無効です。デフォルトの |
| Allow query |
| DNS クエリーを発行できる IP アドレスまたはネットワーク名のセミコロン区切りのリストを指定します。 |
| Allow PTR sync |
| ゾーンの A または AAAA レコード (正引きレコード) が自動的に PTR (逆引き) レコードと同期されるかどうかを設定します。 |
| Zone forwarder |
| DNS ゾーン向けに特別に設定されたフォワーダーを指定します。これは、IdM ドメインで使用されるグローバルフォワーダーとは別のものです。 複数のフォワーダーを指定する場愛には、オプションを複数回使用します。 |
| 転送ポリシー |
| 転送ポリシーを指定します。サポートされているポリシーの詳細は、IdM の DNS 転送ポリシー を参照してください。 |
3.3. Ansible を使用した IdM DNS でのプライマリーゾーンの作成 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、プライマリー DNS ゾーンが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、zone.idm.example.com DNS ゾーンが存在するようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnszoneディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnszoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイルのコピー (dnszone-present.yml) を作成します。以下に例を示します。
cp dnszone-present.yml dnszone-present-copy.yml
$ cp dnszone-present.yml dnszone-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - dnszone-present-copy.yml ファイルを編集のために開きます。
ipadnszoneタスクセクションに以下の変数を設定してファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 zone_name変数は zone.idm.example.com に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Ansible Playbook を使用して、複数の変数を指定したプライマリー DNS ゾーンが IdM に存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、プライマリー DNS ゾーンが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、IdM 管理者は zone.idm.example.com DNS ゾーンが存在する状態にします。Ansible Playbook は、ゾーンのパラメーターを複数設定します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnszoneディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnszoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイルのコピー (dnszone-all-params.yml) を作成します。以下に例を示します。
cp dnszone-all-params.yml dnszone-all-params-copy.yml
$ cp dnszone-all-params.yml dnszone-all-params-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - dnszone-all-params-copy.yml ファイルを開いて編集します。
ipadnszoneタスクセクションに以下の変数を設定してファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
zone_name変数は zone.idm.example.com に設定します。 -
正引きレコードと逆引きレコードを同期できるように場合は (A および AAAA レコードを PTR レコードと同期)、
allow_sync_ptr変数を true に設定します。 -
dynamic_update変数は、true に設定して、IdM クライアントマシンが IP アドレスを追加または更新できるようにします。 dnssec変数は、true に設定して、ゾーン内のレコードのインラインの DNSSEC 署名を許可します。警告DNSSEC は、IdM ではテクノロジープレビューとしてのみ利用できます。
-
allow_transfer変数は、ゾーン内のセカンダリーネームサーバーの IP アドレスに設定します。 -
allow_query変数は、クエリーを発行できる IP アドレスまたはネットワークに設定します。 -
forwarders変数は、グローバルフォワーダーの IP アドレスに設定します。 -
serial変数は SOA レコードのシリアル番号に設定します。 -
ゾーン内の DNS レコードの
refresh、retry、expire、minimum、ttlおよびdefault_ttlの値を定義します。 -
nsec3param_rec変数を使用して、ゾーンの NSEC3PARAM レコードを定義します。 -
skip_overlap_check変数は、true に設定して、既存のゾーンと重複していても DNS を強制的に作成します。 skip_nameserver_checkは、true に設定して、ネームサーバーが解決できない場合でも DNS ゾーンを強制的に作成します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-all-params-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-all-params-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. IP アドレスが指定されている場合に、Ansible Playbook を使用して逆引き DNS ルックアップのゾーンが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、逆引き DNS ゾーンが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、IdM 管理者は、IdM ホストの IP アドレスと接頭辞長を使用して、逆引き DNS ルックアップゾーンが存在する状態にします。
name_from_ip 変数を使用して DNS サーバーの IP アドレスの接頭辞の長さを指定すると、ゾーン名を制御できます。接頭辞の長さを指定しない場合には、システムが DNS サーバーにゾーンに関するクエリーを出し、192.168.1.2 の name_from_ip の値をもとに、このクエリーで、以下の DNS ゾーンのいずれかを返します。
- 1.168.192.in-addr.arpa.
- 168.192.in-addr.arpa.
- 192.in-addr.arpa.
クエリーが返すゾーンは想定しているゾーンとは異なる可能性があるため、ゾーンが誤って削除されないように state オプションが present に設定されている場合のみ、name_from_ip を使用できます。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnszoneディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnszoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイルのコピー (dnszone-reverse-from-ip.yml) を作成します。以下に例を示します。
cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.yml
$ cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - dnszone-reverse-from-ip-copy.yml ファイルを開いて編集します。
ipadnszoneタスクセクションに以下の変数を設定してファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 name_from_ip変数は IdM ネームサーバーの IP に設定し、接頭辞の長さを指定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この Playbook は、IP アドレス 192.168.1.2 と接頭辞長 24 をもとに、逆引き DNS ルックアップのゾーンを作成します。次に、Playbook は生成されたゾーン名を表示します。
-
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-reverse-from-ip-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-reverse-from-ip-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 IdM での DNS の場所の管理 リンクのコピーリンクがクリップボードにコピーされました!
IdM Web UI と IdM コマンドラインインターフェイス (CLI) を使用して、Identity Management (IdM) DNS の場所を管理する方法を説明します。
4.1. DNS ベースのサービス検出 リンクのコピーリンクがクリップボードにコピーされました!
DNS ベースのサービス検出は、クライアントが DNS プロトコルを使用するプロセスで、LDAP や Kerberos など、特定のサービスを提供するネットワークでサーバーを見つけ出します。一般的な操作の 1 つとして、クライアントが最寄りのネットワークインフラストラクチャー内にある認証サーバーを特定できるようにすることが挙げられます。理由は、スループットが向上してネットワークレイテンシーが短縮されるので全体的なコスト削減を図ることができるためです。
サービス検出の主な利点は以下のとおりです。
- 近くにあるサーバーの名前を明示的に設定する必要がない。
- DNS サーバーをポリシーの中央プロバイダーとして使用する。同じ DNS サーバーを使用するクライアントは、サービスプロバイダーと優先順序に関する同じポリシーにアクセスできます。
Identity Management (IdM) ドメインには、LDAP、Kerberos、およびその他のサービスに DNS サービスレコード (SRV レコード) があります。たとえば、次のコマンドは、IdM DNS ドメインで TCP ベースの Kerberos サービスを提供するホストの DNS サーバーをクエリーします。
例4.1 DNS の場所に関する独立した結果
dig -t SRV +short _kerberos._tcp.idm.example.com 0 100 88 idmserver-01.idm.example.com. 0 100 88 idmserver-02.idm.example.com.
$ dig -t SRV +short _kerberos._tcp.idm.example.com
0 100 88 idmserver-01.idm.example.com.
0 100 88 idmserver-02.idm.example.com.
出力には、以下の情報が含まれます。
-
0(優先順位):ターゲットホストの優先度。値が小さいほど優先度が高くなります。 -
100(重み)。優先順位が同じエントリーの相対的な重みを指定します。詳細は RFC 2782, section 3 を参照してください。 -
88(ポート番号): サービスのポート番号。 - サービスを提供するホストの正規名。
この例では、2 つのホスト名が返され、どちらも同じ優先順位と重みでした。この場合には、クライアントは結果リストから無作為にエントリーを使用します。
代わりに、クライアントを設定して、DNS の場所に設定されている DNS サーバーをクエリーすると、出力が異なります。場所が割り当てられた IdM サーバーの場合は、カスタマイズした値が返されます。以下の例では、クライアントは、場所 germany にある DNS サーバーをクエリーするように設定されています。
例4.2 DNS の場所ベースの結果
dig -t SRV +short _kerberos._tcp.idm.example.com _kerberos._tcp.germany._locations.idm.example.com. 0 100 88 idmserver-01.idm.example.com. 50 100 88 idmserver-02.idm.example.com.
$ dig -t SRV +short _kerberos._tcp.idm.example.com
_kerberos._tcp.germany._locations.idm.example.com.
0 100 88 idmserver-01.idm.example.com.
50 100 88 idmserver-02.idm.example.com.
IdM DNS サーバーは、ローカルサーバーを優先する DNS の場所固有の SRV レコードを参照する DNS エイリアス (CNAME) を自動的に返します。この CNAME レコードは、出力の最初の行に表示されます。この例では、ホスト idmserver-01.idm.example.com の優先度の値が最も低いため、このホストが優先されます。idmserver-02.idm.example.com の優先度の値が高く、推奨されるホストが使用できない場合にバックアップとしてのみ使用されます。
4.2. DNS の場所のデプロイに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、統合 DNS を使用する際に、場所固有のサービス (SRV) レコードを生成できます。各 IdM DNS サーバーはロケーション固有の SRV レコードを生成するため、DNS の場所ごとに 1 つ以上の IdM DNS サーバーをインストールする必要があります。
クライアントの DNS の場所に対するアフィニティーは、クライアントが受け取った DNS レコードでのみ定義されます。そのため、DNS のサービス検出を行うクライアントが、IdM DNS サーバーからの場所固有のレコードを解決した場合には、IdM DNS サーバーと IdM 以外の DNS コンシューマーサーバーと recursor を組み合わせることができます。
IdM サービスおよび IdM DNS サービス以外のほとんどのデプロイメントでは、DNS recursor はラウンドトリップタイムメトリックを使用して、最寄りの IdM DNS サーバーを自動的に選択します。通常、非 IdM DNS サーバーを使用するクライアントが、最寄りの DNS の場所のレコードを取得し、最寄りの DNS サーバーの最適なセットを使用するようになります。
4.3. DNS の Time to live (TTL) リンクのコピーリンクがクリップボードにコピーされました!
クライアントは、ゾーンの設定に指定された期間の DNS リソースレコードをキャッシュできます。このキャッシュにより、クライアントは Time to Live (TTL) 値の有効期限が切れるまで変更を受け取れない場合があります。Identity Management (IdM) のデフォルトの TTL 値は 1 日 です。
クライアントコンピューターがサイト間でローミングする場合には、IdM DNS ゾーンの TTL 値を調整する必要があります。この値は、クライアントがサイト間のローミングに必要とする時間よりも低い値に設定します。これにより、別のサイトに再接続する前にクライアントでキャッシュされた DNS エントリーが期限切れになり、DNS サーバーに対してクエリーを実行し、場所固有の SRV レコードを更新します。
4.4. IdM Web UI を使用した DNS の場所の作成 リンクのコピーリンクがクリップボードにコピーされました!
DNS の場所を使用すると、Identity Management (IdM) クライアントとサーバー間の通信速度を増すことができます。IdM Web UI を使用して DNS ロケーションを作成するには、この手順に従ってください。
前提条件
- IdM デプロイメントに DNS が統合されている。
- IdM で DNS の場所を作成するパーミッションがある。(例: IdM 管理者としてログイン)。
手順
-
IPA Serverタブを開きます。 -
Topologyサブタブを選択します。 -
ナビゲーションバーの
IPA の場所をクリックします。 - ロケーションリストの上部にある をクリックします。
- ロケーション名を入力します。
- ボタンをクリックして場所を保存します。
- オプション:手順を繰り返して、さらに場所を追加します。
4.5. IdM CLI を使用した DNS の場所の作成 リンクのコピーリンクがクリップボードにコピーされました!
DNS の場所を使用すると、Identity Management (IdM) クライアントとサーバー間の通信速度を増すことができます。IdM コマンドラインインターフェイス (CLI) で ipa location-add コマンドを使用して DNS ロケーションを作成するには、この手順に従います。
前提条件
- IdM デプロイメントに DNS が統合されている。
- IdM で DNS の場所を作成するパーミッションがある。(例: IdM 管理者としてログイン)。
手順
たとえば、新しい場所
germanyを作成するには、以下を入力します。ipa location-add germany ---------------------------- Added IPA location "germany" ---------------------------- Location name: germany
$ ipa location-add germany ---------------------------- Added IPA location "germany" ---------------------------- Location name: germanyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション:この手順を繰り返して、さらに場所を追加します。
4.6. IdM Web UI を使用した DNS の場所への IdM サーバーの割り当て リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) の DNS の場所を使用すると、IdM クライアントとサーバー間の通信速度を増すことができます。IdM Web UI を使用して IdM サーバーを DNS ロケーションに割り当てるには、この手順に従います。
前提条件
- IdM デプロイメントに DNS が統合されている。
- たとえば、IdM admin ユーザーなど、DNS の場所を割り当てるパーミッションがあるユーザーとしてログインしている。
-
DNS の場所を割り当てるホストへの
rootアクセス権がある。 - サーバーを割り当てる IdM DNS の場所を作成 している。
手順
-
IPA Serverタブを開きます。 -
Topologyサブタブを選択します。 -
ナビゲーションにある
IPA Serversをクリックします。 - IdM サーバー名をクリックします。
DNS の場所を選択し、必要に応じてサービスの加重を設定します。
図4.1 DNS の場所へのサーバーの割り当て
- をクリックします。
前のステップで DNS の場所を割り当てたホストのコマンドライン (CLI) で、
namedサービスを再起動します。systemctl restart named
[root@idmserver-01 ~]# systemctl restart namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション:この手順を繰り返して、他の IdM サーバーに DNS の場所を割り当てます。
4.7. IdM CLI を使用した DNS の場所への IdM サーバーの割り当て リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) の DNS の場所を使用すると、IdM クライアントとサーバー間の通信速度を増すことができます。IdM コマンドラインインターフェイス (CLI) を使用して IdM サーバーを DNS の場所に割り当てるには、次の手順に従います。
前提条件
- IdM デプロイメントに DNS が統合されている。
- たとえば、IdM admin ユーザーなど、DNS の場所を割り当てるパーミッションがあるユーザーとしてログインしている。
-
DNS の場所を割り当てるホストへの
rootアクセス権がある。 - サーバーを割り当てる IdM DNS の場所を作成 している。
手順
オプション:設定済みの DNS の場所をすべて表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーを DNS の場所に割り当てます。たとえば、場所
germanyを idmserver-01.idm.example.com サーバーに割り当てるには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前のステップで DNS の場所を割り当てたホストで
namedサービスを再起動します。systemctl restart named
# systemctl restart namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション:この手順を繰り返して、他の IdM サーバーに DNS の場所を割り当てます。
4.8. IdM クライアントが同じ場所にある IdM サーバーを使用するように設定する手順 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーは、IdM Web UI を使用した DNS の場所への IdM サーバーの割り当て で説明されているように、DNS の場所に割り当てます。これで、IdM サーバーと同じ場所にある DNS サーバーを使用するようにクライアントを設定できます。
-
DHCPサーバーが DNS サーバーの IP アドレスをクライアントに割り当てる場合は、DHCPサービスを設定します。DHCPサービスで DNS サーバーを割り当てる方法は、DHCPサービスのドキュメントを参照してください。 -
クライアントに
DHCPサーバーから DNS サーバーの IP アドレスが割り当てられない場合は、クライアントのネットワーク設定で IP を手動で設定します。Red Hat Enterprise Linux でのネットワーク設定の詳細は、Red Hat Enterprise Linux ネットワークガイド の ネットワーク接続設定の設定 セクションを参照してください。
別のロケーションに割り当てられた DNS サーバーを使用するようにクライアントを設定すると、クライアントは両方の場所にある IdM サーバーに接続します。
例4.3 クライアントの場所により変化するネームサーバーエントリー
以下の例は、場所が異なるクライアントの /etc/resolv.conf ファイルにあるさまざまなネームサーバーエントリーを示しています。
プラハのクライアント:
nameserver 10.10.0.1 nameserver 10.10.0.2
nameserver 10.10.0.1
nameserver 10.10.0.2
パリのクライアント:
nameserver 10.50.0.1 nameserver 10.50.0.3
nameserver 10.50.0.1
nameserver 10.50.0.3
オスロのクライアント:
nameserver 10.30.0.1
nameserver 10.30.0.1
ベルリンのクライアント:
nameserver 10.30.0.1
nameserver 10.30.0.1
各 DNS サーバーが IdM の場所に割り当てられている場合に、クライアントはその場所にある IdM サーバーを使用します。
第5章 Ansible を使用した IdM での DNS の場所の管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) 管理者は、ansible-freeipa パッケージで利用可能な location モジュールを使用して IdM DNS の場所を管理できます。
5.1. DNS ベースのサービス検出 リンクのコピーリンクがクリップボードにコピーされました!
DNS ベースのサービス検出は、クライアントが DNS プロトコルを使用するプロセスで、LDAP や Kerberos など、特定のサービスを提供するネットワークでサーバーを見つけ出します。一般的な操作の 1 つとして、クライアントが最寄りのネットワークインフラストラクチャー内にある認証サーバーを特定できるようにすることが挙げられます。理由は、スループットが向上してネットワークレイテンシーが短縮されるので全体的なコスト削減を図ることができるためです。
サービス検出の主な利点は以下のとおりです。
- 近くにあるサーバーの名前を明示的に設定する必要がない。
- DNS サーバーをポリシーの中央プロバイダーとして使用する。同じ DNS サーバーを使用するクライアントは、サービスプロバイダーと優先順序に関する同じポリシーにアクセスできます。
Identity Management (IdM) ドメインには、LDAP、Kerberos、およびその他のサービスに DNS サービスレコード (SRV レコード) があります。たとえば、次のコマンドは、IdM DNS ドメインで TCP ベースの Kerberos サービスを提供するホストの DNS サーバーをクエリーします。
例5.1 DNS の場所に関する独立した結果
dig -t SRV +short _kerberos._tcp.idm.example.com 0 100 88 idmserver-01.idm.example.com. 0 100 88 idmserver-02.idm.example.com.
$ dig -t SRV +short _kerberos._tcp.idm.example.com
0 100 88 idmserver-01.idm.example.com.
0 100 88 idmserver-02.idm.example.com.
出力には、以下の情報が含まれます。
-
0(優先順位):ターゲットホストの優先度。値が小さいほど優先度が高くなります。 -
100(重み)。優先順位が同じエントリーの相対的な重みを指定します。詳細は RFC 2782, section 3 を参照してください。 -
88(ポート番号): サービスのポート番号。 - サービスを提供するホストの正規名。
この例では、2 つのホスト名が返され、どちらも同じ優先順位と重みでした。この場合には、クライアントは結果リストから無作為にエントリーを使用します。
代わりに、クライアントを設定して、DNS の場所に設定されている DNS サーバーをクエリーすると、出力が異なります。場所が割り当てられた IdM サーバーの場合は、カスタマイズした値が返されます。以下の例では、クライアントは、場所 germany にある DNS サーバーをクエリーするように設定されています。
例5.2 DNS の場所ベースの結果
dig -t SRV +short _kerberos._tcp.idm.example.com _kerberos._tcp.germany._locations.idm.example.com. 0 100 88 idmserver-01.idm.example.com. 50 100 88 idmserver-02.idm.example.com.
$ dig -t SRV +short _kerberos._tcp.idm.example.com
_kerberos._tcp.germany._locations.idm.example.com.
0 100 88 idmserver-01.idm.example.com.
50 100 88 idmserver-02.idm.example.com.
IdM DNS サーバーは、ローカルサーバーを優先する DNS の場所固有の SRV レコードを参照する DNS エイリアス (CNAME) を自動的に返します。この CNAME レコードは、出力の最初の行に表示されます。この例では、ホスト idmserver-01.idm.example.com の優先度の値が最も低いため、このホストが優先されます。idmserver-02.idm.example.com の優先度の値が高く、推奨されるホストが使用できない場合にバックアップとしてのみ使用されます。
5.2. DNS の場所のデプロイに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、統合 DNS を使用する際に、場所固有のサービス (SRV) レコードを生成できます。各 IdM DNS サーバーはロケーション固有の SRV レコードを生成するため、DNS の場所ごとに 1 つ以上の IdM DNS サーバーをインストールする必要があります。
クライアントの DNS の場所に対するアフィニティーは、クライアントが受け取った DNS レコードでのみ定義されます。そのため、DNS のサービス検出を行うクライアントが、IdM DNS サーバーからの場所固有のレコードを解決した場合には、IdM DNS サーバーと IdM 以外の DNS コンシューマーサーバーと recursor を組み合わせることができます。
IdM サービスおよび IdM DNS サービス以外のほとんどのデプロイメントでは、DNS recursor はラウンドトリップタイムメトリックを使用して、最寄りの IdM DNS サーバーを自動的に選択します。通常、非 IdM DNS サーバーを使用するクライアントが、最寄りの DNS の場所のレコードを取得し、最寄りの DNS サーバーの最適なセットを使用するようになります。
5.3. DNS の Time to live (TTL) リンクのコピーリンクがクリップボードにコピーされました!
クライアントは、ゾーンの設定に指定された期間の DNS リソースレコードをキャッシュできます。このキャッシュにより、クライアントは Time to Live (TTL) 値の有効期限が切れるまで変更を受け取れない場合があります。Identity Management (IdM) のデフォルトの TTL 値は 1 日 です。
クライアントコンピューターがサイト間でローミングする場合には、IdM DNS ゾーンの TTL 値を調整する必要があります。この値は、クライアントがサイト間のローミングに必要とする時間よりも低い値に設定します。これにより、別のサイトに再接続する前にクライアントでキャッシュされた DNS エントリーが期限切れになり、DNS サーバーに対してクエリーを実行し、場所固有の SRV レコードを更新します。
5.4. Ansible を使用して IdM の場所が存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) のシステム管理者は、クライアントが最寄りのネットワークインフラストラクチャーで認証サーバーを特定できるように IdM DNS の場所を設定できます。
以下の手順では、Ansible Playbook を使用して IdM に DNS の場所を追加する方法を説明します。この例では、DNS の場所 germany が IdM に存在する状態にする方法を説明します。その結果、特定の IdM サーバーをこの場所に割り当てて、ローカル IdM クライアントがそれらを使用してサーバーの応答時間を短縮できるようになります。
前提条件
コントロールノードの場合:
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - DNS の場所のデプロイに関する考慮事項 を理解している。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/location/ディレクトリーにあるlocation-present.ymlファイルのコピーを作成します。cp /usr/share/doc/ansible-freeipa/playbooks/location/location-present.yml location-present-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/location/location-present.yml location-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ansible Playbook の
location-present-copy.ymlファイルを開いて編集します。 ipalocationタスクセクションに以下の変数を設定して、ファイルを調整します。-
使用しているユースケースに合わせて、タスクの
名前を調節します。 -
ipaadmin_password変数は IdM 管理者のパスワードに設定します。 -
name変数は、場所の名前に設定します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用しているユースケースに合わせて、タスクの
- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
ansible-playbook --vault-password-file=password_file -v -i inventory location-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory location-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. Ansible を使用して IdM の場所が存在しない状態にする リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) のシステム管理者は、クライアントが最寄りのネットワークインフラストラクチャーで認証サーバーを特定できるように IdM DNS の場所を設定できます。
以下の手順では、Ansible Playbook を使用して、IdM から DNS の場所を削除する方法を説明します。この例では、DNS の場所 germany が IdM に存在しない状態にする方法を説明します。DNS の場所を削除すると、その場所に、特定の IdM サーバーを割り当てられず、ローカルの IdM クライアントでその場所を使用できなくなります。
前提条件
- IdM 管理者パスワードを把握している。
- germany DNS の場所に IdM サーバーが割り当てられていません。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - この例では、サンプルの Playbook のコピーを保存する一元管理場所として ~/MyPlaybooks/ ディレクトリーを 作成して設定 していることを前提とします。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/location/ディレクトリーにあるlocation-absent.ymlファイルのコピーを作成します。cp /usr/share/doc/ansible-freeipa/playbooks/location/location-absent.yml location-absent-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/location/location-absent.yml location-absent-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ansible Playbook ファイル (
location-absent-copy.yml) を開きます。 ipalocationタスクセクションに以下の変数を設定して、ファイルを調整します。-
使用しているユースケースに合わせて、タスクの
名前を調節します。 -
ipaadmin_password変数は IdM 管理者のパスワードに設定します。 -
name変数は DNS の場所の名前に設定します。 -
state変数はabsentに設定されていることを確認します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用しているユースケースに合わせて、タスクの
- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
ansible-playbook --vault-password-file=password_file -v -i inventory location-absent-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory location-absent-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 IdM での DNS 転送の管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従い、Identity Management (IdM) Web UI、IdM CLI、および Ansible を使用して DNS グローバルフォワーダーおよび DNS 正引きゾーンを設定します。
- IdM DNS サーバーの 2 つの役割
- IdM での DNS 転送ポリシー
- IdM Web UI でのグローバルフォワーダーの追加
- CLI でのグローバルフォワーダーの追加
- IdM Web UI での DNS 正引きゾーンの追加
- CLI での DNS 正引きゾーンの追加
- Ansible を使用した IdM での DNS グローバルフォワーダーの確立
- Ansible を使用して IdM に DNS グローバルフォワーダーが存在する状態にする
- Ansible を使用して IdM に DNS グローバルフォワーダーが存在しない状態にする
- Ansible を使用した IdM での DNS グローバルフォワーダーの無効化
- Ansible を使用して IdM に DNS 正引きゾーンが存在する状態にする
- Ansible を使用して IdM の DNS 正引きゾーンに複数のフォワーダーが存在する状態にする
- Ansible を使用して IdM の DNS 正引きゾーンを無効にする
- Ansible を使用して IdM に DNS 正引きゾーンが存在しない状態にする
6.1. IdM DNS サーバーの 2 つの役割 リンクのコピーリンクがクリップボードにコピーされました!
DNS 転送は、DNS サービスが DNS クエリーに応答する方法を左右します。デフォルトでは、IdM と統合されている Berkeley Internet Name Domain (BIND) サービスは、権威 および 再帰 DNS サーバーの両方として機能します。
- 権威 DNS サーバー
- IdM サーバーが権威のある DNS ゾーンに所属する名前のクエリーを DNS クライアントが出した場合に、BIND は設定済みのゾーンに含まれるデータで応答します。権威データは常に他のデータよりも優先されます。
- 再帰 DNS サーバー
- IdM サーバーが権威のない名前のクエリーを DNS クライアントが出した場合に、BIND は他の DNS サーバーを使用してこのクエリーを解決しようとします。フォワーダーが定義されていない場合は、BIND がインターネット上のルートサーバーにクエリーを出し、再帰解決アルゴリズムを使用して DNS クエリーに応答します。
BIND を使用して他の DNS サーバーに直接問い合わせて、インターネットで利用可能なデータをもとに再帰を実行することは推奨されません。別の DNS サーバーである フォワーダー を使用してクエリーを解決するように BIND を設定できます。
フォワーダーを使用するように BIND を設定すると、クエリーと応答が IdM サーバーとフォワーダーの間で送受信され、IdM サーバーが権威データ以外の DNS キャッシュとして機能します。
6.2. IdM での DNS 転送ポリシー リンクのコピーリンクがクリップボードにコピーされました!
IdM は、first および only の BIND 転送ポリシーと、IdM 固有の転送ポリシー none をサポートします。
- forward first (デフォルト)
-
IdM BIND サービスは、DNS クエリーを設定済みのフォワーダーに転送します。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はインターネット上のサーバーを使用して再帰解決にフォールバックします。
forward firstポリシーはデフォルトのポリシーで、DNS トラフィックの最適化に適しています。 - Forward only
-
IdM BIND サービスは、DNS クエリーを設定済みのフォワーダーに転送します。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はエラーをクライアントに返します。分割された DNS 設定の環境では、
forward onlyポリシーが推奨されます。 - None (転送の無効化)
-
DNS クエリーは、
none転送ポリシーで転送されません。グローバル転送設定をゾーン別にオーバーライドする場合にのみ、転送の無効化は有用です。このオプションは、IdM の BIND 設定で空のフォワーダーリストを指定するのと同じです。
転送を使用して、IdM のデータと、他の DNS サーバーのデータと統合できません。IdM DNS のプライマリーゾーン内にある特定のサブゾーンのクエリーのみを転送できます。
デフォルトでは、IdM サーバーが権威サーバーとなっているゾーンに、クエリーされた DNS 名が所属する場合には、BIND サービスは、クエリーを別のサーバーに転送しません。このような場合は、クエリーされた DNS 名が IdM データベースに見つからない場合は、NXDOMAIN との応答が返されます。転送は使用されません。
例6.1 シナリオ例
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 エラーメッセージを受け取り、クエリーされたドメインが存在しないことをユーザーに通知します。
6.3. IdM Web UI でのグローバルフォワーダーの追加 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Identity Management (IdM) Web UI でグローバル DNS フォワーダーを追加します。
前提条件
- IdM 管理者として IdM WebUI にログインしている。
- クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。
手順
IdM Web UI で
Network Services→DNS Global Configuration→DNSの順に選択します。
DNS Global Configurationセクションで、Addをクリックします。
転送された DNS クエリーを受信する DNS サーバーの IP アドレスを指定します。
Forward policyを選択します。
-
ウィンドウの上部にある
Saveをクリックします。
検証
Network Services→DNS Global Configuration→DNSの順に選択します。
指定した転送ポリシーで、グローバルフォワーダーが IdM Web UI で存在し、有効化されていることを確認します。
6.4. CLI でのグローバルフォワーダーの追加 リンクのコピーリンクがクリップボードにコピーされました!
コマンドライン (CLI) を使用してグローバル DNS フォワーダーを追加するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
- クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。
手順
ipa dnsconfig-modコマンドを使用して、新しいグローバルフォワーダーを追加します。--forwarderオプションで DNS フォワーダーの IP アドレスを指定します。ipa dnsconfig-mod --forwarder=10.10.0.1 Server will check DNS forwarder(s). This may take some time, please wait ... Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
[user@server ~]$ ipa dnsconfig-mod --forwarder=10.10.0.1 Server will check DNS forwarder(s). This may take some time, please wait ... Global forwarders: 10.10.0.1 IPA DNS servers: server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
dnsconfig-showコマンドを使用して、グローバルフォワーダーを表示します。ipa dnsconfig-show Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
[user@server ~]$ ipa dnsconfig-show Global forwarders: 10.10.0.1 IPA DNS servers: server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5. IdM Web UI での DNS 正引きゾーンの追加 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Identity Management (IdM) Web UI に DNS 正引きゾーンを追加します。
絶対に必要な場合を除き、正引きゾーンは使用しないでください。正引きゾーンは、標準的な解決策ではないので、正引きゾーンを使用すると予期しない動作が発生する可能性があります。正引きゾーンを使用する必要がある場合は、グローバル転送設定が優先されるように、正引きゾーンの使用を制限します。
新しい DNS ゾーンを作成する場合には、Red Hat は、ネームサーバー (NS ) レコードで標準の DNS 委譲を常に使用し、正引きゾーンを回避することを推奨します。多くの場合、グローバルフォワーダーを使用するだけで十分なため、正引きゾーンは必要ありません。
前提条件
- IdM 管理者として IdM WebUI にログインしている。
- クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。
手順
IdM Web UI で
Network Services→DNS Forward Zones→DNSの順に選択します。
DNS Forward Zonesセクションで、Addをクリックします。
Add DNS forward zoneウィンドウで、正引きゾーン名を指定します。
Addボタンをクリックして、転送要求を受信する DNS サーバーの IP アドレスを指定します。正引きゾーンごとに複数のフォワーダーを指定できます。
Forward policyを選択します。
-
ウィンドウの下部にある
Addをクリックして、新しい正引きゾーンを追加します。
検証
IdM Web UI で
Network Services→DNS Forward Zones→DNSの順に選択します。
指定したフォワーダーおよび転送ポリシーで、正引きゾーンが IdM Web UI で存在し、有効化されていることを確認します。
6.6. CLI での DNS 正引きゾーンの追加 リンクのコピーリンクがクリップボードにコピーされました!
コマンドライン (CLI) を使用して DNS 正引きゾーンを追加するには、次の手順に従います。
絶対に必要な場合を除き、正引きゾーンは使用しないでください。正引きゾーンは、標準的な解決策ではないので、正引きゾーンを使用すると予期しない動作が発生する可能性があります。正引きゾーンを使用する必要がある場合は、グローバル転送設定が優先されるように、正引きゾーンの使用を制限します。
新しい DNS ゾーンを作成する場合には、Red Hat は、ネームサーバー (NS ) レコードで標準の DNS 委譲を常に使用し、正引きゾーンを回避することを推奨します。多くの場合、グローバルフォワーダーを使用するだけで十分なため、正引きゾーンは必要ありません。
前提条件
- IdM 管理者としてログインしている。
- クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。
手順
dnsforwardzone-addコマンドを使用して、新しい正引きゾーンを追加します。転送ポリシーがnoneではない場合には、--forwarderオプションを使用して最低でもフォワーダーを 1 つ指定し、--forward-policyオプションで転送ポリシーを指定します。ipa dnsforwardzone-add forward.example.com. --forwarder=10.10.0.14 --forwarder=10.10.1.15 --forward-policy=first Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first
[user@server ~]$ ipa dnsforwardzone-add forward.example.com. --forwarder=10.10.0.14 --forwarder=10.10.1.15 --forward-policy=first Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: firstCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
dnsforwardzone-showコマンドを使用して、作成した DNS 正引きゾーンを表示します。ipa dnsforwardzone-show forward.example.com. Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first
[user@server ~]$ ipa dnsforwardzone-show forward.example.com. Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: firstCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7. Ansible を使用した IdM での DNS グローバルフォワーダーの確立 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して IdM で DNS グローバルフォワーダーを確立します。
以下の手順の例では、IdM 管理者はポート 53 にインターネットプロトコル (IP) v4 アドレスが 8.8.6.6、IPv6 アドレスが 2001:4860:4860::8800 で指定されている DNS サーバーに DNS グローバルフォワーダーを作成します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
set-configuration.yml) のコピーを作成します。以下に例を示します。cp set-configuration.yml establish-global-forwarder.yml
$ cp set-configuration.yml establish-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
establish-global-forwarder.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数は、IdM DNS でグローバルフォワーダーを確立する Playbookの設定に変更します。 -
tasksセクションで、タスクのnameをCreate a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800に変更します。 ipadnsconfigのforwardersセクションで以下を行います。-
最初の
ip_addressの値は、グローバルフォワーダーの IPv4 アドレス8.8.6.6. -
2 番目の
ip_addressの値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。 -
portの値が53に設定されていることを確認します。
-
最初の
forward_policyをfirstに変更します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file establish-global-forwarder.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file establish-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8. Ansible を使用して IdM に DNS グローバルフォワーダーが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して IdM に DNS グローバルフォワーダーが存在する状態にするには、次の手順を実行します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 7.7.9.9、IPv6 アドレスが 2001:db8::1:0 で指定されている DNS サーバーに、DNS グローバルフォワーダーが配置されるようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml
$ cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-presence-of-a-global-forwarder.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数をPlaybook to ensure the presence of a global forwarder in IdM DNSに変更します。 -
tasksセクションで、タスクのnameをEnsure the presence of a DNS global forwarder to 7.7.9.9 and 2001:db8::1:0 on port 53に変更します。 ipadnsconfigのforwardersセクションで以下を行います。-
最初の
ip_addressの値は、グローバルフォワーダーの IPv4 アドレス (7.7.9.9) に変更します。 -
2 番目の
ip_addressの値は、グローバルフォワーダーの IPv6 アドレス (2001:db8::1:0) に変更します。 -
portの値が53に設定されていることを確認します。
-
最初の
stateをpresentに変更します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-of-a-global-forwarder.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.9. Ansible を使用して IdM に DNS グローバルフォワーダーが存在しない状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、IdM に DNS グローバルフォワーダーが存在しない状態にするには、次の手順を実行します。以下の例では、IdM 管理者は、インターネットプロトコル (IP) v4 アドレス 8.8.6.6 および IP v6 アドレス 2001:4860:4860::8800 を持ち、ポート 53 で待ち受ける DNS グローバルフォワーダーが存在しない状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml
$ cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-absence-of-a-global-forwarder.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数は、IdM DNS でグローバルフォワーダーを配置しない Playbookの設定に変更します。 -
tasksセクションで、タスクのnameをEnsure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53に変更します。 ipadnsconfigのforwardersセクションで以下を行います。-
最初の
ip_addressの値は、グローバルフォワーダーの IPv4 アドレス8.8.6.6. -
2 番目の
ip_addressの値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。 -
portの値が53に設定されていることを確認します。
-
最初の
-
action変数はmemberに設定します。 -
stateがabsentに設定されていることを確認します。
今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Playbook で
action: memberを使用せずにstate: absentオプションだけを使用すると、その Playbook は失敗します。-
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.10. Ansible を使用した IdM での DNS グローバルフォワーダーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、IdM で DNS グローバルフォワーダーを無効にするには、以下の手順に従います。以下の手順の例では、IdM の管理者がグローバルフォワーダーの転送ポリシーが none に設定されていることを確認し、グローバルフォワーダーを実質的に無効にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 全 DNS グローバルフォワーダーを無効にするように設定済みの Ansible Playbook ファイル (
disable-global-forwarders.yml) の内容を確認します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file disable-global-forwarders.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11. Ansible を使用して IdM に DNS 正引きゾーンが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して IdM に DNS 転送ゾーンが存在する状態にするには、次の手順を実行します。以下の手順の例では、IdM 管理者は、インターネットプロトコル (IP) プロトコルが 8.8.8.8 の DNS サーバーに example.com の DNS 正引きゾーンが配置されるようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-presence-forwardzone.yml
$ cp forwarders-absent.yml ensure-presence-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-presence-forwardzone.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数をPlaybook to ensure the presence of a dnsforwardzone in IdM DNSに変更します。 -
tasksセクションで、タスクのnameをEnsure presence of a dnsforwardzone for example.com to 8.8.8.8に変更します。 -
tasksセクションで、ipadnsconfigのヘディングをipadnsforwardzoneに変更します。 ipadnsforwardzoneセクションで以下を実行します。-
ipaadmin_password変数を追加して、IdM 管理者パスワードに設定します。 -
name変数を追加してexample.comに設定します。 forwardersセクションで、以下を実行します。-
ip_addressとportの行を削除します。 転送要求を受信できるように DNS サーバーの IP アドレスをダッシュの後に指定して追加します。
- 8.8.8.8
- 8.8.8.8Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
-
forwardpolicy変数を追加してfirstに設定します。 -
skip_overlap_check変数を追加し、trueに設定します。 -
state変数はpresentに変更します。
今回の例で使用するように変更した Ansible Playbook ファイル:
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-forwardzone.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.12. Ansible を使用して IdM の DNS 正引きゾーンに複数のフォワーダーが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、IdM の DNS 正引きゾーンに複数のフォワーダーが存在する状態にするには、この手順を実行します。以下の手順の例では、IdM 管理者が example.com の DNS 正引きゾーンが 8.8.8.8 と 4.4.4.4 に転送されるようにします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-presence-multiple-forwarders.yml
$ cp forwarders-absent.yml ensure-presence-multiple-forwarders.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-presence-multiple-forwarders.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数は、IdM DNS の DNS 正引きゾーンに複数のフォワーダーを配置する Playbookの設定に変更します。 -
tasksセクションで、タスクのnameをEnsure presence of 8.8.8.8 and 4.4.4.4 forwarders in dnsforwardzone for example.comに変更します。 -
tasksセクションで、ipadnsconfigのヘディングをipadnsforwardzoneに変更します。 ipadnsforwardzoneセクションで以下を実行します。-
ipaadmin_password変数を追加して、IdM 管理者パスワードに設定します。 -
name変数を追加してexample.comに設定します。 forwardersセクションで、以下を実行します。-
ip_addressとportの行を削除します。 存在することを確認する DNS サーバーの IP アドレスを、先頭にダッシュを付けて追加します。
- 8.8.8.8 - 4.4.4.4
- 8.8.8.8 - 4.4.4.4Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
- state 変数を present に変更します。
今回の例で使用するように変更した Ansible Playbook ファイル:
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-forwarders.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-forwarders.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.13. Ansible を使用して IdM の DNS 正引きゾーンを無効にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して IdM で DNS 正引きゾーンを無効にするには、以下の手順に従います。以下の手順の例では、IdM 管理者は example.com の DNS 正引きゾーンが無効になっていることを確認します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-disabled-forwardzone.yml
$ cp forwarders-absent.yml ensure-disabled-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-disabled-forwardzone.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数は、IdM DNS に DNS 正引きゾーンを無効にする Playbookの設定に変更します。 -
tasksセクションで、タスクのnameをEnsure a dnsforwardzone for example.com is disabledに変更します。 -
tasksセクションで、ipadnsconfigのヘディングをipadnsforwardzoneに変更します。 ipadnsforwardzoneセクションで以下を実行します。-
ipaadmin_password変数を追加して、IdM 管理者パスワードに設定します。 -
name変数を追加してexample.comに設定します。 -
forwardersセクション全体を削除します。 -
state変数をdisabledに変更します。
今回の例で使用するように変更した Ansible Playbook ファイル:
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-disabled-forwardzone.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-disabled-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.14. Ansible を使用して IdM に DNS 正引きゾーンが存在しない状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して IdM に DNS 転送ゾーンが存在しない状態にするには、次の手順を実行します。以下の例では、IdM 管理者は example.com の DNS 正引きゾーンが存在しない状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfigディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.comを設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
forwarders-absent.yml) のコピーを作成します。以下に例を示します。cp forwarders-absent.yml ensure-absence-forwardzone.yml
$ cp forwarders-absent.yml ensure-absence-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ensure-absence-forwardzone.ymlファイルを編集のために開きます。 以下の変数を設定してファイルを調整します。
-
Playbook の
name変数をPlaybook to ensure the absence of a dnsforwardzone in IdM DNSに変更します。 -
tasksセクションで、タスクのnameをEnsure the absence of a dnsforwardzone for example.comに変更します。 -
tasksセクションで、ipadnsconfigのヘディングをipadnsforwardzoneに変更します。 ipadnsforwardzoneセクションで以下を実行します。-
ipaadmin_password変数を追加して、IdM 管理者パスワードに設定します。 -
name変数を追加してexample.comに設定します。 -
forwardersセクション全体を削除します。 -
state変数をabsentのままにします。
今回の例で使用するように変更した Ansible Playbook ファイル:
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook の
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-forwardzone.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-forwardzone.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 IdM での DNS レコードの管理 リンクのコピーリンクがクリップボードにコピーされました!
この章では、Identity Management (IdM) で DNS レコードを管理する方法を説明します。IdM 管理者は、IdM で DNS レコードを追加、変更、および削除できます。
前提条件
IdM デプロイメントに統合 DNS サーバーが含まれている。統合 DNS のある IdM のインストール方法は、以下のリンクのいずれかを参照してください。
7.1. IdM の DNS レコード リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、多種の DNS レコードに対応します。以下の 4 つが最も頻繁に使用されます。
- A
これは、ホスト名および IPv4 アドレスの基本マップです。A レコードのレコード名は、
wwwなどのホスト名です。A レコードのIP アドレス値は、192.0.2.1などの IPv4 アドレスです。A レコードの詳細は、RFC 1035 を参照してください。
- AAAA
これは、ホスト名および IPv6 アドレスの基本マップです。AAAA レコードのレコード名は
wwwなどのホスト名です。IP アドレスの値は、2001:DB8::1111などの IPv6 アドレスです。AAAA レコードの詳細は RFC 3596 を参照してください。
- SRV
サービス (SRV) リソースレコード は、特定のサービスを提供するサーバーの DNS 名にサービス名をマッピングします。たとえば、このタイプのレコードは LDAP ディレクトリーのようなサービスを管理するサーバーに、このサービスをマッピングします。
SRV レコードのレコード名は、
_ldap._tcpなど、_service._protocolの形式を取ります。SRV レコードの設定オプションには、ターゲットサービスの優先順位、加重、ポート番号、およびホスト名が含まれます。SRV レコードの詳細は、RFC 2782 を参照してください。
- PTR
ポインターレコード (PTR) は、IP アドレスをドメイン名にマッピングする逆引き DNS レコードを追加します。
注記IPv4 アドレスの逆引き DNS ルックアップはすべて、
in-addr.arpa.ドメインで定義される逆引きエントリーを使用します。人間が判別可能な形式の逆アドレスは、通常の IP とまったく逆で、in-addr.arpa.ドメインが最後に付いています。たとえば、ネットワークアドレス192.0.2.0/24の逆引きゾーンは、2.0.192.in-addr.arpaになります。PTR レコード名は、RFC 1035 (RFC 2317 および RFC 3596 で拡張) で指定の標準形式を仕様する必要があります。ホスト名の値は、レコードを作成するホストの正規のホスト名である必要があります。
注記.ip6.arpa.ドメイン内のゾーンを使用して、IPv6 アドレスの逆引きゾーンを設定することもできます。IPv6 逆引きゾーンの詳細は、RFC 3596 を参照してください。
DNS リソースレコードの追加時には、レコードの多くで異なるデータが必要になることに注意してください。たとえば、CNAME レコードにはホスト名が必要ですが、A レコードには IP アドレスが必要です。IdM Web UI では、新しいレコードを追加するフォームのフィールドが自動的に更新され、現在選択されているレコードタイプに必要なデータが反映されます。
7.2. IdM Web UI での DNS リソースレコードの追加 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) Web UI に DNS リソースレコードを追加するには、次の手順に従います。
前提条件
- DNS レコードの追加先の DNS ゾーンが存在し、IdM が管理している。IdM DNS での DNS ゾーンの作成に関する詳細は、IdM の DNS ゾーンの管理 を参照してください。
- IdM 管理者としてログインしている。
手順
-
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。 - DNS レコードを追加する DNS ゾーンをクリックします。
DNS Resource Recordsセクションで、 をクリックして新しいレコードを追加します。図7.1 新しい DNS リソースレコードの追加
作成するレコードのタイプを選択し、必要に応じて他のフィールドにも入力します。
図7.2 新しい DNS リソースレコードの定義
- をクリックして、新規レコードを確定します。
7.3. IdM CLI からの DNS リソースレコードの追加 リンクのコピーリンクがクリップボードにコピーされました!
コマンドライン (CLI) から任意のタイプの DNS リソースレコードを追加するには、次の手順に従います。
前提条件
- DNS レコードを追加する DNS ゾーンが存在する。IdM DNS での DNS ゾーンの作成に関する詳細は、IdM の DNS ゾーンの管理 を参照してください。
- IdM 管理者としてログインしている。
手順
DNS リソースレコードを追加するには、
ipa dnsrecord-addコマンドを使用します。このコマンドは、以下の構文に従います。ipa dnsrecord-add zone_name record_name --record_type_option=data
$ ipa dnsrecord-add zone_name record_name --record_type_option=dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドでは、以下のようになります。
- zone_name は、レコードを追加する DNS ゾーンの名前です。
- record_name は、新しい DNS リソースレコードの識別子です。
たとえば、host1 の A タイプ DNS レコードを idm.example.com ゾーンに追加するには、次のコマンドを実行します。
ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.123
$ ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4. 一般的な ipa dnsrecord-* オプション リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) で最も一般的な DNS リソースレコードタイプを追加、変更、および削除する場合は、以下のオプションを使用できます。
- A (IPv4)
- AAAA (IPv6)
- SRV
- PTR
Bash では、--option={val1,val2,val3} のように、中括弧内にコンマ区切りで値をリストすることで、複数のエントリーを定義できます。
| オプション | 説明 |
|---|---|
|
| レコードの Time To Live を設定します。 |
|
| raw DNS レコードを解析し、それらを構造化された形式で返します。 |
| オプション | 説明 | 例 |
|---|---|---|
|
| A レコードを 1 つまたはリストで指定します。 |
|
| 指定の IP アドレスでワイルドカード A レコードを作成できます。 |
| |
|
|
レコードの IP アドレスを渡します。レコードの作成時に、 |
|
[a]
この例では、IP アドレスが 192.0.2.123 のワイルドカード A レコードを作成します。
| ||
| オプション | 説明 | 例 |
|---|---|---|
|
| AAAA (IPv6) レコードを 1 つまたはリストで指定します。 |
|
|
|
レコードの IPv6 アドレスを渡します。レコードの作成時に、 |
|
| オプション | 説明 | 例 |
|---|---|---|
|
|
PTR レコードを 1 つまたはリストで指定します。逆引き DNS レコードを追加する時には、他の DNS レコードの追加の方法と比べ、 |
|
|
| ||
|
| レコードのホスト名を指定します。 |
| オプション | 説明 | 例 |
|---|---|---|
|
|
SRV レコードを 1 つまたはリストで指定します。右側の例では、_ldap._tcp は、SRV レコードのサービスタイプと接続プロトコルを定義します。 |
|
|
| ||
|
| レコードの優先順位を設定します。あるサービスタイプに複数の SRV レコードがある場合もあります。優先順位 (0 - 65535) はレコードの階級を設定し、数字が小さいほど優先順位が高くなります。サービスは、優先順位の最も高いレコードを最初に使用する必要があります。 |
|
|
| レコードの加重を設定します。これは、SRV レコードの優先順位が同じ場合に順序を判断する際に役立ちます。設定された加重は最大 100 とし、これは特定のレコードが使用される可能性をパーセンテージで示しています。 |
|
|
| ターゲットホスト上のサービスのポートを渡します。 |
|
|
| ターゲットホストのドメイン名を提供します。該当サービスがドメイン内で利用可能でない場合は、単一のピリオド (.) として指定される場合があります。 |
7.5. IdM Web UI での DNS レコードの削除 リンクのコピーリンクがクリップボードにコピーされました!
IdM Web UI を使用して Identity Management (IdM) の DNS レコードを削除するには、この手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
-
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。 - DNS レコードを削除するゾーン (example.com など) をクリックします。
DNS Resource Recordsセクションで、リソースレコードの名前をクリックします。図7.3 DNS リソースレコードの選択
- 削除するレコードタイプの名前の横にあるチェックボックスを選択します。
Deleteをクリックします。図7.4 DNS リソースレコードの削除
選択したレコードタイプが削除されました。リソースレコードの他の設定はそのままになります。
7.6. IdM Web UI での DNS レコード全体の削除 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) Web UI を使用してゾーン内の特定のリソースのすべてのレコードを削除するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
-
IdM Web UI で、
Network Services→DNS → DNSZonesの順にクリックします。 - DNS レコードを削除するゾーン (例: zone.example.com) をクリックします。
-
DNS Resource Recordsセクションで、削除するリソースレコードのチェックボックスをオンにします。 をクリックします。
図7.5 全リソースレコードの削除
リソースレコードがすべて削除されました。
7.7. IdM CLI での DNS レコードの削除 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) DNS によって管理されるゾーンから DNS レコードを削除するには、次の手順に従います。
前提条件
- IdM 管理者としてログインしている。
手順
ゾーンからレコードを削除するには
ipa dnsrecord-delコマンドを使用して、--recordType-recオプションでレコードの値を指定して追加します。たとえば、A タイプのレコードを削除するには以下を実行します。ipa dnsrecord-del example.com www --a-rec 192.0.2.1
$ ipa dnsrecord-del example.com www --a-rec 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプションなしで
ipa dnsrecord-delコマンドを実行すると、削除するレコードの情報の入力が求められます。--del-allオプションを指定してコマンドを実行すると、ゾーンに関連するレコードがすべて削除されることに注意してください。
第8章 Ansible を使用した IdM での DNS レコードの管理 リンクのコピーリンクがクリップボードにコピーされました!
この章では、Ansible Playbook を使用して Identity Management (IdM) で DNS レコードを管理する方法を説明します。IdM 管理者は、IdM で DNS レコードの追加、変更、および削除が可能です。この章には次のセクションが含まれています。
8.1. IdM の DNS レコード リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) は、多種の DNS レコードに対応します。以下の 4 つが最も頻繁に使用されます。
- A
これは、ホスト名および IPv4 アドレスの基本マップです。A レコードのレコード名は、
wwwなどのホスト名です。A レコードのIP アドレス値は、192.0.2.1などの IPv4 アドレスです。A レコードの詳細は、RFC 1035 を参照してください。
- AAAA
これは、ホスト名および IPv6 アドレスの基本マップです。AAAA レコードのレコード名は
wwwなどのホスト名です。IP アドレスの値は、2001:DB8::1111などの IPv6 アドレスです。AAAA レコードの詳細は RFC 3596 を参照してください。
- SRV
サービス (SRV) リソースレコード は、特定のサービスを提供するサーバーの DNS 名にサービス名をマッピングします。たとえば、このタイプのレコードは LDAP ディレクトリーのようなサービスを管理するサーバーに、このサービスをマッピングします。
SRV レコードのレコード名は、
_ldap._tcpなど、_service._protocolの形式を取ります。SRV レコードの設定オプションには、ターゲットサービスの優先順位、加重、ポート番号、およびホスト名が含まれます。SRV レコードの詳細は、RFC 2782 を参照してください。
- PTR
ポインターレコード (PTR) は、IP アドレスをドメイン名にマッピングする逆引き DNS レコードを追加します。
注記IPv4 アドレスの逆引き DNS ルックアップはすべて、
in-addr.arpa.ドメインで定義される逆引きエントリーを使用します。人間が判別可能な形式の逆アドレスは、通常の IP とまったく逆で、in-addr.arpa.ドメインが最後に付いています。たとえば、ネットワークアドレス192.0.2.0/24の逆引きゾーンは、2.0.192.in-addr.arpaになります。PTR レコード名は、RFC 1035 (RFC 2317 および RFC 3596 で拡張) で指定の標準形式を仕様する必要があります。ホスト名の値は、レコードを作成するホストの正規のホスト名である必要があります。
注記.ip6.arpa.ドメイン内のゾーンを使用して、IPv6 アドレスの逆引きゾーンを設定することもできます。IPv6 逆引きゾーンの詳細は、RFC 3596 を参照してください。
DNS リソースレコードの追加時には、レコードの多くで異なるデータが必要になることに注意してください。たとえば、CNAME レコードにはホスト名が必要ですが、A レコードには IP アドレスが必要です。IdM Web UI では、新しいレコードを追加するフォームのフィールドが自動的に更新され、現在選択されているレコードタイプに必要なデータが反映されます。
8.2. 一般的な ipa dnsrecord-* オプション リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) で最も一般的な DNS リソースレコードタイプを追加、変更、および削除する場合は、以下のオプションを使用できます。
- A (IPv4)
- AAAA (IPv6)
- SRV
- PTR
Bash では、--option={val1,val2,val3} のように、中括弧内にコンマ区切りで値をリストすることで、複数のエントリーを定義できます。
| オプション | 説明 |
|---|---|
|
| レコードの Time To Live を設定します。 |
|
| raw DNS レコードを解析し、それらを構造化された形式で返します。 |
| オプション | 説明 | 例 |
|---|---|---|
|
| A レコードを 1 つまたはリストで指定します。 |
|
| 指定の IP アドレスでワイルドカード A レコードを作成できます。 |
| |
|
|
レコードの IP アドレスを渡します。レコードの作成時に、 |
|
[a]
この例では、IP アドレスが 192.0.2.123 のワイルドカード A レコードを作成します。
| ||
| オプション | 説明 | 例 |
|---|---|---|
|
| AAAA (IPv6) レコードを 1 つまたはリストで指定します。 |
|
|
|
レコードの IPv6 アドレスを渡します。レコードの作成時に、 |
|
| オプション | 説明 | 例 |
|---|---|---|
|
|
PTR レコードを 1 つまたはリストで指定します。逆引き DNS レコードを追加する時には、他の DNS レコードの追加の方法と比べ、 |
|
|
| ||
|
| レコードのホスト名を指定します。 |
| オプション | 説明 | 例 |
|---|---|---|
|
|
SRV レコードを 1 つまたはリストで指定します。右側の例では、_ldap._tcp は、SRV レコードのサービスタイプと接続プロトコルを定義します。 |
|
|
| ||
|
| レコードの優先順位を設定します。あるサービスタイプに複数の SRV レコードがある場合もあります。優先順位 (0 - 65535) はレコードの階級を設定し、数字が小さいほど優先順位が高くなります。サービスは、優先順位の最も高いレコードを最初に使用する必要があります。 |
|
|
| レコードの加重を設定します。これは、SRV レコードの優先順位が同じ場合に順序を判断する際に役立ちます。設定された加重は最大 100 とし、これは特定のレコードが使用される可能性をパーセンテージで示しています。 |
|
|
| ターゲットホスト上のサービスのポートを渡します。 |
|
|
| ターゲットホストのドメイン名を提供します。該当サービスがドメイン内で利用可能でない場合は、単一のピリオド (.) として指定される場合があります。 |
8.3. Ansible を使用して IdM に A および AAAA DNS レコードが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、特定の IdM ホストの A レコードと AAAA レコードが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、IdM 管理者は idm.example.com DNS ゾーンの host1 の A レコードと AAAA レコードが存在する状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法の詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecordディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-A-and-AAAA-records-are-present.yml) のコピーを作成します。以下に例を示します。
cp ensure-A-and-AAAA-records-are-present.yml ensure-A-and-AAAA-records-are-present-copy.yml
$ cp ensure-A-and-AAAA-records-are-present.yml ensure-A-and-AAAA-records-are-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-A-and-AAAA-records-are-present-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
zone_name変数は idm.example.com に設定します。 -
records変数で、name変数を host1 に、a_ip_address変数を 192.168.122.123 に設定します。 records変数で、name変数を host1 に、aaaa_ip_address変数を ::1 に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-A-and-AAAA-records-are-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-A-and-AAAA-records-are-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4. Ansible を使用して IdM に A および PTR DNS レコードが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、特定の IdM ホストの A レコードと対応する PTR レコードが存在する状態にするには、この手順を実行します。以下の手順で使用する例では、IdM 管理者は、idm.example.com ゾーン内の IP アドレス 192.168.122.45 を持つ host1 の A レコードと PTR レコードが存在する状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com DNS ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法の詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecordディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-dnsrecord-with-reverse-is-present.yml) のコピーを作成します。以下に例を示します。
cp ensure-dnsrecord-with-reverse-is-present.yml ensure-dnsrecord-with-reverse-is-present-copy.yml
$ cp ensure-dnsrecord-with-reverse-is-present.yml ensure-dnsrecord-with-reverse-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-dnsrecord-with-reverse-is-present-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は host1 に設定します。 -
zone_name変数は idm.example.com に設定します。 -
ip_address変数は、192.168.122.45 に設定します。 create_reverse変数を true に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-dnsrecord-with-reverse-is-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-dnsrecord-with-reverse-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5. Ansible を使用して IdM に複数の DNS レコードが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、複数の値が特定の IdM DNS レコードに関連付けられるようにするには、以下の手順に従います。以下の手順で使用する例では、IdM 管理者は、idm.example.com DNS ゾーンの host1 の A レコードが複数存在する状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法の詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecordディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-presence-multiple-records.yml) のコピーを作成します。以下に例を示します。
cp ensure-presence-multiple-records.yml ensure-presence-multiple-records-copy.yml
$ cp ensure-presence-multiple-records.yml ensure-presence-multiple-records-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-presence-multiple-records-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
recordsセクションで、name変数を host1 に設定します。 -
recordsセクションで、zone_name変数を idm.example.com に設定します。 -
recordsセクションで、a_rec変数を 192.168.122.112 および 192.168.122.122 に設定します。 recordsセクションの 2 番目のレコードを定義します。-
name変数は host1 に設定します。 -
zone_name変数は idm.example.com に設定します。 -
aaaa_rec変数は ::1 に設定します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-records-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-presence-multiple-records-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.6. Ansible を使用して IdM に複数の CNAME レコードが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Canonical Name レコード (CNAME レコード) は、DNS (Domain Name System) のリソースレコードの一種で、別の名前 (CNAME) にドメイン名、エイリアスをマッピングします。
CNAME レコードは、FTP サービスと Web サービスがそれぞれ別のポートで実行されている場合など、1 つの IP アドレスから複数のサービスを実行する場合に、役立つ可能性があります。
Ansible Playbook を使用して、IdM DNS に複数の CNAME レコードが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、host03 は HTTP サーバーと FTP サーバーの両方として機能します。IdM 管理者は、idm.example.com ゾーンの host03 A レコードの www および ftp CNAME レコードが存在する状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法の詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
- host03 A レコードが idm.example.com ゾーンに存在している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecordディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-CNAME-record-is-present.yml) のコピーを作成します。以下に例を示します。
cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-CNAME-record-is-present-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
オプション:オプション: プレイの
nameによって提供される説明を調整します。 -
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
zone_name変数は idm.example.com に設定します。 records変数セクションで、以下の変数および値を設定します。-
name変数は www に設定します。 -
cname_hostname変数は host03 に設定します。 -
name変数は ftp に設定します。 -
cname_hostname変数は host03 に設定します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オプション:オプション: プレイの
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.7. Ansible を使用して IdM に SRV レコードが存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
DNS サービス (SRV) レコードは、ドメインで利用可能なサービスのホスト名、ポート番号、トランスポートプロトコル、優先度、および加重を定義します。Identity Management (IdM) では、SRV レコードを使用して、IdM サーバーとレプリカを特定できます。
以下の手順に従って、Ansible Playbook を使用して、SRV レコードが IdM DNS に存在することを確認します。以下の手順で使用する例では、IdM 管理者は、値が 10 50 88 idm.example.com である _kerberos._udp.idm.example.com SRV レコードが存在する状態にします。この例では、以下の値を指定します。
- サービスの優先度を 10 に設定します。
- サービスの加重を 50 に設定します。
- サービスが使用するポートを 88 に設定します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法の詳細は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecordディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-SRV-record-is-present.yml) のコピーを作成します。以下に例を示します。
cp ensure-SRV-record-is-present.yml ensure-SRV-record-is-present-copy.yml
$ cp ensure-SRV-record-is-present.yml ensure-SRV-record-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-SRV-record-is-present-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は _kerberos._udp.idm.example.com に設定します。 -
srv_rec変数は '10 50 88 idm.example.com' に設定します。 zone_name変数は idm.example.com に設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-SRV-record-is-present.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-SRV-record-is-present.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 IdM で標準 DNS ホスト名の使用 リンクのコピーリンクがクリップボードにコピーされました!
DNS 正規化は、潜在的なセキュリティーリスクを回避するために、Identity Management (IdM) クライアントでデフォルトで無効になっています。たとえば、攻撃者がドメインの DNS サーバーとホストを制御している場合、攻撃者は短いホスト名 (demo など) を、侵害されたホスト (malicious.example.com など) に解決させることができます。この場合、ユーザーは想定とは異なるサーバーに接続します。
この手順では、IdM クライアントで正規化されたホスト名を使用する方法を説明します。
9.1. ホストプリンシパルへのエイリアスの追加 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ipa-client-install コマンドを使用して登録した Identity Management (IdM) クライアントでは、サービスプリンシパルで短縮ホスト名を使用することができません。たとえば、ユーザーがサービスにアクセスするときに、host/demo@EXAMPLE.COM ではなく、host/demo.example.com@EXAMPLE.COM のみを使用できます。
Kerberos プリンシパルにエイリアスを追加するには、次の手順に従います。または、/etc/krb5.conf ファイルでホスト名の正規化を有効にできます。詳細は、クライアントのサービスプリンシパルでホスト名の正規化を有効にする を参照してください。
前提条件
- IdM クライアントがインストールされている。
- ホスト名が、ネットワーク内で一意の名前である。
手順
adminユーザーとして、IdM に対して認証します。kinit admin
$ kinit adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow エイリアスをホストプリンシパルに追加します。たとえば、
demoエイリアスを、demo.examle.comホストプリンシパルに追加するには、次のコマンドを実行します。ipa host-add-principal demo.example.com --principal=demo
$ ipa host-add-principal demo.example.com --principal=demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. クライアントのサービスプリンシパルでホスト名の正規化を有効にする リンクのコピーリンクがクリップボードにコピーされました!
クライアントのサービスプリンシパルでホスト名の正規化を有効にするには、次の手順に従います。
- 注記
ホストプリンシパルへのエイリアスの追加 で説明されているように、ホストプリンシパルのエイリアスを使用する場合は、正規化を有効にする必要はありません。
前提条件
- Identity Management (IdM) クライアントがインストールされている。
-
rootユーザーとして IdM クライアントにログインしている。 - ホスト名が、ネットワーク内で一意の名前である。
手順
/etc/krb5.confファイルの[libdefaults]セクションで、dns_canonicalize_hostnameパラメーターをfalseに設定します。[libdefaults] ... dns_canonicalize_hostname = true
[libdefaults] ... dns_canonicalize_hostname = trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3. DNS ホスト名の正規化を有効にしてホスト名を使用する場合の選択肢 リンクのコピーリンクがクリップボードにコピーされました!
クライアントのサービスプリンシパルでホスト名の正規化を有効にする の説明に従って、/etc/krb5.conf ファイルに dns_canonicalize_hostname = true を設定した場合、サービスプリンシパルでホスト名を使用するときに次の選択肢があります。
-
Identity Management (IdM) 環境では、
host/demo.example.com@EXAMPLE.COMなどのサービスプリンシパルで完全なホスト名を使用できます。 - IdM がない環境では、RHEL ホストを Active Directory (AD) ドメインのメンバーとする場合に、AD ドメインコントローラー (DC) が、AD に登録されているマシンの NetBIOS 名のサービスプリンシパルを自動的に作成するため、これ以上考慮が必要な事項はありません。
第10章 BIND ロギングのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) 管理者は、BIND がログを書き込む場所をカスタマイズし、そのカスタムパスへのアクセスを SELinux によって許可することで、可視性を向上させ、セキュリティーを維持できます。
10.1. BIND ログパスのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
ipa-logging-ext.conf ファイルを使用して、BIND ログへのパスをカスタマイズできます。
手順
/etc/named/ディレクトリーのipa-logging-ext.confファイルを開き、ファイルパスを使用してロギングチャネルを追加または変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow BIND サーバーを再起動します。
systemctl restart named
# systemctl restart namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2. BIND カスタムロギング用の SELinux ポリシーの拡張 リンクのコピーリンクがクリップボードにコピーされました!
SELinux ポリシーを拡張して、BIND ログを対象に含めることができます。
手順
ログディレクトリーを作成します。
mkdir -p /var/log/named chown named:named /var/log/named chmod 750 /var/log/named
# mkdir -p /var/log/named # chown named:named /var/log/named # chmod 750 /var/log/namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいディレクトリーとログファイルに
named_log_tSELinux コンテキストを割り当てます。semanage fcontext -a -t named_log_t "/var/log/named(/.)?"* restorecon -Rv /var/log/named
# semanage fcontext -a -t named_log_t "/var/log/named(/.)?"* # restorecon -Rv /var/log/namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND サーバーを再起動します。
systemctl restart named
# systemctl restart namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
カスタムログファイルを表示します。
tail -f /var/log/named/ipa_dns_queries.log
$ tail -f /var/log/named/ipa_dns_queries.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow