- ntp clock-period とは何か -
Cisco 機器の内部には、時刻を計測する元となる信号があります。一般にクロックと呼
ばれる信号です。これが一定の周波数でパルスを発生させることにより、それが何回発
生したかを数えれば、現在の時刻がわかる仕組みです。
なお、RTC(Real Time Clock)と呼ばれるIC(クロックチップとかカレンダーICなどとも
呼ぶ)を搭載している機器では、電源を切っても日付や時刻を覚えていられるため、電
源を入れた時に「今の日付と時刻」を確認して、そこからは「起動してから何クロック
数えたか」で現在時刻を求めます。
このチップが無い機器の場合は、電源を入れると「今がいつかわからない」ため、とり
あえず何か(おそらくCisco独自)の基準である 1993/04/01 になってしまいます。ま
ぁ無いものは仕方ないですね。で、そこからは同様に「起動してから何クロック数えた
か」で時刻を求めます。
さて、ここまでで「何クロック数えたか」が時刻の元になっていることがご理解いただ
けたかと思いますが、ここで1つの問題があります。「このクロックってどのくらい正
確なの?」 これが、機器の時計の精度となりますが、残念ながら高級時計のような精
度はありませんので、だんだん狂ってきます。
そこで、NTP 同期している機器は、一定期間ごとに「NTP で合わせた時刻」と「クロッ
クの数」を比べて、自分のクロックがどのくらいの誤差があるのかを計算します。この
計算の結果が、ntp clock-period として現れてくる謎の数字です。そんなわけで、手
動で設定しようとしても、すぐに NTP との誤差を計算して、その値で上書きされてし
まいますので、意味がありません。これが「手動設定してはいけない」という作法に繋
がっているのです。
- ntp clock-period は何をするのか -
では、自動的に算出されたこの値は、何に使われるのでしょうか。それは「NTP 同期が
できない状態でも、できるだけ正確に時刻を刻むため」に、内蔵クロックに対して補正
をかけて、誤差を補正するためです。つまり、NTP 同期ができない状態の時に役立つも
のなのです。
例えば、クロックを数えて1時間経過したと思った時に、NTP の時刻と比べてみたら、
1秒遅れていることがわかったとします。そうすると、clock-period には「1時間に
1秒の割合で時刻を進める」ような値が記録されます。そして、何かのトラブルが発生
して NTP 同期ができなくなってしまった場合は、その値を使用してクロックの数え方
を調整し(この場合は0.028%ぐらい割り増しして)できるだけ正確な時刻を刻むよう
に努力します。
補正される量は、クロックを発生させている部品の個体差によるものなので、個体ごと
に違う値となります。IOS のバージョン等は関係ありません。あくまでも中で使われて
いる部品1つ1つの物理的な特性の誤差です。他の機器で表示された値を別の機器に写
しても、全く意味がありません。
一般的にはクロック発振には水晶振動子が使われています。特別な工夫をしなければ、
通常の発振回路では水晶の公称周波数から 10〜50ppm 程度の誤差があるようです。乱
暴な計算をすれば1日1〜5秒ぐらいの誤差がつきものです。また温度変化などによっ
ても周波数が狂います。こちらは10℃の変化で 10ppm ぐらいでしょうか。とにかく
、個体差や環境によって、補正する割合が変わってきます。
ちなみに補正回路によって温度特性の向上を図った TCXO という発振モジュールもあり
まして、ただの水晶発振回路よりは精度が良いです。一般的に誤差 1〜5ppm 程度が期
待できます。
表紙のページ 次のページ