2025年10月5日

RaspberryPiにおけるNTPサーバを使った時間同期設定の実証


下瀬美術館屋上から見る大野瀬戸
下瀬美術館屋上から見る大野瀬戸     


先に「RaspberyPiとUnboundを使ったDNSサーバの構築例」を記述しましたが、運用中に動作が重くなる事象が発生しました。

早速、ログ(ここでは/var/log/unbound/unbound.log)を調査したところ,「pool.ntp.org」というメッセージが大量に出力し,時刻サーバとの同期が上手く取れていない事が分かりました。そのため,RaspberryPiの負荷が上がり支障が出たということです。

本来,RaspberryPiは,RTC(Real Time Clock:電子機器の内蔵時計)機能を持たないため,NTP(Network Time Protocol)デーモンがインストールされており,設定ファイル「/etc/systemd/timesyncd.conf」を編集する事で時刻が自動的に修正されます。

しかし,それが上手く動作しない場合は手動で時刻調整を実施するか、NPTサーバとの同期受信デーモンを再構築する必要があります。

先日、雷で停電があり、再度、DNSサーバの負荷が高くなる事象が発生しましたので、毎回時刻設定するのは面倒なので同期受信デーモンを再構築しました。

今回は、この構築方法に関する記述です。

【システム構成】
  • Raspberry Pi1 Model B Rev.2 512 MB of RAM
  • OS :  Raspbian GNU/Linux 12 (bookworm) (CMD : lsb_release -a)
それでは,学習を始めます。






  1.はじめに

RaspberryPi OSでは,時刻同期(NTP)の設定が「Stretch」バージョン以降,systemd-timesyncdを使うようになったようです。

また,デフォルトで参照されるNTPサーバは,0.debian.pool.ntp.org,1.debian.pool.ntp.org,2.debian.pool.ntp.org,3.debian.pool.ntp.orgになっているようです。

しかし,ログファイルを見ると,原因は不明ですがこれらのNTPサーバは同期受信エラーが出力されます。

そのため,今回は日本に存在するNTPサーバでよく使われる以下のものを使用して時刻同期を再構築します。

日本で著名なNTPサーバを以下に示します。

【ntp.jst.mfeed.ad.jp】
インターネットマルチフィード株式会社(MFEED)が提供する、公衆向けNTP(Network Time Protocol)サービスのためのNTPサーバーです。とても信頼性が高く人気のあるNTPサーバです。

【ntp.nict.jp】
情報通信研究機構(NICT)が提供する公開NTPサーバーで、日本標準時(JST)をインターネット経由で配信するサービスです。このサービスを利用すると、パソコンなどのネットワーク機器の時刻をインターネット経由で正確な日本標準時に同期させることができ、多くのシステムで標準的に利用されています。

【time.google.com】
正確な時刻情報を提供するGoogleの公開NTPサービスであり、開発者向けドキュメントにも記載されています。一部に終了したような誤情報が流れているようですが,今のところ使用可能です。




  2.NTP設定ファイルの編集

RaspberryPi OSで使われる設定ファイル「/etc/systemd/timesyncd.conf」を以下のように編集します。


今回は「vim」エディターを利用します。もちろん「nano」エディターでも構いません。

Linuxコード

sudo vim /etc/systemd/timesyncd.conf


修正内容(赤字部分)は以下のとおりです。

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the timesyncd.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# See timesyncd.conf(5) for details.

[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp time.google.com
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60


この中で,「FallbackNTP=」という項目がありますが,これは「NTP=」という項目に記載が無いときに稼働するとのことです。(あまり意味が無いように感じますが)

そのため,今回はNTPのみ記載します。スペースで区切られている順番にトライして利用できるNTPサーバが選定されます。




  3.NTPの有効化とサービスの再起動

NTP(Network Time Protocol)を有効化するため,次のコマンドを入力します。

Linuxコード

sudo timedatectl set-ntp true

デーモンを再ロードしてサービスの再起動を行います。

Linuxコード

sudo mkdir /etc/ssl/mydomain.home
sudo systemctl daemon-reload

サービスを再起動します。

Linuxコード

sudo systemctl restart systemd-timesyncd.service





  4.稼働確認

プロセスの稼働を次のコマンドで確認します。

Linuxコード

ps -ax | grep "time"

【表示メッセージ】

 1881 ?        Ssl    0:01 /lib/systemd/systemd-timesyncd


次に,ystemd-timesyncdサービスの稼働ステータスを次のコマンドにより確認します。

Linuxコード

sudo systemctl status systemd-timesyncd

【表示メッセージ】

● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-10-02 11:42:15 JST; 56s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 1881 (systemd-timesyn)
     Status: "Contacted time server 210.173.160.27:123 (ntp.jst.mfeed.ad.jp)."
      Tasks: 2 (limit: 383)
        CPU: 1.312s
     CGroup: /system.slice/systemd-timesyncd.service
             mq1881 /lib/systemd/systemd-timesyncd


表示例では ” 210.173.160.27:123 (ntp.jst.mfeed.ad.jp)” が同期しているのがわかります。




  5.まとめ

今回は,RaspberryPi OSでのNTPサーバによる時間設定方法を学習しました。電源のオンオフを何回か繰り返しましたが,正常に動作しているようです。

Ubuntuなどでは,必ずしもNTPサーバと同期しなくてもRTC等から取得できるようです。

RaspberryPi自体がRTC(Real Time Clock)を持っていないので仕方ありませんが,これで突然の停電でも時間を再設定しなくてよくなりました。

因みにRaspberry PiのNTPクライアントがNTPサーバーと同期する頻度は、デフォルトでは最大1024秒(約17分)間隔で、時刻のずれが小さくなるにつれて間隔が長くなる。

同期の開始時は約64秒間隔から始まり、同期が安定すると間隔が倍加していき、最大で約1024秒まで伸びるとのことでした。


それでは,楽しいITリテラシーライフをお過ごしください。



(ご注意)情報の正確性を期していますが,実施される場合には自己責任でお願いします。

0 件のコメント: