NTP (Network Time Protocol) は,ワイド・エリア・ネットワーク (WAN) およびローカル・エリア・ネットワーク (LAN) の両方のホストに,正確で信頼できる同期がとれた時間を提供します。 特に,NTP は,極めて正確度の高いクロックを元に同期をとり,不正確なクロックとは同期をとらないようにしています。 Tru64 UNIX の NTP サブシステムは,メリーランド大学がインプリメントした NTP バージョン 4.0.98a をベースにしています。
この章では,次の項目について説明しています。
NTP についての概要は,
ntp_intro
(7)
NTP の代わりに,rdate
コマンドあるいは
timed
デーモンを使用してシステム時間を設定することもできます。
注意
timed
デーモンは,互換性のためだけに用意されています。 時間の同期をとる場合は NTP を使用してください。timed
デーモンと NTP の両方を実行する場合は,最初に NTP を構成してから,-E
オプションを指定してtimed
デーモンを実行してください。
rdate
コマンドについての詳細は,
rdate
(8)ntp_manual_setup
(7)
timed
デーモンについての詳細は,
timed
(8)timedsetup
(8)6.1 NTP 環境
クライアント
サーバ
図 6-1
に示すのは,LAN における NTP 構成の例で,時間のソースとしてローカル基準クロックを使用する ホスト D が NTP サーバとなっています。
ホスト A,B,C,E,F および G は NTP クライアントで,それらの時間はホスト D と同期しています。
図 6-1: NTP 構成の例 (ローカル・クロック)
図 6-2
に示す NTP 構成では,時間のソースとしてインターネット・タイム・サーバを使用する ホスト D が NTP サーバとなっています。
ホスト A,B,C,E,F および G は NTP クライアントで,ホスト D と時間が同期しています。
図 6-2: NTP 構成の例 (インターネット・ソース)
システムは,ローカル NTP サーバ,NTP クライアント,またはその両方として構成できます。
図 6-3
は,NTP を構成するために必要な情報を記録することのできる NTP 設定ワークシートを示しています。
本書をオンラインで読んでいる場合は,印刷機能を使用してこのワークシートを印刷することができます。
この後の項でワークシートに記録する必要のある情報について説明します。
図 6-3: NTP 設定ワークシート
システムの時間のソースです。 ローカル NTP サーバでは,タイム・ソースは次のいずれかです。
インターネット NTP サーバ
ご使用のシステムがインターネットに接続されている場合,World Wide Web 上の http://www.eecis.udel.edu/~ntp から,利用できる NTP インターネット・サーバのリストを入手することができます。 このサーバ・リストから,ローカルの NTP サーバの時刻と同期させるシステムを最低 3 つ選択してください。 ローカル の NTP サーバのためのサーバとしてインターネット・サーバを指定する前に,リストされている各インターネット・サーバの担当者から許可を得てください。
基準クロック インターネットに接続されていない環境では,ネットワーク上のいずれかのシステムを選び,基準クロックで時刻を設定することができます。 基準クロックは,ラジオ放送や衛星放送から時刻を取り込みます。 インターネット・サーバと基準クロック・デバイスのどちらも利用できない場合は,最後の手段として,ネットワーク上のいずれかのシステムをローカル基準クロックとして構成します。 この場合,選択したシステムの CPU タイムキープ・ユニットが,基準クロックとして使用されます。
さまざまな種類の基準クロックの構成については,
ntp_manual_setup
(7)ntp.conf
(4)
インターネット NTP サーバまたはローカル基準クロックの IP アドレスです。 ローカル NTP サーバは,NTP クライアントのタイム・ソースです。
インターネット NTP サーバのホスト名です。
インターネット NTP サーバまたはローカル基準クロックで実行している NTP デーモンのバージョンです。
これは,バージョン 1 (ntpd
デーモン),バージョン 2 (xntpd
デーモン),またはバージョン 3 (xntpd
デーモン) のいずれかです。
3.2 以前のバージョンの Tru64 UNIX オペレーティング・システムが稼働しているサーバではバージョン 2,Tru64 UNIX 4.0 以降が稼働しているサーバではバージョン 3 の
xntpd
デーモンが動作しています。
stratum 値は,システムの基準クロックの精度を表します。 この値が大きいほど,クロックの精度が低いことを意味します。
ローカル基準クロックを構成している場合は,大きめの stratum 値を指定して,クロックの時刻が正確ではないことを示すことができます。 その結果,他のシステムはこのクロックを信頼できる時刻ソースとは見なさず,使用を避けます。 NTP クライアントは,検出した中で最も小さい stratum 値を持つサーバから時刻を取り込みます。 たとえば,ローカル基準クロックに対して stratum 8 を設定している場合,stratum 2 以下のサーバが見つかると,NTP クライアントはローカル基準クロックを無視し,見つかったサーバを使用します。
Stratum フィールドには,0 〜 15 の値を指定できます。 ただし,特に理由がない限り,NTP が割り当てた省略時の値をそのまま使用してください。 ローカル基準クロックは 3,その他のクロックでは 0 が省略時の値です。
ローカル NTP サーバの IP アドレスです。 ローカル NTP サーバは,NTP クライアントのタイム・ソースです。
ローカル NTP サーバ名です。
ローカル NTP サーバで実行している NTP デーモンのバージョンです。
これは,バージョン 1 (ntpd
デーモン),バージョン 2 (xntpd
デーモン),またはバージョン 3 (xntpd
デーモン) のいずれかです。
Tru64 UNIX オペレーティング・システムのバージョン 3.2またはそれ以前のバージョンを実行しているサーバは,バージョン 2 (xntpd
デーモン) を実行します。
Tru64 UNIX オペレーティング・システムのバージョン 4.0 以降を実行しているサーバは,バージョン 3 (xntpd
デーモン) を実行します。
NTP サーバと NTP クライアントの構成には,Common Desktop Environment (CDE) のアプリケーション・マネージャの SysMan Menu アプリケーションを使用します。 SysMan Menu アプリケーションを起動するには,1.2.1 項の手順に従ってください。
注意
SysMan Menu で作成できる構成よりも複雑な NTP 構成が必要な場合,
/etc/ntp.conf
ファイルを手動で編集しなければならないことがあります。 たとえば,NTP サーバがタイム・ソースとしてローカルまたは外部の基準クロックを使用する場合などがそうです。ntp.conf
ファイルを手動で編集した場合,その後の構成変更で SysMan Menu は使用しないでください。 SysMan Menu はntp.conf
ファイルで使用できるオプションの一部しか認識できないため,構成を上書きすることがあります。NTP の手動構成についての詳細は,
と ntp_manual_setup
(7)を参照してください。 ntp.conf
(4)また,NTP と
timed
デーモンの両方を使用する場合には,timed
デーモンを設定する前に,NTP を設定してください。
NTP を構成するには,次の手順を行います。
SysMan Menu から [ネットワーク] --> [追加ネットワーク・サービス] --> [NTP (Network Time Protocol)] --> [NTP クライアントとしてシステムを設定] を選択して,「Ntpconfig」ダイアログ・ボックスを表示します。
代わりに,次のコマンドをコマンド行から入力することもできます。
# /usr/bin/sysman ntp_config
認証を使用可能にするかどうかを,該当するチェック・ボックスを選択して指示します。 認証を使用可能にした場合には,次のように,少なくとも 1 つの認証鍵を入力しなければなりません。 この手順は追加する鍵の数だけ繰り返します。
「Authentication キー」リストの下にある [追加] を選択し,「追加/修正」ダイアログ・ボックスを表示します。
1 つまたは複数のピアの「キー番号」および「キー」を入力します。 「キー番号」には,キーを識別する 1 〜 15 の数字のうち 1 つを入力します。 「キー」には,1 〜 8 文字の英数字によるパスワードを,スペースを使用せずに入力します。
[了解] を選択して,認証鍵をリストに追加し,「追加/修正」ダイアログ・ボックスを消去します。
構成を保存し,「Ntpconfig」ダイアログ・ボックスを閉じると,認証鍵が
/etc/ntp.keys
ファイルに保存されます。
「サーバ & ビア」リストの下にある [追加] を選択し,「追加/修正」ダイアログ・ボックスを表示します。
NTP サーバのホスト名,モード,バージョン,およびキー番号を入力します。
NTP サーバの IP アドレスを DNS からも NIS からも取得できない場合には,『ネットワーク管理ガイド:接続編』で説明している手順に従って,システムの
/etc/hosts
データベースに追加しなければなりません。
クライアントについては,サイトにローカルな NTP サーバの情報を入力します。
サーバについては,インターネット NTP サーバまたはローカル基準クロックの情報を入力します (6.2 節
を参照)。
ローカル基準クロックを構成しており,xntpd
デーモンが割り当てた省略時の stratum 値を変更する必要がある場合には,
「Fudge ファクタ」チェック・ボックスを選択し,「層」フィールドの値として 0 〜 15 のいずれかの値を選択します。
情報は,/etc/ntp.conf
ファイルに記録されます。
クライアントに対しては,このファイル内のエントリは,サーバ・エントリとして定義されています。
クライアントが時刻の同期をとることができるのは,これらのシステム内に限られるためです。
ただし,NTP サーバについては,
ntp.conf
ファイル内にサーバおよびピアのエントリを持つことができます。
ピア・システムは,別のシステムの時刻と同期をとったり,別のシステムの時刻をそのシステム固有の時刻に同期させたりできるためです。
[了解] を選択して入力したパラメータを確認し,「追加/修正」ダイアログ・ボックスを閉じます。 他の NTP サーバを追加するには,手順 3 から 5 を繰り返します。 少なくとも 3 台の NTP サーバを指定するようにしてください。
時間差が大きい場合にこれを修正するかどうか,該当するチェック・ボックスを選択して指示します。
このオプションは,省略時の設定では使用可能です。
このオプションを使用すると,
xntpd
デーモンが起動されてから,システム時刻とシステムの NTP サーバの時刻との間で 1000 秒を超える時間差が発生した場合に,xntpd
デーモンが時間を修正できるようになります。
ブート時には,ntpdate
コマンドが
/sbin/init.d/settime
スクリプトによって実行され,初期時間差を修正します。
システムが,セキュリティ上重要である場合や,サーバで使用しているクロックが安定していない場合には,このオプションを使用可能にしてはいけません。
このオプションを使用しない場合には,時間差が 1000 秒を超えると,
xntpd
デーモンは
syslogd
デーモンにメッセージを送信して終了します。
時刻をさかのぼって設定しないようにするかどうか,該当するチェック・ボックスを選択して指示します。
省略時の設定では,
xntpd
デーモンがシステム時刻をさかのぼって設定できるようになっています。
[了解] を選択して構成を保存し,「Ntpconfig」ダイアログ・ボックスを閉じます。
新しいダイアログ・ボックスが表示され,変更が保存されたという通知が表示され,xntpd
デーモンを起動するよう促されます。
[はい] を選択してデーモンを起動し,変更を直ちに適用します。 あるいは,[いいえ] を選択して「Ntpconfig」ダイアログ・ボックスを閉じて,次にシステムをリブートしたときに変更が適用されるようにします。
注意
NTP を起動すると,システムはクロックを NTP サーバのクロックに同期させようとします。 システムで以前にスクリーン・セーバーを使用可能にしていた場合には,時間差によって,スクリーン・セーバーが起動されることがあります。 場合によっては,この時間差のために画面がブランクになることがありますが,システムに影響を与えることはありません。 マウスを動かすかキーボードのキーを 1 つ押すと,表示が再開されます。
[はい] を選択すると,NTP デーモンが起動されたという通知が表示されます。 [了解] を選択してこのメッセージを消去し,「Ntpconfig」ダイアログ・ボックスを閉じます。
初期設定後も,NTP の構成を変更することができます。
また,必要に応じて
xntpd
デーモンを停止してから再起動することもできます。
詳細は,オンライン・ヘルプを参照してください。
6.4 高精度時計の使用
オペレーティング・システムには,重大なコード・パスで消費される時間など,マイクロセカンドの精度で発生するイベントのタイム・スタンプおよび計測に使用できる,オプションの高精度時計が含まれています。 プログラマは,ソース・ファイルのバグを見つけるため,あるいは性能の改善のために最適化できる場所を判断するために,この情報を参照することができます。
高精度時計を利用するためには,カーネル構成ファイルに次の行を追加してカーネルの再構築します。
options MICRO_TIME
clock_getres
関数によって返されるシステム時計 (CLOCK_REALTIME
) の精度は変更されません。
しかし,clock_gettime
ルーチンによって返される時間は,クロック・チケット間を推定し,マイクロセカンドの精度で返されます。
出力される時間値は SMP セーフです。
6.5 xntpd デーモンを実行しているホストのモニタリング
ntpq
コマンドまたは
xntpdc
コマンドを使用して,xntpd
デーモンを実行しているホストをモニタリングすることができます。
ntpq
コマンドを使用してローカル・ホストの NTP 状態をモニタリングするには,次の構文を使用してください。
ntpq
[options...
]
ntpq
コマンドを使用してリモート・ホストの NTP 状態をモニタリングするには,次の構文を使用してください。
ntpq
[options...
]
host1 host2...
表 6-1に,ntpq
コマンドのオプションを示します。
表 6-1: ntpq コマンドのオプション
オプション | 機能 |
-c subcommand |
subcommand を会話形式のコマンドとして解釈して,指定されたホストまたは複数のホストで実行するコマンドのリストに追加します。 |
-i |
ntpq
を会話型モードで動作させます。 |
-p |
ピアのリストおよびそれらの状態の要約をプリントします。 |
-c
オプションを使用すれば,ntpq
のコマンド行でサブコマンドを指定できます。
-i
オプションを使用すると,ntpq
コマンドを対話モードで実行できます。
対話モードでサブコマンドの指定を終えたら,quit
と入力してプログラムを終了します。
特に指定しなければ,サブコマンドはローカル・ホストに適用されます。
ただし,コマンド行や,対話モードの
host
サブコマンドで,ローカル・ホスト以外のホストを指定することもできます。
ntpq
コマンドとそのサブコマンドについての詳細は,
ntpq
(8)
次の例に,-p
オプション (または
peers
サブコマンド) 付きで
ntpq
コマンドを実行した結果の通常の出力を示します。
% ntpq -p remote refid st when poll reach delay offset disp ========================================================================== *host2.corp.com host121.corp.co 2 47 64 377 31.3 93.94 16.5 +host4.corp.com host2.corp.com 3 212 1024 377 33.8 89.58 16.9 host8.corp.com host2.corp.com 16 never 64 0 0.0 0.00 64000
上記の例の最後の行は,host8 が NTP を実行していないか,または接続できないことを示しています。
xntpdc
コマンドを使用してローカル・ホストの NTP 状態をモニタリングするには,次の構文を使用してください。
xntpdc
[options...
]
xntpdc
コマンドを使用してリモート・ホストの NTP 状態をモニタリングするには,次の構文を使用してください。
xntpdc
[options...
]
host1 host2...
注意
NTP バージョン 4 に付属している最新バージョンの
xntpdc
コマンドとxntpd
デーモンは,旧バージョンの NTP とは互換性がありません。 最新バージョンのxntpdc
コマンドで旧バージョンのxntpd
デーモンの情報を収集したり,旧バージョンのxntpdc
コマンドで最新バージョンのxntpd
デーモンの情報を収集しようとしても,正しい結果を得ることはできません。
表 6-2に,いくつかの
xntpdc
コマンドのオプションを示します。
表 6-2: xntpdc コマンドのオプション
オプション | 機能 |
-c subcommand |
subcommand を会話形式のコマンドとして解釈して,指定されたホストまたは複数のホストで実行するコマンドのリストに追加します。 |
-i |
xntpdc
を会話型モードで動作させます。 |
-l |
サーバに既知であるピアのリストをプリントします。 |
-p |
ピアのリストおよびそれらの状態の要約をプリントします。
出力のフォーマットは,ntpq -p
コマンドの出力に似ています。 |
このコマンドおよびサブコマンドについての詳細は,
xntpdc
(8)
次の例に,-p
オプションをつけて
xntpdc
コマンドを実行した結果の通常の出力を示します。
% xntpdc -p remote refid st when poll reach delay offset disp ========================================================================== *host2.corp.com host121.corp.co 2 47 64 377 31.3 93.94 16.5 +host4.corp.com host2.corp.com 3 212 1024 377 33.8 89.58 16.9 .host5.corp.com host12.usc.edu 2 111 1024 377 39.1 46.98 17.7
コマンド
ntp
および
ntpdate
を使用して,時間を照会できます。
ただし,ntpdate
コマンドは,NTP のすべてのバージョンで動作し,より多くの機能を提供するため,ntpdate
コマンドを使用することをお勧めします。