スポンサーリンク

NTPDC(8) FreeBSD システム管理者マニュアル NTPDC(8)

名称

ntpdc − NTP の特別な問い合わせプログラム

書式

ntpdc [−ilnps] [−c command] [host ...]

解説

ntpdc ユーティリティは ntpd(8) デーモンの現在の状態について問い合わせた り、状態の変更を要求する際に使われます。このプログラムは、対話的モードで 実行させることもコマンドライン引数を使って制御することもできます。広範囲 にわたる状態や統計の情報が、 ntpdc のインタフェースを通じて提供されていま す。それに加えて、 ntpd(8) の設定ファイルを使って起動時に指定できるほとん どすべての設定オプションが、 ntpdc を使って、実行時にも指定できます。

以下のオプションが使用可能です:

       −c command

次の引数が対話的なフォーマットのコマンドとして解釈され、指定され たホスト (群) 上で実行すべきコマンドのリストに付け加えられます。 複数の −c オプションを与えることもできます。

−i
ntpdc
を強制的に対話的モードで動作させます。標準出力にプロンプト が表示され、標準入力からコマンドが読み込まれます。

−l
サーバ (群) が知っている通信相手 (peer) のリストを取得します。こ のスイッチは、 ‘-c listpeers’ と同等です。

−n
すべてのホストアドレスを、ドットで 4 つの部分に区切られた数値の形 式で出力し、正規のホスト名に変換しません。

−p
サーバが知っている通信相手のリストと、それらの状態の概要を出力し ます。これは、 ‘-c peers’ と同等です。

−s
サーバが知っている通信相手のリストと、それらの状態の概要を、 −p スイッチとは少し異なるフォーマットで出力します。これは ‘-c dmpeers’ と同等です。

ntpdc が実行されたとき、1 つ以上のリクエストオプションがコマンドラインに 含まれる場合は、それぞれのリクエストは、コマンドライン引数で与えられた各 ホスト (デフォルトでは localhost) で動いている NTP サーバに送られます。リ クエストオプションが与えられなかった場合、 ntpdc は、コマンドを標準入力か ら読み込み、コマンドラインで指定された最初のホストで動いている NTP サーバ に対して実行しようとします。このときも、ホストが指定されていないときは、 デフォルトで localhost になります。 ntpdc ユーティリティは、標準入力が端 末である場合は、プロンプトを出してコマンドを受け付けます。

ntpdc ユーティリティは、NTP サーバとの通信に NTP モード 7 パケットを使う ため、ネットワーク上でそれを許すような互換サーバへの問い合わせに使用でき ます。 NTP は UDP のプロトコルなので、特にネットワークトポロジ的に遠くに ある場合は、この通信はやや信頼性に欠けるということに注意してください。 ntpdc ユーティリティは、リクエストを再送する試みを行ないません。適当な制 限時間の範囲内でリモートホストから返事がなかったときは、時間切れとなりま す。

ntpdc の動作は ntpd(8) の特定の実装に特化しており、このデーモンまたは、古 いバージョンのもののいくつかに対してしか動かないでしょう。リモートの ntpdc ユーティリティからのリクエストがローカルサーバの状態を変更する場合 は、そのリクエストが認証される必要があります。その際に、リモートプログラ ムとローカルサーバの両方が共通鍵と鍵の識別子を共有することが必要です。 −i または −n 以外のコマンドラインオプションを指定すると、指定したホスト (群) に、指定した問い合わせ (または複数の問い合わせ) を直ちに送ることになりま す。指定しなかった場合、 ntpdc は標準入力から対話的なフォーマットのコマン ドを読み込もうとします。

対話的コマンド
対話的なフォーマットのコマンドは、キーワードとそれに続く 0 から 4 個の引 数から構成されます。キーワード全長のうち、他と区別できる文字数がタイプさ れれば、有効になります。コマンドの出力は通常標準出力に送られますが、コマ ンドライン上で ‘>’ に続けてファイル名を指定することで、個々のコマンドの出 力をファイルに送ることができます。

いくつかの対話的フォーマットのコマンドは、 ntpdc ユーティリティ自身の中で 全体が実行され、サーバへの NTP モード 7 リクエストは送られません。この種 類のコマンドには以下のものがあります:

