今回は時刻同期サーバーの設定をします。時刻同期サーバーが動いていれば、そのマシン内の時計は非常に正確になります。2 設定
NTP をサポートするプログラムは ntpdate と xntpd の2つあります。ntpdate は、その場で時報サーバを見に行って時刻を合わせてくれるプログラムで、起動時に電源の切れていたマシンの時計を補正するときや、cron を使って定期的に補正するときに使用します。 xntpd はサーバとクライアント両方の働きをするデーモンで、自動的にローカルクロックをサーバに合わせて調整する機能と、他のホストへ時報を流す機能を持ちます。
LAN内で使用される一般的な構成は、次のようになります。
▼基本構成図
第1レベル パブリックNTPサーバー
↑参照
第2レベル LAN内NTPサーバー
↑↑↑参照
第3レベル LAN内クライアント
パブリックNTPサーバーとは世界にいくつかあり、以下のホームページで確認することができます。そのなかから、一番近いサーバーを選ぶとよいでしょう。
▼パブリックNTPサーバーのリスト
Public NTP Primary (stratum 1) Time Servers (英語)
また、上記の基本構成図のように、LAN内にNTPサーバーを設けて他のクライアントはそのサーバーを参照し、全てのクライアントがパブリックNTPサーバーを参照するようなことは行いません。
今回は以下のような状況を想定して説明します。
▼今回の設定の例
レベル サーバー名 IPアドレス第1レベル clock.nc.fukuoka-u.ac.jp 133.100.9.2 第2レベル ntpserv.test.net 192.168.1.1 第3レベル ntpcli.test.net 192.168.1.100
2.1 第2レベルの場合2 動作の確認まず、 /etc/rc.conf ファイルに次の行を追加します。2.2 第3レベルの場合
ntpdupdate を使用し、その時に参照するサーバーは 133.100.9.2 であり、xntpd も使用する設定です。
▼/etc/rc.confファイルに追加する項目
ntpdate_enable="YES" # Run the ntpdate to sync time (or NO). ntpdate_program="ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="-s -b 133.100.9.2" # Flags to ntpdate (if enabled). xntpd_enable="YES" # Run xntpd Network Time Protocol (or NO). xntpd_program="ntpd" # path to xntpd, if you want a different one. xntpd_flags="-p /var/run/xntpd.pid" # Flags to xntpd (if enabled).
上記の ntpdate_flags の行のオプションの意味は次のようになっています。
-s utpdate の出力を、syslog に吐く。 -b クロック修正を強制する。
また、xntpd_flags の行の-pオプションの意味は、デーモンのプロセス ID を記録するためのファイル名とパスを指定します。
次に、/etc/ntp.conf ファイルを作成し、以下の記述をします。
▼/etc/ntp.confファイルに記述する項目
server 133.100.9.2 driftfile /etc/ntp.drift
そして、上で設定した ntp.drift ファイルが存在しなければいけないので、次のコマンドで作成します。
drift ファイルとは、時計のずれ具合いの統計情報をとり、補正に必要な時差を保存するためのものであり、補正によってできるだけサーバへの負荷を減らすのが目的です。
▼カラのファイルを作るコマンド
# touch /etc/ntp.drift [Enter]
そしてマシンを再起動すると ntpd が起動し、マシンタイムが 133.100.9.2 と同じになります。そして、LAN内のNTPサーバーができました。
実は、前に述べた第2レベルの場合とほとんど同じです。第2レベルで 133.100.9.2 で設定したことを、全て 192.168.1.1 で設定するとよいでしょう。これは、前にも述べましたように、ntpdがサーバーの役割も果たすために 192.168.1.1 を参照するとよいからです。
動作中の ntpd の設定を確認するプログラムが ntpq にります。以下のコマンドを実行してみてください。
▼ntpdの動作を確認するコマンド
> ntpq -p [Enter] remote refid st t when poll reach delay offset jitter ============================================================================== *clock.nc.fukuok .GPS. 1 u 28 64 277 23.660 -34.702 17.373
最初にアスタリスク '*' がついていなかったり、st が 16になっていると、サーバとの交信がうまくいっていません。ただし起動直後はしばらく切れているので、慌てて再起動せず、10分〜1時間ぐらい待つようにしましょう。
各欄の意味は次のようになっています。
▼各項目の意味
remote 参照しているサーバ名。 refid remote が参照している時刻。他のサーバだったり、GPS 時刻源だったりする。 st remote の階層 (stratum)。1 が時報源、2、3、4…と増えるに従い遠くなっていく。 t ピアの種類 (local、unicast、multicast、broadcast) when 最後にパケットを受信した時間。 poll ポーリング間隔。 reach 到達可能性レジスタ(8進数) delay 遅延の推定値 offset ずれ
ntpdのマニュアル(日本語)を用意しましたので、必要な場合はご覧ください。
ntpdのマニュアル (日本語)