Red Hat Training

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

33.10. 外部 DNS の使用時の DNS レコードのシステム的な更新

外部 DNS を使用する場合には、Identity Management は、トポロジーの変更後に DNS レコードを自動的に更新しません。以下の手順では、外部 DNS サービスが管理する DNS レコードを体系的に更新する方法を説明します。これにより、手動の DNS 更新が必要なくなります。
基本的な概要は、「Identity Management で外部 DNS の更新」 を参照してください。
手順および例は、以下を参照してください。

33.10.1. Identity Management で外部 DNS の更新

DNS レコードを更新すると、古い DNS レコードまたは無効な DNS レコードが削除され、新しいレコードが追加されます。
トポロジーの変更後に、DNS レコードを更新する必要があります。以下に例を示します。
  • レプリカのインストールまたはアンインストール後
  • Identity Management サーバーに CA、DNS、KRA、または Active Directory の信頼をインストールした後

33.10.2. GUI: 外部 DNS レコードの更新

  1. 更新が必要なレコードを表示します。ipa dns-update-system-records --dry-run コマンドを使用します。
    $ ipa dns-update-system-records --dry-run
     IPA DNS records:
       _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
       _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]
  2. 外部 DNS GUI を使用して、レコードを更新します。

33.10.3. コマンドライン: nsupdateを使用した外部 DNS レコードの更新

本セクションでは、nsupdate ユーティリティーを使用して外部 DNS レコードを手動で更新する方法を説明します。スクリプトでこのセクションのコマンドを使用して、プロセスを自動化することもできます。

nsupdateの DNS レコードでファイルの生成

  1. --out を指定して ipa dns-update-system-records --dry-run コマンドを実行します。このオプションは、生成するファイルのパスを指定します。
    $ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate
     IPA DNS records:
       _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
       _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]
    生成されたファイルには、nsupdate ユーティリティーが許可する形式で、必要な DNS レコードが含まれます。
  2. 生成されるレコードは、以下に依存します。
    • レコードを更新するゾーンの自動検出
    • ゾーンの権威サーバーの自動検出
    標準以外の DNS 設定を使用しているか、ゾーンの委譲がない場合は、nsupdate が正しいゾーンとサーバーを見つけられない可能性があります。この場合は、生成されるファイルの先頭に以下のオプションを追加します。
    • server は、nsupdate がレコードを送信する信頼できる DNS サーバーのサーバー名またはポートを指定します。
    • zonensupdate がレコードを配置するゾーンの名前を指定します。
    以下に例を示します。
    $ cat dns_records_file.nsupdate
    zone example.com.
    server 192.0.2.1
    ; IPA DNS records
    update delete _kerberos-master._tcp.example.com. SRV
    update add _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]

ネームサーバーへの動的 DNS 更新要求の送信

nsupdate を使用して要求を送信する場合は、要求を適切にセキュリティー保護してください。以下のメカニズムを使用して、要求を保護できます。
Transaction Signature (TSIG) プロトコル
TSIG を使用すると、共有キーで nsupdate を使用できます。手順33.1「TSIG を使用した nsupdate 要求のセキュアな送信」を参照してください。
TSIG の GSS アルゴリズム (GSS-TSIG)
GSS-TSIG は、GSS-API インターフェイスを使用して秘密の TSIG 鍵を取得します。GSS-TSIG は、TSIG プロトコルの拡張機能です。手順33.2「GSS-TSIG を使用した nsupdate 要求のセキュアな送信」を参照してください。

手順33.1 TSIG を使用した nsupdate 要求のセキュアな送信

  1. 以下の前提条件を満たしていることを確認します。
    • TSIG に DNS サーバーを設定する必要があります。サーバー設定の例 (BINDPowerDNS) を参照してください。
    • DNS サーバーとそのクライアントの両方に、共有鍵が必要です。
  2. nsupdate を実行し、以下のいずれかのオプションを使用して共有シークレットを指定します。
    • -k: TSIG 認証キーを指定します。
      $ nsupdate -k tsig_key.file dns_records_file.nsupdate
    • -y: 鍵の名前と Base64 でエンコードされた共有秘密鍵から署名を生成します。
      $ nsupdate -y algorithm:keyname:secret dns_records_file.nsupdate

手順33.2 GSS-TSIG を使用した nsupdate 要求のセキュアな送信

  1. 以下の前提条件を満たしていることを確認します。
    • DNS サーバーは GSS-TSIG 用に設定する必要があります。サーバー設定の例 (BINDPowerDNSWindows DNS) を参照してください。
    注記
    この手順では、Kerberos V5 プロトコルが GSS-API のテクノロジーとして使用されていることを前提としています。
  2. DNS 更新要求を送信し、レコードを更新できるプリンシパルで認証し、-g オプションで nsupdate を実行して GSS-TSIG モードを有効にします。
    $ kinit principal_allowed_to_update_records@REALM
    $ nsupdate -g dns_records_file.nsupdate

関連情報

  • nsupdate(8) の man ページ
  • RFC 2845 では TSIG プロトコルが説明されています。
  • RFC 3645 は GSS-TSIG アルゴリズムを記述します。