ntpq ピア出力の説明

ntpq ピア出力の説明

ntpq コマンドから次の出力を取得します。

# ntpq -pn                                                     
 remote           refid            st t when poll reach delay  offset jitter 
================================================================================ 
*192.168.1.1          10.10.4.1     2 u  68y 1024 170   0.198   0.584  0.606 

68yコラムとはどういう意味ですかwhen?文書によると、最後のパケットを受信して​​から一定時間が経過したことを示しています。これは、最後に受信したパケットが68年前に受信されたことを意味しますか?信じられますか?

# ntpq --version 
ntpq 4.2.8p11

答え1

このreach値は、以前にリモートNTPサーバーをポーリングしようとした8回の試行結果を8進数で表したものです。 8進値は、最後の3回のポーリング試行が失敗したことを示す2170進値にマップされます。01111000

このpoll値は現在のポーリング間隔を示します。あなたの場合、1024秒がデフォルトの最大値です。これはntpd、リモートタイムサーバー192.168.1.1への接続が長く維持されており、合理的に良好な値であることが証明されてdelayいるoffsetようjitterに、合理的に良好な同期が達成されたことを示しています。その結果、poll値を最大許容値に調整しました。

このreach値は、最後の3回のポーリング試行が失敗したことを示すため、poll値1024は、構成されたリモートNTPサーバーの最後のポーリング成功から少なくとも3076秒が経過する必要があることを意味します。

内部にntpqサブコマンドのソースコードwhen値は次のように計算されます。prettyinterval()機能。名前が示すように、時間間隔の長さをパラメータとして使用し、このパラメータは関数として計算されます。when()。現在のタイムスタンプと最後に受信したタイムスタンプとの間隔を計算します。または、受信したタイムスタンプがゼロの場合、現在のタイムスタンプと最後の参照タイムスタンプとの間の間隔を計算します。

when()大きな値を生成する唯一の方法は、最後の受信タイムスタンプにゼロではありませんが、予期せず小さい値がある場合、または最後の受信タイムスタンプが0の場合のようです。そして最後の参照タイムスタンプはゼロではありませんが、予想外に小さいです。

私の推測では、リモートNTPサーバーが最後に到達したときに応答として意味のないNTPタイムスタンプを送信した可能性があります。または、ローカルシステムの時計は本当に奇妙です。いくつかの簡単な計算の後、リモートNTPサーバーのタイムスタンプは約1954年であり、システムのローカル時間の概念は約2090年です。

関連情報