NTPd マルチキャスト設定

NTPd マルチキャスト設定

NTP マルチキャスト クライアントを設定する必要があります。設定が適切かどうかを確認できるように、NTP マルチキャスト サーバーを設定することにします。

私のセットアップ:

  • Centos 7の2つのVM(最新)
  • 私はVirtualBoxで2つの仮想マシンを使用しています。両方ともPromiciusモードに設定しています:すべて許可

私の問題は次のとおりです:

  • サーバーでは、マルチキャスト エントリはストラタム 16 として報告されます。ストラタムはマルチキャストに関連していますか? ストラタムが低いため、クライアントはこれを拒否しますか? マルチキャスト サーバーに低いストラタムを強制するにはどうすればよいですか?
  • 私のクライアントは見る私のサーバーでは、キー ファイルが同一であり、両側でキー 1 を信頼している場合でも、キー 1 が信頼されます。

孤立の指示を使用すると、マルチキャスト アドレスの報告された階層が下がらないようです。

ntpq -n -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.165.10.2    192.165.10.109   4 u   14   64  377    0.454    2.267   1.479
 224.0.1.1       .MCST.          16 u    -   64    0    0.000    0.000   0.000

そして、私のクライアントはまだ 224.0.1.1 アドレス上のサーバーを見つけることができないようです。

サーバー VM、ホスト マシン、クライアント VM で確認したところ、すべてサーバー マルチキャスト メッセージが表示されました (VM の場合は tcpdump を使用、ホストの場合は wireshark を使用)。

クライアントでは、 を使用するとntpq -n -p以下が返されます:

No association ID's returned

クライアントでは、構成ファイルにはすべての制限命令がコメント化されており、次のものだけがあります (および、driftfile などの他のいくつかのもの)。

multicastclient 224.0.1.1
keys /etc/ntp/keys
trustedkey 1

ntpd クライアント ログには次のように表示されます:

systemd[1]: Starting Network Time Service...
ntpd[11076]: ntpd [email protected] Tue Jun 23 15:38:18 UTC 2020 (1)
systemd[1]: Started Network Time Service.
ntpd[11077]: proto: precision = 0.052 usec
ntpd[11077]: 0.0.0.0 c01d 0d kern kernel time sync enabled
ntpd[11077]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
ntpd[11077]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
ntpd[11077]: Listen and drop on 1 v6wildcard :: UDP 123
ntpd[11077]: Listen normally on 2 lo 127.0.0.1 UDP 123
ntpd[11077]: Listen normally on 3 enp0s3 192.165.10.107 UDP 123
ntpd[11077]: Listen normally on 4 lo ::1 UDP 123
ntpd[11077]: Listen normally on 5 enp0s3 fe80::a00:27ff:fec1:cc1 UDP 123
ntpd[11077]: Listening on routing socket on fd #22 for interface updates
ntpd[11077]: Listen normally on 6 multicast 224.0.1.1 UDP 123
ntpd[11077]: Joined 224.0.1.1 socket to multicast group 224.0.1.1
ntpd[11077]: 0.0.0.0 c016 06 restart
ntpd[11077]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
ntpd[11077]: 0.0.0.0 c011 01 freq_not_set
ntpd[11077]: io_setbclient: Opened broadcast client on interface #3 enp0s3

答え1

Stratum 16 は、NTP サーバーが、設定されたタイム ソースに接続されていないため、有効な時刻を持っているとは考えていないことを示します。サーバー システムでシステムのローカル クロックをタイム ソースとして信頼するにはntpd、次の 2 つのオプションがあります。

  • 最新の方法は、マルチキャスト サーバー上のファイルでtos orphanおよびキーワードを指定することです。tos orphanwaitntp.conf
# If orphaned, serve others with this stratum.
tos orphan 8
# Wait for this many seconds before starting to serve others (default is 300 s)
tos orphanwait 1
  • 従来の方法は、ntpdマルチキャストサーバ上の偽の時刻ソースとしてローカルクロックを使用するように指示することです。この設定実際のNTPタイムソースと一緒に使用しないでください十分な数の外部ソースが設定され、それらが十分に同期して 127.127.1.0 疑似ソース (常にローカル クロックと完全に一致するため、選択アルゴリズムによって過度に優先される傾向があります) に勝たないntpd限り、実際の NTP ソースではなくローカル クロックを信じることになる可能性があるためですntpd
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 8

で始まる IP アドレスは127.127.*にとって特別なものでntpd、 に組み込まれているさまざまなリファレンス クロック ドライバーを参照しますntpd

どちらの方法でも、システムは Stratum 8 を使用して NTP 経由でローカルの非同期システム クロックに基づく UTC 時刻を提供するため、実際の NTP 時刻ソース (= Stratum 7 以下) に適度に直接接続しているシステムでは、この方法よりも Stratum 8 を優先する必要があります。

お使いのバージョンが新しい方法をサポートしている場合は、新しい方法を使用することをお勧めしますntpd。この方法を使用すると、実際の NTP タイム ソースをシステムに追加するときに、疑似ソースを削除することを覚えておく必要がなくなるためです。

関連情報