Rocky Linux の時刻同期

タイムゾーンの設定

[root@localhost lib64]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
...
[root@localhost lib64]# timedatectl set-timezone Asia/Tokyo
[root@localhost lib64]# timedatectl
               Local time: Wed 2024-08-07 16:51:52 JST
           Universal time: Wed 2024-08-07 07:51:52 UTC
                 RTC time: Tue 2024-08-13 22:05:24
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

timedatectlの説明

  • localal time: OSが持っている時間 = システムクロック。dataコマンドで表示される時間
  • Universal time: 世界標準時 = イギリスの現在時刻
  • RTC time: Real Time Clockの略。リアルタイムクロック = ハードウェアクロック = マザーボードが保持している時刻
  • System clock synchronized: NTPで時刻取得を行っているかどうか。noであればNTPによる時刻取得は行っていない。NTPの設定を行えばyesに変わる
  • NTP service: inactiveであればNTPサービスが起動してない。NTPサービスを起動すればactiveに変わる
  • RTC in local TZ: デフォルトはno。timedatectl set-local-rtc trueコマンドでyesに変わる。yesにするとハードウェアクロックをシステムクロックに同期する。基本的にnoのままでよい

NTP(chrony)の設定

chrony(クローニー)とは、RHEL7からntpdに代わって導入された時刻同期サーバー/クライアントで、ntpdとは異なる時刻同期アルゴリズムを採用されており、より効率良く正確な時刻同期を提供する。

ネットワークの問題(切断や遅延)、温度変化等の環境問題や、時刻の同期が継続的に実行されない環境(仮想マシン等)であっても時刻がずれないような工夫がされている。

  • NTPのバージョンが異なる
  • ハードウェアクロックとの同期が可能(ntpdは不可)
  • slewモードのslewレート
  • stepモードとslewモード(デフォルトはstepモード)。slewレートを変更可能
  • 使用ポートが変更可能(デフォルトは123、なおNTPは123固定)

chronyのインストール

[root@localhost lib64]# dnf install chrony
Rocky Linux 9 - BaseOS                                        1.4 kB/s | 4.1 kB     00:02    
Rocky Linux 9 - AppStream                                     2.5 kB/s | 4.5 kB     00:01    
Rocky Linux 9 - AppStream                                     1.3 MB/s | 8.0 MB     00:06    
Rocky Linux 9 - Extras                                        1.8 kB/s | 2.9 kB     00:01    
Rocky Linux 9 - Extras                                        6.4 kB/s |  15 kB     00:02    
Package chrony-4.5-1.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost lib64]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool 2.rocky.pool.ntp.org iburst                      # コメントアウト
pool ntp.nict.jp iburst                                # 追記
...
[root@localhost lib64]# chronyc makestep
200 OK
[root@localhost lib64]# systemctl restart chronyd
[root@localhost lib64]# systemctl enable chronyd
[root@localhost lib64]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- ntp-b2.nict.go.jp             1   6    17    11  +1968us[+1968us] +/- 4857us
^- ntp-a3.nict.go.jp             1   6    17    10   -140us[ -140us] +/- 3514us
^* ntp-a2.nict.go.jp             1   6    17    11   +851us[ +656us] +/- 4069us
^- ntp-k1.nict.jp                1   6    17    11   +711us[ +711us] +/- 8111us
[root@localhost lib64]# date
Wed Aug 14 10:30:06 JST 2024
  • NTPサーバー名の前に「*」または「+」が表示されていれば時刻同期中

[補足] curl: (60) 証明書エラー対応

chronyのインストール時に以下のエラーが出力される。

事象

[root@localhost lib64]# dnf install chrony
Rocky Linux 9 - BaseOS                                        0.0  B/s |   0  B     00:06    
Errors during downloading metadata for repository 'baseos':
[main]
  - Curl error (60): SSL peer certificate or SSH remote key was not OK for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [SSL certificate problem: certificate is not yet valid]
Error: Failed to download metadata for repo 'baseos': Cannot prepare internal mirrorlist: Curl error (60): SSL peer certificate or SSH remote key was not OK for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [SSL certificate problem: certificate is not yet valid]

原因

SSLで証明書の検証で失敗

対応(暫定)

証明書の検証を無視する設定を入れる

[root@localhost lib64]# vi /etc/yum.conf
...
sslverify=false                             # 追記