ntpdとsystemd-timesyncd-信頼できるNTP同期を実現する方法


31

NTPデーモンのステータスを照会するとntpdc -c sysinfo、次の出力が表示されます。

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      12.77106 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  7:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s

これは、NTP同期が失敗したことを示します。ただし、システム時間は1秒以内の精度です。今と同じ期間、ネットワークに接続せずにシステムを実行すると、システム時間は10秒程度ずれます。

この動作は、システムが時刻を同期する別の方法を持っていることを示唆しています。また、systemd-timesyncd.service(設定ファイルがにある/etc/systemd/timesyncd.conf)がありtimedatectl status、正しい時間を教えてくれることに気付きました。

      Local time: Thu 2016-08-25 10:55:23 CEST
  Universal time: Thu 2016-08-25 08:55:23 UTC
        RTC time: Thu 2016-08-25 08:55:22
       Time zone: Europe/Berlin (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2016-03-27 01:59:59 CET
                  Sun 2016-03-27 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-10-30 02:59:59 CEST
                  Sun 2016-10-30 02:00:00 CET

だから私の質問は、2つのメカニズムの違いは何ですか?それらの1つは非推奨ですか?並行して使用できますか?NTP同期ステータスを照会する場合、どれを信頼する必要がありますか?

(両方の方法が成功を示し、正しい時間をもたらす異なるシステムが(異なるネットワークに)あることに注意してください。)


2
私は、Fedoraが実際に使用していることを発見したchronyをchrony Suiteを使用して設定NTP
デヴィッドTonhofer

回答:


19

systemd-timesyncdは基本的に、新しいsystemdリリースに多少ともバンドルされた、クライアントのみの小さなNTP実装です。完全なntpdよりも軽量ですが、時刻同期のみをサポートします。つまり、他のマシンのNTPサーバーとして機能することはできません。クライアントのntpdを置き換えることを目的としています。

理論的には、両者の間にわずかな遅延がある異なるタイムサーバーを選択する可能性があるため、両方を並行して使用しないでください。これにより、システムクロックが定期的に「ジャンプ」します。

ステータスを取得するには、残念ながらntpdcntpd を使用する場合に使用する必要があり、timedatectltimesyncdを使用する場合、両方を読み取ることができるユーティリティはありません。


あるシステムではntpdの同期が失敗し、他のシステムでは成功する(systemd-timesyncdの両方が並行して実行される)ことはどのように可能ですか。対応する設定を確認したので、これがファイアウォールの問題に関連していないことは確かです。現時点では、2つの結果が残されており、成功した結果を信頼するように誘惑されていますが、両方のクライアントが同じNTPプロトコルを実装しているのに疑問がありますが、1つは失敗しています。実際、私は両方が機能すると期待しています。
a_guest

1
ntpdとtimesyncdは異なる設定を使用します。両方に同じタイムサーバーを設定しましたか?
maxf

timesyncdを使用して、ntpなどのGPSと時刻を同期できますか?
バカロロ

Systemd-timesyncdは、NTPよりも精度が低いSNTPクライアントです。読者は、systemd-timesyncdが軽量のNTPクライアントであると誤解されるべきではありません。
フィリップクーリング

14

systemd-timesyncdはクロック制御を行いません。クロックはトレーニングも補正もされず、内部クロックドリフトは減少しません。ポーリング間隔を調整するための基本的なロジックがありますが、systemd-timesyncdが短期的なドリフトに必要と思われる間隔でプッシュまたはプルするため、ホストを統制しないと、時間が不均等になります。また、リモートタイムソースの品質を評価することもできません。100ミリ秒よりはるかに高い精度が得られることはほとんどありません。これは、ラップトップのような単純なエンドユーザーデバイスには十分ですが、より高い時間精度を必要とする分散システムでは間違いなく問題を引き起こす可能性があります。

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