web-dev-qa-db-ja.com

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

目的

私はローカルに隔離されたホストを持っていました。それらすべてが同じ時間を持っていることを望みます。 1つはタイムサーバーの役割を果たし、もう1つはクライアントと同期します。

すべてのマシンに散発的なアップタイムがあります。それらはめったに電力を供給されません。したがって、それらはかなりのオフセットを得ることができます。サーバーの現地時間を手動で設定した後、ホストセット全体が数分以内に同期されるはずです。

信頼性を確認するために、素晴らしい手動調整(数時間)を設定してntpホスト接続をテストし、クライアントの同期速度を測定しました。

ntpd-ntpdケース

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

修正できる場合は、クライアントとしてntpdを使用することをお勧めします。したがって、ネットワーククロックの更新の受け入れに熱心であるntpdにヒントを与える設定オプションを探しています。

ただし、ntpdを使用する方法がない場合でも、ntpdateの代替手段を使用できます。

ntpd-ntpdateケース

ntpdateためらうことなく時計を完全に更新します。私はそれをcronタスクに入れて、大まかな、しかし実用的な解決策を得ました。残念ながら第一印象は間違っていました。いくつかのテストの後、ntpdateクライアントがサーバーを拒否し始めたことに気づきました。いくつかの理由により、サーバーは層16を返すことにしました。明示的にfudge 127.127.1.0 stratum 8この正確な動作を回避するために、サーバー側のntp.confに。しかしntpdate -v -dの出力には、サーバーから送信された「層16」が表示されます。

だから私は2つの方法を見ます。現地時間のジャンプに関係なくntpdサーバーがstratum 9を強制するか、またはntpdateクライアントがstratum 16を持っている場合でも任意のサーバーを強制的に受け入れます。

いずれかの方法でグーグルしようとしたが何も見つからなかった。誰かが適切な構成オプションを提案できますか?

1
ayvango

私の主な提案:これを行わないでください。要件または制約を変更して、タイムソースとなる常時オンのシステムを使用できるようにするか、システムが分離されておらず、 global NTPプール 、またはその両方。

あなたは低電力NTP GPSレシーバーを備えたサーバーを最近かなり安く手に入れることができます。DIYが好きなら、BeagleBonesとRaspberry PiはNTP 100米ドル未満、または既製のものが必要な場合は、 LeoNTP を試してください。

次の提案:ntpdが時計の更新に長い時間がかかる場合は、おそらく構成を確認する必要があります。

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

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

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

2
Paul Gear

すべてに対して1つの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
1
Mikhail Khirgiy