ローカルストラタム2 NTPサーバーのセットアップ


9

インターネットに接続されていない(接続されない)ローカルネットワークにNTPを設定しようとしています。主な優先事項は、ネットワーク上のマシンが同期されていることです。同期された時刻が100%正確でなくてもです。

また、展開されたシステムの設定を複製するために、NTP階層を使用する必要があります。私がやりたいのは、次のようなマシンの階層を用意することです。

Moon  (Main Server running Windows) (10.1.3.10)
|____Earth   (Linux x64 client) (10.1.3.1)
|____Mars    (Linux x64 client) (10.1.3.2)
|____Saturn  (Linux x64 client) (10.1.3.3)
|____RackCard23   (Linux x64 client and server to the two machines below)  (10.1.3.23)
     |___RackCard21   (Linux x64 client) (10.1.4.21)
     |___RackCard22   (Linux x64 client) (10.1.4.22)

RackCardには2つのイーサネットポートがあり、1つは10.1.3.xネットワークに接続され、もう1つは10.1.4.xネットワークに接続されています。マスターサーバームーンと同期するRackCard23は10.1.3.xネットワーク上で同期し、RackCard22 / 23は10.1.4.xネットワーク上のRackCard23に接続します。これは、RackCards22 / 23がネットワークを離れて時間を同期することを望まないため、および最終的に展開されたシステムを複製するためです。

これまでのところ、Moonをオフにして正しく同期することで、必要なすべてのものを取得できました(RackCard23を含む)。

しかし、RackCard22と23をRackCard23から同期させるのに苦労しています。

[root@RackCard23]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.3.10 iburst minpoll 4 maxpoll 4 prefer #This is what we want to happen
fudge   127.127.1.0 stratum 2   #Not sure about these two lines, was trying to force it to be a stratum 2 server
fudge   127.127.0.1 stratum 2

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
restrict 10.1.3.10 mask 255.255.255.255 nomodify notrap noquery

#Attempt to get to act as an NTP Server
broadcast 10.1.4.255

restrict 10.1.3.21 mask 255.255.255.255 nomodify notrap
restrict 10.1.4.21 mask 255.255.255.255 nomodify notrap

これはntptraceからの出力です:

[rootRackCard23]# /usr/sbin/ntptrace
localhost.localdomain: stratum 16, offset 0.000000, synch distance 0.000030

ご覧のとおり、「stratum 1」サーバー(Moon)に同期されているにもかかわらず、マシンはstratum 16サーバーとして自身を報告しています。

[root@RackCard23 awd]# /usr/sbin/ntpdate -d 10.1.3.10
21 Jun 13:55:09 ntpdate[19410]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.3.10 and service ntp
host found : 10.1.3.10
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
server 10.1.3.10, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.04135, dispersion 0.00383
transmitted 4, in filter 4
reference time:    cfc99402.e010624d  Mon, Jun 21 2010  8:32:18.875
originate timestamp: cfc9dfad.48000000  Mon, Jun 21 2010 13:55:09.281
transmit timestamp:  cfc9dfad.47e27179  Mon, Jun 21 2010 13:55:09.280
filter delay:  0.04155  0.04155  0.04137  0.04135
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.01448 0.000781 0.000537 0.000394
         0.000000 0.000000 0.000000 0.000000
delay 0.04135, dispersion 0.00383
offset 0.000394

21 Jun 13:55:09 ntpdate[19410]: adjust time server 10.1.3.10 offset 0.000394 sec

クライアント(RackCard21 / 22)の構成は次のようになります。

[root@RackCard21]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.4.23 iburst minpoll 4 maxpoll 4 prefer

server 127.127.1.0
fudge   127.127.1.0 stratum 10

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# restrict 127.0.0.1

restrict None mask 255.255.255.255 nomodify notrap noquery

そしてntptraceはこれを与えます:

[root@RackCard21]# /usr/sbin/ntpdate -d 10.1.4.23
21 Jun 14:04:34 ntpdate[14381]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.4.23 and service ntp
host found : 10.1.4.23
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
10.1.4.23: Server dropped: strata too high
server 10.1.4.23, port 123
stratum 16, precision -20, leap 11, trust 000
refid [10.1.4.23], delay 0.02568, dispersion 0.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036  6:28:16.000
originate timestamp: cfc9dfef.12b79516  Mon, Jun 21 2010 13:56:15.073
transmit timestamp:  cfc9e1e2.aeae7d56  Mon, Jun 21 2010 14:04:34.682
filter delay:  0.02573  0.02571  0.02568  0.02568
         0.00000  0.00000  0.00000  0.00000
filter offset: -499.609 -499.609 -499.609 -499.609
         0.000000 0.000000 0.000000 0.000000
delay 0.02568, dispersion 0.00000
offset -499.609286

21 Jun 14:04:34 ntpdate[14381]: no server suitable for synchronization found

したがって、使用しようとしているサーバーが層16サーバーであると報告しているため、適切なサーバーを見つけることができません(非同期であると考えています)。これは、同期されているという事実にもかかわらずです。

したがって、どういうわけか、RackCard23をより高い層(理想的には層2)にする必要があります。どうすればいいですか?

私はこれを数日間動作させるように努めてきたので、どんな助けも大歓迎です!

編集:

こんにちはクリストファー、

私はntpdを再起動しています、はい;)

すべてのLinuxボックスでCentOS 5.4が実行されています。

これは、提案したコマンドからの出力です。まずサーバーから:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

[root@RackCard23]# /usr/sbin/ntpdc -c monlist
remote address          port local address      count m ver code avgint  lstint
===============================================================================
localhost.localdomain  34566 127.0.0.1              1 7 2      0      0       0
10.1.4.21                123 10.1.4.23              5 3 4    180      5       1
10.1.4.22                123 10.1.4.23              7 3 4      0      2       2

そして、クライアントから:

[root@RackCard21]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.4.23       .INIT.          16 u   10   16    0    0.000    0.000   0.000
 LOCAL(0)        .LOCL.          10 l   44   64    1    0.000    0.000   0.001

インターネット接続がない場合、タイムソースはどこですか?どこかで見逃しましたか?
dbasnett 2010年

タイムソースは重要ではありません。100%正確な時刻を求めているわけではありません。私たちが望んでいるのは、たとえ実際の時刻から10分以上ずれていても、すべてのマシンが互いに同期していることです。したがって、ネットワーク上のランダムマシンをマスタータイムソース(つまり、内部クロックのみ)として使用しています。私たちが知って受け入れているものは信頼できませんが、同期している限り問題ありません。実際にデプロイされたシステムでは、制御できない別のシステムのタイムソースに同期します。これは、より正確な場合と正確でない場合があります。
fwgx

回答:


5

Chrisが述べたように、層16は、サーバーがサーバーと実際に同期していないことを示しています。念のため、ntpサービスを再起動しましたよね?(service ntpd restart)私はあなたが簡単なものを見逃すことをほのめかそうとするつもりはありませんが、私はいつもそうします!

診断に役立ついくつかのコマンドの出力を投稿できますか?

ntpq -pクライアントとサーバーで。構成したサーバーとそれらのサーバーの統計を表示する必要があります。
ntpdc -c monlistサーバー上。接続されているクライアントを表示する必要があります。

また、あなたはOSについて言及しなかったので、私はRHELスタイルのコマンドで実行しています。何か違うことがあれば教えてください。

詳細情報の編集後
、出力を確認してください。問題があります。ストラタム1サーバーがありません。実際、「月」はローカルクロックを使用しています。自身をstratum 16サーバーとして報告しています。参考までに、Stratum1サーバーにはローカルGPSまたは原子時計があります。それらの1つを持っていますか?そうでない場合、Moonは別のntpサーバーとクロックを同期する必要があります。ネットワークにアクセスできない場合は、その階層を変更する必要があります。(これはあなたが「本当の」時間についてあまり気にしないことを要求します。あなたは気にしませんが、これを読んでいる人は誰でもそれに注意すべきです。)

