web-dev-qa-db-ja.com

NTPDの新規インストールは同期されないままです

Ntpdを使用してRaspberryPiでNTPを動作させようとしています。systemd-timesyncdを無効にし、次を使用してntpをインストールしました。

$ Sudo apt-get install ntp

ただし、インストール後、ntpはどのサーバーとも同期しません。 ntpを再インストールした後、1つまたは2つのサーバーに接続して同期することがあります。ただし、リセット(Sudo service ntp restart)後は、どのサーバーにも接続できなくなります。

Raspberry Pi2モデルBとRaspberryPi3モデルB +を使用しています。両方のデバイスで機能するわけではありません。また、期待どおりに機能するRaspberry Pi3モデルBが1つあります。 Raspberry Piはすべて同じネットワークに接続されています(したがって、ネットワークのファイアウォールの障害である可能性はありません)。 RaspberryPiはRaspbianBusterで実行されます。

正しく同期しているときに、ntpd -pを実行すると、サーバーが1つまたは2つしかないことがあります。ただし、正しく機能するRaspberry Piは、4台以上のサーバーと同期します。 NTP以前はRaspberryPi 2モデルBで動作していましたが、システムに何も変更せずに動作を停止しました。その後、NTPを完全に再インストールしましたが、成功しませんでした(Sudo apt-get purge --autoremove ntp)。これらの結果は、/etc/ntp.confのデフォルトの構成ファイルを使用したものです。

このシステムを基盤となるシステムのサーバーにしたいので、systemd-timesyncdを使用できません。 systemd-timesyncdは問題なく動作しているようですが、デバイス間のクロック同期が1ミリ秒未満のサーバーが必要です。

NTPのステータス

以下に、NTPのステータスとntpq -pnの結果を示しました。

再起動後のntpのステータス:

pi@raspberrypi:~ $ Sudo service ntp status
● ntp.service - Network Time Service
   Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-04-24 14:48:10 CEST; 5s ago
     Docs: man:ntpd(8)
  Process: 2837 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
 Main PID: 2843 (ntpd)
    Tasks: 2 (limit: 2200)
   Memory: 1.0M
   CGroup: /system.slice/ntp.service
           └─2843 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 109:114

Apr 24 14:48:10 raspberrypi ntpd[2843]: Listen normally on 3 eth0 192.168.0.103:123
Apr 24 14:48:10 raspberrypi ntpd[2843]: Listen normally on 4 lo [::1]:123
Apr 24 14:48:10 raspberrypi ntpd[2843]: Listen normally on 5 eth0 [fe80::1ef8:d982:66ac:4214%2]:123
Apr 24 14:48:10 raspberrypi ntpd[2843]: Listening on routing socket on fd #22 for interface updates
Apr 24 14:48:10 raspberrypi ntpd[2843]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Apr 24 14:48:10 raspberrypi ntpd[2843]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Apr 24 14:48:11 raspberrypi ntpd[2843]: Soliciting pool server 174.138.9.187
Apr 24 14:48:12 raspberrypi ntpd[2843]: Soliciting pool server 194.5.96.30
Apr 24 14:48:13 raspberrypi ntpd[2843]: Soliciting pool server 162.159.200.123
Apr 24 14:48:14 raspberrypi ntpd[2843]: Soliciting pool server 83.162.149.224

ntpq -pnの結果:

pi@raspberrypi:~ $ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
 1.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
 2.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
 3.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001

ntpstatの結果:

pi@raspberrypi:~ $ ntpstat
unsynchronised
   polling server every 8 s

NTPサーバーと同期しない原因を知っている人はいますか?

Sudo ntpdate -qu 0.debian.pool.ntp.orgの出力:

pi@raspberrypi:~ $ Sudo ntpdate -qu 0.debian.pool.ntp.org
server 213.136.0.252, stratum 1, offset 0.017778, delay 0.04608
server 45.159.204.28, stratum 2, offset 0.016319, delay 0.04184
server 83.98.155.30, stratum 2, offset 0.016869, delay 0.04346
server 94.228.220.14, stratum 2, offset 0.017546, delay 0.04454
24 Apr 16:23:17 ntpdate[3139]: adjust time server 213.136.0.252 offset 0.017778 sec

/etc/ntp.confの構成:

pi@raspberrypi:~ $ grep '^[^#]' /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery

timedatectl statusの結果:

pi@raspberrypi:~ $ timedatectl status
               Local time: Fri 2020-04-24 16:40:05 CEST
           Universal time: Fri 2020-04-24 14:40:05 UTC
                 RTC time: n/a
                Time zone: Europe/Amsterdam (CEST, +0200)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
1
Joost Baars

問題は、System clock synchronisedのパラメータtimedatectl statusyesである必要があることです。しかし、私はこれが常に当てはまるとは限らないことに気づきました。

これはtimedatectl statusの正しい出力です。

$ timedatectl status
               Local time: Tue 2020-04-28 11:28:44 CEST
           Universal time: Tue 2020-04-28 09:28:44 UTC
                 RTC time: n/a
                Time zone: Europe/Amsterdam (CEST, +0200)
System clock synchronized: yes
              NTP service: inactive
          RTC in local TZ: no

この問題は、以下の手順を実行することで解決できます。

最初にntpdを削除する必要があります。そうしないと、systemd-timesyncdの起動に問題が発生する可能性があります。これは、次のコマンドで実行できます(このコマンドは/etc/ntp.confを削除しません)。

Sudo apt-get remove ntp

その後、次のコマンドを実行して、ntpを有効にし、 `` `systemd-timesyncd``を開始できます。

Sudo timedatectl set-ntp yes

このコマンドは自動的にsystemd-timesyncdをオンにします。したがって、systemd-timesyncdを停止して無効にする必要があります。これは、次のコマンドで実行できます。

Sudo systemctl stop systemd-timesyncd
Sudo systemctl disable systemd-timesyncd

ntpdを再インストールできるようになりました:

Sudo apt-get install ntp

これで、次のコマンドを使用してntpdを再起動できます。

Sudo service ntp restart

正しく機能するかどうかを確認します

次のコマンドを実行すると、ntpが正しく機能するかどうかを確認できます。

ntpq -pnは複数のIPを返す必要があります。

ntpstatは、NTPサーバーに同期されていることを示している必要があります。ntpstatは次のコマンドでインストールできます:

Sudo apt-get install ntpstat
0
Joost Baars