chronyでNTPサーバを構成するNTPサーバは、ntpdからchronyへ移行してます。
新しいサーバではchronyを使用することのほうが多いでしょう。
ntpdの古い設計やコンフィグに比べれば、よく使う機能がわかりやすく改善されています。
先に、一番よく使うコマンドをこれです。
NTPのntpq -pに相当する
#chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
=============================================================================== ^- tama.paina.net 2 6 17 27 +7329us[+7329us] +/- 62ms
^* 104.41.187.183 1 6 17 32 -184us[-5296us] +/- 8784us
^- any.time.nl 2 6 17 32 +2430us[+2430us] +/- 37ms
^- 153.127.161.248 2 6 17 32 +3875us[-1237us] +/- 84ms
chronyクライアントのソース状態を確認するコマンドです。
時刻同期を確認するために、頻繁に使うコマンドです。
ntpq -pも多用したコマンドですが、考えてみればntpqという直観的でないコマンド名に比べれば、
chronyc sourcesは覚えやすい…、と思っておきましょう。
chronyd.confの設定は後回しにして、周辺コマンドを先にまとめます。
chronydは、デフォルトでは起動していません。自動起動にします。
#systemctl status chronyd
#systemctl enable chronyd
#systemctl start chronyd
FirewallでNTPポートが開いてない可能性があります。
コマンドでFirewallの確認をし、必要なら許可します。
#firewall-cmd --get-active-zones
public
interfaces: enp0s3
現在のFirewallゾーンで、NTPサービスが許可されているか確認
#firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
現在のFirewallゾーンにNTPサービス許可を追加
#firewall-cmd --add-service=ntp
success
#firewall-cmd --get-services
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ntp ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
設定を永続化
#firewall-cmd --runtime-to-permanent
success
chronydをNTPサーバとして構成する
chronyd.confはntp.confに比べれば、かなりわかりやすくなっています。
LAN内でNTPサーバとして動作させる場合の変更点も、多くありません。
以下はCentOS7の標準のchronyd.confです。
赤字で示したところが、環境によって変更する必要がある場所です。
細かいことを除けば、変更点は3か所です。
/etc/chronyd.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
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
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
#local stratum 10
# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
上位NTPサーバの指定
server 0.centos.pool.ntp.org iburst
pool 1.centos.pool.ntp.org iburst
serverディレクティブは、上位NTPサーバを指定するものです。
poolも同様ですが、DNSラウンドロビンのように一つのNTPホスト名が複数のIPアドレスを返す場合に使用します。
しかしデフォルトの「*.centos.pool.ntp.org」は一つのホスト名が複数のIPを返すプールタイプですが、serverディレクティブで指定されています。
CentOS8では、指定がpool行に変更されています。
許可クライアント・拒否クライアント
allow 192.168.1.0/24
deny 10.0.0.0/8
見ての通り、本NTPサーバへ時刻同期しても良いクライアント、拒否するクライアントの指定です。
つまり許可アドレスを指定することで、chronydはNTPサーバとして動作することになります。
一般的なネットワーク範囲で表記します。
ストラータム
local stratum 10
このNTPサーバの、ストラータムを指定します。
というより、ここで考慮すべきことはストラータムの数字ではなく、ストラータム指定が有効か、
それともコメントアウト(デフォルト)してあるか。です。
コメントアウトしてある
→デフォルトの動作が選択されています。 本NTPサーバが上位NTPサーバと同期している場合、通常のストラータムを使用します。
上位NTPサーバと同期がとれなくなった場合、ストラータムは0となってLAN内のクライアントは
本NTPサーバと同期できなくなります。
ストラータム値を指定してある
→指定したストラータム値で動作します。
上位NTPと時刻同期できてなくても、指定したストラータムを保持します。
LAN内のクライアントは、本NTPサーバと時刻同期できます。
以下に設定の違いによる、ストラータムの実験をしてみました。
まずはストラータム行がデフォルトの通り、コメントアウトしてある場合。
/etc/chronyd.confのストラータム行は、コメントアウトしてある
上位NTP同期時
#chronyc tracking
Reference ID : 6829BBB7 (104.41.187.183)
Stratum : 2
Ref time (UTC) : Mon Aug 10 06:35:58 2020
System time : 0.000003577 seconds fast of NTP time
Last offset : -0.005112062 seconds
RMS offset : 0.005112062 seconds
Frequency : 441.226 ppm slow
Residual freq : -147.459 ppm
Skew : 199.912 ppm
Root delay : 0.017212998 seconds
Root dispersion : 0.012586772 seconds
Update interval : 1.7 seconds
Leap status : Normal
上位NTPとの同期が外れた
#chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
Ref time (UTC) : Thu Jan 01 00:00:00 1970
System time : 0.000000000 seconds fast of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 491.247 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status : Not synchronised
上位NTPと同期しているときは、Stratum値が2となり、同期が外れた場合は0となりました。
またLeap status値が、同期後はNormalだったものが、同期が外れた場合はNot synchronizedと
変更され、上位と同期していないことを示しています。
ストラータム行でストラータム値を指定している場合
/etc/chronyd.confのストラータム行で、10が指定してある
上位NTP同期時
#chronyc tracking
Reference ID : 7F7F0101 ()
Stratum : 10
Ref time (UTC) : Mon Aug 10 06:34:42 2020
System time : 0.000002609 seconds fast of NTP time
Last offset : +0.000424262 seconds
RMS offset : 0.000424262 seconds
Frequency : 0.000 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 0.000000000 seconds
Root dispersion : 0.000000000 seconds
Update interval : 2.0 seconds
Leap status : Normal
上位NTPとの同期が外れた
#chronyc tracking
Reference ID : 7F7F0101 ()
Stratum : 10
Ref time (UTC) : Mon Aug 10 06:48:33 2020
System time : 0.000000000 seconds fast of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 491.247 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 0.000000000 seconds
Root dispersion : 0.000000000 seconds
Update interval : 0.0 seconds
Leap status : Normal
上位NTPサーバと同期しているときも、同期していない時も、Stratum値は指定した10となっています。
Leap status値も、上位NTPの同期とは関係なくNormalとなっています。
|