- ntp clock-period の実際の利用方法 -

ではまず、手元の機器の時計がどのくらい狂うのか、計測します。身の回りで一番信頼 できる時計を基準にしましょう。長期に渡って精度を保っていて、いつでも時刻を知る ことができる時計として、自分はNTTの時報「117」を使います。
まずは時報に合わせて show clock を打ちます。その時の実際の時刻と show clock で 表示された時刻を記録しておきます。show clock の方は、表示が 1993 年になってい てもかまいません。
次は、数時間から数日後に、もう一度同じことをします。そしたら、前回の記録と引き 算して、「実際の経過時間」と「Cisco での経過時間」を求めます。例えば、1週間か けた場合、実時間が 604800 秒で、Cisco が 604803 秒だったとすると、Cisco 内蔵時 計の誤差は 604800 ÷ 604803 = 約 0.999995 倍で補正をすれば良いことがわかりま す。Cisco の内蔵時計の進み方を 0.0005 %遅くすれば良いのです。
実際の機器では、もっと大きな誤差が発生していると思います。1週間で30秒ぐらい ズレていく機器もありました。

補正の割合が計算できたら、あとは clock-period の基準値 17208083 にこの値を掛け ます。今回の例だと 17208083 × 0.999995 = 17207997 になりました。この値を設定 すれば、誤差が補正されて、内蔵時計の誤差をとても小さくすることができます。
あるいは、何かの基本の周波数 249.5901 Hz の方で計算すると、 249.5901 ÷ 0.999995 = 249.59135Hz 、4294967296 ÷ 249.59135 = 17207997 と計算 しても良いです。
計算して出てきた値を、設定してあげれば完了です。

  Cisco2611#configure terminal
  Enter configuration commands, one per line.  End with CNTL/Z.
  Cisco2611(config)#ntp clock-period 17207997
  Cisco2611(config)#end
  Cisco2611#
  Cisco2611#write memory
  Building configuration...
  [OK]
  Cisco2611#
  Cisco2611#clock set 10:00:00 Aug 26 2009
  Cisco2611#



- 下1桁までは気にしない -

なお、上記の2通りの計算方法によって、値が微妙に違う場合がありますが、下1桁ぐ らいは計算上の誤差として無視しましょう。先程の1週間かけて求めた誤差に対して、 0.1 秒以下の精度です。(原因は基本周波数の表示が 0.0001 Hz の単位までしかない ことです。有効桁数の問題です。上記の計算でも周波数の有効桁を1つ増やして計算し ました)
show clock の打鍵のタイミングが0.1秒の単位まで正確だと言えるなら、気にする価値 があるかも知れませんが。。。 どうせ機器の筐体内温度が何℃か変化したらフッ飛ん でしまう程度の割合です。昼と夜でも差がありますし、季節によっても違いますし、ち ょっと CPU の負荷が変わっただけでも、、、

そうそう、温度変化による発振周波数の変動が結構ありますので、show clock を打つ 間隔は「24時間」「1週間」「n週間」など、何かの生活サイクルに同期させると、 良い値が得られると思います。目的は「長期的に誤差の少ない時計」にすることですか ら、何かのパターンの1周期分を切り取ることが、本当の意味での平均値になると思い ます。また、可能であれば電源ON直後からではなく、1週間ぐらい稼動させた後に測 定開始した方が、機器がほどよく温まっているので、より正確な測定ができるかと思い ます。



- しばらく経ったら再調整しよう -

ここまでの設定で、それなりに正確な時計にはなりましたが、それでも一発で決められ る精度には限りがあります。そこで、1ヶ月後なり半年後ぐらいに、show clock の表 示と実際の時刻を比較して、もう一度調整をしましょう。
例えば26週間後に show clock したら 5.5 秒遅れていたとします。そしたら、この誤 差の割合を求めます。60秒 × 60分 × 24時間 × 7日 × 26週 = 15724800秒 なので 、5.5 ÷ 15724800 = 0.00000035 の割合で現状よりも進めてあげれば良いことになり ます。現在の clock-period の設定値は 17207997 なので、 17207997 × 1.00000035 = 17208003 に設定変更すれば、さらに正確な時計になるこ とが期待できます。

あるいは、狂った分を半年ぐらいかけて徐々に取り戻すように調整しようとするならば 、倍の割合で補正すれば良いので、17207997 × 1.0000007 = 17208009 に設定しまし ょう。おそらく、NTP で同期している機器では、こういう調整(ズレた分を取り戻せる ように、少し余分に補正をかけて徐々に合わせ込むこと)を定期的に実施しているので はないかと想像します。
その代わり、半年後にはまた同じように調整する予定を組んでおかないと、それ以降に 時計が少しずつ進んでいってしまう危険が待ち受けています。忘れっぽい人は、 clock-period の調整はジャストと思われる値にしておき、その場で clock set をした 方が良さそうです。

前のページ 表紙のページ