ローカルに隔離された ntpd 更新時間を強制する方法

ローカルに隔離された ntpd 更新時間を強制する方法

客観的

ローカルに分離されたホストがありました。それらすべてに同じ時刻を設定したいです。1 つはタイム サーバーの役割を果たし、他のホストはクライアントとして同期します。

すべてのマシンの稼働時間は不定期です。電源が投入されることはほとんどありません。そのため、大幅なオフセットが発生する可能性があります。サーバーのローカル時間を手動で設定すると、ホスト セット全体が数分以内に同期されるはずです。

信頼性を確認するために、私は手動で大きな調整(数時間)を設定して NTP ホスト接続をテストし、クライアントが同期する速度を測定しました。

ntpd - ntpd の場合

使ってみたntpdサーバーだけでなくクライアントにも適用されます。ntpd時計を調整するのに非常に長い時間がかかります。さらに、時間を数時間巻き戻すこともできません。

修正できるなら、ntpdクライアントとして。そこで、ネットワーク クロックの更新を積極的に受け入れるように ntpd に指示する設定オプションを探しています。

しかし、雇用する方法がなければntpdntpdate代替案はまだ受け入れられます。

ntpd - ntpdate の場合

ntpdateためらうことなく時計を完璧に更新します。cronタスクに組み込んで、大雑把ではありますが動作するソリューションを得ました。残念ながら、最初の印象は間違っていました。いくつかのテストの後、私はntpdateクライアントがサーバーを拒否し始めました。何らかの理由でサーバーはストラタム16を返すことにしました。私は明示的fudge 127.127.1.0 stratum 8ntp.confサーバー側でこの動作を回避する必要があります。しかしntpdate -v -d出力には、サーバーから送信された「stratum 16」が表示されます。

だから私は2つの方法を考えます。ntpdサーバーはローカルタイムジャンプに関係なくストラタム9を返すか、強制的にntpdateクライアントは、たとえストラタム 16 であっても、任意のサーバーを受け入れることができます。

どちらの方法でも Google で検索してみましたが、何も見つかりませんでした。適切な設定オプションを提案してくれる人はいますか?

答え1

1 つのタイム サーバーをすべての PC に使用しますntpd。毎日再起動するすべての PC は、コマンドによって起動時に時計を同期できますntpdate。他のサーバーの時計は、時間を柔軟に調整するため、サービスによって同期できますntpd

メイン ntpdタイムサーバーの場合:

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log

答え2

私の主な提案は、これをしないことです。要件や制約を変更して、時間ソースとなる常時オンのシステムを持つようにするか、システムが分離されずに外部から時間を取得できるようにしてください。グローバルNTPプール、 または両方。

最近では、GPS受信機付きの低電力NTPサーバーをかなり安価に入手できます。DIYが好きなら、BeagleBonesとRaspberry Piを100ドル以下でNTPサーバーにすることができます。既製品が欲しい場合は、レオNTP

次の提案:ntpd時計の更新に時間がかかる場合は、おそらく設定を確認する必要があるでしょう:

  1. -Gコマンドラインフラグを使用していることを確認してください。-gこれは一部の Linux ディストリビューションではデフォルトですが、大きな後方移動は行われません。
  2. すべてのサーバー/プールが で構成されていることを確認しますiburst
  3. および を使用してtinker step 0.5、大きなオフセットを修正する の能力をtinker panic 0最大限に引き出します。ntpd
  4. ntpdシャットダウン時にドリフト ファイルが書き込み可能であり、正しく保存されていることを確認します。

3 番目の提案 ( よりもこちらを推奨しますntpdate) : を試してみてください。 はchrony、時々接続されるクライアント (定期的にサスペンドされるラップトップなど) を明示的にサポートしています。chrony.conf(5)man ページにこれに関するすべての詳細が記載されています。 がデフォルトであるディストリビューション (CentOS/Red Hat、および 18.04 がリリースされた後の Ubuntu) を使用している場合chrony、これはおそらく 2 番目の提案になります。

最後の提案:ntpdateがサーバーを Stratum 16 として報告している場合、そのサーバーに何らかの問題があることを意味します。サーバーの構成と および の出力を投稿して、ntpq -np診断ntpq -nc rvに役立ててください。

関連情報