? command_keyword

help command_keyword
単独の ? は、 ntpdc が知っているすべてのコマンドキーワードのリス トを出力します。 ? の後にコマンドキーワードが続くときは、コマンド の機能と用法を出力します。このコマンドは、 ntpq(8) に関して、多分 このマニュアルよりも良い情報源となるでしょう。

delay milliseconds
認証を求めるリクエストに含まれるタイムスタンプに加えられる時間間 隔を指定します。これは、長い遅延のあるネットワーク経路や時計の同 期していないマシン間で (信頼できない) サーバの再設定ができるよう にするために使われます。実際にはもうサーバは認証リクエストにおい てタイムスタンプを要求しませんので、このコマンドはもはや用いられ ないかもしれません。

host hostname
今後問い合わせを送るホストを指定します。ホスト名は、ホストの名前 でも数値アドレスでもかまいません。

hostnames [yes | no]
yes
が指定されると、情報の表示の際、ホスト名が使用されます。 no が与えられると、代わりに数値アドレスが使用されます。コマンドライ ンの −n スイッチによって変えられていなければ、デフォルトは yes に なります。

keyid keyid
このコマンドで、認証設定リクエストに使われる鍵番号を指定できま す。この番号は、この目的で使うためにサーバに設定しておいた鍵番号 に対応していなければなりません。

quit
ntpdc
を終了します。

passwd
このコマンドは、認証設定リクエストに使われるパスワードの入力 (画 面に表示されません) を求めるプロンプトを出します。このリクエスト が成功するためには、NTP サーバが認証のために使うよう設定した鍵 に、パスワードが対応していなければなりません。

timeout milliseconds
サーバへの問い合わせに対する応答の制限時間を指定します。デフォル トは、約 8000 ミリ秒です。 ntpdc はそれぞれの問い合わせに対して時 間切れを待ったあと再試行するため、合計の待ち時間は設定された制限 時間の値の 2 倍になることに注意してください。

制御メッセージコマンド
問い合わせコマンドは、情報を要求する NTP モード 7 パケットをサーバに送り ます。これらは、サーバの設定状態を変更しない読み込み専用コマンドです。

listpeers
サーバが状態を管理する通信相手の簡略なリストを得て、出力します。 これには、サーバが今後同期する可能性のある候補であるとみなす階層 の通信相手とのアソシエーションを含め、設定された通信相手とのアソ シエーションのすべてを含んでいるはずです。

peers
サーバが状態を管理する通信相手と、その状態の概要を出力します。状 態の概要は、以下のものを含みます。すなわち、リモートの通信相手の アドレス、ローカルインタフェースアドレス (ローカルアドレスが決 まっていないなら 0.0.0.0)、リモートの通信相手の階層 (階層 16 は、 リモートの通信相手が同期していない事を示します)、秒で表すポーリン グ間隔、8 進で表す到達可能性レジスタ、通信相手の遅れ、オフセッ ト、ばらつきを秒で表した現在の推定値です。

左端の文字は、この通信相手エントリが操作しているモードを示しま す。 ‘+’ は対称的アクティブを、 ‘-’ は対称的パッシブを表し、 ‘=’ は、リモートサーバがクライアントモードでポーリングされていること を意味し、 ‘^’ は、サーバがこのアドレスにブロードキャストしている ことを示し、 ‘~’ は、リモートの通信相手がブロードキャストを送って いることを示し、 ‘*’ は、サーバが現在同期している通信相手であるこ とを示します。

ホストフィールドの内容は、ホスト名、IP アドレス、参照クロック実装 名とパラメータ、あるいは、 REFCLK(implementation number, parameter) の 4 つの形のうち 1 つです。 hostnames no の状態で は、IP アドレスだけが表示されます。

dmpeers
少々異なる通信相手概要リストです。行の左端の文字以外は peers と同 じ出力になります。文字は、時計選択アルゴリズムの最後のステージに 含まれる通信相手の隣にだけ現れます。 ‘.’ は、偽時計検出でこの通信 相手が捨てられたことを、 ‘+’ は検出により同期対象として適切である と判断されたことを示します。 ‘*’ は、通信相手であるサーバは現在同 期しているサーバであることを示しています。

