doc/ja/man/man8/xntpdc.8
Jun Kuriyama 88a4de0fb8 Catch up to 3.0-19980827-SNAP and some fixes.
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1998-09-26 06:20:22 +00:00

642 lines
19 KiB
Groff

.\"
.\" %Id: xntpdc.8,v 1.3 1998/02/19 08:05:46 charnier Exp %
.\"
.Dd December 21, 1993
.Dt XNTPDC 8
.Os
.Sh 名称
.Nm xntpdc
.Nd Network Time Protocol デーモンのための問い合わせ、制御プログラム
.Sh 書式
.Nm xntpdc
.Op Fl ilnps
.Op Fl c Ar command
.Op Ar host ...
.Sh 解説
.Nm
.Xr xntpd 8
デーモンの現在の状態についての問い合わせや、状態の変更を要求する際に使
われます。このプログラムは、対話的なモードでもコマンドライン引数を
使った制御でも動作させることができます。
広範囲にわたる状態や統計の情報が、
.Nm
のインタフェースを通じて提供されています。
それに加えて、
.Nm xntpd
の設定ファイルを使って起動時に指定できるほとんどすべて
のオプションが、
.Nm
を使って、実行時にも指定できます。
.Pp
.Nm
が実行されたとき、1 つまたは複数のリクエストオプションが、
コマンドラインに含まれる場合は、それぞれのリクエストは、コマンドライン
引数で与えられるホスト、またはデフォルトである
.Ar localhost
.Tn NTP
サーバに送られます。
リクエストオプションが付けられなかったとき、
.Nm
はコマンドを標準入力から読み込もうとし、コマンドラインで与えられた
最初のホストで走っている
.Tn NTP
サーバに対してそのコマンドを実行します。
ホストが指定されなかったときは、
デフォルトである
.Ar localhost
のサーバに対して実行します。
.Nm
は、標準入力が端末である場合だけ、プロンプトを出します。
.Pp
.Nm
は、
.Tn NTP
サーバとの通信に
.Tn NTP
モード 7 パケットを使うため、
ネットワーク上でそれを許すような互換サーバへの問い合わせに使えます。
.Tn NTP
は UDP プロトコルなので、特にネットワークトポロジー的に遠くに
ある場合は、この通信はやや信頼性に欠けるということを覚えておいて下さい。
.Nm
は、リクエストを再送する試みを行ないません。適当なタイムアウト時間の
範囲内でリモートホストから返答がなかったときは、時間切れとなります。
.Pp
コマンドラインオプションは以下の通りです。
.Fl i
または
.Fl n
以外のコマンドラインオプションを指定すると、指定したホスト (群) に、
指定した問い合わせ (または複数の問い合わせ) を直ちに送ることになります。
指定しなかった場合、
.Nm
は標準入力から対話的なフォーマットのコマンドを読み込もうとします。
.Bl -tag -width indent
.It Fl c
次の引数が対話的なフォーマットのコマンドとして解釈され、指定したホストで
実行されるようにコマンドのリストに加えられます。
複数の
.Fl c
オプションを与えることができます。
.It Fl i
.Nm
を強制的に対話的モードで動作させます。標準出力にプロンプトが
表示され、標準入力からコマンドが読み込まれます。
.It Fl l
サーバに既知の peer のリストを取得します。このスイッチは、
.Qq -c listpeers
と同等です。
.It Fl n
すべてのホストアドレスを、標準的なホスト名でなく、ドット区切りの 4 個
の数値で出力します。
.It Fl p
サーバに既知の peer のリストと、それらの状況の要約を出力します。
これは、
.Qq -c peers
と同等です。
.It Fl s
サーバに既知の peer のリストと、それらの状況の要約を、
.Fl p
スイッチとは少し異なるフォーマットで出力します。
これは
.Qq -c dmpeers
と同等です。
.El
.Sh 内部コマンド
対話的なフォーマットのコマンドは、キーワードとそれに続く 0 から 4 個の
引数から構成されます。キーワード全長のうち、他と区別できる文字数が
タイプされれば、有効になります。
コマンドの出力は通常標準出力に送られますが、コマンドライン上で
.Qq >
に続けてファイル名を指定することで、個々のコマンドの出力を
ファイルに送ることができます。
.Pp
いくつかの対話的フォーマットのコマンドは、
.I xntpdc
プログラム自身の中で全体が実行され、サーバへの
.Tn NTP
モード 7 リクエストは
送られません。この種類のコマンドには以下の物があります。
.Pp
.Bl -tag -width indent
.It Xo ?
.Op Ar command_keyword
.Xc
.Em ?
のみのコマンドは、
.Nm
が知っているすべてのコマンドキーワードのリストを出力します。
.Em ?
とそれに続くコマンドキーワードは、コマンドの機能と用法を
出力します。このコマンドは、
.Nm
に関して、このマニュアルよりも多分良い情報源となるでしょう。
.It help Ar command_keyword
.Em ?
コマンドと同義です。
.It timeout Ar millseconds
サーバ問い合わせに対する応答のタイムアウト時間を指定します。デフォルト
は、約 8000 ミリ秒です。
.It delay Ar milliseconds
認証を求めるリクエストに含まれるタイムスタンプに加えられる時間を
指定します。これは、長い遅延のあるネットワーク経路や時刻の同期していない
マシン間で (信頼できない) サーバの再設定ができるようにするために
使われます。
.It host Ar hostname
問い合わせを送るホストを指定します。
.Ar hostname
は、ホスト名でも数値アドレス (ドット区切りの数値 4 つ) でもかまいません。
.It keyid Ar #
このコマンドで、認証設定リクエストに使われるキー番号を指定できます。
この番号は、この目的で使うためにサーバが設定したキー番号に一致して
いなければなりません。
.It passwd
このコマンドは、認証設定リクエストに使われるパスワードの入力
(エコーされません) を求めるプロンプトを出します。
このリクエストが成功するためには、
.Tn NTP
サーバが認証のために使うよう
設定したキーに、パスワードが一致していなければなりません。
.It hostnames Ar yes|no
.Ar yes
が指定されると、情報の表示の際、ホスト名が使用されます。
.Ar no
が与えられると、代わりに数値アドレスが使用されます。
コマンドラインの
.Fl n
スイッチが使われなければ、
デフォルトは
.Ar yes
になります。
.It quit
.Nm
を終了します。
.El
.Sh 問い合わせコマンド
問い合わせコマンドは、情報を要求する
.Tn NTP
モード 7 パケットをサーバに送ります。
これらは、サーバの設定状態を変更できない
.Qq 読み込み専用
コマンドです。
.Bl -tag -width indent
.It listpeers
サーバが状態を管理する peer の簡略なリストを得て、出力します。
これには、サーバが同期する予定の候補であるとみなす階層の peer を含めた、
すべての設定された隣接 peer を含んでいるはずです。
.It peers
サーバが状態を管理する peer と、その状態の要約を出力します。
状態の要約は、以下のものを含みます。すなわち、リモート peer のアドレス、
ローカルインタフェースアドレス (ローカルアドレスが決まっていないなら
0.0.0.0) 、リモート peer の階層 (階層 16 は、リモートの peer が同期していない
事を示します)、秒で表すポーリング間隔、8 進で表す到達可能性レジスタ、
peer の現在の遅れ、オフセット、バラツキの秒で表した推定値です。
更に、左端の文字は、この peer エントリが操作しているモードを
示します。
.Qq +
は symmetric active を、
.Qq -
は symmetric passive を表し、
.Qq =
は、リモートサーバがクライアントモードでポーリングされていることを意味し、
.Qq ^
は、サーバがこのアドレスにブロードキャストブロードキャストしていることを示し、
.Qq ~
は、リモート peer がブロードキャストを送っていることを示し、
.Qq *
は、サーバが現在同期している peer であることを示します。
.Pp
ホストフィールドの内容は、ホスト名、IP アドレス、パラメータと参照時刻実装名、
.Qq REFCLK(<implementation number>, <parameter>)
の 4 つの形のうち 1 つです。
.Qq hostnames no
の状態では、IP アドレスだけが表示されます。
.It dmpeers
少々異なる peer 要約リストです。
行の左端の文字以外は
.Em peers
と同じ出力になります。
文字は、時刻選択アルゴリズムの最後のステージに含まれる peer の隣にだけ
現れます。
.Qq \&.
は、誤りチェッカの検出でその peer が捨てられたことを、
.Qq +
はチェッカにより同期対象として適切であると判断されたことを示します。
.Qq *
は、サーバが現在同期している peer であることを示しています。
.It Xo showpeer
.Ar peer_address
.Op Ar addr2
.Op Ar addr3
.Op Ar addr4
.Xc
1 つ以上の peer の、現在の詳細な内容を表示します。
値については、
.Tn NTP
バージョン 2 仕様に詳しく述べられています。
.It Xo pstats
.Ar peer_address
.Op Ar addr2
.Op Ar addr3
.Op Ar addr4
.Xc
指定した peer に関連する統計カウンタを peer 毎に表示します。
.It Xo clockinfo
.Ar clock_peer_address
.Op Ar addr2
.Op Ar addr3
.Op Ar addr4
.Xc
peer クロックに関する情報を得て、それを表示します。得られた値は、
設定上のあいまいな要因の情報と他のクロックの性能の情報を
提供してくれます。
.It kerninfo
カーネルのフェーズロックループ操作パラメータを得て、それを表示します。
この情報は、精度の高い時刻保持機能のために、カーネルが特に
修正されている場合にだけ得られます。
.It loopinfo Op Ar oneline|multiline
選択されたループフィルタ変数の値を表示します。ループフィルタとは、
ローカルシステムクロックの調節を行なう
.Tn NTP
の一部です。
.Qq offset
は、パケット処理コードによってループフィルタに与えられる最後のオフセットです。
.Qq frequency
は、
parts-per-million (ppm) で表わされるローカルクロックの周波数誤差です。
.Qq time_const
は、フェーズロックループの
.Qq 堅固さ
を制御し、その速度で発振器のゆらぎを調節します。
.Qq watchdog timer
の値は、ループフィルタに最後のサンプルのオフセットが与えられてから経過した秒数です。
.Ar oneline
.Ar multiline
オプションはこの情報が
出力されるフォーマットの指定で、
.Ar multiline
がデフォルトです。
.It sysinfo
システム状態変数、すなわち、ローカルサーバに関する状態の変化を表示します。
最後の 4 行以外は、皆
.Tn NTP
バージョン 3 仕様である RFC 1305 で述べられています。
.Qq system flags
は、いろいろなシステムフラグを表示し、一部は
.Qq enable
及び
.Qq disable
設定コマンドで、それぞれの設定やクリアができます。
.Qq stability
は、システム周波数の修正がされた後に残る残留周波数誤差で、
保守やデバッグに使われます。
多くのアーキテクチャでは、この値は初期の 500 ppm 程度から、.01 から 0.1 ppm
という低い範囲にまで減少します。
もしデーモンが起動されてからも、この値が高いままである場合は、
ローカルな時計がどこかおかしいか、カーネル変数
.Qq tick
が間違っているかもしれません。
.Qq broadcastdelay
は、
.Qq broadcastdelay
変更コマンドで設定されるデフォルトのブロードキャスト遅延時間を表示し、
.Qq authdelay
は、
.Qq authdelay
変更コマンドで設定されるデフォルトの認証遅延時間を表示します。
.It sysstats
プロトコルモジュールで管理される統計カウンタを表示します。
.It memstats
メモリ割り当てコードに関する統計カウンタを表示します。
.It iostats
入力\-出力モジュールで管理される統計カウンタを表示します。
.It timerstats
タイマ/イベントキューをサポートするコードで管理される統計カウンタを表示します。
.It reslist
サーバの制限リストを得て、表示します。このリストは、
(通常) ソートされた順で出力され、制限がどのように適用されるかを
理解する助けになるかもしれません。
.It monlist Op Ar version
モニタ機能により収集、管理されるトラフィックカウントの値を得て、表示します。
通常、バージョン番号は指定する必要がありません。
.It Xo clkbug
.Ar clock_peer_address
.Op Ar addr2
.Op Ar addr3
.Op Ar addr4
.Xc
時刻参照ドライバのデバッグ情報を得ます。この情報は、
一部のクロックドライバでだけ提供され、
ドライバのソースのコピーが手元に無い場合、ほとんどデコードできません。
.El
.Sh 実行時設定リクエスト
サーバ内で状態を変更するようなリクエストは、すべてサーバが設定した
.Tn NTP
キーを使って認証されます
(この機能はキーを設定しないことで、無効にもできます) 。
キー番号とそれに対応するキーも、
.Nm
が知っていなければなりません。
これは、
.Em keyid
.Em passwd
コマンドを使えば可能で、後者では、暗号化されたキーを使うために
パスワードを求めるプロンプトを端末に出します。
サーバへの認証リクエストを必要とするコマンドが最初に実行された場合でも、
自動的にキー番号とパスワードの入力を要求します。
認証は、そのような変更をする権限を持っているリクエストであるかを
検証するだけでなく、送信エラーに対するより一層の保護を行う事になります。
.Pp
認証リクエストは、常にパケットデータの中に、認証コードの計算に
含まれているタイムスタンプを含んでいます。
このタイムスタンプは、サーバによって受信時刻と比較されます。この差がある小さな
値より大きければ、リクエストは拒否されます。これには二つの理由があります。
1 つは、あなたの LAN のトラフィックを盗み聞きできる誰かによるサーバへの
単純かつ繰り返しによる攻撃を困難にします。2 つ目は、ネットワーク的に
離れたホストから、あなたのサーバへ設定変更リクエストを行なうことを
困難にします。
再設定は、ローカルホストのサーバに対しては簡単で、時刻同期した
同じ LAN 上のホストでも普通に行なえますが、より離れたホストでは
やりにくくなっています。
したがって、適当なパスワードを選択し、キーの配布と防護に注意を払い、
適切なソースアドレス制限が施されれば、実行時再設定の機能については
適切なセキュリティレベルにあることになります。
.Pp
以下のコマンドは皆、認証リクエストです。
.Bl -tag -width indent
.It Xo addpeer
.Ar peer_address
.Op Ar keyid
.Op Ar version#
.Op Ar prefer
.Xc
与えられたアドレスを設定された隣接 peer として追加し、symmetric active
モードで動作します。
既に隣接 peer として設定されている peer を指定した場合、その peer は
このコマンドが実行されたときに削除
されるか、単に新しい設定に従うよう適当に変更されます。
オプションの
.Ar keyid
が 0 でない整数の場合、リモートサーバに
出ていくすべてのパケットは、このキーにより暗号化された
認証フィールドを持つことになります。値が 0 の場合
(または指定されなかった場合)、認証は行なわれません。
.Ar version#
は、1, 2, 3 のどれかとなり、デフォルトは 3 です。
.Ar prefer
キーワードは、優先する peer を示します
(その結果、可能であれば時刻同期の主要元として使用されます)。
優先する peer は、 PPS 信号の信頼性も決めます。優先する peer が同期に
適している場合、PPS 信号も信頼できると判断されます。
.It Xo addserver
.Ar peer_address
.Op Ar keyid
.Op Ar version#
.Op Ar prefer
.Xc
操作モードがクライアントであること以外は、
.Em addpeer
コマンドと同等です。
.It Xo broadcast
.Ar peer_address
.Op Ar keyid
.Op Ar version#
.Xc
操作モードがブロードキャストであること以外は、
.Em addpeer
コマンドと同等です。この場合、正当なキー識別子とキーが必要になります。
.Ar peer_address
パラメータは、ローカルネットワークのブロードキャストアドレスか、または
.Tn NTP
に割り当てられたマルチキャストグループアドレスにできます。
マルチキャストアドレスの場合、マルチキャストに対応したカーネルが
必要になります。
.It Xo unconfig
.Ar peer_address
.Op Ar addr2
.Op Ar addr3
.Op Ar addr4
.Xc
このコマンドは、指定した peer (群) から設定済みを表すビットを除去します。
多くの場合、これによって隣接 peer の設定が削除されることになります。
しかしながら、リモートの peer が未設定状態の継続を希望し、
それが適切である場合は、隣接関係は未設定モードのまま残る場合もあります。
.It Xo fudge
.Ar peer_address
.Op Ar time1
.Op Ar time2
.Op Ar stratum
.Op Ar refid
.Xc
このコマンドは、あるデータを参照時刻としてセットすることができます。
詳しい情報は、ソースリストを見て下さい。
.It Xo enable
.Ar auth|bclient|pll|monitor|stats
.Op Ar ...
.Xc
各種サーバオプションを有効にします。言及されていないフラグは影響を受けません。
.Ar auth
フラグは、 peer が信頼できるキーと
キー識別子を使って正しく認証されたときだけ、未設定の
peer にサーバを同期させます。デフォルトは無効 (オフ) です。
.Ar bclient
フラグは、サーバが
ブロードキャストサーバやマルチキャストサーバからのメッセージを
聞く (listen) ようにして、 自動的にそのサーバと隣接関係を設定します。
デフォルトは無効 (オフ) です。
.Ar pll
フラグは、サーバがローカルクロックを修正するようにします。
デフォルトは有効 (オン) です。これが設定されていないと、ローカルクロック
は内部の時間および周波数オフセットによって勝手に動作することになります。
このフラグは、ローカルクロックが他のデバイスやプロトコルにより制御されていて、
.Tn NTP
は他のクライアントが同期するためだけに使われるような場合に便利です。
.Ar monitor
フラグは、モニタ機能 (他を参照のこと) を可能にするもので、
デフォルトは無効 (オフ) です。
.Ar stats
フラグは、統計機能ファイル出力 (他の説明を参照のこと) を可能にします。
デフォルトは有効 (オン) です。
.It Xo disable
.Ar auth|bclient|pll|monitor|stats
.Op Ar ...
.Xc
各種サーバオプションを無効 (オフ) にします。言及されていない
フラグは影響を受けません。現在有効なフラグは、 enable コマンドのところで
述べられています。
.It Xo restrict
.Ar address
.Ar mask
.Ar flag
.Op Ar flag
.Xc
フラグ (群) を存在する制限リストエントリに加えるか、または指定した
フラグ (群) で新しいエントリをリストにつけ加えます。
可能なフラグ引数の選択は、以下の通りとなります:
.Bl -tag -width indent
.It ignore
このエントリにマッチするホストからのすべてのパケットを無視します。
このフラグが指定されると、どんな問い合わせやタイムサーバの
ポーリングにも反応しなくなります。
.It noquery
ソースからの
.Tn NTP
モード 7 のパケット
(すなわち、情報問い合わせと設定リクエスト) をすべて無視します。
時刻サービスは影響されません。
.It nomodify
サーバの状態を変更しようとする
.Tn NTP
モード 7 のパケット (すなわち、実行時再設定) をすべて無視します。
情報を返すような問い合わせは許されます。
.It notrap
一致するホストへの、モード 6 制御メッセージのトラップサービスを
提供しません。このトラップサービスはモード 6 制御メッセージプロトコルの
サブシステムで、リモートイベントの記録を行うようなプログラムで使用される
事を意図しています。
.It lowpriotrap
一致するホストによるトラップの優先度を低くします。
サーバが管理できるトラップの数は制限されています (現在の制限は 3)。
トラップは、通常早い者勝ちベースで割り当てられ、制限に達すると以降の
トラップ要求は拒否されます。このフラグは割り当てアルゴリズムを変更し、
優先度の低いトラップは後から発生した通常の優先度のトラップ要求により
無効にされるようになります。
.It noserve
モードが 7 以外の
.Tn NTP
パケットを無視します。要するに、問い合わせは受け
付けるが、時刻サービスは拒否することになります。
.It nopeer
問い合わせて来たホストに、状態を保存しない時刻サービスを行ないます。
しかし、たとえ将来同期先の相手として便利だとしても、
これらのホストには peer メモリのリソースを割り当てません。
.It notrust
これらのホストを同期する元としては決して使用しませんが、その他の
部分では通常に扱います。
.It limited
これらのホストは同一のネットからのクライアントの数の制限を受けます。
この文脈でいう
ネットとは、ネットの IP の概念 (クラス A 、クラス B 、クラス C 等) を
指します。
サーバが認識している
.Qq client_limit
以下のホスト数で、過去
.Qq client_limit_period
秒間アクティブ
だったホストは受け入れられます。同じネットの他のクライアントからの
リクエストは、拒否されます。時刻リクエストパケットだけが考慮されます。
.Qq Private ,
.Qq control ,
.Qq broadcast
のパケットは、クライアントの制限を受けず、
したがってクライアント数にも数えられません。
クライアントの履歴は、
.Xr xntpd 8
のモニタ機能により保存されます。
したがって、モニタ機能は、
.Ar limited
フラグで制限されたエントリがある限り機能します。
デフォルトの
.Qq client_limit
値は 3 です。デフォルトの
.Qq client_limit_period
値は 3600 秒です。現在、どちらの変数も実行時には変更できません。
.It ntpport
これは制限フラグというより、実際にはマッチアルゴリズム修飾子です。
これがあると、パケットのソースポートが標準
.Tn NTP
UDP ポート (123) である場合だけ、制限エントリがマッチします。
.Em ntpport
.Pf non\- Em ntpport
の両方が指定できます。
.Em ntpport
の方がより特別に扱われ、リスト中で後ろの方にソートされます。
.El
.It Xo unrestrict
.Ar address
.Ar mask
.Ar flag
.Op Ar flag
.Xc
.Ar address
.Ar mask
の引数で指定された制限リストエントリから、指定されたフラグを除きます。
.It Xo delrestrict
.Ar address
.Ar mask
.Op Ar ntpport
.Xc
制限リストから一致するエントリを削除します。
.It monitor Ar yes|no
モニタ機能を有効または無効にします。
.Em monitor Ar no
に続けて
.Em monitor Ar yes
コマンドを送るのは、パケット数をリセットする良い方法です。
.It readkeys
現在の認証キーのセットを一掃し、キーファイル (これは
.Nm xntpd
設定ファイルの中で指定されていなければなりません) の
再読み込みを行なって新しいセットにします。
こうすることで、サーバを再スタートさせずに暗号化キーの変更ができます。
.It Xo trustkey
.Ar keyid
.Op Ar keyid
.Op Ar keyid
.Op Ar keyid
.Xc
1 つないしそれ以上のキーを、信頼キーリストに加えます。
認証が有効になっているとき、信頼性のある時刻を持つ peer は、
信頼キーを使って認証されなければなりません。
.It Xo untrustkey
.Ar keyid
.Op Ar keyid
.Op Ar keyid
.Op Ar keyid
.Xc
1 つないしそれ以上のキーを、信頼キーリストから削除します。
.It authinfo
既知のキーや実行された暗号化、復号化の数を含む、認証モジュールに関する
情報を返します。
.It setprecision Ar precision_value
サーバが通知する精度を指定した値に設定します。
値は、 -4 から -20 の範囲の負の整数でなければなりません。
.It traps
サーバに設定されているトラップを表示します。
詳しくはソースリストを参照して下さい。
.It Xo addtrap
.Ar address
.Op Ar port
.Op Ar interface
.Xc
非同期メッセージのトラップをセットします。
詳しくはソースリストを参照して下さい。
.It Xo clrtrap
.Ar address
.Op Ar port
.Op Ar interface
.Xc
非同期メッセージのトラップを解除します。
詳しくはソースリストを参照して下さい。
.It reset Ar ...
サーバのいろいろなモジュールのなかの統計カウンタをクリアします。
詳しくはソースリストを参照して下さい。
.El
.Sh 関連項目
.Xr xntpd 8
.Sh 歴史
University of Toronto の
.An Dennis Ferguson
が作成しました。
.Sh バグ
.Nm
は、未完成のハックです。表示される情報の多くは死ぬほど退屈で、実装した
人間だけに気に入られるものです。このプログラムは、新しい (一時的な)
仕様を追加し易いようデザインされており、使いやすくするには手間が
かかります。それでも、このプログラムは、場合によっては有用です。