TIMED(8)

名前
timed - タイムサーバデーモン

書式
timed [-M] [-t] [-d] [-i network] [-n network] [-F host1 host2 ...]

説明
これはタイムサーバデーモンであり、 通常はブート時に rc(8) ファイルから起動される。 このサーバは、ホストの時刻と、 ローカルエリアネットワーク内で timed 8 を実行している他のホストの時刻を同期させる。 これらのタイムサーバは、マシンの時刻を遅らせたり進ませたりすることで、 マシンの時刻を平均ネットワーク時刻にする。 平均ネットワーク時刻は、 ICMP タイムスタンプリクエストメッセージを使って、 時刻差を計測することにより計算される。

timed が提供するサービスは、マスタースレーブの考えに基づいている。 timed(8) がマシンで起動されると、マスターにネットワーク時刻を問い合わせ、 ホストの時刻をその時刻に合わせる。 その後、マスターが定期的に送る同期メッセージを受け取り、 ホスト時刻に必要な修正を加えるために adjtime(2) を呼び出す。

このサーバは、 日付を大域的に設定するために date(1) と通信し、 timed 制御プログラムである timedc(8) とも通信する。 マスターとして実行されているマシンがクラッシュすると、 スレーブは、 -M フラグで実行されているスレーブの中から、新しいマスターを選ぶ。 -M や -F フラグなしで実行されている timed を実行しているマシンはスレーブのままである。 -t フラグを指定した場合、 timed は、受信したメッセージをファイル /var/log/timed.log の中でトレースするようになる。 トレースの有効・無効は、 timedc(8) プログラムを使って切替えることができる。 -d フラグは、このデーモンをデバッグするためのものである。 このフラグを指定した場合、デーモンをバックグラウンドにさせない。 通常 timed は、接続されている各ネットワークのマスタータイムサーバをチェックする。 ただし、以下で説明するオプションで変更されている場合は例外である。 timed は、見付けた最初のマスターサーバに対して、同期サービスを要求する。 その時点でマスターサーバが接続されているネットワークで検知できない場合、 -M フラグを指定すると、 同期サービスをそのネットワークに提供することが許可される。 このようなサーバは、トップレベルマスターが計算した時間を提供する。 -n フラグは、その後にホストが接続されているネットワーク名 (networks(5) を参照) を続けることにより、 プログラムが決定するネットワークアドレスのデフォルトの選択を上書きする。 -n フラグが表れる度に、そこで指定されているネットワーク名は、 有効なネットワークのリストに追加される。 他のネットワークは無視される。 -i フラグは、その後にホストが接続されているネットワーク名 (networks(5) を参照) を続けることにより、 プログラムが決定するネットワークアドレスのデフォルトの選択を上書きする。 -i フラグが表れる度に、そこで指定されているネットワーク名は、 無視するネットワークのリストに追加される。 他のネットワークはタイムデーモンによって使われる。 -n と -i フラグを同時に使うと、何も意味を持たなくなる。

timed は、接続されている各ネットワーク上のマスタータイムサーバをチェックする。 ただし、上で説明した -n と -i オプションで変更されている場合は例外である。 2 つ以上のネットワークでマスターサーバが見つかった場合、 「スレーブ」となるべきネットワークを選択する。 そして、定期的に各ネットワークでマスターが消えたかどうかをチェックする。

マシンの同期をとるための 1 つの方法として、 NTP デーモンを用いてマシンの時刻を 遠距離の標準時刻やラジオ受信機の時刻に同期させ、 かつ、信頼できるマシンが自分自身のみであることを timed デーモンに -F hostname によって通知する、といったものがある。

カーネルによるシステムコンソールへのメッセージ出力は、 割り込みを禁止して行われる。 これは、メッセージが出力されている間は システムのクロックが停止することを意味する。 ディスクやネットワークハードウェアに多くの問題を抱え、 その結果としてメッセージを出力するマシンは、 正確な時間を保持できない。 それぞれのメッセージは、出力される毎に 10ms 程度の時刻遅延を引き起こす。 タイムデーモンは、この結果を補正する。

マシンが応答しないというシステムログメッセージは、 通常、そのクラッシュまたは電源が切れていることを意味する。 マシンが初期時刻設定時に応答に失敗してエラーが出るのは、 大抵の場合、「 “マルチホーム” のマシン (ネットワークインターフェースが複数あるマシン) が 複数のネットワークでタイムマスターを探した後、 別のネットワークでスレーブになることを選択した」ということに関連している。

警告
timed や ntp といった複数のタイムデーモンが同じ時計を調整しようとした場合、 一時的に時刻がおかしくなる可能性がある。 timed と別のタイムデーモンが同じマシンで稼働している場合、 -F フラグが指定されていることを確認すること。 このようにすれば、 timed はローカルマシンの時計を調整しようとしなくなる。

このプロトコルは、UDP/IP ブロードキャストに基づいたものである。 ブロードキャストの範囲内で TSP プロトコルを用いている 全てのマシンは、協調しあわなければならない。 ブロードキャストパケットが到達するマシンの間では、 -F フラグを使用する管理ドメインを 2 つ以上持つことはできない。 このルールに従わない場合は、通常、 “信頼できない” マシンに関連するエラーがシステムログに書き込まれる。

ファイル
/var/log/timed.log
    timed のトレースファイル
/var/log/timed.masterlog
    マスター timed のログファイル

関連項目
date(1), adjtime(2), gettimeofday(2), icmp(4), timedc(8) TSP: The Time Synchronization Protocol for UNIX 4.3BSD, R. Gusella, S. Zatti.

履歴
timed デーモンは 4.3BSD で登場した。

翻訳者謝辞
この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。