Moonで、ntp.confファイルに次の行を追加しますfudge 127.127.1.0 stratum 10。これにより、ローカルクロックがストラタム10として報告されます。これにより、他のすべてのサーバーがローカルストラタム16クロックでそれを使用するようになります。

-クリストファー・カレル


メインの質問投稿に結果を追加しました。
fwgx 2010年

クリストファーに同意する。Strata ntp.org/ntpfaq/NTP-s-algo.htm
dbasnett

3

トピック外かもしれませんが、ローカルのStratum 2サーバーはStratum 1サーバーに接続する必要があり、分離されたネットワーク内には接続していません。

安価なGPSモジュールと、最小限の電力消費と十分なインターフェイス機能を備えたシングルボードコンピューターであるRaspberry Piを入手できます。GPSモジュールをRaspberry Piにフックし、適切なソフトウェアを使用してPiをネットワークに参加させます。Stratum1 NTPサーバーをStratum 2サーバーにすることも、ネットワーク内にすべてのコンピューターがあるため、時刻を同期することもできます。


2

NTPdは次のように独自の層を設定します。

  1. ローカルクロックのドリフトが評価されていない場合は、stratumを16に設定します。このプロセスには通常のサーバーで約15分かかり、その後次のステップに進みます。
  2. 構成されているすべてのタイムサーバーに接続し、信頼できるサーバーを評価し(したがって、優先される)、ローカル層を最も信頼性の低いサーバーの層に1を加えた値に設定します。したがって、最も信頼性の高いサーバーが1の場合、ローカルは2になります。

(これは必ずしもイベントの順序ではなく、ローカルストラタムを設定する目的でイベントが処理される順序です。)
(また、ストラタム16は、必ずしも非同期であることを意味しません)。


1
Moonは、実際にはSimple NTP(SNTP)であるデフォルトのW32Time NTPサービスを使用するWindows XP Pro x64マシンであるため、RackCard23はそれを適切なNTPサーバーとして認識せず、ストラタムを他の何にも設定しません16よりも?
fwgx 2010年

私の投稿を編集する前に、私はこれを見ませんでした。これはかなり可能性が高いです。階層の最上位で適切なntpクライアントを使用しない理由はありますか?(WindowsまたはUnixベースのいずれか)
Christopher Karel

2

余談ですが、ntpqの出力を分析します。自分や他の人のために、将来の一般的なトラブルシューティングを支援するためだけに。

まず、サーバーから:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

最初の列は、このマシンが同期するように構成されている2つのサーバーを示しています。注目すべきは、同期されたピアまたはセカンダリ候補がない*か、または+それを示すであろうことです。これは、サーバーがここでエントリを使用しないことを意味しますが、少なくともそれらをチェックインしています。

3列目の「st」は、これらのサーバーのストラタムを示します。この場合、これらのマシンは両方ともローカルクロックを使用していることを示しています。(デフォルトの階層16)最後の3列は、2つのクロックがどれだけ離れているかを示します。「クロックの秒差」の値、または2台のマシン間のレイテンシのいずれかで、そのレイテンシの差になります。ここでは、数値が高いほど悪くなります。

このような非同期のエントリの理由は、いくつかの要因に依存する可能性があります。クロックのオフセットが大きすぎると、ローカル時間のジャンプが大きくなりすぎるため、ntpは試行しません。ジッタが悪化すると、安定するまでクライアントは非同期になります。(これは通常一時的なものですが、再発します)あるいは、構成したサーバーのストラタム値が同じか高い場合、タイムソースとしての信頼性が低いことを示し、クライアントはそれらを使用しません。

-クリストファー・カレル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.