Identity Management での DNS の使用

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8 の Identity Management と統合されたドメインネームサービス(DNS)の管理

Red Hat Customer Content Services

概要

本書は、Red Hat Enterprise Linux 8 の Identity Management の DNS 設定、ゾーン、場所、および正規化を管理する方法を説明します。

第1章 Ansible Playbook を使用した IdM でのグローバル DNS 設定の管理

Red Hat Ansible Engine の dnsconfig モジュールを使用して、Identity Management (IdM) DNS のグローバル設定を構成できます。グローバル DNS 設定で定義したオプションは、すべての IdM DNS サーバーに適用されます。ただし、グローバル設定は、特定の IdM DNS ゾーンの設定よりも優先度が低くなります。

dnsconfig モジュールは以下の変数をサポートします。

  • グローバルフォワーダー (特に通信に使用する IP アドレスとポート)
  • グローバル転送ポリシー: only、first、または noneDNS 転送ポリシーの上記のタイプの詳細は、「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

DHCP (Dynamic Host Configuration Protocol) を使用するネットワークなど、環境によっては、/etc/resolv.conf ファイルへの変更が NetworkManager サービスにより元に戻されてしまう場合があります。IdM DNS のインストールプロセスでは、以下のように NetworkManager サービスも設定し、DNS 設定を永続化します。

  1. DNS インストールスクリプトを使用して、/etc/NetworkManager/conf.d/zzzz-ipa.conf NetworkManager 設定ファイルを作成し、検索の順序と DNS サーバー一覧を制御します。

    # auto-generated by IPA installer
    [main]
    dns=default
    
    [global-dns]
    searches=$DOMAIN
    
    [global-dns-domain-*]
    servers=127.0.0.1
  2. NetworkManager サービスが再読み込みされ、/etc/NetworkManager/conf.d/ ディレクトリーにある以前のファイルの設定を使用して /etc/resolv.conf ファイルを作成します。今回の場合は、zzz-ipa.conf ファイルです。
重要

/etc/resolv.conf ファイルは手動で変更しないでください。

1.2. Ansible を使用して IdM に DNS グローバルフォワーダーを存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して IdM に DNS グローバルフォワーダーを追加する方法を説明します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 7.7.9.9、IPv6 アドレスが 2001:db8::1:0 で指定されている DNS サーバーに、DNS グローバルフォワーダーが配置されるようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml
  4. ensure-presence-of-a-global-forwarder.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS にグローバルフォワーダーを追加する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure the presence of a DNS global forwarder to 7.7.9.9 and 2001:db8::1:0 on port 53 に変更します。
    3. ipadnsconfigforwarders セクションで以下を行います。

      1. 最初の ip_address の値は、グローバルフォワーダーの IPv4 アドレス (7.7.9.9) に変更します。
      2. 2 番目の ip_address の値は、グローバルフォワーダーの IPv6 アドレス (2001:db8::1:0) に変更します。
      3. port の値が 53 に設定されていることを確認します。
    4. statepresent に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the presence of a global forwarder in IdM DNS
      hosts: ipaserver
      become: true
    
      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: 7.7.9.9
            - ip_address: 2001:db8::1:0
              port: 53
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-presence-of-a-global-forwarder.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

1.3. Ansible を使用して IdM に DNS グローバルフォワーダーを存在させないようにする手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM から DNS グローバルフォワーダーを削除する方法を説明します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 8.8.6.6、IPv6 アドレスが 2001:4860:4860::8800 で指定されている DNS サーバーに DNS グローバルフォワーダーが配置されないようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml
  4. ensure-absence-of-a-global-forwarder.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS でグローバルフォワーダーを配置しない Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53 に変更します。
    3. ipadnsconfigforwarders セクションで以下を行います。

      1. 最初の ip_address の値は、グローバルフォワーダーの IPv4 アドレス (8.8.6.6) に変更します。
      2. 2 番目の ip_address の値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。
      3. port の値が 53 に設定されていることを確認します。
    4. stateabsent に設定されていることを確認します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the absence of a global forwarder in IdM DNS
      hosts: ipaserver
      become: true
    
      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: 8.8.6.6
            - ip_address: 2001:4860:4860::8800
              port: 53
          state: absent
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-absence-of-a-global-forwarder.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

1.4. 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.5. Ansible Playbook を使用して forward first ポリシーを IdM DNS グローバル設定で指定する手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM DNS のグローバル転送ポリシーが forward first に設定されるようにする方法を説明します。

forward first DNS 転送ポリシーを使用する場合には、DNS クエリーは設定済みのフォワーダーに転送されます。サーバーエラーやタイムアウトが原因でクエリーに失敗すると、BIND はインターネット上のサーバーを使用して再帰解決にフォールバックします。Forward first ポリシーはデフォルトのポリシーです。トラフィックの最適化に適しています。

前提条件

  • Ansible コントローラー (この手順を実行するホスト) に ansible-freeipa パッケージがインストールされている。詳細は、「ansible-freeipa パッケージのインストール 」を参照してください。
  • IdM 管理者パスワードが分かっている。
  • IdM 環境に統合 DNS サーバーが含まれている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (set-configuration.yml) のコピーを作成します。以下に例を示します。

    $ cp set-configuration.yml set-forward-policy-to-first.yml
  4. set-forward-policy-to-first.yml ファイルを開いて編集します。
  5. ipadnsconfig タスクセクションに以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • forward_policy 変数は first に設定します。

      元の Playbook で関連性の他の行はすべて削除します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Playbook to set global forwarding policy to first
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Set global forwarding policy to first.
        ipadnsconfig:
          ipaadmin_password: Secret123
          forward_policy: first
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file set-forward-policy-to-first.yml

関連情報

  • IdM DNS で利用可能な転送ポリシーの種類の詳細は、「IdM の DNS 転送ポリシー」を参照してください。
  • ansible-freeipa ipadnsconfig モジュールを使用した他の Ansible Playbook の例については、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルを参照してください。このファイルには ipadnsconfig 変数の定義も含まれます。
  • ipadnsconfig モジュールを使用した他の Ansible Playbook の例は /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーを参照してください。

1.6. Ansible Playbook を使用して IdM DNS でグローバルフォワーダーを無効にする手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM DNS でグローバルフォワーダーを無効にする方法を説明します。グローバルフォワーダーの無効化は、forward_policy 変数を none に設定します。

グローバルフォワーダーを無効にすると、DNS クエリーは転送されません。グローバル転送設定をゾーン別に上書きする場合にのみ、転送の無効化は有用です。このオプションは、IdM の BIND 設定で空のフォワーダー一覧を指定するのと同じです。

前提条件

  • Ansible コントローラー (この手順を実行するホスト) に ansible-freeipa パッケージがインストールされている。詳細は、「ansible-freeipa パッケージのインストール 」を参照してください。
  • IdM 管理者パスワードが分かっている。
  • IdM 環境に統合 DNS サーバーが含まれている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (disable-global-forwarders.yml) のコピーを作成します。以下に例を示します。

    $ cp disable-global-forwarders.yml disable-global-forwarders-copy.yml
  4. disable-global-forwarders-copy.yml ファイルを開いて編集します。
  5. ipadnsconfig タスクセクションに以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • forward_policy 変数を none に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Playbook to disable global DNS forwarders
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Disable global forwarders.
        ipadnsconfig:
          ipaadmin_password: Secret123
          forward_policy: none
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file disable-global-forwarders-copy.yml

関連情報

  • IdM DNS で利用可能な転送ポリシーの種類の詳細は、「IdM の DNS 転送ポリシー」を参照してください。
  • ansible-freeipa ipadnsconfig モジュールを使用した他の Ansible Playbook の例については、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルを参照してください。このファイルには ipadnsconfig 変数の定義も含まれます。
  • ipadnsconfig モジュールを使用した他の Ansible Playbook の例は /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーを参照してください。

1.7. Ansible Playbook を使用して IdM DNS で正引きおよび逆引きルックアップゾーンの同期を無効にする手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、正引きおよび逆引きルックアップゾーンが IdM DNS で同期されないようにする方法を説明します。

前提条件

  • Ansible コントローラー (この手順を実行するホスト) に ansible-freeipa パッケージがインストールされている。詳細は、「ansible-freeipa パッケージのインストール 」を参照してください。
  • IdM 管理者パスワードが分かっている。
  • IdM 環境に統合 DNS サーバーが含まれている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (disallow-reverse-sync.yml) のコピーを作成します。以下に例を示します。

    $ cp disallow-reverse-sync.yml disallow-reverse-sync-copy.yml
  4. disallow-reverse-sync-copy.yml ファイルを開きます。
  5. ipadnsconfig タスクセクションに以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • allow_sync_ptr 変数を no に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Playbook to disallow reverse record synchronization
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Disallow reverse record synchronization.
        ipadnsconfig:
          ipaadmin_password: Secret123
          allow_sync_ptr: no
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file disallow-reverse-sync-copy.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールを使用した他の Ansible Playbook の例については、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルを参照してください。このファイルには ipadnsconfig 変数の定義も含まれます。
  • ipadnsconfig モジュールを使用した他の Ansible Playbook の例は /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーを参照してください。

第2章 IdM での DNS ゾーンの管理

Identity Management (IdM) 管理者は、IdM DNS ゾーンの動作を管理できます。本章では、以下のトピックおよび手順を説明します。

前提条件

2.1. サポート対象の DNS ゾーンタイプ

Identity Management (IdM) は、2 種類の DNS ゾーン (primary および forward) をサポートします。本セクションでは、この 2 種類のゾーンについて、また 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.comidm.example.com プライマリーゾーンの DNS 正引きゾーンになります。つまり、IP アドレスが somehost.ad.example.com の IdM クライアントからクエリーが送信されると、ad.example.com IdM DNS 正引きゾーンに指定の AD ドメインコントローラーに転送されます。