showpeer peer_address ...
1 つ以上の通信相手に対して、現在の通信相手の変数に関する詳細な内 容を表示します。ほとんどの値に関しては、NTP バージョン 2 仕様書に 詳しく述べられています。

pstats peer_address ...
指定した通信相手に関連する統計カウンタを通信相手毎に表示します。

clockinfo clock_peer_address ...
通信相手の時計に関する情報を得て、それを表示します。得られた値 は、設定上のあいまいな要因の情報と他の時計性能の情報を提供してく れます。

kerninfo
カーネルのフェーズロックループ操作パラメータを得て、それを表示し ます。この情報は、精度の高い時刻保持機能のために、カーネルが特に 修正されている場合にだけ得られます。

loopinfo [oneline | multiline]
選択されたループフィルタ変数の値を表示します。ループフィルタと は、ローカルシステム時計の調節を行なう NTP の一部です。 ‘offset’ は、パケット処理コードによってループフィルタに与えられた最後のオ フセットです。 ‘frequency’ は、100 万分の 1 (ppm) で表わされる ローカル時計の周波数誤差です。 ‘time_const’ は、フェーズロック ループの堅固さ (stiffness)、つまり発振器のゆらぎを調整する速度を 制御します。 ‘watchdog timer’ の値は、ループフィルタに最後のサン プルのオフセットが与えられてから経過した秒数です。 onelinemultiline オプションはこの情報が出力されるフォーマットの指定で、 multiline がデフォルトです。

sysinfo
システム状態変数、すなわち、ローカルサーバに関するさまざまな状態 を表示します。最後の 4 行以外は、皆 NTP バージョン 3 仕様である RFC-1305 で述べられています。

‘system flags’ は、いろいろなシステムフラグを表示し、一部は enable 及び disable 設定コマンドで、それぞれの設定やクリアができ ます。それらのフラグは auth, bclient, monitor, pll, pps, stats で す。これらのフラグの意味については、 ntpd(8) の文書を参照して下さ い。その他に kernel_pllkernel_pps という読み込み専用のフラグ が 2 つあります。カーネルに高精度な時刻保持のための変更がなされて いる時に、これらのフラグは同期状態を示します。 ‘kernel_pll’ は kernel がローカル時計を学習されていることを示し、 ‘kernel_pps’ は PPS 信号により kernel が学習していることを示します。

‘stability’ は、システム周波数の修正がされた後に残る残留周波数誤 差で、保守やデバッグに使われます。多くのアーキテクチャでは、この 値は初期の 500 ppm 程度から、.01 から 0.1 ppm という低い範囲にま で減少します。もしデーモンが起動後しばらくしてもこの値が高いまま である場合は、ローカルな時計がどこかおかしいか、カーネル変数 kern.clockrate.tick が正しくないかもしれません。

‘broadcastdelay’ は、 broadcastdelay 設定コマンドで設定されるデ フォルトのブロードキャスト遅延時間を表示します。

‘authdelay’ は、 authdelay 設定コマンドで設定されるデフォルトの認 証遅延時間を表示します。

sysstats
プロトコルモジュールで管理される統計カウンタを表示します。

memstats
メモリ割り当てコードに関する統計カウンタを表示します。

iostats
入出力モジュールで管理される統計カウンタを表示します。

timerstats
タイマ/イベントキューをサポートするコードで管理される統計カウンタ を表示します。

reslist
サーバの制限リストを得て、表示します。このリストは、 (通常) ソー トされた順で出力され、制限がどのように適用されるかを理解する助け になるかもしれません。

monlist [version]
モニタ機能により収集、管理されるトラフィックカウントの値を得て、 表示します。通常、バージョン番号は指定する必要がありません。

clkbug clock_peer_address ...
参照クロックドライバのデバッグ情報を得ます。この情報は、一部の時 計ドライバでのみ提供され、ドライバのソースのコピーが手元に無い場 合、ほとんどデコードできません。

