DNS更新の実行 (NSUPDATE)

DNS更新の実行 (RUNDNSUPD)コマンドまたは別名のNSUPDATEは,ドメイン・ネーム・システム(DNS)サーバーに動的更新要求を送信するために使用されます。これによって,ゾーン・ファイルを手動で編集することなく,資源レコードをゾーンに追加またはゾーンから除去することができます。単一更新要求には,複数の資源レコードの追加または除去要求を含めることができます。

RUNDNSUPDまたはDHCPサーバーで動的制御されるゾーンは,手動で編集しないでください。手動の編集は動的更新と競合してデータが失われる可能性があります。

RUNDNSUPDで動的に追加または除去される資源レコードは,同じゾーン内にある必要があります。要求はゾーン・マスター・サーバーに送信されます。これはゾーンSOAレコードのMNAMEフィールドによって識別されます。

このユーティリティーは,*NONEがバッチ入力ファイル (BCHFILE)パラメーターに指定されている場合には,対話モードで実行されます。このユーティリティーを非対話モードで実行するには,BCHFILEパラメーターにファイル名を指定してください。

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
BCHFILE バッチ入力ファイル パス名, *NONE オプショナル, 定位置 1
DEBUG デバッグ情報の表示 *NO, *YES オプショナル, 定位置 2
KEYNAME 鍵名 文字値, *NONE オプショナル
KEYFILE 鍵ファイル パス名, *NONE オプショナル
TIMEOUT 更新タイムアウト 1-300, 300, *NOMAX オプショナル
UDPRTYITV UDPタイムアウト 1-65535, 3, *CALC オプショナル
UDPNBRRTY UDP再試行 0-100, 3 オプショナル
PROTOCOL ネットワーク・プロトコル *UDP, *TCP オプショナル
LOCALHOST ローカル・ホスト専用モード *NO, *YES オプショナル
TOSTMF 出力ファイル パス名, *STDOUT オプショナル

バッチ入力ファイル (BCHFILE)

バッチ入力で使用されるすべての更新コマンドでストリーム・ファイルを指定します。

ファイル内の各コマンドは,正確に1行の入力で提供されます。一部のコマンドは,管理用です。それ以外のコマンドは,ゾーンのコンテンツに関する更新の指示か前提条件検査です。これらの検査は,一部の名前または資源レコード・セット(RRSET)のどちらかが存在しているかまたはゾーンに存在していない,条件を設定します。更新要求全体が正常に完了するには,これらの条件を満たす必要があります。更新は,前提条件のテストが失敗した場合には拒否されます。

すべての更新要求は,ゼロ以上の前提条件およびゼロ以上の更新で構成されます。これによって,一部の指定された資源レコードがゾーンに存在していたり欠落していても,適切に認証された更新要求を進めることができます。ブランクの入力行(または送信コマンド)によって,累積コマンドが1つの動的DNS更新要求としてネーム・サーバーに送信されます。

コマンドのフォーマットは以下のとおりです。ファイル内のセミコロンで始まる行は,コメントと見なされ無視されます。

SERVER {SERVERNAME}[PORT]
LOCAL {ADDRESS}[PORT]
ZONE {ZONENAME}
CLASS {CLASSNAME}
KEY {NAME} {SECRET}
PREREQ NXDOMAIN {DOMAIN-NAME}
PREREQ YXDOMAIN {DOMAIN-NAME}
PREREQ NXRRSET  {D-NAME}      [CLASS]{TYPE}
PREREQ YXRRSET  {D-NAME}      [CLASS]{TYPE}
PREREQ YXRRSET  {D-NAME}      [CLASS]{TYPE} {DATA...}
UPDATE DELETE   {D-NAME}[TTL][CLASS][TYPE[DATA...]]
UPDATE ADD      {D-NAME} {TTL}[CLASS]{TYPE} {DATA...}
SHOW
SEND
ANSWER
QUIT

これらのコマンドの記述の例を参照してください。

*NONE
バッチ・ファイルを使用しません。これによって対話モードに入ります。対話モードから戻るには,コマンド「QUIT」を入力してください。

注: この値は,コマンドが対話式ジョブで実行される場合にのみ有効です。

