NTP設定

今後やろうとしていること(CactiによるSNMPデータ収集など)では、時間の管理がシビアになってくる。
メールでも何でも時間を使うので、時間が正確であることに越したことは無い。
ということで、真っ先に時間の自動調整(NTP)を設定する。


ntpdate コマンドをcronで回す方法もあるけれど、これでは一気に時間が変わることもあり、具合がわるい。
なので、なにもサービスが動いていない状態で1回だけ ntpdate コマンドを実行し、あとはNTPDが微調整し続ける*1…というのが理想。
ある有名なデータベースソフトの昔のバージョンだけれど、時間を巻き戻すと停止するという不具合がでる…なんていうことも報告されている。

NTPの同期先

NTPの同期先は、プロバイダが用意していればソレを利用するのがマナー。
昔、福岡大学で公開していたNTPにアクセスが集中し、NTPとしての機能が動かなくなったなんていう事件にも発展する。
でも、最近は個人利用OKという剛毅なNTPがあるので、僕はそちら(ntp.nict.jp)を使う。


http://www2.nict.go.jp/w/w114/stsi/PubNtp/qa.html#q1-6

[Q.1-6] 個人ユーザですが、stratum 1 にアクセスしても構いませんか?
[A.1-6] はい、どうぞ。

同期ポリシー

NTPは、サービスが動いていると上位NTPに同期すると同時に、クライアントにも無制限に同期を許可する。
公開していたところで誰かが使うというのはないだろうけど、セキュリティ上、インターネット上に開いているポートは少ないほうが良い。
ということで、同期のポリシーを決めてみる。

  1. 同期する上位NTPを ntp.nict.jp にする。
  2. ローカルホストには制限をかけない。
  3. 同期させるクライアントは、ローカルIPアドレスのみとする。
  4. 同期のペースはデフォルト(1,2,4,8,16,32,64,128,256,512,1024秒と更新間隔が広がる方法)


ちなみに、同期のペースは(デフォルト設定の場合)最小が16秒、最大が1024秒となる。

設定ファイル

NTPの挙動を調べると、起動したらコンフィグに記載されたNTPを順に調査し、リストをソートする。
ソートされる優先順位は、Stratumの数字が小さいもの、次にネットワーク的に近い(遅延が少ない)もの。

# all access deny
restrict default ignore

# loopback interface
restrict 127.0.0.1

# -- CLIENT NETWORK -------
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# --- OUR TIMESERVERS -----
restrict 133.243.238.163 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.164 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.243 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.244 mask 255.255.255.255 nomodify notrap noquery

# --- GENERAL CONFIGURATION ---
server ntp.nict.jp

# Drift file.
driftfile /etc/ntp/drift

設定したら、NTPDを起動する。
# ntpdate ntp.nict.jp
# /etc/init.d/ntpd start

あれれ?

ntpq -p で、NTPの稼動状態を見ることが出来る。
たしかに起動後15分くらいは、NTPが有効にならないものなんだけれども。
でも、いつまで経っても上位DNSと同期しない…


ファイアウォールかなぁ…ポートを弄ってないし。
でも、ntpdateコマンドは使えたんだけど…
iptables -Lコマンドで見ても、全て ACCEPT(通過)
むぅ?
なんでだろー…


Windows端末で、日付と時刻のプロパティに、インターネット時刻タブがある。
ここで ntp.nict.jp を設定して「今すぐ更新」ボタンをクリック。
同期中にエラーが発生した…ということは、端末ではなくダイアルアップルータ側の設定か?


ということで、ダイアルアップルータにWebアクセス。
が、Web設定画面にアクセスできない…
ぐぅ、なんでだー??
NTPの設定とは違うところで躓いてるし…orz


Linuxから telnet コマンドでポート80にアクセスして、直接htmlファイルをGETしてみると、普通にWebページのソースが表示された。
ということは、怪しいのはWebブラウザ
Sleipnirを一度落として、立ち上げてみる。
ダイアルアップルータへアクセスすると…見慣れたログイン画面がでてきた。
ダイアルアップルータの設定ページへアクセスできない問題はWebブラウザが原因でしたか…orz


NTPは、UDPでポート123を使った通信。
セッションを張らないので、両方向に通信できる必要がある。
設定を入れて、再起動。
しかし、設定を入れるたびに再起動&30秒の待ち時間が発生するのは何とかして欲しい → PR-200NEの仕様。
それでもWindows端末で時刻同期できない。
ノートン先生を無効にしてトライ。
普通に時刻同期完了…って、おいおい(TT)


なんか、今日は疲れたのでまた明日…


〜追記 2008.2.21〜
随分放置していたけど、僕が引っかかった理由はルータの仕様のようだ。
ポート開放しても他の設定と合わせないと有効にならなかったり、不可思議な動作をする。
PnPがうまく動作してくれないようで、環境の見直しを余儀なくされている(TT)

*1:ntpdateコマンドは、NTPDが動いていると正常に働かない