XNTPDC(8) — NEWS-OS Programmer’s Manual
−ilnps
名称
xntpdc − 照会/ネットワークタイムプロトコルデーモンのコントロールプログラム
形式
xntpdc [ −ilnps ] [ −c command ] [ host ] [ ... ]
解説
xntpdc は、 xntpd(8) デーモンにその現在の状態について照会し、 その状態の変更を要求するのに使用します。 プログラムは対話モードでも、 コマンド行引数を使って 制御されている状態でもどちらでも実行できます。 拡張的な状態と統計情報は、 xntpdc のインターフェースを通じて使用可能です。加えて、起動時に xntpd のコンフィギュレーションファイルを使って指定できる コンフィギュレーションオプションのほとんど全ては、実行時にも xntpdc を使って指定できます。
xntpdc が実行されている時、 複数の要求オプーションがコマンド行上にあれば、 各要求はコマンド行引数として与えられた各ホスト、または デフォルトで、 localhost で動作している NTP サーバへ送られます。 要求オプションが与えられていなければ、 xntpdc は標準入力からコマンドを読もうとし、 コマンド行に与えられた最初のホストで動作している NTP サーバで これらを実行します。 他にホストが指定されていない時は、 デフォルトとして localhost を再び取ります。 標準入力が端末装置ならば、 xntpdc はコマンドを促します。
NTP サーバと通信するために、 xntpdc は、NTP モード 7 パケットを使用します。 それが可能なネットワーク上の互換性のあるサーバなら、 どれにでも照会する際に使用できます。 NTP は UDP プロトコルなので、 特にネットワーク位相幾何学的に見て長距離にわたる場合、 この通信はいくらか信頼性に欠けます。 適当なタイムアウト時間内にリモートホストから応答がなければ、 xntpdc は要求の再伝送は試みず、 要求をタイムアウトとします。
コマンド行オプションは以下で解説されています。 −i または −n 以外のコマンド行オプションを指定すると、 指定された照会(複数可)は、 指示されたホスト(複数可)にすぐに送られることになります。 そうでなければ、 xntpdc は標準入力から 対話形式コマンドを読もうとします。
−c以下の引数は対話形式コマンドとして解釈され、 指定されたホスト (複数可) 上で 実行されるコマンドのリストに加えられます。 複数の −c オプションを与えることができます。
−i強制的に xntpdc に対話モードで操作させます。 プロンプトは標準出力に書かれ、コマンドは標準入力から読みます。
−lサーバ(複数可)が認知しているピアのリストを得ます。 このスイッチは “−c listpeers” に相当します。
−n正式ホスト名に変換せずに、ドットで間を詰めた数字の形式で 全てのホストアドレスを出力します。
−pピアの状態の要約はもちろん、サーバが認知しているピアのリストを 出力します。 これは “−c peers” に相当します。
−sピアの状態の要約はもちろん、サーバが認知しているピアのリストを 出力しますが、 −p のスイッチとはわずかに 形式が異なります。 これは “−c dmpeers” に相当します。
INTERNAL COMMANDS
対話形式コマンドは、ゼロから 4 つの引数が後に 続くキーワードで構成されています。 キーワード全体の中から、 コマンドを一意に識別するのに足るだけの文字をタイプすれば済みます。 通常、コマンドの出力は標準出力へ送られますが、 ここのコマンドの出力は、ファイル名が 後に続く “>” をコマンド行に加えれば、 ファイルへ送ることができます。
相当数の対話形式コマンドは独自で、 xntpdc のプログラムの中だけで完全に実行され、 NTP モード 7 の要求がサーバに送られることはありません。 これは以下で解説されています。
? [ command_keyword }
“?” は単独で、 xntpdc の具現化したものが 認知している全てのコマンドのキーワードのリストを出力します。 コマンドのキーワードが後に続く “?” が、 コマンドに関する利用法情報や機能を 出力します。 このコマンドはおそらく、 xntpdc に関する情報源としてはこのマニュアルページよりも より良いものでしょう。
help [ command_keyword ]
? コマンドの同義語です。
timeout millseconds
サーバの照会に応答するときのタイムアウト期間を指定します。 デフォルトは約 8000 ミリ秒です。
delay milliseconds
鑑定を必要とする要求内のタイムスタンプに加えられる、 時間間隔を指定します。 これを使用すると、 遅延の長いネットワーク経路での、またはそのクロックが 同期化していない装置間での (信頼性に欠けた) サーバの再構成ができます。
host hostname
将来、照会が送られるホストを設定します。 hostname はホスト名でも数字のアドレスでも結構です。
poll [ # ] [ verbose ]
クライアントモードで現在のサーバをポーリングします。 最初の引数はポーリングする回数 (デフォルトは 1)、 二番目の引数は、更に詳細な結果の出力を得るために与えられます。 ただし、現在のところこのコマンドはまだ希望的観測にすぎません。
keyid #
このコマンドは、キー番号の仕様を構成要求の鑑定に 使用できるようにします。 これは、サーバがこの目的で使用するために構成した キー番号と対応していなければなりません。
passwd
このコマンドは、構成要求を鑑定するのに使われるパスワード (エコーはされません) でタイプするようにユーザを促すものです。 この要求を成功させるには、パスワードを、NTP サーバが この目的で使用するために構成されたキーと 対応させなければなりません。
hostnames yes│no
“yes” が指定されれば、 ホスト名は情報表示に出力されます。 “no” が与えられれば、 数字のアドレスが代りに出力されます。 コマンド行、 −n スイッチを使って変更されない限り、 デフォルトは “yes” です。
quit
xntpdc を終了します。
照会コマンド
照会コマンドで、NTP モード 7 パケットは、 サーバへ送られる情報に対する要求を持ちます。 これらは “読み取り専用” のコマンドで、 サーバの構成状態を変更することはありません。
listpeers
サーバが状態を維持しているピアの簡潔なリストを得て、 出力します。 これらには、その層が将来、同期化の候補となり得ると サーバが見なすピアはもちろん、 構成された全てのピア結合が入っていなければなりません。
peers
サーバがその状態を維持しているピアのリスト、加えて その状態の要約を得ます。 要約情報には、リモートピアのアドレス、 ローカルインターフェースのアドレス (まだローカルアドレスが決定されていなければ、0.0.0.0)、 リモートピアの層 (16 の層が、リモートピアが 同期化されていないことを示します)、 秒単位でのポーリング間隔、8 進での到達可能性レジスタ、 そして現在、全て秒単位で見積もられた遅延、 オフセット、ピアの分布などが入っています。 また、左マージン内の文字は、 ピアエントリが動作しているモードを示します。 “+” は対称的能動を示し、 “−” は対称的受動を示します。 また、“=” は、 クライアントモードでポーリングされているリモートサーバのことで、 “^” は、サーバがこのアドレスに通信していることを示します。 また、“~” は、 リモートピアが複数のプロードカストを送っていることを示し、 “∗” は、 現在サーバが同期化している先のピアを示します。
dmpeers
わずかに異なったピアの要約リストです。 一番左のカラムに文字がなければ、 peer コマンドの出力と同じです。 文字は、クロック選択アルゴリズムの最終段階に含まれている ピアのそばに表示されるのみです。 “.” は、 当該ピアが異常のあるクロックの検索にかかり放棄されたことを示し、 一方、“+” はピアが検索を無事通った ことを示します。 “∗” は現在サーバが同期化しているピアを示します。
showpeer peer_address [ addr2 ] [ addr3 ] [ addr4 ]
単一の、または複数のピアの現在のピア変数の詳細を表示します。 これらの値のほとんどは、NTP バージョン 2 の仕様 で解説されています。
pstats peer_address [ addr2 ] [ addr3 ] [ addr4 ]
指定されたピア (複数可) と結合しているピア毎の統計 カウンタを表示します。
loopinfo [ oneline│multiline ]
選択されたループフィルタ変数の値を出力します。 ループフィルタは、ローカルのシステムクロックの 調整を扱う NTP の一部です。 “offset” は、 パケット処理コードがループフィルタに与えた最後のオフセットです。 実際は “frequency” は、 ユーザのシステムクロックの周波数エラー、または浮標のことです。 このとき、システムクロックは、 NTP が内部での計算に使用する装置の中のものです。 この数値を 4096 に割ると、実際の浮標率が得られます。 “compliance” は、 長期間に及ぶオフセットの平均で、 ループフィルタのゲインをコントロールするときに NTP が使います。 “timer” の値は新しいサンプルオフセットが ループフィルタに与えられてから経過した秒数です。 “oneline” と “multiline” オプションは、 この情報を出力するフォーマットを指定します。 “multiline” はデフォルトです。
sysinfo
システム状態変数の種類を出力します。 つまり、ローカルサーバに関連した状態です。 これらの値の多くは、 NTP バージョン 2 の仕様、 RFC 1119 に解説されています。
sysstats
プロトコルモジュール内に維持されているスタットカウンタの数を 出力します。
memstats
ピアメモリ割り当てコードに関連したカウンタの数を出力します。
iostats
入力−出力モジュール内に維持されているカウンタを出力します。
timerstats
タイマ/イベントの待ち行列サポートコードに維持されている カウンタを出力します。
reslist
サーバの制限リストを得て、出力します。 (通常) このリストは分類順で出力され、 制限がどのように適用されているかを理解するのに役立ちます。
monlist
監視機構が集め、維持している通信量数を得て、出力します。
clockinfo clock_peer_address [ addr2 ] [ addr3 ] [ addr4 ]
ピアクロックに関係した情報を得て、出力します。 得られた値は、ファッジ係数の設定についての情報と、 他のクロック動作の情報を提供します。
clkbug clock_peer_address [ addr2 ] [ addr3 ] [ addr4 ]
クロックピアのためのデバッギング情報を得ます。 この情報は、 クロックドライバの中のほんのいくつかが提供できるもので、 ユーザ自身がドライバのソースのコピーをしなければ、 デコードはほとんど不可能です。
実行時間構成要求
サーバに状態変更を引き起こす要求は全て、 構成された NTP キーを使用してサーバが鑑定します (キーを構成しなければ、この機構はサーバが 許可しません)。 キー番号と対応するキーもまた、 xtnpdc が認知できるようにしておかなければなりません。これは、 keyid と passwd コマンドを使えば行えますが、 後者は、端末でパスワードを暗号化キーとして使うように促します。 要求を鑑定させるコマンドが与えられて初めて、 キー番号とパスワードの両方がユーザに自動的に促されます。 鑑定は、要求側が そのような変更ができることを確認するだけでなく、 送信エラーの再発を防止する能力もまた高めます。
鑑定済の要求は常にタイムスタンプを パケットデータ内に持っていますが、 これは鑑定コードの計算にも含まれているものです。 サーバは、このタイムスタンプとその受信タイムスタンプを比較します。 そのとき差異が小さく収まらないと、要求は拒否されます。 これには、2 つの理由があります。 一つは、ユーザの LAN 上の通信を傍受できる人が、 サーバを単純な応答で攻めている場合、非常に難しくなります。 二つ目は、 位相幾何学的に見た場合のリモートホストからユーザのサーバに 構成変更の要求をした場合も、困難なものとなります。 再構成機能はローカルホスト上で順調にサーバで動作し、 同一 LAN 上の時刻が同期化されたホスト間でも適切に動作できます。 が、距離的に遠いホストだとかなり不完全な動作しかしません。 例えば、適切なパスワードが選ばれ、 キーの割り当てと保護にケアがなされ、 適切なのソースアドレスの制限が適用されていれば、 実行時の再構成機能は、適当なレベルの機密保持を提供するはずです。
以下のコマンドは全て、要求を鑑定します。
addpeer peer_address [ keyid ] [ version# ] [ minpoll ]
与えられたアドレスでピアと結合する、 構成された対称能動的ピアを加えます。 任意の “keyid” が非ゼロ整数の場合、 リモートサーバへの全ての出力パケットは、 このキーで暗号化された、付属の鑑定フィールドを持っています。 値が 0 (または与えられない) の場合は、鑑定は行われません。 “version#” は 1 でも 2 でも良く、 デフォルトとして 2 を取ります。 “minpoll” が指定されていれば、 結合のポーリング間隔は最小に留められたままとなります。 後者のオプションは、テストでしか使うことができません。 同一ピアとの結合が存在すると、 このコマンドが実行されたとき削除されてしまうか、 単純に新しい配列に順応して、 適当なものに変換されることに注意して下さい。
addserver peer_address [ keyid ] [ version# ] [ minpoll ]
ポーリングが対称的能動モードではなく、 クライアントモードで行われる以外は、 addpeer コマンドと同じです。
broadcast peer_address [ keyid ] [ version# ] [ minpoll ]
ブロードキャストモードでパケットが代りに送られる以外は、 addpeer コマンドと同じです。 一般に “peer_address” パラメータは、 ユーザのローカルネットワークの中の一つで、 ブロードキャストアドレスになります。
unconfig peer_address [ addr2 ] [ addr3 ] [ addr4 ]
指定されたピア(複数可)から、このコマンドは構成 されたビットを取り除きます。 多くの場合、これはピア結合を削除します。 適切な場合、リモートピアが積極的に非構成モードで動作を 続けようとしていれば、結合はこのモードを継続します。
set bclient│auth [ ... ]
ブロードキャストクライアントおよび、または鑑定システム のフラグの設定を可能にします。 前者を設定すると、サーバはブロードキャスト NTP を探がし、 適当なときにブロードキャストに同期化します。 後者のフラグを設定すると、 サーバは、ローカルサーバの確実なキーの 1 つで暗号化された 鑑定フィールドのあるピアと同期化するだけです。
clear bclient│auth [ ... ]
ブロードキャストクライアントおよび、または鑑定システムフラグ をクリアすることを可能にします。 前者をクリアすると、入力ブロードキャスト NTP パケットは無視されます。 後者をクリアすると、鑑定フィールドを持たないピア、あるいは 信頼性に欠けるキーで暗号化されることのなかった 鑑定フィールドを持たないピアを、同期化の候補としてみなすことを 可能にします。
restrict address mask flag [ flag ]
フラグ (複数可) を存在する制限リストエントリに加えさせる、 または指定されたフラグ(複数可)のあるリストに新しいエントリ を加えます。 フラグ引数の選択で可能なものは、以下のリストにあります。
ignoreこのエントリに整合するホストからのパケットの全てを無視します。 このフラグが指定されない場合は、 照会もタイムサーバのポーリングにも応答が返ってこなくなります。
noqueryソースからの全ての NTP モード 7 パケット (つまり、情報照会と構成 要求) を無視します。 タイムサービスには影響ありません。
nomodifyサーバの状態(つまり、実行時再構成)を変更しようとする 全ての NTP モード 7 パケットを無視します。 情報を返却する照会ならば許可されます。
noserve7 以外のモードの NTP パケットを無視します。 照会は許可されますが、基本的には タイムサービスは拒否されます。
nopeerポーリングしているホストにホームのないタイムサービスを提供しますが、 たとえ将来の同期化先として有効であるとみなされていても、 これらのホストにピアのメモリ資源を割り当てることはありません。
notrust通常、これらのホストを他の面で扱いますが、 同期化元として利用することはありません。
ntpport実際にはこれは、制限フラグというより、 むしろ整合アルゴリズム修飾子です。 この存在は、パケット内のソースポートが 標準 NTP UDP ポート (123) の場合に限って、 制限エントリを整合させます。 “ntpport” と 非 “ntpport” の両方とも、 指定することができます。 “ntpport” はより特殊なものとして看做されていて、 リストの後半に分類されます。
unrestrict address mask flag [ flag ]
address および mask 引数で示された制限リストエントリから、 指定されたフラグ (複数可) を取除きます。
delrestrict address mask [ ntpport ]
制限リストから整合しているエントリを削除します。
monitor yes│no
監視機能を可能、または不可能にします。 monitor yes コマンドが後に続く monitor no コマンドは、パケット の総数をリセツトするのに役立ちます。
readkeys
鑑定キーの現在の設定を除去し、 キーファイルを再読み出しすることで 新しく設定し直します(これは、 xntpd コンフィギュレーションファイル内で指定しておかなけれはなりません)。 これは、暗号化キーをサーバを再起動せずに変更することを可能にします。
trustkey keyid [ keyid ] [ keyid ] [ keyid ]
1 つ以上のキーを確実なキーリストに加えます。 鑑定が可能なときは、確実なキーを使って、時間の確実な ピアを鑑定しなければなりません。
untrustkey keyid [ keyid ] [ keyid ] [ keyid ]
確実なキーリストから、1 つ以上のキーを取り除きます。
authinfo
鑑定モジュールに関係した情報、また認知されたキーと、 実行済の暗号化と解読の回数を含んだ情報を返却します。
setprecision precision_value
サーバが宣言する精度を指定された値に設定します。 −4 から −20 までの範囲内の負の整数でなければなりません。
setselect algorithm_number
選択重みアルゴリズムを指定された数で示されたものに設定します。 1 から 5 までの間の整数の値でなければなりません。 アルゴリズム 1 は RFC 1119 で指定されたものですが、 他の 4 つのアルゴリズムは実験的なものなので、 使用には注意が必要です。
関連事項
歴史
トロント大学 デニス ファーガスン著
バグ
xntpdc は未熟なハックです。 表示する情報のほとんどは非常に退屈で、 その開発者しかこれを好ましいとしません。 プログラムは、新しい (かつ一時的な) 機能が簡単にハックできる ように、プログラムの使い易さを犠牲にして設計されました。 にもかかわらず、このプログラムは、しばしば役立つものです。
NEWS-OSRelease 4.2.1R