パス名
入力が読み取られるストリーム・ファイルのパスを指定します。このファイルに対して読み取り(*R)権限が必要です。

デバッグ情報の表示 (DEBUG)

デバッグ・モードをオンにするかどうかを指定します。デバッグ・モードがオンになると,サーバーに送信されるパケットおよびその結果の応答に関するさらに詳細な情報が表示されます。

*NO
デバッグ・メッセージをオフにします。
*YES
デバッグ・メッセージをオンにします。

鍵名 (KEYNAME)

DNS QUERYにシグニチャーするTSIG (TRANSACTION SIGNATURE)鍵を指定します。TSIGで現在使用されている唯一のメッセージ・ダイジェスト・アルゴリズムは,HMAC-MD5です。他のアルゴリズムが将来追加されることがあります。TSIG鍵はBASE64エンコードされたストリングで,通常DNS鍵の生成(GENDNSKEY)コマンドで生成されます。QUERYが送られるDNSサーバーは,TSIG鍵および使用されているアルゴリズムで構成されている必要があり,そうなっていない場合にはトランザクションが失敗します。TSIGについては,RFC 2845を参照してください。

*NONE
キー名を指定しません。
文字値
TSIG鍵を指定します。フォーマットは,「名前:鍵」(「名前」は鍵名で,「鍵」はBASE64エンコード・ストリングの実際の鍵です)。例:

MY-TSIG-KEY:JNVCPNXYSBJ2HSDOQQ5QRQ==

この場合のキー名は「MY-TSIG-KEY」で,BASE64エンコード鍵は「JNVCPNXYSBJ2HSDOQQ5QRQ==」です。

QUERY対象のDNSサーバーは,クライアントからこのTSIG鍵を受け入れるためには,構成にこの鍵およびアルゴリズムが組み込まれている必要があります。

鍵ファイル (KEYFILE)

動的DNS更新要求を認証するために使用するSIG(0)が入っているファイルを指定します。この場合,指定された鍵はHMAC-MD5鍵ではありません。SIG(0)は公開鍵暗号方式を使用します。SIG(0)鍵を使用するには,ネーム・サーバーが提供するゾーンのKEYレコードに公開鍵が保管されている必要があります。SIG(0)については,RFC 3535およびRFC 2931を参照してください。

注: このパラメーターに*NONE以外の値を指定する場合には,KEYNAMEパラメーターに値を指定しないでください。

*NONE
キー・ファイルを指定しません。
パス名
鍵情報が入っているストリーム・ファイルのパスを指定します。例えば,「/HOME/MYPROFILE/MY-KEY-FILE」を指定することが考えられます。

更新タイムアウト (TIMEOUT)

更新要求が異常終了するまでの最大所要時間を指定します。

300
省略時のタイムアウトは300秒です。
*NOMAX
更新要求タイムアウトは使用不可になります。
1から300
有効なタイムアウト値を秒数で指定します。

UDPタイムアウト (UDPRTYITV)

UDP再試行間の間隔を秒数で指定します。

3
3秒の再試行間隔が使用されます。
*CALC
再試行間隔は,更新タイムアウト (TIMEOUT)パラメーターおよびUDP再試行 (UDPNBRRTY)パラメーターに指定された値に基づいてユーティリティーによって計算されます。
1から65535
UDP再試行間に使用する秒数を指定します。

UDP再試行 (UDPNBRRTY)

UDP再試行回数を指定します。

3
UDP試行3回が使用されます。
0-100
UDP再試行回数を指定します。ゼロが指定された場合には,更新要求は1回のみ行われます。

ネットワーク・プロトコル (PROTOCOL)

要求をサーバーに送信する際にTCPとUDPのどちらを使用するかを指定します。

*UDP
UDPを使用してQUERYを送信します。ただし,ゾーン転送(AXFR)要求などTCPが必要なQUERYには自動的にTCPが選択されます。
*TCP
TCPを使用してQUERYを送信します。

ローカル・ホスト専用モード (LOCALHOST)

