doc/ja/man/man8/xntpd.8
Hiroyuki Hanai 4aacbe2a6b Now, the Japanese Manual is for 2.2-980511.
Reviewed by: The Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by: horikawa@jp.freebsd.org
1998-05-18 01:06:55 +00:00

1087 lines
37 KiB
Groff

.\" jpman %Id: xntpd.8,v 1.2 1997/09/16 18:16:37 ken Stab %
''' $Header
'''
.de Sh
.br
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp
.if t .sp .5v
.if n .sp
..
.de Ip
.br
.ie \\n.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
'''
''' Set up \*(-- to give an unbreakable dash;
''' string Tr holds user defined translation string.
''' Greek uppercase omega is used as a dummy character.
'''
.tr \(*W-|\(bv\*(Tr
.ie n \{\
.ds -- \(*W-
.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
.ds L" ""
.ds R" ""
.ds L' '
.ds R' '
'br\}
.el\{\
.ds -- \(em\|
.tr \*(Tr
.ds L" ``
.ds R" ''
.ds L' `
.ds R' '
'br\}
.TH XNTPD 8 LOCAL
.SH 名称
xntpd - Network Time Protocol デーモン
.SH 書式
.B xntpd
[
.B -abdm
] [
.B -c
.I conffile
] [
.B -e
.I authdelay
] [
.B -f
.I driftfile
] [
.B -k
.I keyfile
] [
.B -p
.I pidfile
] [
.B -r
.I broadcastdelay
] [
.B -s
.I statsdir
] [
.B -t
.I trustedkey
] [
.B -v
.I variable
] [
.B -V
.I variable
]
.SH 解説
.I xntpd
は、インターネットの標準時間サーバに合わせて、 Unix のシステム時刻
(time\-of\-day) を設定し維持するデーモンです。
.I xntpd
は、RFC 1305 で定義されている Network Time Protocol (NTP) バージョン
3 標準の完全な実装となっていますが、各々 RFC 1059 と RFC 1119 で定義
されているバージョン 1 とバージョン 2 に対する互換性も保っています。
.I xntpd
は全ての計算を固定少数点演算により行うので、浮動少数点を扱うコードは
必要としません。プロトコルおよび時間調整のコードで行われる計算は、高
精度で実行されます。また、最も正確な外部時計の供給源に対しても同期で
きるだけの精度の維持を計るべく、計算に規則だった補正値を導入するといっ
たように、細部まで注意が払われています。
.PP
通常、
.I xntpd
は、起動時に設定ファイルから設定を読込みます。
デフォルトの設定ファイル名は、
.IR /etc/ntp.conf
ですが、コマンドラインの指定の方が優先します。また、もっぱらコマンド
ラインだけで、その局面に役立つ
.I xntpd
の設定を与え、設定ファイルを不要にすることもで
きます。これは、
.I xntpd
が、実行時にブロードキャストを待受ける (listen) ことで決定される全て
の通信相手 (peer) に対して、ブロードキャストもしくはマルチキャスト・
クライアントとして設定されるべき時には、特に適しています。
.I xntpd
デーモンの実行中は、
.IR ntpq (8)
および
.IR xntpdc (8)
を使用することで、デーモンのさまざまな内部変数を表示したり
設定オプションを変更できます。
.PP
デーモンはアクティブ/パッシブ, クライアント/サーバ, ブロードキャスト
/マルチキャスト等の対称的なモードを含むいずれかのモードで働くことが
できます。ブロードキャストもしくはマルチキャスト・クライアントは、
自動的にリモートサーバを探し出し、片道の遅延補正因子を計算して、自動的
に自身に対する設定を行います。これにより、その環境に固有の詳細な設定
や設定ファイルなしに、一群のワークステーションを
配置することが可能になります。
.PP
以下にあげるコマンドライン引数が
.I xntpd
により理解されます。(より完全な機能の説明については、
設定ファイルの説明を参照のこと):
.Ip -a 8
「認証」 (\*(L"authenticate\*(R") モードで実行します。
.Ip -b 8
NTP のブロードキャストを待受けて、可能ならそれに同期します。
.Ip -c 8
デフォルトの代わりの設定ファイルを指定します。
.Ip -d 8
デバッグモードを指定します。このフラグは何回指定してもかまいませんが、
回数が多いほど表示がより詳細になります。
.Ip -e 8
このコンピュータ上で、NTP の暗号化 (encryption) フィールドを計算する
のに必要な時間を (秒で) 指定します。
.Ip "-f driftfile" 8
driftfile のある場所を指定します。
.Ip -k 8
NTP の認証キーを含むファイルのある場所を指定します。
.Ip -m 8
マルチキャストメッセージを待受けて、可能ならそれらに同期します (
マルチキャストカーネルが必要になります)。
.Ip -p 8
デーモンのプロセス ID を記録するためのファイル名を指定します。
.Ip -r 8
通常、デーモンは、ブロードキャストもしくはマルチキャストのサーバと
クライアントとの間のネットワーク遅延を自動的に補正します。
遅延の測定作業が失敗した場合には、ここで指定した (秒の) デフォルトの
遅延を使用するようになります。
.Ip -s 8
統計ファイルを作成するためのディレクトリを指定します。
.Ip "-t trustedkey" 8
キー番号を信頼できるキー (trusted key) のリストに付け加えます。
.Ip -v 8
システム変数を追加します。
.Ip -V 8
デフォルトでリストされるシステム変数を追加します。
.SH "コンフィギュレーションオプション"
.I xntpd
の設定ファイルのフォーマットは、
他の Unix 設定ファイルのものに似ています。
コメントは文字 \*(L"#\*(R" で始まり、行末まで続きます。空行は無視されます。
設定コマンドは、行頭のキーワードとそれに続く空白で区切られた
引数のリストからなります。引数の内いくつかは、省略可能な場合があります。
これらのコマンドは複数行にわたってはなりません。
引数は、ホスト名, ドットで区切られた 4 つ組の数からなる (dotted-quad) 形式の
ホストアドレス, 整数, 浮動少数点数 (秒で時間を指定する際用います),
テキスト文字列などです。
以下の説明では、省略可能な引数は、\*(L"[]\*(R" で囲み、
複数択一の引数は、互いに \*(L"|\*(R" で区切って表します。
.PP
.B peer
.I host_address
[
.B key
.I #
] [
.B version
.I #
] [
.B prefer
]
.br
.B server
.I host_address
[
.B key
.I #
] [
.B version
.I #
] [
.B prefer
]
.br
.B broadcast
.I host_address
[
.B key
.I #
] [
.B version
.I #
] [
.B ttl
.I #
]
.PP
これらの 3つのコマンドは、利用されるべき時間サーバや与えられるべき
時間サービスを指定します。
.B peer
コマンドは、ローカルサーバが、コマンド中の
.I host_address
で示されるリモートサーバに対し、「対称的アクティブ」 (\*(L"symmetric
active\*(R") モードで動作するよう指示します。これは、さまざまな失敗
の仕方によって、ローカルもしくはリモートのサーバホストのいずれかが
より良い時刻供給源となり得るようなサーバのネットワークにおいて、役立つ
ものです。
.B server
コマンドは、ローカルサーバが、指定したリモートサーバに
対して \*(L"クライアント\*(R" モードで動作するよう指示します。
このモードでは、ローカルサーバはリモートサーバに同期しますが、
リモートサーバがローカルサーバに同期することは決してありません。
.B broadcast
コマンドは、ローカルサーバが、\*(L"ブロードキャスト\*(R" モードで
動作するよう指示します。ローカルサーバは、コマンド中で指定される
ブロードキャスト/マルチキャスト/アドレスを持つクライアント集団に、
定期的にブロードキャストメッセージを送ります。通常、この指示は、
送信側 (transmitter) として動作しているローカルサーバにのみ適用されます。
ブロードキャストクライアントに対する動作については、以下に説明する
.B broadcastclient
もしくは
.B multicastclient
コマンドの項を参照して下さい。このモードでは、
.I host_address
は、通常、そのローカルネットワーク (もしくは複数の
ローカルネットワークの内のひとつ)の上でのブロードキャストアドレスであるか、
NTP に割当てられたマルチキャストアドレスです。NTPには、アドレス 224.0.1.1 が
割当てられてきました。現在のところは、このアドレスのみを使用すべきです。
マルチキャスト機能はマルチキャストカーネルを必要としますが、これは、
まだ、どのベンダの製品にでも存在するものではないということに注意し
て下さい。
.PP
.B key
オプションが含まれていると、そのアドレスに送られる全てのパケットが、
指定したキー (32 ビット符号無し整数の範囲の数) を用いて暗号化された
認証フィールドを含むようになります。
.B version
オプションにより、送出される NTP パケットに使用されるべきバージョン
番号を指定することができます。バージョン 1, 2, 3 のいずれかが選択で
きますが、バージョン 3 がデフォルトになっています。
.B prefer
オプションは、そのホストを優先的ホストとします。このホストは、その他
全ての点では同等ですが、正常に動作している一群のホストの中から同期を
取る対象として選ばれます。
.B ttl
オプションは、ブロードキャストモードでのみ使用され、マルチキャスト
パケットで用いられる生存時間 (TTL) を指定します。デフォルトは 127 ですが、
適切な値を選択することは、黒魔術の一種であり、ネットワーク管理者
との調整を必要とします。
.PP
.B broadcastclient
.PP
ローカルサーバに対し、同じサブネット上の他のサーバを見付けるために、
ローカルネットワーク上のブロードキャストメッセージを待受けるよう指示
します。ローカルサーバは、最初のブロードキャストメッセージを受取る際、
リモートサーバとクライアント/サーバ間の短いやりとりを用いて、名目上
の (nominal) ネットワーク遅延を測定してから、後続のブロードキャスト
メッセージを待ち受けて、それに同期する\*(L"ブロードキャストクライアント\*(R"
モードに入ります。このモードでの偶然もしくは故意の分裂状態
を避けるため、ローカルとリモートのサーバの両方は認証に同一の信頼でき
るキーとキー識別子を使用して動作しなくてはならないことに注意して下さい。
.PP
.B multicastclient
[
.I IP address ...
]
.PP
このコマンドは、
.IR broadcastclient
コマンドと同じように用いられますが、IP マルチキャストを使用して動作
します。この機能をサポートするには、マルチキャストカーネルと認証の使用が
必要です。1 つ以上の IP アドレスが与えられると、サーバはそれぞれ
のマルチキャストグループに加わります。1 つも与えられなければ、NTP に
は IP アドレス (224.0.1.1) が割当てられていると想定されます。
.PP
.B driftfile
.I filename
.PP
このコマンドは、ローカルの時計発振子の周波数オフセットを記録するため
のファイル名を指定します。このファイルが存在すると、起動時に初期周波数
オフセットを指定するのに使用され、その後デーモンにより計算される
カレント周波数オフセットで、 1 時間に 1 度更新されます。ファイルが存在
しないか、このコマンドが与えられていない場合、初期周波数オフセットは
ゼロと仮定されます。この場合、周波数が安定し、残った時間誤差が収まる
のに数時間かかります。このファイルが、最初にカレント変動値を一時
ファイルに書込み、
.IR rename (3)
により古いファイルと置換えることで更新されることに注意して下さい。これは、
.I xntpd
が、 ドリフトファイルのあるディレクトリに対し書込み権を持っていなけ
ればならず、ファイルは、シンボリックであろうとなかろうと、
ファイルシステムリンクであるべきではないだろうことを意味しています。
.PP
.B enable auth|bclient|pll|monitor|stats
[
.I ...
]
.PP
さまざまなサーバオプションを有効にします。指定されていないフラグは
影響を受けません。\*(L"auth\*(R" フラグは、その通信相手 (peer) が信頼
できるキーとキー識別子を使用して正しく認証されている場合に限って、サーバが
指定されていない相手に同期するようにします。このフラグのデフォルトは
無効 (オフ) です。 \*(L"bclient\*(R" フラグは、サーバがブロード
キャストもしくはマルチキャストサーバからのメッセージを待受けるように
します。これにより、そのサーバに対する連携 (association) が自動的に
成立します。このフラグのデフォルトは無効 (オフ) です。 \*(L"pll\*(R"
フラグは、サーバのローカル時計を調整するようにします。デフォルトでは
有効 (オン) です。無効にした場合、ローカル時計は固有の時間と周波数の
まま動きます。このフラグは、ローカル時計が他の何らかのデバイスや
プロトコルにより制御されており、NTPは他のクライアントと同期をとるためだ
けに使用されている場合に、役立ちます。\*(L"monitor\*(R" フラグは、
モニタファシリティ (facility) を有効にします(下記参照のこと)。デフォルトでは
有効 (オン) です。\*(L"stats\*(R" フラグは、統計のファシリティ
の filegen (下記説明を参照のこと) を有効にします。デフォルトでは有効
(オン) です。
.PP
.B disable auth|bclient|pll|monitor|stats
[
.I ...
]
.PP
さまざまなサーバオプションを無効にします。指定されていないフラグは影響を
受けません。現在使用可能なオプションは、enable コマンドの項で説明
しています。
.SH "認証オプション"
.PP
.B keys
.I filename
.PP
このコマンドは、認証モードでの操作の際、
.I xntpd
により使用される暗号化キーとキー識別子を含むファイルの名前を指定します。
このファイルのフォーマットは以降で説明します。
.PP
.B trustedkey
.I #
[
.I "# ..."
]
.PP
このコマンドは、同期するのにふさわしい通信相手を認証する目的にとって
信用できる暗号化キー識別子を指定するのに使用されます。異なるサーバは
異なるキーを使用できますが、認証手続きにはローカルとリモート両方の
サーバがこの目的のため同一のキーとキー識別子を共有することが必要です。
引数は、32 ビット符合なし整数ですが、 NTP キー 0 は固定されており周知の
ものであることに注意してください。意味のある認証が行われるべきならば、
キー 0 は信用すべきではありません。
.PP
.B requestkey
.I #
.PP
このコマンドは、
.IR xntpd (8)
の動作に影響を与える問題の診断と修復に役立つ
.IR xntpdc (8)
プログラムにより使用されるキー識別子を指定します。
.I xntpdc
プログラムの動作は、 xntpd のこの固有の実装に特定されており、これ
および以前のバージョンのデーモンとのみ動作すると見込まれます。ローカル
サーバの状態に影響を与えるリモートの
.I xntpdc
プログラムからの要求は、
認証されねばなりません。そのためには、リモートプログラムとローカル
サーバが共通のキーとキー識別子を共有することが必要です。このコマンドの引数は、
32 ビット符合なし整数です。設定ファイルに
.B controlkey
コマンドが含まれていないか、キーがマッチしないと、この要求は無視され
ます。
.PP
.B controlkey
.I #
.PP
このコマンドは、
.IR xntpd (8)
の動作に影響を与える問題の診断と修復に役立つ
.IR ntpq (8)
プログラムにより使用されるキー識別子を指定します。
.IR ntpq
プログラムと
.I xntpd
の動作は RFC 1305 の定義を満たしています。ローカルサーバの状態に影響
を与えるリモートの
.I ntpq
プログラムからの要求は、認証されねばなりません。そのためには、リモート
プログラムとローカルサーバが共通のキーとキー識別子を共有することが
必要です。このコマンドの引数は、32 ビット符合なし整数です。
設定ファイルに
.B requestkey
コマンドが含まれていないか、キーがマッチしないと、この要求は無視され
ます。
.PP
.B authdelay
.I seconds
.PP
ローカル計算機上で NTP 認証フィールドを暗号化するのに要する時間の
総計を示します。この値は、送出パケットに認証が用いられる際、送信タイム
スタンプを修正するのに使用されます。通常、この値は 0.0001 秒から
0.003 秒あたりになりますが、これはホスト計算機の CPU 速度に依存して
います。通常、この値は、ディストリビューションに含まれている
.I authspeed
プログラムを用いて計算されます。
.SH "アクセス制御オプション"
.B restrict
.I address
[
.B mask
.I numeric_mask
] [
.I flag
] [
.I ...
]
.PP
.I xntpd
は、汎用のアドレスとマスクに基づく制限リストを実装しています。リスト
はアドレスにより、そしてマスクによりソートされ、その順番でマッチして
いるかどうか調べられます。ここで、最後にマッチしたものが受信パケット
に関する制限フラグを定義します。受信パケットのソースアドレスは、制限
リストのエントリに関するマスクでアンドをとられた 32 ビットアドレスと
マッチするか調べられ、それからエントリアドレス (これもまたマスクと
アンドをとられます) と比較され、マッチするものを探します。引数
\*(L"mask\*(R" のデフォルトは 255.255.255.255 で、\*(L"address\*(R"
が個別のホストのアドレスとして扱われることを意味します。デフォルト
エントリ (address 0.0.0.0, mask 0.0.0.0) は常にリストに含まれ、既定の
ソートアルゴリズムでは、リストの先頭のエントリとなります。
\*(L"address\*(R" は、通常、 dotted\-quad 形式で与えられ、 mask
オプションを伴わないテキスト文字列 \*(L"default\*(R" は、デフォルト
エントリを示すために使用できることに、注意して下さい。
.PP
現在の実装では、フラグは常にアクセスを制限します。すなわち、フラグを
持たないエントリは、サーバへの自由なアクセスが与えられることを示す
ことになります。フラグは直交的ではなく、より制限の強いフラグは、より
制限の弱いフラグを冗長にします。フラグは、一般に 2 つのカテゴリに分類
されます。時間サービスを制限するものと、情報問い合わせやサーバの
実行時再設定の試みを制限するものです。次のフラグの内1つ以上を指定する
ことができます:
.Ip ignore 10
このエントリにマッチするホストからのすべてのパケットを無視します。
このフラグが指定されると、問い合わせも時間サーバへのポーリングも応答さ
れなくなります。
.Ip noquery 10
NTP の モード 6 と 7のすべてのパケット (つまり情報問い合わせと設定要求)
を無視します。時間サービスは影響を受けません。
.Ip nomodify 10
サーバの状態を変えようとするモード 6 と 7のすべてのパケット (つまり
実行時再設定) を無視します。情報を返す問い合わせは許されます。
.Ip notrap 10
マッチしたホストにモード 6 の制御メッセージのトラップサービスを提供
することを拒否します。トラップサービスは、モード 6 の制御メッセージ
プロトコルのサブシステムで、リモートのイベントロギングプログラムによ
る使用が意図されています。
.Ip lowpriotrap 10
マッチしたホストによるトラップセットを低い優先度として宣言します。1
つのサーバが保持し得るトラップの数は制限されています(現在の制限値は
3 です)。トラップは通常、先入れ先処理ベースで割当てられ、後から来た
トラップ要求はサービスを拒否されます。このフラグは、通常優先度の
トラップに対する後からの要求が、低い優先度のトラップより優先されることを
許すことで、通常の割当てアルゴリズムを変更します。
.Ip noserve 10
モード 6 と 7 以外のすべての NTP パケットを無視します。基本的には、
時間サービスは拒否されますが、それでも問い合わせは許されています。
.Ip nopeer 10
ポーリングしているホストに、状態を持たない (stateless) 時間サービス
を与えますが、そうしなければ将来的に同期の相手として有用であるかもし
れない場合にさえ、それらに peer メモリ資源を割当てません。
.Ip notrust 10
これらのホストは同期源としては決して使用されませんが、その他の点では
普通に扱われます。
.Ip limited 10
これらのホストは、同一のネットからのクライアント数の制限の対象となり
ます。ここで言うネットとは、 (class A, class B, class C 等の) ネット
の IP 表記のことです。サーバで見えており、過去
\*(L"client_limit_period\*(R" 秒の間アクティブであった、最初の
\*(L"client_limit\*(R" 個のホストのみが、受付けられます。同一の
ネットの他のクライアントからの要求は拒否されます。時間要求パケットのみが、
考慮されます。\*(L"プライベート\*(R"", \*(L"制御\*(R"", \*(L"ブロー
ドキャスト\*(R" 等のパケットは、クライアント制限の対象にはならず、
クライアントの数の内には入れられません。クライアントの履歴は、
.I xntpd
のモニタリング機能を使用して維持されます。それゆえ、モニタリングは、
\*(L"limited\*(R" フラグに制限エントリがある限り、アクティブです。
\*(L"client_limit\*(R" のデフォルト値は 3 です。
\*(L"client_limit_period\*(R" デフォルト値は 3600 秒です。
.Ip ntpport 10
実質的には、制限フラグと言うより、マッチのアルゴリズムを変更するもの
です。このフラグが存在すると、パケットのソースポートが標準の NTP の
UDP ポート (123) である場合にのみ、制限エントリにマッチします。
\*(L"ntpport\*(R" と non\-\*(L"ntpport\*(R" の両方が指定できます。
\*(L"ntpport\*(R" はより限定的であると考えられ、リストの後方にソート
されます。
.PP
デフォルトの制限リストエントリは、フラグ \*(L"ignore, ntpport\*(R"
を持ち、ローカルホストのインタフェースアドレスの各々に対し、
スタートアップ時にテーブルに挿入され、サーバがそれ自身の時間に同期しようと
しないようにします。また、デフォルトエントリは常に存在しますが、他で
は設定されない場合は、どのフラグもデフォルトエントリに関連づけられま
せん (すなわち、あなた自身の NTP サーバ以外のすべてが無制限になります) 。
.PP
制限ファシリティは、NSFnet の幹線上で動いている時間サーバの現在の
アクセスポリシが、
.I xntpd
と同様に実装され得るように、付け加えられたものです。このファシリティ
は、あなたのサーバが、望まないか故障したリモート時間サーバの影響を受
けないようにするのに、ことのほか有用ですが、これが 標準の NTP 認証
ファシリティの代わりになると考えるべきではありません。ソースアドレスに
基づく制限は、確信犯的クラッカーにたやすく裏をかかれます。
.PP
.B clientlimit
.I limit
.PP
\*(L"client_limit\*(R" を \*(L"limit\*(R" にセットし、クライアント
制限ポリシの設定を可能にします。この変数は、そのサーバの使用を許される
同一ネットワークからのクライアント数を定義します。
.PP
.B clientperiod
.I period
.PP
\*(L"client_limit_period\*(R" をセットし、クライアント制限ポリシの設
定を可能にします。この変数は、その時間後にクライアントがインアクティブに
なると考えられ、従って制限されるクライアント数にもはや数えられな
くなるような秒数を指定します。
.SH "モニタリングオプション"
.PP
.B statsdir
.I /directory path/
.PP
統計ファイルが作られるべきディレクトリのフルパスを指定します(下記参照)。
このキーワードにより (そうでなければ定数である) filegen ファイル名の
プレフィックスを統計ログ処理に対して用いられるファイル生成セットに対して
修正することが可能となります (下記
.B filegen
文を参照)。
.PP
.B statistics
.IR name \.\.\.
.PP
統計レコードの書込みを有効にします。現在のところ、3 種類の統計がサポート
されています。
.Ip loopstats 10
ループフィルタの統計情報の記録を有効にします。ローカル時計の更新を
行う度に、\*(L"loopstats\*(R" と名付けられたファイル生成セットに次の
形式の行を出力します:
.PP
.RS 5
48773 10847.650 0.0001307 17.3478 2
.RE
.RS 10
最初の 2 つのフィールドは、日付 (ユリウス歴に修正済) と時刻 (UTC
午前 0 時からの秒数)です。次の 3 つのフィールドは、時計の更新時の、
秒での時間オフセット, 100 万分の 1 単位の周波数オフセット,
clock-discipline アルゴリズムの時定数です。
.RE
.Ip peerstats 10
通信相手に関する統計情報の記録を有効にします。これには、存在し初期化
された NTP サーバと 1-pps シグナルのすべての通信相手に関する統計レコードが
含まれます。有効な更新が行われる度に、 \*(L"peerstats\*(R" と
名付けられたファイル生成セットの現在の要素に次の形式の行を出力します:
.PP
.RS 5
48773 10847.650 127.127.4.1 9714 -0.001605 0.00000 0.00142
.RE
.RS 10
最初の 2 つのフィールドは、日付 (ユリウス歴に修正済) と時刻 (UTC
午前 0 時からの秒数)です。次の 2 つのフィールドは、それぞれ
dotted-quad 記法で表された通信相手のアドレスとステータスです。
ステータスフィールドは、 NTP の仕様である RFC 1305 の Appendix A で記述さ
れたフォーマットに従い 16 進数にエンコードされています。最後の 3 つ
のフィールドは、オフセット, 遅延, ばらつきで、すべて秒単位です。
.RE
.Ip clockstats 10
時計ドライバの統計情報の記録を有効にします。時計ドライバからの更新を
受ける度に、 \*(L"clockstats\*(R" と名付けられたファイル生成セット次
の形式の行を出力します:
.PP
.RS 5
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
.RE
.RS 10
最初の 2 つのフィールドは、日付 (ユリウス歴に修正済) と時刻 (UTC
午前 0 時からの秒数)です。次のフィールドは、dotted-quad 記法で表された
時計のアドレスです。最後のフィールドは、時計から受け取った最後のタイム
コードで、ここでは意味のある ASCII 形式になっています。いくつかの
時計ドライバでは、たくさんの付加的情報が集められ、同様に表示されます。
より詳しくは、それぞれの時計の仕様情報を参照してください。
.RE
.PP
統計ファイルは、ファイル生成セット(下記
.B filegen
を参照)を用いて管理されます。統計を記録することで得られる情報は、
.I xntpd
サーバの一時的なプロパティ (properties) の解析を可能にします。通常は
主要な (primary) サーバで役立つだけで、あるいはキャンパスのメイン
サーバでも役立つかもしれません。
.PP
.B filegen
.I name
[
.B file
.I filename
] [
.B type
.I typename
] [
.B flag
.I flagval
] [
.BR link | nolink
] [
.BR enable | disable
]
.PP
ファイル生成セット (file generation set)
.IR name
の設定を行います。ファイル生成セットは、サーバの活動期間を通じて
継続的に大きくなっていくファイルを扱う手段を提供します。サーバ統計は
このようなファイルの典型例です。ファイル生成セットにより、現状のデータ
を格納するのに用いられるファイル集合にアクセスできます。任意の時点で、
集合の高々 1 つの要素への書き込みが行われます。
.I type
は、その集合の新たな要素に、データが、いつ、どのように出力されるのか
の仕様を与えます。この方法で、
.I xntpd
の動作を妨げる危険なしに、管理的な操作 (administrational operations)
から、現在使用されていないファイル集合の要素に格納されている情報が、
利用できるようになります。(最重要: それらは、新たな出力データのため
空きを作るのに削除される可能性があります。)要素のファイル名は 3 つの
部分から作られます。
.Ip prefix 10
不変なファイル名のパスです。
.B filegen
文による修正の対象にはなりません。サーバによって定義され、通常コンパイル時の
定数として指定されます。しかし、他のコマンドにより、個別のファイル生成
セットに対して設定は可能です。たとえば、"loopstats" と
"peerstats" という filegen で用いられるプレフィックスは、すでに説明した
.B statsdir
文を使用して設定できます。
.Ip filename 10
この文字列は、上で述べた
.I prefix
に、( \*(L'/\*(R' (スラッシュ) を入れずに ) 直接連結されます。
\*(L"filegen\*(R" 文の \*(L"file\*(R" 引数を使って修正できます。
\*(L"prefix\*(R" により示されるファイル名が、ファイルシステム階層の
外側を参照しないように、この部分は \*(L"..\*(R" を含んではいけないよ
うになっています。
.Ip suffix 10
この部分はファイル集合の各要素を反映します。後述のように、ファイル集合の
.I type
に従って生成されます。
.PP
ファイル生成セットは、その型 (type) により特徴づけられます。次の型が
サポートされています:
.Ip none 10
ファイル集合は実際には、単一のプレーンファイルです。
.Ip pid 10
.I xntpd
サーバの起動ごとに、ファイル集合の 1 つの要素が使われます。この型は、
実行中にファイル集合の要素への変更を一切行いませんが、異なる
.I xntpd
サーバの起動ごとに別々のファイルをつくる簡単な方法になります。要素の
ファイル名は、 \*(L"prefix\*(R" と \*(L"filename\*(R" をドット
(\*(L'.\*(R') でつなげた上、
.I xntpd
サーバプロセスのプロセス ID の10進表現をつなげで作られます。
.Ip day 10
1 日に 1 つのファイル生成セットの要素が作成されます。ここで、
.I
という用語は、
.IR UTC
に基づきます。1 日は、 UTC 00:00 24:00 の間の期間として定義さ
れます。要素のサフィックスは、ドット \*(L".\*(R" と
.RI < YYYYMMDD >
の形式の日付指定からなります。
.I YYYY
は 4 桁の西暦年 (たとえば 1992)で、
.I MM
は、2 桁の月です。
.I DD
は、2 桁の日となります。したがって、1992 年 12 月 10 日に情報はすべ
て、 \*(L"<prefix><filename>.19921210\*(R" という名前のファイルに書
かれます。
.Ip week 10
どの要素も 1 年の内のある週に関連するデータを含みます。ここで、
.I
という用語は、年の始まりからの日数の 7 の商により定義されます。この
ようなファイル生成セットの要素は、ファイル集合のファイル名のベースに
次のようなサフィックスをつけることで区別されます。サフィックスは、
ドット, 4 桁の西暦年, 文字 \*(L"W\*(R", 2 桁の週番号です。例えば、 1992
年 1 月 10 日からの情報は、サフィックス \*(L".1992W1\*(R" を持つ
ファイルに出力されます。
.Ip month 10
1 月に 1 つのファイル生成セットの要素が作成されます。ファイル名の
サフィックスは、ドット, 4 桁の西暦年, 2 桁の月からなります。
.Ip year 10
1 年に 1 つのファイル生成セットの要素が作成されます。ファイル名の
サフィックスは、ドットと 4 桁の西暦年からなります。
.Ip age 10
この型のファイル生成セットは、サーバが 24 時間活動するごとに新たな要素に
変わります。ファイル名のサフィックスは、ドット, 文字
\*(L"a\*(R", 8 桁の数からなります。この数は、対応する 24 時間の始め
からサーバが実行されている秒数であるようになります。
.PP
情報は、ファイル生成セットが \*(L"enabled\*(R"のときのみ、そのセット
に書込まれます。出力は \*(L"disabled\*(R"を指定することで抑止されます。
.PP
ファイル生成セットの
.I 現在の
要素に決まった名前でアクセスできると便利です。この機能は、
\*(L"link\*(R" を指定することで有効になり、 \*(L"nolink\*(R" を使っ
て無効になります。 \*(L"link\*(R" が指定されると、 現在の要素から
サフイックスを持たないファイルへのハードリンクが作成されます。その名前
を持つファイルが既に存在し、そのファイルのリンク数が 1 の場合、その
ファイル名に、ドット, 文字 \*(L"C\*(R",
.I xntpd
サーバプロセスの pid をつなげて、名前変更を行います。リンク数が 1
以上の場合、ファイルはアンリンクされます。これにより現在のファイルを
定数名でアクセスすることができます。
.SH "その他のオプション"
.PP
.B precision
.I #
.PP
このコマンドは、ローカル時計の名目上の (nominal) 精度を指定します。
この値は、秒単位のローカルの時間管理精度の底を 2 とする対数に近似的
に等しい整数です。ふつう、デーモンは起動時に自動的に精度を決定するの
で、このコマンドは、精度を自動的に決定できない特殊な場合にのみ必要に
なります。
.PP
.B broadcastdelay
.I seconds
.PP
ブロードキャストおよびマルチキャストモードは、ローカルとリモートサーバ間の
ネットワーク遅延を決定するため、特別の修正を必要とします。通常、
この修正は、ローカルとリモートサーバ間の最初のプロトコル交換により、
自動的に行われます。修正手続きは、例えば、ネットワークもしくはサーバ
のアクセス制御のために失敗する可能性があります。このコマンドは、これ
らの状況下で使用されるデフォルトの遅延を指定します。(イーサネットに
対する)典型としては、0.003 から 0.007 秒が適切です。このコマンドが使
用されない場合のデフォルトは、 0.004 秒です。
.PP
.B trap
.I host_address
[
.B port
.I port_number
] [
.B interface
.I interface_addess
]
.PP
このコマンドは、指定されたローカルインタフェースに送られる
メッセージに対する、所与のホストアドレスとポート番号でのトラップレシーバを
設定します。ポート番号が指定されない場合、 18447 が使用されます。
インタフェースアドレスが指定されない場合、メッセージが送信時に通過する
ローカルインタフェースのアドレスをソースアドレスとしてメッセージが
送られます。マルチホームのホストでは、使用されるインタフェースが、
ルーティングの変更にともない変化し得ることに注意してください。
.PP
トラップレシーバは、一般には、イベントメッセージやサーバからのその他
の情報をログファイル中に記録するものです。このようなモニタプログラム
はまた、それら自身のトラップをダイナミックに要求するかもしれませんが、
トラップレシーバの設定は、サーバのスタート時にメッセージが失われない
ことを保証することになっています。
.PP
.B setvar
.I variable
.I [default]
.PP
このコマンドは、付加的なシステム変数を追加します。これらの変数は、
アクセスポリシなどの付加的な情報を配布するために使用できます。
<name>=<value> の形式の変数に、キーワード
.I default
が続いた場合、変数はデフォルトのシステム変数の一部としてリストされる
ようになります (
.I ntpq rv
コマンド) 。これら付加的な変数は、情報を与える目的だけを果たします。
リストされ得ると言うこと以外に、プロトコルに関係しません。
既知のプロトコル変数は常に、
.I setvar
の機構により定義されたいかなる変数よりも優先されます。
.PP
同一グループのすべての変数の名前を含む 3 つの特別な変数があります。
.I sys_var_list
は、すべてのシステム変数の名前を保持しています。
.I peer_var_list
は、すべての peer (交信相手) 変数の名前を保持しています。
.I clock_var_list
は、参照時計変数の名前を保持しています。
.PP
.B monitor yes|no
.B authenticate yes|no
.PP
これらのコマンドは、
.B enable
.B disable
コマンドに置き換えられました。ここにあげたのは歴史を述べるためです。
.SH "認証キーファイルのフォーマット"
.PP
NTP 標準は、受信した NTP パケットの認証の確認を可能とし、送信パケット内の
認証の指示を与えるための拡張を定めています。これは、
.I xntpd
においては、デジタル署名, あるいは message-digest を計算するため、
DES もしくは MD5 アルゴリズムを使用して実装されています。この仕様は、
32 ビットのキー識別子により、ほぼ 40 億分の 1 が、連携 (association)
の認証に使用できるようにしています。連携に含まれるサーバは、各々独立
にキーとキー識別子を学習せねばならないにも関わらず、データを認証する
のに使用されるキーとキー識別子に合意せねばなりません。 DES の場合、
キーは 56 ビット長で、型によっては各バイトにパリティがつきます。MD5
の場合、キーは 64 ビット (8 バイト) です。
.I xntpd
は、
コマンドラインオプション
.B -k
もしくは設定ファイル中の
.B keys
文を使用して指定されるファイルからキーを読み込みます。キー番号 0 は、
NTP 標準によって (56 ビットの 0 として) 決定されており、変更できませ
んが、一方、1 から 15 のキー番号の内の 1 つ以上がキーファイル中で任意に
セットできます。
.PP
キーファイルは、設定ファイルと同様のコメント記述法
を使用しています。キーエントリはの形式の固定されたフォーマットを
使用します。
.Ip "" 5
.I "keyno type key"
.PP
の形式の固定されたフォーマットを使用します。ここで、 \*(L"keyno\*(R"
は正の数、 \*(L"type\*(R" はキーが与えられる形式を定義する単一文字、
\*(L"key\*(R" はキーそれ自身です。
.PP
キーは、 \*(L"type\*(R" 文字による制御で、3 つの異なるフォーマットの
内の 1つで与えられます。3 つのキーの型とそれに対応するフォーマットは、
次にあげるとおりです。
.Ip "S" 5
\*(L"key\*(R" は、 DES のドキュメントに定められたフォーマットの 64
ビットの 16進数で、各オクテットの上位 7 ビットが使用された 56 ビット
キーです。各オクテットの下位 1 ビットは、オクテットを奇数パリティに
保つように与えられます。先頭の 0 は省略できません (すなわち、キーは
正確に 16 桁の 16 進数である必要があります) 。また、奇数パリティが保
たれねばなりません。それゆえ、ゼロキーは、標準フォーマットで、
.I 0101010101010101
として与えられます。
.Ip "N" 5
\*(L"key\*(R" は、 NTP 標準で定められたフォーマットの 64 ビットの 16
進数です。これは、各オクテットを 1 ビット右 rotate して、パリティビッ
トがオクテットの上位ビットになったことを除いては、 DES フォーマット
と同じです。先頭の 0 は省略できず、奇数パリティが保たれねばなりませ
ん。ゼロキーは、 NTP フォーマットで、
.I 8080808080808080
のように指定されます。
.Ip "A" 5
\*(L"key\*(R" は 1 文字から 8 文字の ASCII 文字列です。キーは、文字
列中の各文字の ASCII 表現の下位 7 ビットを使用して構成されます。56
ビット幅のキーを作るために、 Unix パスワードから暗号化キーを作るのと
同じ方法で、必要なら 0 が右端に付加されます。
.Ip "M" 5
\*(L"key\*(R" は 1 文字から 8 文字の ASCII 文字列で、 MD5 の認証方式
を使用しています。キーと認証方式 (DES または MD5) の両方が、同じキー
番号を共有する一組の交信相手の間で一意であることが、必要であることに
注意してください。
.PP
設定ファイルの
.B requestkey
文の方法で、
.IR xntpdc (8)
プログラムを用いてなされる実行時の設定要求を認証するために、キーの内
1 つが選択できます。後者のプログラムは、パスワードとして端末からキー
を得ます。ですから、一般に、この目的のために使用されるキーを ASCII
表現で指定するのは、適切なことです。
.SH 主要な時計サポート (PRIMARY CLOCK SUPPORT)
.I xntpd
は、オプションで、いくつかの型の参照時計に対するサポートを含むように
コンパイルできます。参照時計は、一般に (常にではなく)、カナダの NRC
やアメリカの NIST により提供されるサービスと同様の標準時刻の供給源に
同期している無線時刻コード受信機です。コンピュータと時刻コード受信機
の間のインタフェースはデバイス依存で多種にわたりますが、多くは
シリアルポートです。
.PP
多種類の参照時計ドライバに対するサポートは、他の場所で記述された
コンパイラ定義のコードを使用して、条件コンパイルされます。参照時計を設定
しようとする試みは、特定のサポートが得られないか、ハードウェアポート
が適切に設定されていないとき、システムログファイルに警告を残しますが、
そのほかでは障害となりません。
.PP
設定のために、
.I xntpd
は、参照時計を、できるかぎり普通の NTP の交信相手にするのと同じよう
な方法で扱います。参照時計は、普通の交信相手と同様にアドレスで参照さ
れますが、普通の交信相手と区別するため、無効なアドレスが使用されます。
参照時計のアドレスは、
.I 127.127.t.u
の形式となります。ここで、
.I t
は、時計の型を示す整数で、
.I u
は、型で特定されるユニット番号を示します。参照時計は、設定ファイル中の
.B server
文を使用して設定されます。このときの
.I host_address
は、時計のアドレスです。
.I key
.I version
.I ttl
オプションは、参照時計サポートのためには使用されませんが、
.I prefer
オプションは、ある参照時計を、それが望ましい場合には、他の参照時計や
交信相手より少し熱心に大事に扱わせるよう、サーバに促すのにうまく使え
ます。時計のアドレスは、一般に設定ファイル中で普通
の IP アドレスが使用できるところならどこでも使用できます。例えば、
.B restrict
文中などですが、このような使用法は普通は奇妙に思えるでしょう。
.PP
参照時計サポートは、特別の方法で参照時計を設定するのに使用できる
.B fudge
コマンドを与えます。
以下は、このコマンドに適用される一般的なフォーマットです。
.PP
.B fudge
.I 127.127.t.u
[
.B time1
.I secs
] [
.B time2
.I secs
] [
.B stratum
.I int
] [
.B refid
.I int
] [
.B flag1
.I 0|1
] [
.B flag2
.I 0|1
] [
.B flag3
.I 0|1
] [
.B flag4
.I 0|1
]
.PP
.I time1
.B time2
オプションは、秒単位の固定小数点で指定され、いくつかの時計ドライバで
は、補正定数として使用されます。慣習により、別のやり方で示されない限り、
.B time1
は、特定の時計の名目上の時間オフセットを、高精度の PPS 信号のような、
外部の標準に一致させるように調整するための補正定数として使用されます。
指定されたオフセットは、内部の DIP スイッチのような他の手段により与えられた
伝搬遅延に付加されます。
.B stratum
オプションは 0 から 15 までの数で、時計に対し非標準の operating
stratum を割当てるのに使用します。
.B refid
オプションは、 1 から 4 文字までの ASCII 文字列で、時計に対し非標準
の参照識別子を割当てるのに使用します。最後に、4つの 2 値フラグ
.B flag1,
.B flag2,
.B flag3,
.B flag4
は、時計ドライバをカスタマイズするのに使用されます。これらの値の解釈
や、ともかくそれらが用いられるのかどうかは、特定の時計ドライバが必要
とするかに関わっています。しかし、慣習により、別のやり方で示されない
限り、
.B flag3
は、 ppsclock ストリームモジュールを設定されるドライバにアタッチする
のに使用され、一方、
.B flag4
は、
.I filegen
コマンドで設定される時計統計 (clockstats) ファイルへの詳細なモニタリング
データの記録を有効にするために使用されます。 ppsclock ストリーム
モジュールについてのさらなる情報は、現在の xntp3 プログラムの
ディストリビューション中の ./kernel ディレクトリの README ファイル内にあり
ます。この機能についてのさらなる情報は、
同じディストリビューション中の ./scripts/stats ディレクトリにあります。
.PP
通常、参照時計の stratum は、デフォルトで 0 です。
.I xntpd
デーモンは、各交信相手の stratum に 1 を加算するので、主要 (primary)
サーバは、通常 stratum 1 を示します。巧みに運用されたバックアップを
与えるために、参照時計の stratum を 0 以上に指定することは、役に立つ
ことが多いです。
.B stratum
オプションは、この目的のために使用されます。また、参照時計と 1-pps
discipline 信号の両方を含む場合、ドライバによっては、参照時計識別子
をデフォルト以外に指定することは有用です。
.I refid
オプションは、この目的のために使用されます。そう記されていない限り、
これらのオプションは、すべての時計ドライバに適用されます。
.PP
現在、Unix マシン上の
.I xntpd
は、バックアップとして用いられる、あるいは他の時計供給源が与えられな
いとき使用される特殊な仮想時計に加えて、いくつかの異なる型の時計
ハードウェアをサポートしています。たいていの時計ドライバの場合、xntp3
プログラムのディストリビューション中の ./doc ディレクトリの README
ファイル内で述べられているように 1-pps 精度のタイミング信号に対する
サポートが利用可能です。時計ドライバ、およびそれらを設定するのに使用される
アドレスは、現在の xntp3 プログラムのディストリビューション中の doc
ディレクトリの README.refclocks で記述されています。
.PP
.SH 変数
NTP protocol により用いられるたいていの変数は、
.I xntpdc
(モード 7 メッセージ) と
.I ntpq
(モード 6 メッセージ) で、調べることができます。
現在は、ごくわずかの変数が、モード 6 メッセージを通して変更可能です。
これらの変数は、
.I setvar
の指示で作られたか、リープ警告 (leap warning) 変数かのどちらかです。
リープ警告ビットは、
.B leapwarning
変数で (1 ヶ月前までに) セットされます。
.B leapwarning
.B leapindication
変数内の両方が通常の
.B leap
ビット解釈と少し違ったエンコーディングを持っています:
.P
.Ip 00 8
デーモンは、同期源のリープビットを渡します (通常モードの動作) 。
.Ip 01/10 8
リープ秒が、付加/削除されます (オペレータによるリープ秒の強制)。
.Ip 11 8
同期源からのリープ情報は、無視されます (それゆえ LEAP_NOWARNING が
与えられます) 。
.PP
.SH 関連ファイル
.Ip /etc/ntp.conf 20
デフォルトの設定ファイル名
.Ip /etc/ntp.drift 20
ドリフトファイルの慣習上の名前
.Ip /etc/ntp.keys 20
キーファイルの慣習上の名前
.SH 関連項目
.PP
.IR xntpdc (8),
.IR ntpq (8),
.IR ntpdate (8)
.SH 歴史
.PP
.Nm
コマンドはトロント大学の Dennis Ferguson によって書かれました。
テキストはデラウェア大学の David Mills により修正されました。
.SH バグ
.PP
.I xntpd
はかなり大きくなってしまいました。巨大とは言いませんが、ワークステーションで
実行される可変プライオリティのデーモンとして望ましい大きさを
超えてしまいました。それは特に、かさばる凝った特徴の多くが、高い
stratum のワークステーションよりは、高負荷の主要 (primary) サーバに
あわせて設計されているからです。