
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 orphanwait
ntp.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 タイム ソースをシステムに追加するときに、疑似ソースを削除することを覚えておく必要がなくなるためです。