ローカル・ホストに接続するかどうかを指定します。ローカル・サーバーへの接続は,/QIBM/USERDATA/OS400/DNS/_DYN/NNNNN/SESSION.KEY (NNNNNはDNSインスタンス名)にあるTSIG (TRANSACTION SIGNATURE)鍵を使用します。DNSインスタンスは,ローカル・マスター・ゾーンがUPDATE-POLICYをLOCALに設定した場合にDNSサーバーによって自動的に生成されます。このキー・ファイルのロケーションは,鍵ファイル (KEYFILE)パラメーターを使用して指定変更できます。ローカル・ホスト専用モードを使用可能にするには,DNSインスタンスNNNNNはLOCALHOST(127.0.0.1)でLISTENする必要があります。

*NO
ローカル・ホスト専用モードで実行しません。
*YES
ローカル・ホスト専用モードで実行します。

出力ファイル (TOSTMF)

すべてのコマンド出力が書き込まれるストリーム・ファイルの名前を指定します。

*STDOUT
すべてのコマンド出力は,標準出力装置(通常はモニター)に送られます。
パス名
出力が書き込まれるストリーム・ファイルのパス名を指定してください。

コマンドのフォーマットおよびその意味は次のとおりです。

SERVER {SERVERNAME}[PORT]
すべての動的更新要求をDNSサーバーSERVERNAMEに送信します。サーバー・ステートメントが与えられなければ,RUNDNSUPDは更新を正しいゾーンのマスター・サーバーに送信します。そのゾーンのSOAレコードのMNAMEフィールドで,そのゾーンのマスター・サーバーが識別されます。PORTは,動的更新要求が送信されるSERVERNAMEのポート番号です。ポート番号が指定されなければ,省略時のDNSポート番号53が使用されます。
LOCAL {ADDRESS}[PORT]
ローカル・アドレスを使用して,すべての動的更新要求を送信します。ローカル・ステートメントが与えられなければ,RUNDNSUPDは,システムが選択したアドレスおよびポートを使用して更新を送信します。さらにPORTを使用して,特定のポートから要求を行うことができます。ポート番号が指定されなければ,システムがポート番号を割り当てます。
ZONE {ZONENAME}
すべての更新がゾーンZONENAMEに対して行われることを指定します。ゾーン・ステートメントが与えられなければ,RUNDNSUPDは,残りの入力に基づいて更新する正しいゾーンを決定しようとします。
CLASS {CLASSNAME}
省略時のクラスを指定します。クラスが指定されなければ,省略時のクラスはINになります。
KEY {NAME} {SECRET}
すべての更新がKEYNAMEとKEYSECRETの対を使用してTSIGで署名されることを指定します。-Yまたは-Kによって,キー・コマンドは,コマンド入力行で指定された鍵をオーバーライドします。
PREREQ NXDOMAIN {DOMAIN-NAME}
名前DOMAIN-NAMEですべてのタイプの資源レコードが存在しないことを要求します。
PREREQ YXDOMAIN {DOMAIN-NAME}
DOMAIN-NAMEが存在すること(少なくとも1つの任意のタイプの資源レコードが存在すること)を要求します。
PREREQ NXRRSET {DOMAIN-NAME}[CLASS]{TYPE}
指定されたTYPE, CLASSおよびDOMAIN-NAMEの資源レコードが存在しないことを要求します。CLASSが省略された場合には,IN(インターネット)が想定されます。
PREREQ YXRRSET {DOMAIN-NAME}[CLASS]{TYPE}
これは,指定されたTYPE, CLASSおよびDOMAIN-NAMEの資源レコードが存在する必要があることを要求します。CLASSが省略された場合には,IN(インターネット)が想定されます。
PREREQ YXRRSET {DOMAIN-NAME}[CLASS]{TYPE} {DATA...}
共通のTYPE, CLASS,およびDOMAIN-NAMEを共有するこのフォームの前提条件の各組のデータを組み合わせて一組のRRを形成します。この一組のRRは,指定されたTYPE, CLASS,およびDOMAIN-NAMEで,ゾーンに存在するRRの組みに完全に一致します。データは,資源レコードRDATAの標準テキスト表記で書き込まれます。
UPDATE DELETE {DOMAIN-NAME}[TTL][CLASS][TYPE[DATA...]]
DOMAIN-NAMEという名前のすべての資源レコードを削除します。TYPEとDATAが指定された場合には,それに一致する資源レコードのみが除去されます。CLASSが指定されなければ,インターネット・クラスが想定されます。TTLは無視され,互換性のためだけに使用可能です。
UPDATE ADD {DOMAIN-NAME} {TTL}[CLASS]{TYPE} {DATA...}
指定されたTTL, CLASS,およびDATAで,新規資源レコードを追加します。
SHOW
最終送信以降に指定されたすべての前提条件および更新を含んだ,現在のメッセージを表示します。
SEND
現在のメッセージを送信します。これは,ブランク行を入力するのと等価です。
ANSWER
応答を表示します。
QUIT
対話モードを終了します。

