Red Hat Training

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

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

本セクションでは、thesupdate ユーティリティーを使用して 外部 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 ...]
    生成されたファイルには、thesupdate ユーティリティー で許可される形式に必要な DNS レコードが含まれます。
  2. 生成されたレコードは以下に依存します。
    • レコードを更新するゾーンの自動検出
    • ゾーンの権威サーバーの自動検出
    内部の DNS 設定を使用している場合や、ゾーン委譲が見つからない場合は、nsupdate が適切なゾーンおよびサーバーを見つけられない可能性があります。この場合は、生成されたファイルの最初に以下のオプションを追加します。
    • server は、権威 DNS サーバーのサーバー名またはポートを指定します。nsupdate がレコードを送信する
    • zone はゾーン名を指定します。nsupdate はレコードを配置するゾーンを指定します。
    たとえば、以下のようになります。
    $ 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 を使用して要求を送信する場合は、適切に保護してください。以下のメカニズムを使用して要求を保護できます。
トランザクション署名(TSIG)プロトコル
TSIG を使用すると、共有キーで nsupdate を使用できます。手順33.1「TSIG を使用した nsupdate 要求のセキュアな送信」を参照してください。
TSIG(GSS-TSIG)の GSS アルゴリズム
GSS-TSIG は GSS-API インターフェースを使用してシークレット TSIG キーを取得します。GSS-TSIG は TSIG プロトコルの拡張です。手順33.2「GSS-TSIG を使用した nsupdate 要求のセキュアな送信」を参照してください。

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

  1. 以下の前提条件を満たしていることを確認します。
    • DNS サーバーが TSIG 用に設定されている必要があります。サーバー設定の例(BINDPowerDNS)を参照してください。
    • DNS サーバーおよびクライアントの両方で共有鍵が必要です。
  2. 以下のオプションのいずれかを使用して、Run 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 オプションで run 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 アルゴリズムを記述します。