実行時設定リクエスト
サーバ内で状態を変更するようなリクエストは、設定された NTP 鍵を使って、 サーバがすべてを認証します (この機能はサーバ側で鍵を設定しないことによ り、無効にすることもできます)。鍵番号とそれに対応する鍵を、 ntpdc にも知 らせておかねばなりません。これは、 keyidpasswd コマンドを使えば可能 で、後者では、暗号化鍵を使うためにパスワードを求めるプロンプトを端末に出 します。サーバにより認証されるリクエストを送出するコマンドが最初に与えら れた時点にもまた、自動的に鍵番号とパスワード両方の入力が要求されます。認 証は、リクエスト送出側がそのような変更をする権限を持っているかどうかを検 証するだけでなく、送信エラーに対するより一層の保護を提供することになりま す。

認証されるリクエストは、常にパケットデータの中にタイムスタンプを含んでい ます。これは認証コードの計算に含まれます。このタイムスタンプは、サーバに よって受信時刻と比較されます。この差がある小さな値より大きければ、そのリ クエストは拒否されます。これには 2 つの理由があります。 1 つ目は、あなた の LAN のトラフィックを盗み聞きできる誰かが、サーバへ単純な繰り返し攻撃 (replay attack) を行なうことをより困難にします。 2 つ目は、ネットワーク的 に離れたホストから、あなたのサーバへ設定変更リクエストを行なうことをより 困難にします。この再設定機能は、ローカルホストのサーバに対してはうまくい きますし、同じ LAN 上にある時刻同期したホストでも普通に行なえますが、より 離れたホストでは非常にやりにくくなっています。したがって、適当なパスワー ドを選択し、鍵の配布と防護に注意を払い、適切な送信元アドレス制限が施され れば、実行時再設定の機能については適切なセキュリティレベルにあることにな ります。

以下のコマンドは皆、認証を必要とするリクエストです。

addpeer peer_address [keyid] [version] [prefer]
与えられたアドレスにある通信相手アソシエーションを設定に追加し、 そのアソシエーションを対称的アクティブモードで動作させます。その 通信相手とすでにアソシエーションが存在している場合、そのアソシ エーションはこのコマンドが実行されたときに削除されるか、単に新し い設定に従うよう適当に変更されることに注意してください。オプショ ンの keyid が 0 でない整数の場合、リモートサーバに出ていくすべて のパケットは、この鍵により暗号化された認証フィールドを付加される ことになります。値が 0 の場合 (または指定されなかった場合)、認証 は行なわれません。 version は、1, 2, 3 のどれでもよく、デフォルト では 3 になります。 prefer キーワードは、優先する通信相手を示しま す (その結果、可能であれば主要な時計同期元として使用されます)。優 先する通信相手は、 PPS 信号の信頼性も決めます。優先する通信相手が 同期に適している場合、PPS 信号も同期に適していると判断されます。

addserver peer_address [keyid] [version] [prefer]
操作モードがクライアントであること以外は、 addpeer コマンドと同等 です。

broadcast peer_address [keyid] [version] [prefer]
操作モードがブロードキャストであること以外は、 addpeer コマンドと 同等です。この場合、正当な鍵の識別子と鍵が必要になります。 peer_address パラメータは、ローカルネットワークのブロードキャスト アドレスか、または NTP に割り当てられたマルチキャストグループアド レスにできます。マルチキャストアドレスの場合、マルチキャストに対 応したカーネルが必要になります。

unconfig peer_address ...
このコマンドは、指定した通信相手 (群) から設定済みを表すビットを 除去します。多くの場合、これによってその通信相手とのアソシエー ションが削除されることになります。しかしながら、リモートの通信相 手が未設定状態の継続を希望し、それが適切である場合は、アソシエー ションは未設定モードのまま残る場合もあります。

fudge peer_address [time1] [time2] [stratum] [refid]
このコマンドは、あるデータを参照クロックとしてセットできるように します。詳細な情報は、ソースリストを参照してください。

enable flag ...

disable flag ...
これらのコマンドは ntpd(8) の設定ファイルにおける enabledisable と同じ方法で操作します。以下はフラグの説明です。 auth, bclient, monitor, pll, pps, stats フラグのみが ntpdc で設定でき、 pll_kernel, pps_kernel フラグは読み込み専用であることに注意してく ださい。

