について書くことにしたのは、

Ubuntu ntpdate 時刻合わせ - tigre
福岡大学の公開NTPサーバーを利用する
 - NTPSERVERS="ntp.ubuntu.com"
 + NTPSERVERS="clock.nc.fukuoka-u.ac.jp"

という2009年の記事がブクマされていて軽くのけぞったから。

というのもこのclock.nc.fukuoka-u.ac.jp、使われすぎていてわざわざWikipediaにもこんな記述があるぐらいなのだ。

Network Time Protocol - Wikipedia - clock.nc.fukuoka-u.ac.jp問題
日本では福岡大学が1993年からNTPサーバを公開しているが、ここを参照するように設定された機器やソフトが非常に多いため[注釈 7]、アクセス集中による過負荷に悩まされている。契約しているインターネットサービスプロバイダ (ISP) の公開するサーバを利用するなどでこれらの問題は解消すると考えられるため、福岡大学内部でNTPサーバを利用している場合を除き、ISPや研究機関等が加入者向けにサービスするNTPサーバや公開NTPサーバを利用することが好ましい。

では具体的にどうするべきか。

  • ntpdateの使用は起動時のみ jp.pool.ntp.org で。あとはntp
  • 日本国内のサーバーに関しては ntp.nict.jp + jp.pool.ntp.org

というのが現状の落としどころだと私は考えている。

Network Time Protocol - Wikipedia
日本では情報通信研究機構 (NICT) が世界最高性能のNTPサーバ (ntp.nict.jp) を2006年6月より一般公開したので、負荷に起因する問題は解決の方向へ向かうと思われる。NICTによれば、世界中のNTPリクエストを合計しても数万リクエスト/秒程度なので、100万リクエスト/秒を扱える新しいシステムでは負荷の問題ではなく知名度の低さが問題としている[2]。

なにしろ日本の標準時を作っている組織がわざわざ公開してくれているのだ。せっかく納税者なのだし、これを使わない手はない。IPv6にも対応している。

とはいえ、それのみだと事故に巻き込まれる。実際ntp.nict.jp今年の一月に事故っている。というわけでpool.ntp.orgもあわせて利用することにする。

で、ntpdateを定期的に実行するのではなくntpdを使う理由だが、後者であればどのサーバーと同期するかが自動で選択されるから。たいていの場合、stratum が最も小さい ntp.nict.jp が選択されるのはntpq -pで確認できるし。そして実際NICTの事故の際には選択から外れたことも、同じくntpqで確認できた。

というわけで、私が今利用しているntp.confは以下のようになっている。

server ntp.nict.jp iburst maxpoll 9
server 0.jp.pool.ntp.org iburst maxpoll 9
server 1.jp.pool.ntp.org iburst maxpoll 9
server 2.jp.pool.ntp.org iburst maxpoll 9

各オプションの意味は以下のとおり

FreeBSD標準の /etc/ntp.conf より(FreeBSDでなくとも使える)
# The option `iburst' is used for faster initial synchronisation.
# The option `maxpoll 9' is used to prevent PLL/FLL flipping on FreeBSD.

なお、LAN内に複数NTPクライアントがいる場合は、上記の設定をコピーするのではなく、上記の設定をしたマシンをそのLAN内のNTPサーバーとする方が望ましいのはWikipediaも指摘しているとおり。

Dan the Man with Too Many Clocks to Adjust