2.2. IdM Web UI でのプライマリー DNS ゾーンの追加

本セクションでは、Identity Management (IdM) Web UI を使用してプライマリー DNS ゾーンを追加する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。

    図2.1 IdM DNS プライマリーゾーンの管理

    ユーザーが Network Services タブに移動し、DNS サブメニューから DNS ゾーンを選択していることを示すスクリーンショット。
  2. すべてのゾーン一覧の上部にある 追加 をクリックします。
  3. ゾーン名を指定します。

    図2.2 新しい IdM プライマリーゾーンの入力

    ユーザーが「Add DNS Zone」ポップアップウィンドウのゾーン名のフィールドに zone.example.com. などのゾーン名を入力したことを示すスクリーンショット。
  4. 追加 をクリックします。

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 に名前を指定しない場合には、スクリプトにより自動的に名前を求めるプロンプトが表示されます。

関連情報

  • ipa dnszone-add コマンドでは、さまざまなコマンドラインオプションも使用できます。このオプションの完全な一覧を表示するには、ipa dnszone-add --help コマンドを実行します。

2.4. IdM Web UI でのプライマリー DNS ゾーンの削除

本セクションでは、IdM Web UI を使用して、Identity Management (IdM) からプライマリー DNS ゾーンを削除する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。
  2. ゾーン名の横にあるチェックボックスを選択し、削除 をクリックします。

    図2.3 プライマリー DNS ゾーンの削除

    「DNS Zones」ページのスクリーンショット。この表では、DNS ゾーンが「Zone name」および「Status」別に整理されています。 "zone.example.com." の 2 番目のエントリーの横にあるチェックボックスにチェックが入っており、上部の「Delete」ボタンが強調表示されています。
  3. DNS ゾーンの削除 ダイアログウィンドウで、選択したゾーンの削除を確定します。

2.5. IdM CLI でのプライマリー DNS ゾーンの削除

本セクションでは、IdM コマンドラインインターフェース (CLI) を使用して、Identity Management (IdM) からプライマリー DNS ゾーンを削除する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  • プライマリー DNS ゾーンを削除するには、ipa dnszone-del コマンドの後に、削除するゾーンの名前を入力します。以下に例を示します。

    $ ipa dnszone-del idm.example.com

2.6. DNS 設定の優先順位

多くの DNS 設定オプションは、3 つの異なるレベルで設定できます。優先度は、レベルごとに異なります。

ゾーン固有の設定
IdM に定義されている特定のゾーンに固有の設定は、優先度が最も高いレベルです。ipa dnszone-*ipa dnsforwardzone-* コマンドを使用してゾーン固有の設定を管理できます。
グローバル 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 ゾーン属性 に、デフォルトのゾーン設定属性がありますが、これは、以下のオプションのいずれかを使用して変更できます。

ここではゾーンの実際の情報を設定するほか、DNS サーバーが start of authority (SOA) レコードエントリーを処理する方法と、DNS ネームサーバーからの記録を更新する方法を定義します。

表2.1 IdM DNS ゾーン属性

属性コマンドラインオプション説明

権威ネームサーバー

--name-server

プライマリー DNS ネームサーバーのドメイン名 (別称: SOA MNAME) を設定します。

デフォルトでは、各 IdM サーバーは SOA MNAME フィールドで自己アドバタイズします。そのため、--name-server を使用して LDAP に保存されている値は無視されます。

管理者の電子メールアドレス

--admin-email

ゾーン管理者が使用する電子メールアドレスを設定します。デフォルトでは、ホストの root アカウントになります。

SOA serial

--serial

SOA レコードにシリアル番号を設定します。IdM ではバージョン番号が自動的に設定され、この番号のユーザーによる変更は想定されていません。

SOA refresh

--refresh

セカンダリー DNS サーバーがプライマリ DNS サーバーから更新を要求するまでの待機時間を秒単位で設定します。

SOA retry

--retry

失敗した更新操作を再試行するまでに待機する時間を秒単位で設定します。

SOA expire

--expire

セカンダリー DNS サーバーが操作の試行を終了するまでに、更新操作を実行する時間を秒単位で設定します。

SOA minimum

--minimum

RFC 2308 に準拠し、ネガティブキャッシュの TTL (TTL) 値を秒単位で設定します。

SOA time to live

--ttl

ゾーン apex のレコードの TTL を秒単位で設定します。たとえば、example.com ゾーンでは、名前が example.com の全レコード (A、NS または SOA) は設定されますが、test.example.com などの他のドメイン名には影響はありません。

デフォルトの TTL

--default-ttl

これまでに個別の Time To Live (TTL) 値が設定されたことのないゾーンで、すべての値のネガティブキャッシュのデフォルト TTL を秒単位で設定します。変更を有効にするには、すべての IdM DNS サーバーで named-pkcs11 サービスを再起動する必要があります。

BIND 更新ポリシー

--update-policy

DNS ゾーンでクライアントに許可されるパーミッションを設定します。

Dynamic update

--dynamic-update=TRUE|FALSE

クライアントの DNS レコードへの動的更新を有効にします。

false に設定すると、IdM クライアントマシンは IP アドレスを追加または更新できなくなる点に注意してください。

Allow transfer

--allow-transfer=string

指定のゾーンを転送できる IP アドレスまたはネットワーク名のセミコロン区切りの一覧を指定します。

デフォルトでは、ゾーン転送は無効です。デフォルトの --allow-transfer 値は none です。

Allow query

--allow-query

DNS クエリーを発行できる IP アドレスまたはネットワーク名のセミコロン区切りの一覧を指定します。

Allow PTR sync

--allow-sync-ptr=1|0

ゾーンの A または AAAA レコード (正引きレコード) が自動的に PTR (逆引き) レコードと同期されるかどうかを設定します。

Zone forwarder

--forwarder=IP_address

DNS ゾーン向けに特別に設定されたフォワーダーを指定します。これは、IdM ドメインで使用されるグローバルフォワーダーとは別のものです。

複数のフォワーダーを指定する場愛には、オプションを複数回使用します。

Forward policy

--forward-policy=none|only|first

転送ポリシーを指定します。サポート対象のポリシーに関する情報は、「IdM での DNS 転送ポリシー」を参照してください。

2.8. IdM Web UI でのプライマリー DNS ゾーン設定の編集

本セクションでは、IdM Web UI を使用して、プライマリー Identity Management (IdM) DNS の設定属性を編集する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。

    図2.4 DNS プライマリーゾーンの管理

    ユーザーが Network Services タブに移動し、DNS サブメニューから DNS ゾーンを選択していることを示すスクリーンショット。
  2. DNS ゾーン セクションで、全ゾーンの一覧にあるゾーン名をクリックし、DNS ゾーンページを開きます。

    図2.5 プライマリーゾーンの編集

    DNS ゾーンページの左側にある DNS ゾーンのエントリーが強調表示されているスクリーンショット
  3. Settings を クリックします。

    図2.6 プライマリーゾーンの編集ページの設定タブ

    プライマリーゾーンの編集ページの設定タブが強調表示されているスクリーンショット
  4. 必要に応じてゾーン設定を変更します。

    利用可能な設定の詳細は、「IdM DNS ゾーン属性」を参照してください。

  5. Save をクリックして、新しい設定を確定します。

    注記

    ゾーンのデフォルトの Time To Live (TTL) を変更する場愛には、全 IdM DNS サーバーでnamed-pkcs11 サービスを再起動して、変更を適用します。他の全設定は、すぐに自動的に有効になります。

2.9. IdM CLI でのプライマリー DNS ゾーンの設定の編集

本セクションでは、Identity Management (IdM) コマンドラインインターフェース (CLI) を使用して、プライマリー DNS ゾーンの設定を編集する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  • 既存のプライマリー DNS ゾーンを変更するには、ipa dnszone-mod コマンドを使用します。たとえば、失敗した更新操作を再試行するまでに待機する時間を 1800 秒に設定します。

    $ ipa dnszone-mod --retry 1800

    利用可能な設定と、サポート対象の CLI オプションの詳細は、「IdM DNS ゾーン属性」を参照してください。

    特定の設定で、変更する DNS ゾーンエントリーに値が指定されていない場合は、ipa dnszone-mod コマンドで値を追加します。設定に値がない場合は、このコマンドを実行すると、指定の値に上書きされます。

    注記

    ゾーンのデフォルトの Time To Live (TTL) を変更する場愛には、全 IdM DNS サーバーでnamed-pkcs11 サービスを再起動して、変更を適用します。他の全設定は、すぐに自動的に有効になります。

関連情報

  • ipa dnszone-mod とそのオプションの詳細は、ipa dnszone-mod --help コマンドを実行します。

2.10. IdM でのゾーン転送

本セクションでは、統合 DNS がある Identity Management (IdM) デプロイメントで、ゾーン転送がどのように機能するかを説明します。

ネームサーバーは、ゾーンの権威データを保持します。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 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。
  2. Settings を クリックします。
  3. Allow transfer で、ゾーンレコードを転送するネームサーバーを指定します。

    図2.7 ゾーン転送の有効化

    「Allow transfer」のポップアップウィンドウのスクリーンショット。それぞれに異なる IP アドレスを持つサーバーに対して 3 つのフィールドがあります。「Add」ボタンは、ウィンドウの下部にあります。
  4. DNS ゾーンページの上部にある Save をクリックして、新しい設定を確定します。

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

検証手順

  1. ゾーン転送が有効な DNS サーバーの 1 つに SSH 接続します。

    $ ssh 192.0.2.1
  2. dig ユーティリティーなどのツールを使用して、IdM DNS ゾーンを転送します。

    # dig @ipa-server zone_name AXFR

コマンドでエラーが返されない場合は、zone_name のゾーン転送が正常に有効化されています。

