拡張 @ 

NTP による 時刻同期

2001.08.19  


 

 パソコンの時刻

  • パソコンの時計は正確ではなく、よく狂う。date コマンドで時刻を合わせれば良いのだが、手動で頻繁に時刻設定を行うのは手間であるので、NTP を利用した時刻同期の方法を説明する。

 NTP とは

  • NTP:Network Time Protocol とは、ネットワーク経由で時刻同期を取る為のプロトコルである。

  • インターネット上には、タイムサーバ(NTPサーバ)が多数存在しており、インターネットに接続したマシンは、そのタイムサーバと時刻同期をとることで、常に正確な時刻を維持できるようになる。

 NTP の インストール

  • まず、既に ntpd や xntpd が既にインストールされていないかを確認。

     rpm -q ntp または、 rpm -q xntp

  • Linux インストール CD  の 2枚目に、ntp-4.0.99k-15.i386.rpm  があるので、インストール。 

     rpm -i /mnt/cdrom/RedHat/RPMS/ntp-4.0.99k-15.i386.rpm

  • 次に /etc/ntp.conf  を編集する。 ※ FireWall や マシン自身のパケットフィルタ(ipchains等)で、ntp(tcp,udp) を許可しておくこと。

     server time-nw.nist.gov
     #server 131.107.1.10
     server gps.kek.jp
     driftfile /etc/ntp/drift

     ※ 1行目と2行目は同じサーバを指定している。IPアドレス、ホスト名

       どちらでも指定できる。

  • ntpd で時刻同期する前に手動で時刻を合わせる。

     /usr/sbin/ntpdate time-nw.nist.gov

  • ntpd を起動して、様子を見る。

     /etc/rc.d/init.d/ntpd start

     ※ ntpd を終了させる場合は、/etc/rc.d/init.d/ntpd stop

  • 同期には時間がかかる。同期の状態を確認するには、下記コマンドを実行する。

     /usr/sbin/ntptrace 

     同期が完了した場合の実行結果例:
     $ /usr/sbin/ntptrace
     tomas: stratum 2, offset 0.000056, synch distance 0.09215
     gps1.kek.jp: stratum 1, offset -0.000796, synch distance 0.00000, refid 'GPS'


     同期がまだの場合の実行結果例:
     $ /usr/sbin/ntptrace
     tomas: stratum 2, offset 0.000056, synch distance 0.09215
     0.0.0.0:    *Not Synchronized*

  • 同期が完了したら、マシン起動時に自動的に ntpd が起動するように設定ファイル /etc/rc.d/init.d/ntpd-start を作成する。ntp-start の中身は下記。

     #!/bin/sh
     # ntpd start
     #
     . /etc/rc.d/init.d/functions
     if [ -f /etc/rc.d/init.d/ntpd ]; then
         /etc/rc.d/init.d/ntpd start
         echo
     fi
     exit 0

  • /etc/rc.d/init.d/ ntpd-start を編集したら、リンクを行う。下記例は、runlevel 5 で稼動しているマシン に 起動スクリプト S62ntpd-start として設定した場合。

     ln -s /etc/rc.d/init.d/ntpd-start /etc/rc.d/rc5.d/S62ntpd-start