【Linux】 NTPとChronyの設定
NTP
Network Time Protocol の略で 時刻を同期 するために使われるサーバー。常に自分より正確で信頼できる上位NTPサーバーを参照することで、時刻の正確さを担保しており、参照のつながりは階層構造となり、各層のことを Stratum と呼び、0~16の数字で表される。
Chrony
CentOSに標準でインストールされているNTPサーバー。
基本的には、LAN内にNTPサーバを立て外部のNTPサーバとの同期は同サーバが行い、その他のサーバはLAN内のNTPサーバから時刻を同期するようにして、インターネットへのトラフィックを削減する。
NTPサーバの構築
インストール
# yum install chrony
ファイルの編集
/etc/chrony.confの編集
# /etc/chrony.conf
----------------------------------------------------
# 下記は初期設定。不要な場合はコメントアウトする。
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# 新しい同期先NTPサーバを指定する場合。
server <NTPサーバのFQDNまたはIPアドレス> iburst
# これは追加しておいてもいい
server ntp.nict.jp iburst #日本標準時に直結したNTPサーバー
server ntp.jst.mfeed.ad.jp iburst #一般向けのNTPサービスとしてのNTPサーバー
# ローカルネットワークからの通信の許可(任意のアドレスまたはFQDN)
allow 192.168.0.0/16
# 上位NTPサーバーを参照していなくても、時刻同期を行えるように設定(#を外すだけでOK)
local stratum 10
サービスの起動
# systemctl start chronyd
# systemctl enable chronyd
時刻同期の確認
# chronyc sources
先頭のM列はソースの種別を示す。
^:リモートNTPサーバ
=:NTPピア
#:ローカルソース
2列目のS列はソースとの時刻同期状態を示す。
*:ソースとして時刻同期しているNTPサーバ
+:選択されたソースと結合される受け入れ可能なソース
–:受け入れ可能なソースで結合アルゴリズムに除外されたもの
?:接続が切断されたソース、またはパケットがすべてのテストをパスしないソース
x:その時間が他の大半のソースと一致しない
~:時間の変動性が大きすぎるように見えるソース
chronyc tracking
システムのクロックパフォーマンスに関するパラメータを表示
#chronyc tracking
作業ログ
クライアント側の設定
インストール
# yum install chrony
ファイルの編集
/etc/chrony.confの編集
# /etc/chrony.conf
----------------------------------------------------
# 下記は初期設定。不要な場合はコメントアウトする。
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# ネットワーク内のNTPサーバのIPアドレスを指定する
server 192.168.1.1 iburst
サービスの起動
# systemctl start chronyd
# systemctl enable chronyd
時刻同期の確認
# chronyc sources
# 設定したサーバと通信が取れている表示になっていればOK。*がついていること。
時刻調整の設定
iburst
NTPサーバに対して、起動直後に短い間隔で4回問い合わせをする。起動直後に4度問い合わせをすることによって妥当性判断が早く済み、結果として起動から時刻同期が行われるまでの時間が短くなる。
ハードウェアクロック、システムクロック
ハードウェアクロック:コンピュータがマザーボード上に保持する時刻
システムクロック:OSカーネルは起動時に、高精度のソフトウェアクロックを生成
ntpdはシステムクロックを問い合わせたNTPサーバの時刻に同期するが、ハードウェアクロックは同期しない。
cronで定期的にシステムクロックの時刻をハードウェアクロックに書き出すhwclock -wを実行させるのが一般的であった。
また、chronyでは設定ファイルにrtcsyncと書いておけばシステムクロックを11分置きにハードウェアクロックに書き出してくれる。
上記は、使用するシステムによって起動しないこともあるので、両方とも使えるようにしておくと良い。
makestep 1.0 3
chrony が起動してから 1.0 秒以上のずれが 3回続いた場合に step モードで同期する。