2.13. 関連情報

第3章 Ansible Playbook を使用した IdM DNS ゾーンの管理

Identity Management (IdM) 管理者は、ansible-freeipa パッケージに含まれる dnszone モジュールを使用して IdM DNS ゾーンの動作を管理できます。本章では、以下のトピックおよび手順を説明します。

前提条件

3.1. サポート対象の DNS ゾーンタイプ

Identity Management (IdM) は、2 種類の DNS ゾーン (primary および forward) をサポートします。本セクションでは、この 2 種類のゾーンについて、また 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.comidm.example.com プライマリーゾーンの DNS 正引きゾーンになります。つまり、IP アドレスが somehost.ad.example.com の IdM クライアントからクエリーが送信されると、ad.example.com IdM DNS 正引きゾーンに指定の AD ドメインコントローラーに転送されます。

3.2. プライマリー IdM DNS ゾーンの設定属性

Identity Management (IdM) は、更新期間、転送設定、キャッシュ設定など、特定のデフォルト設定を指定して新しいゾーンを作成します。IdM DNS ゾーン属性 に、デフォルトのゾーン設定属性がありますが、これは、以下のオプションのいずれかを使用して変更できます。

ここではゾーンの実際の情報を設定するほか、DNS サーバーが start of authority (SOA) レコードエントリーを処理する方法と、DNS ネームサーバーからの記録を更新する方法を定義します。

表3.1 IdM DNS ゾーン属性

属性ansible-freeipa 変数説明

権威ネームサーバー

name_server

プライマリー DNS ネームサーバーのドメイン名 (別称: SOA MNAME) を設定します。

デフォルトでは、各 IdM サーバーは SOA MNAME フィールドで自己アドバタイズします。そのため、--name-server を使用して LDAP に保存されている値は無視されます。

管理者の電子メールアドレス

admin_email

ゾーン管理者が使用する電子メールアドレスを設定します。デフォルトでは、ホストの root アカウントになります。

SOA serial

serial

SOA レコードにシリアル番号を設定します。IdM ではバージョン番号が自動的に設定され、この番号のユーザーによる変更は想定されていません。

SOA refresh

refresh

セカンダリー DNS サーバーがプライマリ DNS サーバーから更新を要求するまでの待機時間を秒単位で設定します。

SOA retry

retry

失敗した更新操作を再試行するまでに待機する時間を秒単位で設定します。

SOA expire

expire

セカンダリー DNS サーバーが操作の試行を終了するまでに、更新操作を実行する時間を秒単位で設定します。

SOA minimum

minimum

RFC 2308 に準拠し、ネガティブキャッシュの TTL (TTL) 値を秒単位で設定します。

SOA time to live

ttl

ゾーン apex のレコードの TTL を秒単位で設定します。たとえば、example.com ゾーンでは、名前が example.com の全レコード (A、NS または SOA) は設定されますが、test.example.com などの他のドメイン名には影響はありません。

デフォルトの TTL

default_ttl

これまでに個別の Time To Live (TTL) 値が設定されたことのないゾーンで、すべての値のネガティブキャッシュのデフォルト TTL を秒単位で設定します。変更を有効にするには、すべての IdM DNS サーバーで named-pkcs11 サービスを再起動する必要があります。

BIND 更新ポリシー

update_policy

DNS ゾーンでクライアントに許可されるパーミッションを設定します。

Dynamic update

dynamic_update=TRUE|FALSE

クライアントの DNS レコードへの動的更新を有効にします。

false に設定すると、IdM クライアントマシンは IP アドレスを追加または更新できなくなる点に注意してください。

Allow transfer

allow_transfer=string

指定のゾーンを転送できる IP アドレスまたはネットワーク名のセミコロン区切りの一覧を指定します。

デフォルトでは、ゾーン転送は無効です。allow_transfer のデフォルト値は none です。

Allow query

allow_query

DNS クエリーを発行できる IP アドレスまたはネットワーク名のセミコロン区切りの一覧を指定します。

Allow PTR sync

allow_sync_ptr=1|0

ゾーンの A または AAAA レコード (正引きレコード) が自動的に PTR (逆引き) レコードと同期されるかどうかを設定します。

Zone forwarder

forwarder=IP_address

DNS ゾーン向けに特別に設定されたフォワーダーを指定します。これは、IdM ドメインで使用されるグローバルフォワーダーとは別のものです。

複数のフォワーダーを指定する場愛には、オプションを複数回使用します。

Forward policy

forward_policy=none|only|first

転送ポリシーを指定します。サポート対象のポリシーに関する情報は、「IdM での DNS 転送ポリシー」を参照してください。

関連情報

  • ansible-freeipa ipadnszone モジュールの他の定義は、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnszone.md Markdown ファイルで確認できます。

3.3. Ansible を使用した IdM DNS でのプライマリーゾーンの作成

本セクションでは、Identity Management (IdM) の管理者が Ansible Playbook を使用して、プライマリー DNS ゾーンを存在させる手順を説明します。以下の手順で使用する例では、IdM 管理者は zone.idm.example.com の DNS ゾーンを追加します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイルのコピー (dnszone-present.yml) を作成します。以下に例を示します。

    $ cp dnszone-present.yml dnszone-present-copy.yml
  4. dnszone-present-copy.yml ファイルを開いて編集します。
  5. ipadnszone タスクセクションに以下の変数を設定してファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • zone_name 変数は zone.idm.example.com に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure dnszone present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure zone is present.
        ipadnszone:
          ipaadmin_password: Secret123
          zone_name: zone.idm.example.com
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file dnszone-present-copy.yml

関連情報

  • DNS ゾーンの詳細は、「サポート対象の DNS ゾーンタイプ」を参照してください。
  • ansible-freeipa ipadnszone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnszone.md Markdown ファイルで確認できます。このファイルには ipadnszone 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーで、ipadnszone モジュール向けの Ansible Playbook のサンプルを確認できます。

3.4. Ansible Playbook を使用して、変数が複数ある IdM にプライマリー DNS ゾーンを存在させる手順

本セクションでは、Identity Management (IdM) の管理者が Ansible Playbook を使用して、プライマリー DNS ゾーンを存在させる手順を説明します。以下の手順で使用する例では、IdM 管理者は zone.idm.example.com の DNS ゾーンを追加します。Ansible Playbook は、ゾーンのパラメーターを複数設定します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイルのコピー (dnszone-all-params.yml) を作成します。以下に例を示します。

    $ cp dnszone-all-params.yml dnszone-all-params-copy.yml
  4. dnszone-all-params-copy.yml ファイルを開いて編集します。
  5. 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 署名を許可します。
    • allow_transfer 変数は、ゾーン内のセカンダリーネームサーバーの IP アドレスに設定します。
    • allow_query 変数は、クエリーを発行できる IP アドレスまたはネットワークに設定します。
    • forwarders 変数は、グローバルフォワーダー の IP アドレスに設定します。
    • serial 変数は SOA レコードのシリアル番号に設定します。
    • ゾーン内の DNS レコードの refreshretryexpireminimumttl および default_ttl の値を定義します。
    • nsec3param_rec 変数を使用して、ゾーンの NSEC3PARAM レコードを定義します。
    • skip_overlap_check 変数は、true に設定して、既存のゾーンと重複していても DNS を強制的に作成します。
    • skip_nameserver_check は、true に設定して、ネームサーバーが解決できない場合でも DNS ゾーンを強制的に作成します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure dnszone present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure zone is present.
        ipadnszone:
          ipaadmin_password: Secret123
          zone_name: zone.idm.example.com
          allow_sync_ptr: true
          dynamic_update: true
          dnssec: true
          allow_transfer:
            - 1.1.1.1
            - 2.2.2.2
          allow_query:
            - 1.1.1.1
            - 2.2.2.2
          forwarders:
            - ip_address: 8.8.8.8
            - ip_address: 8.8.4.4
              port: 52
          serial: 1234
          refresh: 3600
          retry: 900
          expire: 1209600
          minimum: 3600
          ttl: 60
          default_ttl: 90
          name_server: server.idm.example.com.
          admin_email: admin.admin@idm.example.com
          nsec3param_rec: "1 7 100 0123456789abcdef"
          skip_overlap_check: true
          skip_nameserver_check: true
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file dnszone-all-params-copy.yml

関連情報

  • DNS ゾーンの詳細は、「サポート対象の DNS ゾーンタイプ」を参照してください。
  • IdM で設定できる DNS ゾーン属性の詳細は、「プライマリー IdM DNS ゾーンの設定属性」を参照してください。
  • ansible-freeipa ipadnszone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnszone.md Markdown ファイルで確認できます。このファイルには ipadnszone 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーで、ipadnszone モジュール向けの Ansible Playbook のサンプルを確認できます。

3.5. IP アドレスが指定されている場合に Ansible Playbook を使用して逆引き DNS ルックアップのゾーンを存在させる手順

本セクションでは、Identity Management (IdM) の管理者が Ansible Playbook を使用して、逆引き DNS ゾーンを存在させる手順を説明します。以下の手順で使用する例では、IdM 管理者は、IdM ホストの IP アドレスおよび接頭辞長を使用して、逆引き DNS ルックアップゾーンを追加します。

