エッジサーバを使った時刻同期(NTPサーバOS:Ubuntu)

1.概要

PDH(Physical Data Hub)はRaspberry Pi 4を使っています。Raspberry Piは、ハードとしてRTC(Real Time Clock)を持っていません。そのため、常に外部のタイムサーバーと時刻を合わせる必要があります。その時刻合わせの方法は、こちら(タイムサーバーの設定)に記載しています。ただし、これはPDHが外部のインターネットのタイムサーバーにアクセスできることが前提です。
PDHを複数使用するシステムを構築する際には、 PDHはエッジサーバーとともにLANでルーターに接続し、エッジサーバーのみを外部に接続するという構成が、セキュリティ上も都合がよく、よく使われるシステムです。ただし、このシステム構成の場合には、PDHは外部に時刻合わせに行けません。
このようなシステムの場合には、Edge ServerをNTPサーバーとして機能させ、PDHには、タイムサーバーとしてEdge Serverを設定します。この方法で、時刻合わせができます。

ここでは、UbuntuをOSとしたEdge ServerをNTPサーバーを立ち上げ、PDHから時刻合わせをする方法を説明します。
参考HP:NTP サーバー : NTPd の設定

2.Edge ServerにNTPサーバーを立上げ

Ubuntu 22.04 LTSをOSとしてインストールしたEdge Serverに NTPd をインストールし、NTPサーバーを立ち上げます。

2-1.NTPのインストール

以下の様に、ntpをインストールします。

2-2.設定ファイルの変更

以下の様に、エディタ(ここでは、nano)を使って、設定ファイル ntp.conf を変更します。

1)Edge Serverが時刻合わせに行くタイムサーバーの記入
・ 元々、記載されていた同期先は行頭に”#”を記載し、コメントアウトします。
・ そして、新たに時刻同期先(ここでは、ntp.nict.jp)を追加します。

2) 時刻合わせを許可するIP範囲を追記します。
ここでは、LANのアドレス、192.168.11.0~192.168.11.256を許可しています。

3) ファイルの保存
修正が終わったら、保存してください。

2-3.ntpサービスの再起動と動作確認

1)sudo systemctl restart ntp.service で、ntpを再起動します。
2)ntpq –p と入力して、同期先に合っているかを確認します。ntp.nict.jpの列を確認すると、delay、offset、jitterが0.000になっており、同期できていることが分かります。

以上で、Edge ServerへのNTPサーバーの立上げは終了です。次に、PDHから同期させるために手順を説明します。
そのために、Edge ServerのLANでのIPアドレスを確認しておきます。
ifconfig コマンドでIPを確認しておいてください。

2-4.ファイアウォールの設定(ufw)

NTPは、ポート123をUDPで使用します。ファイアウォールを設定している場合は、ファイアウォールのポート:128を開けてください。ufwは、こちら(ufw(Uncomplicated Firewall)を参照してください。

① 現状の設定を確認します。
② ポート:128 プロトコル:udp を 192.168.11.0/24からのアクセスに対して開けます。

③ 追加されたかを確認します。

3.PDHの設定

PDHの設定は、こちら(タイムサーバーの設定)に記載した、timesyncd.confの NPTサーバーにEdge ServerのIPアドレスを指定して、systemd-timesyncd.serviceを再起動します。

3-1.NTPサーバーのアドレス指定

timesyncd.confファイルをエディタで開き、 以下の様に、“NTP=(Edge ServerのIPアドレス)”を記載します。修正したら、保存します。

3-2.systemd-timesyncd.serviceの再起動と時刻同期の確認

以下の2つのコマンドを入力し、system-timesyncd.serviceを再起動します。
sudo systemctl daemon-reload
sudo systemctl restart systemd-timesyncd.service
時刻同期されているかを確認します。
timedatectl –a
timedatectl show-timesync

systemctl status system-timesyncd.service

3-3.Windowsからの確認

Windowsからも確認可能です。

・スタートメニューの「設定(歯車マーク)」を選んで、「日付と時刻」を選びます。
・「別のタイムゾーンの時計を追加する」をクリックします。

・ 次に「インターネット時刻」のタブを選びます。
・ 「設定の変更」をクリックします。

・ サーバー欄に、ntpサーバーのアドレスを入れます。
・ 「今救更新」をクリックします。
・ 「時計は正常に・・・・と同期しました」と出れば、時刻合わせはうまくいっています。