1:更新の例

RUNDNSUPD   BCHFILE(*NONE)
> UPDATE DELETE OLDHOST.EXAMPLE.COM A
> UPDATE ADD NEWHOST.EXAMPLE.COM 86400 A 172.16.1.1
> SEND
> QUIT

このコマンドは,更新ユーティリティーの対話モードを開始します。「>」接頭部がある行は対話式コマンドです。

「EXAMPLE.COM」ゾーンに対して資源レコードを挿入および削除します。それぞれの例の入力には,コマンドのグループが1つの動的更新要求としてEXAMPLE.COMのマスターDNSサーバーに送信されるように,末尾ブランク行が入っていることに注意してください。

OLDHOST.EXAMPLE.COM用のAレコードがあれば,削除され,NEWHOST.EXAMPLE.COMのAレコード(IPアドレス: 172.16.1.1)が1 つ追加されます。新しく追加されたレコードのTTLは,1日(86400秒)です。

2:前提条件の例

RUNDNSUPD
> PREREQ NXDOMAIN NICKNAME.EXAMPLE.COM
> UPDATE ADD NICKNAME.EXAMPLE.COM 86400 CNAME SOMEHOST.EXAMPLE.COM
> SEND
> QUIT

前提条件によって,DNSサーバーはNICKNAME.EXAMPLE.COMのすべてのタイプの資源レコードがないことを検査します。存在した場合には,更新要求は失敗します。この名前が存在しない場合には,そのCNAMEが追加されます。これによって,CNAMEの追加時に,名前はCNAMEとして存在する場合に他のレコード・タイプで損してはならないというRFC1034の長期間の規則と競合しないことが保証されます。(RFC 2535で,CNAMEがRRSIG, DNSKEY,およびNSECレコードを持てるようにDNSSECの規則が更新されました。)

3:バッチ・ファイルの例

RUNDNSUPD   BCHFILE('/HOME/IBMUSER/MY-UPDATES')

このコマンドは,ファイル「/HOME/IBMUSER/MY-UPDATES」の更新をファイルSERVERコマンドで定義されたサーバーに送信します。例えば,ファイルの内容は次のようになります。

SERVER MYSERVER.I5OS.IBM.COM 53
ZONE I5OS.IBM.COM
CLASS IN
PREREQ YXDOMAIN BOX1.I5OS.IBM.COM.
UPDATE DELETE BOX1.I5OS.IBM.COM. A
UPDATE ADD BOX1.I5OS.IBM.COM. 3600 A 10.9.9.9
PREREQ YXDOMAIN BOX2.I5OS.IBM.COM.
UPDATE DELETE BOX2.I5OS.IBM.COM. A
UPDATE ADD BOX2.I5OS.IBM.COM. 3600 A 10.9.9.10

画面に表示される結果は,次のようになる可能性があります。

; TSIG ERROR WITH SERVER: TSIG INDICATES ERROR
UPDATE FAILED: NOTAUTH(BADKEY)

または,画面に表示される結果は,次のようになる可能性があります。

; TSIG ERROR WITH SERVER: TSIG INDICATES ERROR
UPDATE FAILED: REFUSED

最初の例は,ファイル内の鍵が無効である場合です。2番目の例は,サーバーがユーザーからの動的更新を許可していない場合です。出力がない場合や,ブランクの出力は,更新が成功したことを示します。

エラー・メッセージ

*ESCAPE メッセージ

DNS0013
コマンド・パラメーターの処理エラー。
DNS0065
I5/OSのオプション33が必要ですが,導入されていません。
TCP7124
ライブラリー&2中のタイプ*PGMのプログラム&1が異常終了しました。