Kozupon.com    
 
 ntpdateコマンドエラーについての誤解!


NTPサーバ構築関係は、ここ のネタに任せるとして、ここではNTPサーバとNTPクライアントとの同期について書いてみたい。結構混乱した覚えがある。


1.ntpdateコマンドでのNTPサーバが上位サーバとシンクロできないエラー

例えば ntpdate コマンドを叩いて、以下のようなエラーが出た場合。

root@sv:~# ntpdate -d ntp.kozupon.com
31 Mar 13:48:41 ntpdate[30115]: ntpdate 3-5.93 Wed Jul 18 10:36:05 JST 2001 (1)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
server 203.141.157.142, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.05396, dispersion 0.00026
transmitted 4, in filter 4
reference time: cd798b20.49d93c2c Sun, Mar 29 2009 14:52:32.288
originate timestamp: cd7c1f25.84b1462d Tue, Mar 31 2009 13:48:37.518
transmit timestamp: cd7c1f29.fcf2b000 Tue, Mar 31 2009 13:48:41.988
filter delay: 0.05598 0.05434 0.05487 0.05396
0.00000 0.00000 0.00000 0.00000
filter offset: -4.47562 -4.47600 -4.47653 -4.47626
0.000000 0.000000 0.000000 0.000000
delay 0.05396, dispersion 0.00026
offset -4.476266

31 Mar 13:48:42 ntpdate[30115]: no server suitable for synchronization found


ほとんどの人が、「ファイアーウォールで123番ポートがフィルターしてあるのだ」とエラーの原因を特定する。しかし、実はその原因が違ったりもする。
もう一つの原因として、ntpdateで指定してるNTPサーバが設定ファイルで指定してる上位サーバとのシンクロが出来ないことを意味してる場合も有る。実は、そこが勘違いされやすいのだ。
このとき、時間が経っても状況が変わらない場合は、ntpdateで指定してるNTPサーバを変えるか、NTPサーバがシンクロしている上位サーバを変えるかの対応が必要になってくる。


2.NTPサーバが動いているホストからntpdateコマンドを発行した場合のエラー

当然だが、NTPサーバが動いているホストからntpdateコマンドを発行すると、以下のようなエラーが出る。

vline:~# ntpdate -d ntp.kozupon.com
2 Apr 09:22:26 ntpdate[12086]: ntpdate 4.2.2p4@1.1585-o Sun Jan 11 17:05:59 UTC 2009 (1)
2 Apr 09:22:26 ntpdate[12086]: the NTP socket is in use, exiting

この場合は、もちろん、ntpdateコマンドは使わない(と言うか使う必要はない)。


3.では、ntpdateが旨く行ったときは

ntpdateコマンドを発行して、旨く現在時刻をゲットできたときは、以下のようになる。

wirehork:~# ntpdate -d ntp.kozupon.com
1 Apr 14:13:28 ntpdate[14713]: ntpdate 4.2.4p4@1.1520-o Wed Jan 7 18:06:30 UTC 2009 (1)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
transmit(203.141.157.142)
receive(203.141.157.142)
transmit(203.141.157.142)
server 203.141.157.142, port 123
stratum 2, precision -6, leap 00, trust 000
refid [203.141.157.142], delay 0.05350, dispersion 8.00018
transmitted 4, in filter 4
reference time: cd7c9b5d.cdb08953 Tue, Mar 31 2009 22:38:37.803
originate timestamp: cd7d767e.8f5f8063 Wed, Apr 1 2009 14:13:34.560
transmit timestamp: cd7d7679.6eee2003 Wed, Apr 1 2009 14:13:29.433
filter delay: 0.05611 0.05362 0.00000 0.05350
0.00000 0.00000 0.00000 0.00000
filter offset: 5.121149 5.120472 0.000000 5.120436
0.000000 0.000000 0.000000 0.000000
delay 0.05350, dispersion 8.00018
offset 5.120436

1 Apr 14:13:29 ntpdate[14713]: step time server 203.141.157.142 offset 5.120436 sec


4.NTPサーバのStratum値について

NTPサーバは、階層になっていて上位のサーバで順に1(上位)〜16(最下位)に別れている。これをStratum値と言っている。

当然、一般的には、上位のサーバ程利用率が高い訳で下位側のNTPサーバを使用するようにと呼びかけられている。推奨するのは、Stratum値2とか3のNTPサーバを使うと良い。
さらに、最上位Stratum値 1のサーバだと使用率が高すぎて、なかなかシンクロできないサーバも出てくる。

以下は、俺のNTPサーバのシンクロ先だが、「st」と有るのがStratum値である。

sub2:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ns.doga.co.jp 133.243.238.244 2 u 860 1024 377 48.090 -6.426 0.286
+211.19.56.141 211.19.56.138 3 u 549 1024 377 12.960 -2.547 0.353
-dns.sanda.net 7.172.114.220 2 u 852 1024 377 23.656 5.591 2.234
+ns2.ktroad.net 210.173.160.27 3 u 605 1024 377 18.115 -5.838 0.847

ntpqコマンドを発行すれば、Stratum値が解る。

基本的に、例えばNTPサーバが設定している上位のNTPサーバのStratum値が2の場合には、このNTPサーバのStratum値は、「2より大きな値」3とか4とかを設定する事となる。


 
 
 



Copyright 2009 Kozupon.com.