NTPサーバーの構築(タイムサーバー)

1.はじめに

せっかく常時接続そしてサーバー設置となったらタイムサーバーも起こしたくなります。
外部にはイリジウムを使った物や、標準電波を受信して制度の良いタイムサーバーが誰でも利用できる
環境に有るのでコレを利用する以外に有りません。
PCの内部時計は御存知のとおり誤差がひどくそのままほおっておくと、だいぶズレますので自動で合わせましょう。
そしてサーバーの時計が制度良くなったのを利用してイントラ内は自宅サーバーをタイムサーバーとしてクライアントを
合わせるようにすれば、いちいちクライアントの台数分外部に時計合わせに行かなくて済みます。

2.サーバーの時計を外部のタイムサーバーで自動で合わせる

まず外部に有るタイムサーバーは以下のようなものがあります
国立天文台: cesium.mtk.nao.ac.jp (133.40.40.133)
高エネルギー物理学研究所: gps.kek.jp (130.87.32.71)
東京大学: ntp.nc.u-tokyo.ac.jp (130.69.251.23)
東京理科大学: ntp.sut.ac.jp (133.31.180.6)
東北大学: ntp1.tohoku.ac.jp (130.34.11.117)
東北大学: ntp2.tohoku.ac.jp (130.34.48.32)
豊橋技術科学大学: ntp.tut.ac.jp (133.15.64.8)
大阪府立大学: eagle.center.osakafu-u.ac.jp (157.16.213.52)
神戸港湾職業能力開発短期大学校: gps.kobe-pc.ac.jp (210.164.106.226)
広島大学: ns.hiroshima-u.ac.jp (133.41.4.2)
福岡大学: clock.nc.fukuoka-u.ac.jp (133.100.9.2)
福岡大学: clock.tl.fukuoka-u.ac.jp (133.100.11.8)
NTTソフト研: ntp.nttsl.mfeed.ne.jp (210.173.162.106)
他にも自分のプロバイダーで設置している場合があるので調べて見ましょう!
So-net,ASAHIなどはあります。
通常は「ntp.プロバイダードメイン名」で有る場合が多いです。

サーバーの時計はタイムサーバーとしてntpdを走らせる事により自動で合わせてくれます。

3.タイムサーバー稼働

タイムサーバーのソフトはfreeBSDの場合デフォルトで入っているntpdを使用します。

まずは設定
/etc/ntp.conf を編集する
server 外部タイムサーバーアドレス
driftfile /etc/ntp.drift
# ここから下は知らない間に追加されていた
tos minclock 3 maxclock 6
broadcastdelay 0.009
logfile /var/log/ntpd.log
ここで指定する外部タイムサーバーアドレスと自動的に同期を取ってくれます
複数指定しても、自動的にBESTなサーバーと同期が取れると思います
また、ドメイン名ではなく、直接IPアドレスを指定しておくと良いでしょう

次にドリフトのダミーファイル作成
# touch /etc/ntp.drift

立ち上げ時に自動起動するには
/etc/rc.conf に以下の行を追加する
ntpd_enable="YES"
ntpd_config="/etc/ntp.conf"

あとは起動するだけ
# /etc/rc.d/ntpd start

動作確認をします。
# ntpq -p
* 同期中であると宣言されたサーバ
+ 接続テストに合格し、いつでも参照可能なサーバ
- クラスタリング検査で捨てられたサーバ
 距離が遠くて捨てられたサーバ

4.起動しない場合

rpcbind: cannot create socket for udp6
のようなエラーした場合は

/etc/netconfigを編集する
#udp6 tpi_clts v inet6 udp - -
#tcp6 tpi_cots_ord v inet6 tcp - -
IPv6をコメントアウトすると立ち上がります。