doc/ja/man/man8/xntpd.8
Jun Kuriyama 0e8d399496 Catching up to 3.0-RELEASE of manpages of GNU binutils.
Reviewed by:	Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1999-01-12 14:25:48 +00:00

1029 lines
36 KiB
Groff

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