name_from_ip 変数を使用して DNS サーバーの IP アドレスの接頭辞の長さを指定すると、ゾーン名を制御できます。接頭辞の長さを指定しない場合には、システムが DNS サーバーにゾーンに関するクエリーを出し、192.168.1.2name_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-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイルのコピー (dnszone-reverse-from-ip.yml) を作成します。以下に例を示します。

    $ cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.yml
  4. dnszone-reverse-from-ip-copy.yml ファイルを開いて編集します。
  5. ipadnszone タスクセクションに以下の変数を設定してファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • name_from_ip 変数は IdM ネームサーバーの IP に設定し、接頭辞の長さを指定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

      ---
      - name: Ensure dnszone present
        hosts: ipaserver
        become: true
      
        tasks:
        - name: Ensure zone for reverse DNS lookup is present.
          ipadnszone:
            ipaadmin_password: Secret123
            name_from_ip: 192.168.1.2/24
            state: present
          register: result
        - name: Display inferred zone name.
          debug:
            msg: "Zone name: {{ result.dnszone.name }}"

    この Playbook は、IP アドレス 192.168.1.2 と接頭辞長 24 をもとに、逆引き DNS ルックアップのゾーンを作成します。次に、Playbook は生成されたゾーン名を表示します。

  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file dnszone-reverse-from-ip-copy.yml

関連情報

  • DNS ゾーンの詳細は、「サポート対象の DNS ゾーンタイプ」を参照してください。
  • ansible-freeipa ipadnszone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnszone.md Markdown ファイルで確認できます。このファイルには ipadnszone 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnszone ディレクトリーで、ipadnszone モジュール向けの Ansible Playbook のサンプルを確認できます。

第4章 IdM での DNS の場所の管理

Identity Management (IdM) 管理者は、IdM Web UI および IdM コマンドラインインターフェース (CLI) を使用して Identity Management (IdM) の DNS の場所を管理できます。本章では、以下のトピックおよび手順を説明します。

4.1. DNS ベースのサービス検出

DNS ベースのサービス検出は、クライアントが DNS プロトコルを使用するプロセスで、LDAPKerberos など、特定のサービスを提供するネットワークでサーバーを見つけ出します。一般的な操作の 1 つとして、クライアントが最寄りのネットワークインフラストラクチャー内にある認証サーバーを特定できるようにすることが挙げられます。理由は、スループットが向上してネットワークレイテンシーが短縮されるので全体的なコスト削減を図ることができるためです。

サービス検出の主な利点は以下のとおりです。

  • 近くにあるサーバーの名前を明示的に設定する必要がない。
  • DNS サーバーをポリシーの中央プロバイダーとして使用する。同じ DNS サーバーを使用するクライアントは、サービスプロバイダーと優先順序に関する同じポリシーにアクセスできます。

Identity Management (IdM) ドメインには、LDAPKerberos、およびその他のサービスに 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.

出力には、以下の情報が含まれます。

  • 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.

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 はラウンドトリップタイム (RTT) メトリックを使用して、最寄りの 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 管理者としてログイン)。

手順

  1. IPA Server タブを開きます。
  2. Topology サブタブを選択します。
  3. ナビゲーションバーの IPA の場所 をクリックします。
  4. ロケーション一覧の上部にある 追加 をクリックします。
  5. ロケーション名を入力します。
  6. 追加 ボタンをクリックして場所を保存します。
  7. 必要に応じて、手順を繰り返して、さらに場所を追加します。

関連情報

4.5. IdM CLI を使用した DNS の場所の作成

DNS の場所を使用すると、Identity Management (IdM) クライアントとサーバー間の通信速度を増すことができます。本セクションでは、IdM コマンドラインインターフェース (CLI) で ipa location-add コマンドを使用して、DNS の場所を作成する方法を説明します。

前提条件

  • IdM デプロイメントに DNS が統合されている。
  • IdM で DNS の場所を作成するパーミッションがある。(例: IdM 管理者としてログイン)。

手順

  1. たとえば、新しい場所 germany を作成するには、以下を入力します。

    $ ipa location-add germany
    ----------------------------
    Added IPA location "germany"
    ----------------------------
      Location name: germany
  2. 必要に応じて、手順を繰り返して、さらに場所を追加します。

関連情報

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 の場所 を作成している。

手順

  1. IPA Server タブを開きます。
  2. Topology サブタブを選択します。
  3. ナビゲーションにある IPA Servers をクリックします。
  4. IdM サーバー名をクリックします。
  5. DNS の場所を選択し、必要に応じてサービスの加重を設定します。

    図4.1 DNS の場所へのサーバーの割り当て

    DNS の場所割り当てサーバー
  6. 保存 をクリックします。
  7. 前の手順で DNS の場所を割り当てたホストのコマンドラインインターフェース (CLI) で、named-pkcs11 サービスを再起動します。

    [root@idmserver-01 ~]# systemctl restart named-pkcs11
  8. オプション: この手順を繰り返して、他の 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 の場所を作成 している。

手順

  1. オプション: 設定済みの DNS の場所をすべて表示します。

    [root@server ~]# ipa location-find
    -----------------------
    2 IPA locations matched
    -----------------------
    Location name: australia
    Location name: germany
    -----------------------------
    Number of entries returned: 2
    -----------------------------
  2. サーバーを DNS の場所に割り当てます。たとえば、場所 germanyidmserver-01.idm.example.com サーバーに割り当てるには、以下を実行します。

    # ipa server-mod idmserver-01.idm.example.com --location=germany
    ipa: WARNING: Service named-pkcs11.service requires restart on IPA server
    idmserver-01.idm.example.com to apply configuration changes.
    --------------------------------------------------
    Modified IPA server "idmserver-01.idm.example.com"
    --------------------------------------------------
    Servername: idmserver-01.idm.example.com
    Min domain level: 0
    Max domain level: 1
    Location: germany
    Enabled server roles: DNS server, NTP server
  3. 前の手順で DNS の場所を割り当てたホストで named-pkcs11 サービスを再起動します。

    # systemctl restart named-pkcs11
  4. オプション: この手順を繰り返して、他の 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.50.0.1
nameserver 10.50.0.3

オスロのクライアント:

nameserver 10.30.0.1

ベルリンのクライアント:

nameserver 10.30.0.1

各 DNS サーバーが IdM の場所に割り当てられている場合に、クライアントはその場所にある IdM サーバーを使用します。

4.9. 関連情報

第5章 IdM での DNS の場所の管理

Identity Management (IdM) 管理者は、ansible-freeipa パッケージで利用可能な location モジュールを使用して IdM DNS の場所を管理できます。本章では、以下のトピックおよび手順を説明します。

5.1. IdM 管理用の Ansible コントロールノードの準備

