タイムサーバーと同期させる

FreeBSDでタイムサーバーと同期を取る場合には「ntpd (Network Time Protocol Daemon」を使用します。
インストールに関しては、「sysinstall」からパッケージを使ってインストールして下さい。「ntpd」を使用する場合には、スーパーユーザーになって以下のように設定します。
注意 : ntpd 4.0.99 以前のバージョンで remote buffer overflow のセキュリティホールが存在するそうです。古いバージョンをお使いの方は、最新のバージョンにお差し替え下さい。
設定ファイルを作成する
「/etc/ntp.conf」をviなどで作成して以下のような定義文を書きます。
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
driftfile /etc/ntp.drift
意味としては、
コマンドパラメータ意味
serverserver ntp1.jst.mfeed.ad.jp上流のタイムサーバーを指定
serverserver ntp2.jst.mfeed.ad.jp上流のタイムサーバーを指定
serverserver ntp3.jst.mfeed.ad.jp上流のタイムサーバーを指定
driftfile/etc/ntp.driftオフセット情報のログファイル
上記の設定では、インターネットマルチフィード社の「mfeed」を使用しています。
加入しているプロバイダーがNTPサーバーを提供している場合には、プロバイダーのNTPサーバーを使ってください。加入しているプロバイダーがNTPサーバーを公開していない場合には、各自、近くの公開NTPサーバーを探して使用してください。
また、多くのNTPサーバーでは、ラウンドロビン参照を可能としているため、特定のホスト名を設定することによって、サーバーの負荷を分散させることが出来ます。
オフセット情報のログファイルを作成する
「/etc/ntp.drift」をviなどで作成する(ただファイルを作るだけ、、中は空でOK)
システム設定ファイルを変更する
「/etc/rc.conf」を以下のように修正してntpdを使用可能にします。
ntpdate_enable="YES
ntpdate_flags="-s -b ntp1.jst.mfeed.ad.jp"
ntpd_enable="YES"
tickadj_enable="YES"
リブートする
リブートして「rc.conf」で設定した機能を有効にします。
時刻合わせを行う
「xntpd」を動かす前に、「ntpdate」コマンドを使って時刻合わせを行います。
それというのも「xntpd」とはタイムサーバーとの時間の差を調べ、少しずつ時間を進めたり遅らせたりしながら修正を行うため、PCの時間が大きくずれているとなかなか同期が取れません。特に眠っていたPCなどで使用した場合、とてつもなく時間が狂っていることも多々あります。そうするといつまで立っても同期されません(^^;)。

「ntpdate」で時刻合わせを行うには以下のように行います。
/usr/sbin/ntpdate -s -b ntp1.jst.mfeed.ad.jp
注意]パラメータで指定されているタイムサーバーは各自近い場所を探して下さい。
タイムサーバーに同期させる
時刻合わせが終わったところで、「ntpd」を起動してタイムサーバーと同期させてみます。
ntpd

「xntpd」を起動すると、数分でタイムサーバーと同期が取れるようになります。同期が取れているか確認するには以下のコマンドを叩きます。
ntpq -p
同期が取れていると以下のように「*」が先頭に表示されます。
remoterefidsttwhenpollreachdelayoffsetjitter
==============================================================================
+ntp1.jst.mfeed.fs-monntp2.mfee2u8012837710.916-1.0460.023
*ntp2.jst.mfeed.fs-monntp2.mfee2u7412837710.689-0.7690.527
+ntp3.jst.mfeed.ote-ntp1.jpnap.2u8112837710.015-1.4530.837
意味としては、
記号意味

同期を試み中、もしくはレスポンスがない
*現在同期中のサーバー
+利用可能なサーバー
#遠いが利用可能なサーバー
oPPSによる間接同期中のサーバ
.利用者オーバーなので使用不可
-クラスタリング検査不合格
x同期検査不合格
記号意味
remoteサーバ名
refidサーバの時刻参照元
stサーバの階層番号
※stratum2以降を使用。stratum1は大元なので一般の人は使用しない。
※どうしてもstratum1を使いたい人はGPSや電波時計を使用してstratum1サーバーを構築する。
t階層の種類
※ l = local, u = unicast, m = multicast, b = broadcast
when同期してからの経過時間
※単位は[s]
poll同期間隔
※単位は[s]。安定してくるほど値が大きくなる。(最大1024[s])
reachNTPサーバに接続を試みた回数の内、最後の8回分の結果を8進数で表示
※全て接続に成功していれば「377」となります。
delay信号の平均遅延時間
※単位は[ms]
offsetサーバとの時刻のずれ
※単位は[ms]。10[ms]以下なら問題なし。
jitter同期タイミングのばらつき
※単位は[ms]。10[ms]以下なら問題なし。
以上で設定は終了です。これで精度の高い標準時間を維持できるようになります。(^^)
1つのホスト名を指定することで、複数のNTPサーバーを順番に利用して、負荷の分散を行う。