auth
通信相手が信頼できる鍵と鍵の識別子を使って正しく認証され たときだけ、未設定の通信相手にサーバを同期させるようにし ます。デフォルトでは有効になっています。

bclient
デフォルトアドレス付きの mutlicastclient コマンドの場合と 同様に、ブロードキャストサーバやマルチキャストサーバから のメッセージを聞く (listen) ようにします。デフォルトでは 無効になっています。

monitor
モニタ機能を有効にします。詳細な情報については、 monlist コマンドを参照して下さい。デフォルトでは有効になっていま す。

pll
サーバが NTP を使ってローカル時計を合わせるようにします。 無効の場合は、ローカル時計は内部の時間および周波数オフ セットによって勝手に動作することになります。このフラグ は、ローカル時計が他のデバイスやプロトコルにより制御され ていて、 NTP は他のクライアントが同期するためだけに使われ るような場合に便利です。この場合、ローカル時計ドライバが 使用されます。より詳細な情報は "参照クロックドライバ" の ページを参照してください (より詳細な情報については、 /usr/share/doc/ntp ページにある HTML 文書の一部が利用可能 です)。デフォルトでは有効になっています。

pps
高精度な時刻保持のための変更がなされたカーネルにより、周 波数と時刻が学習されている場合に、 1 秒ごとのパルス信号 (PPS) を有効にします。より詳細な情報は "高精度な時刻保持 のためのカーネルモデル" のページを参照してください。デ フォルトでは無効になっています。

stats
統計機能を有効にします。より詳細な情報は ntp.conf(5) マ ニュアルページの 監視機能のサポート節を参照してください。 デフォルトでは有効になっています。

pll_kernel
高精度な時刻保持のための変更がカーネルになされている場 合、カーネルが時計の学習を制御していることを示します。そ うでない場合はデーモンが時計の学習を制御しています。

pps_kernel
高精度な時刻保持のための変更がカーネルになされており、ま た1 秒ごとのパルス信号 (PPS) が存在している場合、 PPS 信 号が時計の学習を制御していることを示します。そうでない場 合は pll_kernel フラグの示すとおり、デーモンまたはカーネ ルが時計の学習を制御しています。

restrict address mask flag ...
このコマンドは ntpd(8)restrict 設定ファイルコマンドと同様に動 作します。

unrestrict address mask flag ...
制限リストにおいて、マッチしたエントリの制限を解除します。

delrestrict address mask [ntpport]
制限リストから一致するエントリを削除します。

readkeys
現在の認証鍵のセットを一掃し、鍵ファイル (これは ntpd(8) 設定ファ イルの中で指定されていなければなりません) の再読み込みを行なって 新しいセットにします。こうすることで、サーバを再スタートさせずに 暗号化鍵の変更ができます。

trustedkey keyid ...

untrustedkey keyid ...
これらのコマンドは ntpd(8)trustedkey 設定ファイルコマンドや untrustedkey 設定ファイルコマンドと同様に動作します。

authinfo
既知の鍵や実行した暗号化、復号化の数を含む、認証モジュールに関す る情報を返します。

traps
サーバに設定されているトラップを表示します。詳細はソースリストを 参照してください。

addtrap address [port] [interface]
非同期メッセージに対するトラップをセットします。詳細はソースリス トを参照してください。

clrtrap address [port] [interface]
非同期メッセージに対するトラップを解除します。詳細はソースリスト を参照してください。

reset
サーバのいろいろなモジュールのなかの統計カウンタをクリアします。 詳細はソースリストを参照してください。

関連項目

ntp.conf(5), ntpd(8)

       David L. Mills,                         Network Time Protocol (Version 3),                                                              RFC1305.

バグ

ntpdc ユーティリティは、未完成のハックです。表示される情報の多くは死ぬほ ど退屈で、実装した人間だけに気に入られるものです。このプログラムは、新し い (そして一時的な) 仕様を追加しやすいようデザインされており、使いやすく するしようとすると無茶苦茶手間がかかります。それでも、このプログラムは、 場合によっては有用です。

FreeBSD 10.0 January 7, 2000 FreeBSD 10.0

スポンサーリンク