Identity Management (IdM) を管理するシステム管理者には、Ansible を使用して、ホームディレクトリー (~/MyPlaybooks) の Ansible Playbook 専用のサブディレクトリーを作成することが推奨されます。IdM 管理向けに Ansible を使用するには、/usr/share/doc/ansible-freeipa/*/usr/share/doc/rhel-system-roles/* ディレクトリーおよびサブディレクトリーから ~/MyPlaybooks ディレクトリーにサンプル Ansible Playbook をコピーして調整します。この方法には、以下の利点があります。

  • すべての Playbook を 1 カ所で見つけることがでる。
  • root 権限を呼び出さずに Playbook を実行できる。

~/MyPlaybooks/ ディレクトリーにインベントリーファイルも追加することが推奨されます。

前提条件

  • コントロールノードで DNS 名前解決が適切に機能し、管理ノード (server.idm.example.com および replica.idm.example.com) に ping できる。
  • IdM 管理者 のパスワードを知っている。
  • 管理対象ノードの root パスワードを把握している。

手順

  1. Ansible 設定および Playbook のディレクトリーをホームディレクトリーに作成します。

    $ mkdir ~/MyPlaybooks/
  2. ~/MyPlaybooks/ ディレクトリーに移動します。

    $ cd ~/MyPlaybooks
  3. ~/MyPlaybooks/ansible.cfg ファイルを以下の内容で作成します。

    [defaults]
    inventory = /home/your_username/MyPlaybooks/inventory
    
    [privilege_escalation]
    become=True
  4. ~/MyPlaybooks/inventory ファイルを以下の内容で作成します。

    [eu]
    server.idm.example.com
    
    [us]
    replica.idm.example.com
    
    [ipaserver:children]
    eu
    us

    この設定は、これらの場所にあるホストの 2 つのホストグループ (euus) を定義します。さらに、この設定は、eu および us グループのすべてのホストを含む ipaserver ホストグループを定義します。

  5. (必要に応じて) SSH 公開鍵および秘密鍵を作成します。

    $ ssh-keygen
  6. 各管理対象ノードの IdM admin アカウントに SSH 公開鍵をコピーします。

    $ ssh-copy-id admin@server.idm.example.com
    $ ssh-copy-id admin@replica.idm.example.com

    これらのコマンドでは、IdM 管理者 パスワードを入力します。

  7. 各管理対象ノードの root アカウントに SSH 公開鍵をコピーします。

    $ ssh-copy-id root@server.idm.example.com
    $ ssh-copy-id root@replica.idm.example.com

    これらのコマンドでは、該当する root パスワードを入力します。

5.2. DNS ベースのサービス検出

DNS ベースのサービス検出は、クライアントが DNS プロトコルを使用するプロセスで、LDAPKerberos など、特定のサービスを提供するネットワークでサーバーを見つけ出します。一般的な操作の 1 つとして、クライアントが最寄りのネットワークインフラストラクチャー内にある認証サーバーを特定できるようにすることが挙げられます。理由は、スループットが向上してネットワークレイテンシーが短縮されるので全体的なコスト削減を図ることができるためです。

サービス検出の主な利点は以下のとおりです。

  • 近くにあるサーバーの名前を明示的に設定する必要がない。
  • DNS サーバーをポリシーの中央プロバイダーとして使用する。同じ DNS サーバーを使用するクライアントは、サービスプロバイダーと優先順序に関する同じポリシーにアクセスできます。

Identity Management (IdM) ドメインには、LDAPKerberos、およびその他のサービスに 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.

出力には、以下の情報が含まれます。

  • 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.

IdM DNS サーバーは、ローカルサーバーを優先する DNS の場所固有の SRV レコードを参照する DNS エイリアス (CNAME) を自動的に返します。この CNAME レコードは、出力の最初の行に表示されます。上記の例では、idmserver-01.idm.example.com ホストの優先度の値が最も小さいため、優先順位が高くなります。idmserver-02.idm.example.com の優先度の値が高く、推奨されるホストが使用できない場合にバックアップとしてのみ使用されます。

5.3. 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 はラウンドトリップタイム (RTT) メトリックを使用して、最寄りの IdM DNS サーバーを自動的に選択します。通常、IdM DNS サーバーを使用するクライアントが、最寄りの DNS の場所のレコードを取得し、最寄りの DNS サーバーの最適なセットを使用するようになります。

5.4. DNS の Time to live (TTL)

クライアントは、ゾーンの設定に指定された期間の DNS リソースレコードをキャッシュできます。このキャッシュにより、クライアントは Time to Live (TTL) 値の有効期限が切れるまで変更を受け取れない場合があります。Identity Management (IdM) のデフォルトの TTL 値は 1 日 です。

クライアントコンピューターがサイト間でローミングする場合には、IdM DNS ゾーンの TTL 値を調整する必要があります。この値は、クライアントがサイト間のローミングに必要とする時間よりも低い値に設定します。これにより、別のサイトに再接続する前にクライアントでキャッシュされた DNS エントリーが期限切れになり、DNS サーバーに対してクエリーを実行し、場所固有の SRV レコードを更新します。

関連情報

5.5. Ansible を使用して IdM の場所を追加する手順

Identity Management (IdM) のシステム管理者は、クライアントが最寄りのネットワークインフラストラクチャーで認証サーバーを特定できるように IdM DNS の場所を設定できます。

以下の手順では、Ansible Playbook を使用して IdM に DNS の場所を追加する方法を説明します。この例では、DNS の場所 germany が IdM に存在することを確認する方法を説明します。IdM に DNS の場所を追加して、ローカルの IdM クライアントがサーバーの応答時間を短縮できるように、特定の IdM サーバーをこの場所に割り当てることができます。

前提条件

手順

  1. ~/ MyPlaybooks/ ディレクトリーに移動します。

    $ cd ~/MyPlaybooks/
  2. /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
  3. Ansible Playbook の location-present-copy.yml ファイルを開いて編集します。
  4. ipalocation タスクセクションに以下の変数を設定して、ファイルを調整します。

    • 使用しているユースケースに合わせて、タスクの 名前 を調節します。
    • ipaadmin_password 変数は IdM 管理者のパスワードに設定します。
    • name 変数は、場所の名前に設定します。

    以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: location present example
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure that the "germany" location is present
        ipalocation:
          ipaadmin_password: Secret123
          name: germany
  5. ファイルを保存します。
  6. Playbook ファイルとインベントリーファイルを指定して Ansible Playbook を実行します。

    $ ansible-playbook -v -i inventory location-present-copy.yml

関連情報

5.6. Ansible を使用して IdM の場所を削除する手順

Identity Management (IdM) のシステム管理者は、クライアントが最寄りのネットワークインフラストラクチャーで認証サーバーを特定できるように IdM DNS の場所を設定できます。

以下の手順では、Ansible Playbook を使用して、IdM から DNS の場所を削除する方法を説明します。この例では、DNS の場所 (germany) が IdM から削除されていることを確認する方法を説明します。DNS の場所を削除すると、その場所に、特定の IdM サーバーを割り当てられず、ローカルの IdM クライアントでその場所を使用できなくなります。

前提条件

  • IdM 管理者パスワードが分かっている。
  • Ansible コントロールノードに ansible-freeipa パッケージがインストールされている。
  • この例では、~/ MyPlaybooks/ ディレクトリーを中央サイトとして 作成して設定 し、サンプル Playbook のコピーを保存することを前提とします。

手順

  1. ~/ MyPlaybooks/ ディレクトリーに移動します。

    $ cd ~/MyPlaybooks/
  2. /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
  3. Ansible Playbook ファイル (location-absent-copy.yml) を開きます。
  4. ipalocation タスクセクションに以下の変数を設定して、ファイルを調整します。

    • 使用しているユースケースに合わせて、タスクの 名前 を調節します。
    • ipaadmin_password 変数は IdM 管理者のパスワードに設定します。
    • name 変数は DNS の場所の名前に設定します。
    • state 変数は absent に設定されていることを確認します。

    以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: location absent example
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure that the "germany" location is absent
        ipalocation:
          ipaadmin_password: Secret123
          name: germany
          state: absent
  5. ファイルを保存します。
  6. Playbook ファイルとインベントリーファイルを指定して Ansible Playbook を実行します。

    $ ansible-playbook -v -i inventory location-absent-copy.yml

5.7. 関連情報

  • ansible-freeipa ipalocation モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-location.md ファイルで確認できます。このファイルには、ipalocation 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/location ディレクトリーで、ipalocation モジュール向けの Ansible Playbook のサンプルを確認できます。

第6章 IdM での DNS 転送の管理

以下の手順では、Identity Management (IdM) Web UI、IdM CLI、および Ansible で DNS グローバルフォワーダーおよび 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) アドレスを知っている。

手順

  1. IdM Web UI で Network ServicesDNS Global ConfigurationDNS の順に選択します。

    DNS メニューからの DNS 正引きゾーンの選択
  2. DNS Global Configuration セクションで、Add をクリックします。

    追加ボタンの選択
  3. 転送された DNS クエリーを受信する DNS サーバーの IP アドレスを指定します。

    グローバルフォワーダーの IP アドレスの入力
  4. Forward policy を選択します。

    DNS forward ポリシーの選択および DNS グローバル設定の保存
  5. ウィンドウの上部にある Save をクリックします。

検証手順

  1. Network ServicesDNS Global ConfigurationDNS の順に選択します。

    IdM Web UI での DNS グローバル設定の選択
  2. 指定した転送ポリシーで、グローバルフォワーダーが IdM Web UI で存在し、有効化されていることを確認します。

    グローバルフォワーダーの存在の確認

6.4. CLI でのグローバルフォワーダーの追加

本セクションでは、コマンドラインインターフェース (CLI) からグローバル DNS フォワーダーを追加する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。
  • クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。

手順

  • ipa dnsconfig-mod コマンドを使用して、新しいグローバルフォワーダーを追加します。--forwarder オプションで DNS フォワーダーの IP アドレスを指定します。

    [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.com

検証手順

  • dnsconfig-show コマンドを使用して、グローバルフォワーダーを表示します。

    [user@server ~]$ ipa dnsconfig-show
      Global forwarders: 10.10.0.1
      IPA DNS servers: server.example.com

6.5. IdM Web UI での DNS 正引きゾーンの追加

本セクションでは、Identity Management (IdM) サーバーで DNS 正引きゾーンを追加する方法を説明します。

重要

絶対に必要な場合を除き、正引きゾーンは使用しないでください。正引きゾーンは、標準的な解決策ではないので、正引きゾーンを使用すると予期しない動作が発生する可能性があります。正引きゾーンを使用する必要がある場合は、グローバル転送設定が優先されるように、正引きゾーンの使用を制限します。

新しい DNS ゾーンを作成する場合には、Red Hat は、ネームサーバー (NS )レコードで標準の DNS 委譲を常に使用し、正引きゾーンを回避することを推奨します。多くの場合、グローバルフォワーダーを使用するだけで十分なため、正引きゾーンは必要ありません。

前提条件

  • IdM 管理者として IdM WebUI にログインしている。
  • クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。

手順

  1. IdM Web UI で Network ServicesDNS Forward ZonesDNS の順に選択します。

    DNS メニューからの DNS 正引きゾーンの選択
  2. DNS Forward Zones セクションで、Add をクリックします。

    追加ボタンの選択
  3. Add DNS forward zone ウィンドウで、正引きゾーン名を指定します。

    新しい正引きゾーン名の入力
  4. Add ボタンをクリックして、転送要求を受信する DNS サーバーの IP アドレスを指定します。正引きゾーンごとに複数のフォワーダーを指定できます。

    フォワーダー DNS サーバーの IP アドレスの指定
  5. Forward policy を選択します。

    Forward ポリシーの選択
  6. ウィンドウの下部にある Add をクリックして、新しい正引きゾーンを追加します。

検証手順

  1. IdM Web UI で Network ServicesDNS Forward ZonesDNS の順に選択します。

    DNS メニューからの DNS 正引きゾーンの選択
  2. 指定したフォワーダーおよび転送ポリシーで、正引きゾーンが IdM Web UI で存在し、有効化されていることを確認します。

    新しい正引きゾーンが存在することの確認

6.6. CLI での DNS 正引きゾーンの追加

本セクションでは、コマンドラインインターフェース (CLI) から DNS 正引きゾーンを追加する方法を説明します。

重要

絶対に必要な場合を除き、正引きゾーンは使用しないでください。正引きゾーンは、標準的な解決策ではないので、正引きゾーンを使用すると予期しない動作が発生する可能性があります。正引きゾーンを使用する必要がある場合は、グローバル転送設定が優先されるように、正引きゾーンの使用を制限します。

新しい DNS ゾーンを作成する場合には、Red Hat は、ネームサーバー (NS )レコードで標準の DNS 委譲を常に使用し、正引きゾーンを回避することを推奨します。多くの場合、グローバルフォワーダーを使用するだけで十分なため、正引きゾーンは必要ありません。

前提条件

  • IdM 管理者としてログインしている。
  • クエリーを転送する DNS サーバーのインターネットプロトコル (IP) アドレスを知っている。

手順

  • dnsforwardzone-add コマンドを使用して、新しい正引きゾーンを追加します。転送ポリシーが none ではない場合には、--forwarder オプションを使用して最低でもフォワーダーを 1 つ指定し、--forward-policy オプションで転送ポリシーを指定します。

    [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: first

検証手順

  • dnsforwardzone-show コマンドを使用して、作成した DNS 正引きゾーンを表示します。

    [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: first

6.7. Ansible を使用した IdM での DNS グローバルフォワーダーの確立

本セクションでは、Identity Management (IdM) の管理者が Ansible Playbook を使用して IdM で DNS グローバルフォワーダーを確立する方法を説明します。

以下の手順の例では、IdM 管理者はポート 53 にインターネットプロトコル (IP) v4 アドレスが 8.8.6.6、IPv6 アドレスが 2001:4860:4860::8800 で指定されている DNS サーバーに DNS グローバルフォワーダーを作成します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイルのコピー (set-configuration.yml) を作成します。以下に例を示します。

    $ cp set-configuration.yml establish-global-forwarder.yml
  4. establish-global-forwarder.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS でグローバルフォワーダーを確立する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameCreate a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 に変更します。
    3. ipadnsconfigforwarders セクションで以下を行います。

      1. 最初の ip_address の値は、グローバルフォワーダーの IPv4 アドレス (8.8.6.6) に変更します。
      2. 2 番目の ip_address の値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。
      3. port の値が 53 に設定されていることを確認します。
    4. forward_policyfirst に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to establish a global forwarder in IdM DNS
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Create a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800
        ipadnsconfig:
          forwarders:
            - ip_address: 8.8.6.6
            - ip_address: 2001:4860:4860::8800
              port: 53
          forward_policy: first
          allow_sync_ptr: yes
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file establish-global-forwarder.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

6.8. Ansible を使用して IdM に DNS グローバルフォワーダーを存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して IdM に DNS グローバルフォワーダーを追加する方法を説明します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 7.7.9.9、IPv6 アドレスが 2001:db8::1:0 で指定されている DNS サーバーに、DNS グローバルフォワーダーが配置されるようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml
  4. ensure-presence-of-a-global-forwarder.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS にグローバルフォワーダーを追加する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure the presence of a DNS global forwarder to 7.7.9.9 and 2001:db8::1:0 on port 53 に変更します。
    3. ipadnsconfigforwarders セクションで以下を行います。

      1. 最初の ip_address の値は、グローバルフォワーダーの IPv4 アドレス (7.7.9.9) に変更します。
      2. 2 番目の ip_address の値は、グローバルフォワーダーの IPv6 アドレス (2001:db8::1:0) に変更します。
      3. port の値が 53 に設定されていることを確認します。
    4. statepresent に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the presence of a global forwarder in IdM DNS
      hosts: ipaserver
      become: true
    
      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: 7.7.9.9
            - ip_address: 2001:db8::1:0
              port: 53
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-presence-of-a-global-forwarder.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

6.9. Ansible を使用して IdM に DNS グローバルフォワーダーを存在させないようにする手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM から DNS グローバルフォワーダーを削除する方法を説明します。以下の例では、IdM 管理者は、ポート 53 にインターネットプロトコル (IP) v4 アドレスが 8.8.6.6、IPv6 アドレスが 2001:4860:4860::8800 で指定されている DNS サーバーに DNS グローバルフォワーダーが配置されないようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml
  4. ensure-absence-of-a-global-forwarder.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS でグローバルフォワーダーを配置しない Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53 に変更します。
    3. ipadnsconfigforwarders セクションで以下を行います。

      1. 最初の ip_address の値は、グローバルフォワーダーの IPv4 アドレス (8.8.6.6) に変更します。
      2. 2 番目の ip_address の値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800) に変更します。
      3. port の値が 53 に設定されていることを確認します。
    4. stateabsent に設定されていることを確認します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the absence of a global forwarder in IdM DNS
      hosts: ipaserver
      become: true
    
      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: 8.8.6.6
            - ip_address: 2001:4860:4860::8800
              port: 53
          state: absent
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-absence-of-a-global-forwarder.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

6.10. Ansible を使用した IdM での DNS グローバルフォワーダーの無効化

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM で DNS グローバルフォワーダーを無効にする方法を説明します。以下の手順の例では、IdM の管理者がグローバルフォワーダーの転送ポリシーが none に設定されていることを確認し、グローバルフォワーダーを実質的に無効にします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. 全 DNS グローバルフォワーダーを無効にするように設定済みの Ansible Playbook ファイル (disable-global-forwarders.yml) の内容を確認します。以下に例を示します。

    $ cat disable-global-forwarders.yml
    ---
    - name: Playbook to disable global DNS forwarders
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Disable global forwarders.
        ipadnsconfig:
          forward_policy: none
  4. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file disable-global-forwarders.yml

関連情報

  • ansible-freeipa ipadnsconfig モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsconfig.md Markdown ファイルで確認できます。このファイルには、ipadnsconfig 変数の定義も含まれます。

6.11. Ansible を使用して IdM に DNS 正引きゾーンを存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して IdM に DNS 正引きゾーンを追加する方法を説明します。以下の手順の例では、IdM 管理者は、インターネットプロトコル (IP) プロトコルが 8.8.8.8 の DNS サーバーに example.com の DNS 正引きゾーンが配置されるようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-presence-forwardzone.yml
  4. ensure-presence-forwardzone.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS に DNS 正引きゾーンを追加する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure presence of a dnsforwardzone for example.com to 8.8.8.8 に変更します。
    3. tasks セクションで、ipadnsconfig のヘディングを ipadnsforwardzone に変更します。
    4. ipadnsforwardzone セクションで以下を実行します。

      1. ipaadmin_password 変数を追加して、IdM 管理者パスワードに設定します。
      2. name 変数を追加して example.com に設定します。
      3. forwarders セクションで、以下を実行します。

        1. ip_addressport の行を削除します。
        2. 転送要求を受信できるように DNS サーバーの IP アドレスをダッシュの後に指定して追加します。

          - 8.8.8.8
      4. forwardpolicy 変数を追加して first に設定します。
      5. skip_overlap_check 変数を追加し、true に設定します。
      6. state 変数は present に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the presence of a dnsforwardzone in IdM DNS
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure the presence of a dnsforwardzone for example.com to 8.8.8.8
      ipadnsforwardzone:
          ipaadmin_password: password01
          name: example.com
          forwarders:
              - 8.8.8.8
          forwardpolicy: first
          skip_overlap_check: true
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-presence-forwardzone.yml

関連情報

  • ansible-freeipa ipadnsforwardzone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsforwardzone.md Markdown ファイルで確認できます。このファイルには ipadnsforwardzone 変数の定義も含まれます。

6.12. Ansible を使用して IdM で DNS 正引きゾーンを複数配置する手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して IdM の DNS 正引きゾーンに複数のフォワーダーを配置する方法を説明します。以下の手順の例では、IdM 管理者が example.com のDNS 正引きゾーンが 8.8.8.84.4.4.4 に転送されるようにします。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-presence-multiple-forwarders.yml
  4. ensure-presence-multiple-forwarders.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS の DNS 正引きゾーンに複数のフォワーダーを配置する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure presence of 8.8.8.8 and 4.4.4.4 forwarders in dnsforwardzone for example.com に変更します。
    3. tasks セクションで、ipadnsconfig のヘディングを ipadnsforwardzone に変更します。
    4. ipadnsforwardzone セクションで以下を実行します。

      1. ipaadmin_password 変数を追加して、IdM 管理者パスワードに設定します。
      2. name 変数を追加して example.com に設定します。
      3. forwarders セクションで、以下を実行します。

        1. ip_addressport の行を削除します。
        2. 配置する DNS サーバーの IP アドレスを、前にダッシュをつけて追加します。

          - 8.8.8.8
          - 4.4.4.4
      4. state 変数を present に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: name: Playbook to ensure the presence of multiple forwarders in a dnsforwardzone in IdM DNS
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure presence of 8.8.8.8 and 4.4.4.4 forwarders in dnsforwardzone for example.com
      ipadnsforwardzone:
          ipaadmin_password: password01
         name: example.com
          forwarders:
              - 8.8.8.8
              - 4.4.4.4
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-presence-multiple-forwarders.yml

関連情報

  • ansible-freeipa ipadnsforwardzone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsforwardzone.md Markdown ファイルで確認できます。このファイルには ipadnsforwardzone 変数の定義も含まれます。

6.13. Ansible を使用して IdM で DNS 正引きゾーンを無効にする手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM で DNS 正引きゾーンを無効にする方法を説明します。以下の手順の例では、IdM 管理者は example.com の DNS 正引きゾーンが無効になっていることを確認します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-disabled-forwardzone.yml
  4. ensure-disabled-forwardzone.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS に DNS 正引きゾーンを無効にする Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure a dnsforwardzone for example.com is disabled に変更します。
    3. tasks セクションで、ipadnsconfig のヘディングを ipadnsforwardzone に変更します。
    4. ipadnsforwardzone セクションで以下を実行します。

      1. ipaadmin_password 変数を追加して、IdM 管理者パスワードに設定します。
      2. name 変数を追加して example.com に設定します。
      3. forwarders セクション全体を削除します。
      4. state 変数を disabled に変更します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure a dnsforwardzone is disabled in IdM DNS
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure a dnsforwardzone for example.com is disabled
      ipadnsforwardzone:
          ipaadmin_password: password01
          name: example.com
          state: disabled
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-disabled-forwardzone.yml

関連情報

  • ansible-freeipa ipadnsforwardzone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsforwardzone.md Markdown ファイルで確認できます。このファイルには ipadnsforwardzone 変数の定義も含まれます。

6.14. Ansible を使用して IdM から DNS 正引きゾーンを削除する手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM から DNS 正引きゾーンを削除する方法を説明します。以下の例では、IdM 管理者は example.com の DNS 正引きゾーンを削除します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsconfig ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (forwarders-absent.yml) のコピーを作成します。以下に例を示します。

    $ cp forwarders-absent.yml ensure-absence-forwardzone.yml
  4. ensure-absence-forwardzone.yml ファイルを開いて編集します。
  5. 以下の変数を設定してファイルを調整します。

    1. Playbook の name 変数は、IdM DNS に DNS 正引きゾーンを削除する Playbook の設定に変更します。
    2. tasks セクションで、タスクの nameEnsure the absence of a dnsforwardzone for example.com に変更します。
    3. tasks セクションで、ipadnsconfig のヘディングを ipadnsforwardzone に変更します。
    4. ipadnsforwardzone セクションで以下を実行します。

      1. ipaadmin_password 変数を追加して、IdM 管理者パスワードに設定します。
      2. name 変数を追加して example.com に設定します。
      3. forwarders セクション全体を削除します。
      4. state 変数を absent のままにします。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Playbook to ensure the absence of a dnsforwardzone in IdM DNS
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure the absence of a dnsforwardzone for example.com
        ipadnsforwardzone:
           ipaadmin_password: password01
           name: example.com
           state: absent
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-absence-forwardzone.yml

関連情報

  • ansible-freeipa ipadnsforwardzone モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsforwardzone.md Markdown ファイルで確認できます。このファイルには ipadnsforwardzone 変数の定義も含まれます。

第7章 IdM での DNS レコードの管理

本章では、Identity Management (IdM) で DNS レコードを管理する方法を説明します。IdM 管理者は、IdM で DNS レコードを追加、変更、および削除できます。本章は以下のセクションで構成されます。

前提条件

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 で拡張) で指定の標準形式を仕様する必要があります。ホスト名の値は、レコードを作成するホストの正規のホスト名である必要があります。

注記

また、IPv6 アドレスの逆引きゾーンは、.ip6.arpa. ドメインのゾーンを使用して設定できます。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 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。
  2. DNS レコードを追加する DNS ゾーンをクリックします。
  3. DNS Resource Record セクションで、Add をクリックして新規レコードを追加します。

    図7.1 新しい DNS リソースレコードの追加

    zone.example.com の DNS Resource Record ページのスクリーンショット。複数の DNS レコードを表示します。ページの右上の「追加」ボタンが強調表示されています。
  4. 作成するレコードのタイプを選択し、必要に応じて他のフィールドにも入力します。

    図7.2 新しい DNS リソースレコードの定義

    「Add DNS Resource Record」のポップアップウィンドウのスクリーンショット。「Record name」および「Hostname」フィールドには入力されており、「Record Type」がドロップダウンメニューから選択されています。「Add」ボタンは、ウィンドウの下部にあります。
  5. Add をクリックして、新規レコードを確定します。

7.3. IdM CLI からの DNS リソースレコードの追加

本セクションでは、コマンドラインインターフェース (CLI) から任意のタイプの DNS リソースレコードを追加する方法を説明します。

前提条件

手順

  1. DNS リソースレコードを追加するには、ipa dnsrecord-add コマンドを使用します。このコマンドは、以下の構文に従います。

    $ ipa dnsrecord-add zone_name record_name --record_type_option=data

    上記のコマンドでは、以下のようになります。

    • 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

7.4. 一般的な ipa dnsrecord-* オプション

本セクションでは、Identity Management (IdM) に最も一般的な DNS リソースレコードタイプを追加、変更、および削除するときに使用可能なオプションを説明します。

  • A (IPv4)
  • AAAA (IPv6)
  • SRV
  • PTR

Bash では、--⁠option={val1,val2,val3} など、波括弧の中にコンマ区切りで値を指定して、複数のエントリーを定義できます。

表7.1 全般的なレコードのオプション

オプション説明

--ttl=number

レコードの有効期間を設定します。

--structured

raw DNS レコードを解析し、それらを構造化された形式で返します。

表7.2 "A" レコードのオプション

オプション説明

--a-rec=ARECORD

A レコードを 1 つまたはリストで指定します。

ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.123

指定の IP アドレスでワイルドカード A レコードを作成できます。

ipa dnsrecord-add idm.example.com "*" --a-rec=192.168.122.123[a]

--a-ip-address=string

レコードの IP アドレスを渡します。レコードの作成時に、A レコードの値を指定するオプションは --a-rec です。ただし A レコードを変更する時に、--a-rec オプションを使用して A レコードの現在の値を指定します。新しい値は、--a-ip-address オプションで設定します。

ipa dnsrecord-mod idm.example.com --a-rec 192.168.122.123 --a-ip-address 192.168.122.124

[a] この例では、IP アドレスが 192.0.2.123 のワイルドカード A レコードを作成します。

表7.3 "AAAA" レコードのオプション

オプション説明

--aaaa-rec=AAAARECORD

AAAA (IPv6) レコードを 1 つまたはリストで指定します。

ipa dnsrecord-add idm.example.com www --aaaa-rec 2001:db8::1231:5675

--aaaa-ip-address=string

レコードの IPv6 アドレスを渡します。レコードの作成時に、A レコードの値を指定するオプションは --aaaa-rec です。ただし、A レコードを変更する時に、--aaaa-rec オプションを使用して A レコードの現在の値を指定します。新しい値は、--a-ip-address オプションで設定します。

ipa dnsrecord-mod idm.example.com --aaaa-rec 2001:db8::1231:5675 --aaaa-ip-address 2001:db8::1231:5676

表7.4 "PTR" レコードのオプション

オプション説明

--ptr-rec=PTRRECORD

PTR レコードを 1 つまたはリストで指定します。逆引き DNS レコードを追加する時には、他の DNS レコードの追加の方法と比べ、ipa dnsrecord-add コマンドで使用するゾーン名は、逆になります。通常、ホストの IP アドレスは、指定のネットワークにおける IP アドレスの最後のオクテットを使用します。右側の最初の例では、IPv4 アドレスが 192.168.122.4.server4.idm.example.com の PTR レコードを追加します。2 番目の例では、0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. に逆引き DNS エントリーを追加します。IP アドレスが 2001:DB8::1111server2.example.com ホストの IPv 6 逆引きゾーン。

ipa dnsrecord-add 122.168.192.in-addr.arpa 4 --ptr-rec server4.idm.example.com.

$ ipa dnsrecord-add 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.1.1.1.0.0.0.0.0.0.0.0.0.0.0.0 --ptr-rec server2.idm.example.com.

--ptr-hostname=string

レコードのホスト名を指定します。

 

表7.5 "SRV" レコードのオプション

オプション説明

--srv-rec=SRVRECORD

SRV レコードを 1 つまたはリストで指定します。右側の例では、_ldap._tcp は、SRV レコードのサービスタイプと接続プロトコルを定義します。--srv-rec オプションは、優先順位、加重、ポート、およびターゲットの値を定義します。この例では、加重値 51 と 49 が最大 100 まで加算され、特定のレコードが使用される確率を % で表します。

# ipa dnsrecord-add idm.example.com _ldap._tcp --srv-rec="0 51 389 server1.idm.example.com."

# ipa dnsrecord-add server.idm.example.com _ldap._tcp --srv-rec="1 49 389 server2.idm.example.com."

--srv-priority=number

レコードの優先順位を設定します。あるサービスタイプに複数の SRV レコードがある場合もあります。優先順位 (0 - 65535) はレコードの階級を設定し、数字が小さいほど優先順位が高くなります。サービスは、優先順位の最も高いレコードを最初に使用する必要があります。

# ipa dnsrecord-mod server.idm.example.com _ldap._tcp --srv-rec="1 49 389 server2.idm.example.com." --srv-priority=0

--srv-weight=number

レコードの加重を設定します。これは、SRV レコードの優先順位が同じ場合に順序を判断する際に役立ちます。設定された加重は最大 100 とし、これは特定のレコードが使用される可能性をパーセンテージで示しています。

# ipa dnsrecord-mod server.idm.example.com _ldap._tcp --srv-rec="0 49 389 server2.idm.example.com." --srv-weight=60

--srv-port=number

ターゲットホスト上のサービスのポートを渡します。

# ipa dnsrecord-mod server.idm.example.com _ldap._tcp --srv-rec="0 60 389 server2.idm.example.com." --srv-port=636

--srv-target=string

ターゲットホストのドメイン名を提供します。該当サービスがドメイン内で利用可能でない場合は、単一のピリオド (.) として指定される場合があります。

 

関連情報

  • ipa dnsrecord-add の使用方法および IdM で対応している DNS レコードタイプに関する詳細は、ipa dnsrecord-add --help コマンドを実行します。

7.5. IdM Web UI での DNS レコードの削除

本セクションでは、IdM Web UI を使用して、Identity Management (IdM) で DNS レコードを削除する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。
  2. DNS レコードを削除するゾーン (example.com など) をクリックします。
  3. DNS Resource Record のセクションで、リソースレコードの名前をクリックします。

    図7.3 DNS リソースレコードの選択

    zone.example.com ゾーンの情報を表示する「DNS Resource Record」ページのスクリーンショット。「dns」レコード名のエントリーが強調表示されています。
  4. 削除するレコードタイプの名前の横にあるチェックボックスを選択します。
  5. Delete をクリックします。

    図7.4 DNS リソースレコードの削除

    「A」、「AAAA」および「CNAME」レコードのエントリーを表示する「Standard Record Types」ページのスクリーンショット。dns.example.com エントリーの CNAME テーブルのチェックボックスにチェックが入っており、CNAME エントリーの「Delete」ボタンが強調表示されています。

選択したレコードタイプが削除されました。リソースレコードの他の設定はそのままになります。

関連情報

7.6. IdM Web UI での DNS レコード全体の削除

本セクションでは、Identity Management (IdM) Web UI を使用して、あるゾーンの特定リソースのレコードをすべて削除する方法を説明します。

前提条件

  • IdM 管理者としてログインしている。

手順

  1. IdM Web UI で、Network ServicesDNS → DNS Zones の順にクリックします。
  2. DNS レコードを削除するゾーン (例: zone.example.com) をクリックします。
  3. DNS Resource Record セクションで、削除するリソースレコードのチェックボックスを選択します。
  4. 削除 をクリックします。

    図7.5 全リソースレコードの削除

    zone.example.com ゾーンの情報を表示する「DNS Resource Record」ページのスクリーンショット。「dns」レコード名のエントリーが選択されており、右側の「Delete」ボタンが強調表示されています。

リソースレコードがすべて削除されました。

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 コマンドを実行すると、削除するレコードについての情報の入力が求められます。--del-all オプションを指定してコマンドを実行すると、ゾーンに関連するレコードがすべて削除されることに注意してください。

関連情報

  • ipa dnsrecord-del の使用方法と、このコマンドで使用できるオプションの全一覧に関する詳細は、ipa dnsrecord-del --help コマンドを実行します。

7.8. 関連情報

第8章 Ansible を使用した IdM での DNS レコードの管理

本章では、Ansible Playbook を使用して Identity Management (IdM) で DNS レコードを管理する方法を説明します。IdM 管理者は、IdM で DNS レコードの追加、変更、および削除が可能です。本章は以下のセクションで構成されます。

8.1. Ansible を使用して IdM に A および AAAA DNS レコードが存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、特定の IdM ホストに A および AAAA レコードを追加する方法を説明します。以下の手順で使用する例では、IdM 管理者は idm.example.com DNS ゾーンに host1 の A レコードおよび AAAA レコードを追加します。

前提条件

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. 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
  4. ensure-A-and-AAAA-records-are-present-copy.yml ファイルを開いて編集します。
  5. ipadnsrecord タスクセクションで以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • zone_name 変数は idm.example.com に設定します。
    • record 変数で、name 変数は host1 に、a_ip_address 変数は 192.168.122.123 に設定します。
    • record 変数で、name 変数は host1 に、aaaa_ip_address 変数は ::1 に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure A and AAAA records are present
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      # Ensure A and AAAA records are present
      - name: Ensure that 'host1' has A and AAAA records.
        ipadnsrecord:
          ipaadmin_password: Secret123
          zone_name: idm.example.com
          records:
          - name: host1
            a_ip_address: 192.168.122.123
          - name: host1
            aaaa_ip_address: ::1
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-A-and-AAAA-records-are-present-copy.yml

関連情報

  • A および AAAA レコードの詳細は、「IdM の DNS レコード」を参照してください。
  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。

8.2. Ansible を使用して IdM に A および PTR DNS レコードを存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、特定の IdM ホストの A レコードと対応する PTR レコードを追加する方法を説明します。以下の手順で使用する例では、IdM 管理者は、idm.example.com ゾーンで IP アドレスが 192.168.122.45host1 の A レコードと PTR レコードを追加します。

前提条件

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. 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
  4. ensure-dnsrecord-with-reverse-is-present-copy.yml ファイルを開いて編集します。
  5. ipadnsrecord タスクセクションで以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • name 変数は host1 に設定します。
    • zone_name 変数は idm.example.com に設定します。
    • ip_address 変数は、192.168.122.45 に設定します。
    • create_reverse 変数は yes に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure DNS Record is present.
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      # Ensure that dns record is present
      - ipadnsrecord:
          ipaadmin_password: Secret123
          name: host1
          zone_name: idm.example.com
          ip_address: 192.168.122.45
          create_reverse: yes
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-dnsrecord-with-reverse-is-present-copy.yml

関連情報

  • A および PTR DNS レコードの詳細は、「IdM の DNS レコード」を参照してください。
  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。

8.3. Ansible を使用して IdM に複数の DNS レコードを存在させる手順

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、特定の IdM DNS レコードに複数の値を関連付ける方法を説明します。以下の手順で使用する例では、IdM 管理者は idm.example.com DNS ゾーンに host1 の A レコードを複数追加します。

前提条件

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (ensure-presence-multiple-records.yml) のコピーを作成します。以下に例を示します。

    $ cp ensure-presence-multiple-records.yml ensure-presence-multiple-records-copy.yml
  4. ensure-presence-multiple-records-copy.yml ファイルを開いて編集します。
  5. ipadnsrecord タスクセクションで以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • records セクションで、name 変数を host1 に設定します。
    • record セクションで、zone_name 変数を idm.example.com に設定します。
    • record セクションで、a_rec 変数を 192.168.122.112 に、192.168.122.122 設定し ます
    • records セクションの 2 番目のレコードを定義します。

      • name 変数は host1 に設定します。
      • zone_name 変数は idm.example.com に設定します。
      • aaaa_rec 変数は ::1 に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Test multiple DNS Records are present.
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      # Ensure that multiple dns records are present
      - ipadnsrecord:
          ipaadmin_password: Secret123
          records:
            - name: host1
              zone_name: idm.example.com
              a_rec: 192.168.122.112
              a_rec: 192.168.122.122
            - name: host1
              zone_name: idm.example.com
              aaaa_rec: ::1
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-presence-multiple-records-copy.yml

関連情報

  • DNS の A レコードの詳細は、「IdM の DNS レコード」を参照してください。
  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。

8.4. Ansible を使用して IdM に複数の CNAME レコードを存在させる手順

Canonical Name レコード (CNAME レコード) は、DNS (Domain Name System) のリソースレコードの一種で、別の名前 (CNAME) にドメイン名、エイリアスをマッピングします。

CNAME レコードは、FTP サービスと Web サービスがそれぞれ別のポートで実行されている場合など、1 つの IP アドレスから複数のサービスを実行する場合に、役立つ可能性があります。

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM DNS に複数の CNAME レコードを追加する方法を説明します。以下の手順で使用する例では、host03 は HTTP サーバーと FTP サーバーの両方として機能します。IdM 管理者は、idm.example.com ゾーンに host03 A レコードの www および ftp CNAME レコードを追加します。

前提条件

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (ensure-CNAME-record-is-present.yml) のコピーを作成します。以下に例を示します。

    $ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
  4. ensure-CNAME-record-is-present-copy.yml ファイルを開いて編集します。
  5. ipadnsrecord タスクセクションで以下の変数を設定して、ファイルを調整します。

    • (任意) Play の name で提示された説明を調整します。
    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • zone_name 変数は idm.example.com に設定します。
    • record 変数セクションで、以下の変数および値を設定します。

      • name 変数は www に設定します。
      • cname_hostname 変数は host03 に設定します。
      • name 変数は ftp に設定します。
      • cname_hostname 変数は host03 に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure that 'www.idm.example.com' and 'ftp.idm.example.com' CNAME records point to 'host03.idm.example.com'.
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      - ipadnsrecord:
          ipaadmin_password: Secret123
          zone_name: idm.example.com
          records:
          - name: www
            cname_hostname: host03
          - name: ftp
            cname_hostname: host03
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-CNAME-record-is-present.yml

関連情報

  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。

8.5. Ansible を使用して IdM に SRV レコードを存在させる手順

DNS サービス (SRV) レコードは、ドメインで利用可能なサービスのホスト名、ポート番号、トランスポートプロトコル、優先度、および加重を定義します。Identity Management (IdM) では、SRV レコードを使用して、IdM サーバーとレプリカを特定できます。

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM DNS に SRV レコードを追加する方法を説明します。以下の手順で使用する例では、IdM の管理者が 10 50 88 idm.example.com の値を指定して _kerberos._udp.idm.example.com SRV レコードを追加します。この例では、以下の値を指定します。

  • サービスの優先度を 10 に設定します。
  • サービスの加重を 50 に設定します。
  • サービスが使用するポートを 88 に設定します。

前提条件

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (ensure-SRV-record-is-present.yml) のコピーを作成します。以下に例を示します。

    $ cp ensure-SRV-record-is-present.yml ensure-SRV-record-is-present-copy.yml
  4. ensure-SRV-record-is-present-copy.yml ファイルを開いて編集します。
  5. 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 ファイル:

    ---
    - name: Test multiple DNS Records are present.
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      # Ensure a SRV record is present
      - ipadnsrecord:
          ipaadmin_password: Secret123
          name: _kerberos._udp.idm.example.com
          srv_rec: ’10 50 88 idm.example.com’
          zone_name: idm.example.com
          state: present
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-SRV-record-is-present.yml

関連情報

  • SRV レコードの詳細は、「IdM の DNS レコード」を参照してください。
  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。

第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 クライアントがインストールされている。
  • ホスト名が、ネットワーク内で一意の名前である。

手順

  1. admin ユーザーとして、IdM に対して認証します。

    $ kinit admin
  2. エイリアスをホストプリンシパルに追加します。たとえば、demo エイリアスを、demo.examle.com ホストプリンシパルに追加するには、次のコマンドを実行します。

    $ ipa host-add-principal demo.example.com --principal=demo

9.2. クライアントのサービスプリンシパルでのホスト名の正規化の有効化

ここでは、クライアントのサービスプリンシパルでホスト名の正規化を有効にする方法を説明します。

「ホストプリンシパルへのエイリアスの追加」 で説明しているように、ホストプリンシパルのエイリアスを使用する場合は、正規化を有効にする必要はありません。

前提条件

  • Identity Management (IdM) クライアントがインストールされている。
  • root ユーザーとして IdM クライアントにログインしている。
  • ホスト名が、ネットワーク内で一意の名前である。

手順

  1. /etc/krb5.conf ファイルの [libdefaults] セクションで、dns_canonicalize_hostname パラメーターを false に設定します。

    [libdefaults]
    ...
    dns_canonicalize_hostname = true

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 名のサービスプリンシパルを自動的に作成するため、これ以上考慮が必要な事項はありません。

法律上の通知

Copyright © 2021 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.