Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

18.2.2. chrony 設定コマンドの概要

chronyd のデフォルト設定ファイルは /etc/chrony.conf です。-f オプションは、代替の設定ファイルパスを指定するのに使用できます。その他のオプションについては、 chronydの man ページを参照してください。使用できるディレクティブの完全なリストは、http://chrony.tuxfamily.org/manual.html#Configuration-file を参照してください。

以下は、chronyd 設定オプションの一部です。

コメント
コメントの前には、#、%、;、または ! を付けます。
allow
必要に応じて、NTP サーバーとして動作しているマシンへの NTP 接続が許可されるホスト、サブネット、またはネットワークを指定します。デフォルトでは、接続は許可されません。以下に例を示します。
allow 192.0.2.0/24

特定のネットワークへのアクセスを許可するときにこのコマンドを使用します。

allow 2001:0db8:85a3::8a2e:0370:7334

このコマンドを使用して、IPv6 へのアクセスを付与します。

クライアントアクセスを可能にするため、ファイアウォールで UDP ポート番号 123 を開いておく必要があります。

+

~]# firewall-cmd --zone=public --add-port=123/udp

ポート 123 を永続的に開くには、--permanent オプションを使用します。

+

~]# firewall-cmd --permanent --zone=public --add-port=123/udp
cmdallow
allow ディレクティブ (allow セクションを参照) と似ていますが、特定のサブセットまたはホストへの制御アクセスを許可します (これは NTP クライアントアクセスとは異なります)。「制御アクセス」とは、chronyc がこのようなホストで実行可能であり、このコンピューターで chronyd に正常に接続できることを意味します。 構文は同じになります。また、cmdallow all ディレクティブと動作が似ている cmddeny all もあります。
dumpdir
chronyd を再起動しても測定履歴を保存するディレクトリーへのパスです (これが実行していない時にシステムクロックの動作が変更されていないことを想定しています)。(設定ファイルの dumponexit コマンド、chronycdump コマンドから) この機能を使用する場合は、dumpdir コマンドを使用して測定履歴を保存するディレクトリーを定義してください。
dumponexit
このコマンドが存在する場合は、プログラムの終了時に、chronyd が、常に記録された各時間ソースの測定履歴を保存することを示しています。(上記の dumpdir コマンドを参照してください)。
hwtimestamp
hwtimestamp ディレクティブは、ハードウェアのタイムスタンプで非常に精度の高い同期を可能にします。詳細は chrony.conf(5) man ページを参照してください。
local

local キーワードは、現在の同期ソースがない場合でも、(それをポーリングしているクライアントから見ると) chronyd がリアルタイムに同期しているように見えるようにします。このオプションは、通常、孤立したネットワークで「master」となるコンピューターで使用されます。ここでは、いくつかのコンピューターが相互に同期するようになり、「master」は、手動入力でリアルタイムと一致させます。

以下はコマンド例を示します。

local stratum 10

10 という大きな値が示しているのは「基準クロックからのホップ数が非常に多いため、時間の信頼性が低い」ということです。基準クロックに最終的に同期している別のコンピューターにアクセスするコンピューターは、確実に 10 よりも下の階層に存在することになります。このため、local コマンドで 10 のように高い値を設定すると、リアルサーバーの視認性があるクライアントにリークしたとしても、マシン自体の時間がリアルタイムと混同することを防ぎます。

log

log コマンドは、特定情報がログに記録されることを意味します。以下のオプションを取ります。

measurements
このオプションは、生の NTP 測定値とその関連情報を、measurements.log という名前のログファイルに記録します。
statistics
このオプションは、回帰処理の情報を statistics.log ファイルにログ記録します。
tracking
このオプションは、システムの時間が進んだり遅れたりする予測に対する変更や、発生した slew 調整を、tracking.log と呼ばれるファイルにログ記録します。
rtc
このオプションは、システムのリアルタイムクロックに関する情報をログ記録します。
refclocks
このオプションは、生およびフィルター処理された基準クロックの測定を、refclocks.log ファイルにログ記録します。
tempcomp

このオプションは、温度測定とシステムレートの補正を、tempcomp.log と呼ばれるファイルにログ記録します。

ログファイルは、logdir コマンドが指定するディレクトリーに書き込まれます。

以下はコマンド例を示します。

log measurements statistics tracking
logdir

このディレクティブは、ログファイルが書き込まれるディレクトリーを指定します。

このディレクティブの使用例は、以下のようになります。

logdir /var/log/chrony
makestep

通常、chronyd は、必要に応じてクロックの速度を下げるかまたは上げることで、システムに対して時間オフセットの段階的修正を実施します。特定の状況では、このスルーイング (slewing) プロセスでシステムクロックを修正するのに非常に時間がかかり、システムクロックが不安定な状態になることがあります。このディレクティブは、調整がしきい値を上回ったときに、chronyd でシステムクロックを一度に修正 (step) します。ただし、chronyd が開始してからのクロックの更新が、指定した制限を上回らなかった場合に限ります (負の値は、制限を無効にします)。initstepslew ディレクティブは NTP のソースのみに対応しているため、この方法は基準クロックを使用しているときに特に有用です。

このディレクティブの使用例は、以下のようになります。

makestep 1000 10

この場合は、調整幅が 1000 秒よりも大きければシステムクロックが更新されますが、最初の 10 回の更新しか行われません。

maxchange

このディレクティブは、クロック更新で修正される許容オフセットの最大値を設定します。更新が指定された回数行われた後にのみチェックが実行されるため、システムクロックの初回の調整が大きくなります。指定された最大値よりも大きなオフセットが発生すると、そのオフセットは指定した回数の間無視され、その後に chronyd が終了します (負の値を使用すると、終了しないようになります)。いずれの場合も、メッセージは syslog に送信されます。

このディレクティブの使用例は、以下のようになります。

maxchange 1000 1 2

最初のクロック更新後に、chronyd がすべてのクロック更新でオフセットをチェックし、1000 秒よりも大きい調整を 2 回無視して、3 回目に終了します。

maxupdateskew

chronyd のタスクの 1 つは、コンピュータのクロックがその基準源に対してどれくらい速くまたは遅く動くかを調べることです。また、推定値の誤差範囲の概算を計算します。

エラーの範囲が広すぎる場合は、測定が落ち着いていないこと、そして推定増加または損失率に信頼性があまりないことを示しています。

maxupdateskew パラメーターは、推定値を使用できるほど信頼できるかどうかを判定するためのしきい値です。デフォルトでは、しきい値は 1000 ppm です。

構文は以下のようになります。

maxupdateskew skew-in-ppm

skew-in-ppm の一般的な値は、電話回線を介してサーバーにダイアルアップ接続を行う場合は 100、LAN 上のコンピューターの場合は 5 または 10 になります。

信頼性のない推定値の使用に対する保護の方法は、これだけではないことに注意してください。chronyd は常に、予想される進みまたは遅れのレートと、予測のエラー範囲を追跡しています。ソースの 1 つで測定が作成された後に別の予測が新たに生成されると、加重組み合わせのアルゴリズムを使用してマスター予測が更新されます。このため、chronyd に信頼性の高い既存のマスター予測があり、エラー範囲の広い新たな予測が生成されると、既存のマスター予測が新規のマスター予測を特徴づけることになります。

minsources

minsources ディレクティブは、ローカルクロックを更新する前にソース選択アルゴリズムで選択可能なものとして考慮されるべきソースの最小数を設定します。

構文は以下のようになります。

minsources number-of-sources

number-of-sources は、デフォルトでは 1 です。minsource を 1 よりも大きくすると、信頼性が向上します。複数のソースが互いに対応することが必要となるためです。

noclientlog
引数を取らないこのディレクティブは、クライアントアクセスをログに記録しないことを指定します。通常はログに記録されるため、chronyc のクライアントコマンドを使用して統計が報告されます。
reselectdist

chronyd が、利用可能なソースから同期ソースを選択する際に、同期距離が最短のものを優先します。ただし、同様の距離のソースが複数存在して、再選択が繰り返されるのを回避するため、現在選択されていないソースからの距離に、固定距離が追加されます。これは、reselectdist オプションで設定できます。デフォルトでは、この距離は 100 ミリ秒となります。

構文は以下のようになります。

reselectdist dist-in-seconds
stratumweight

stratumweight ディレクティブは、chronyd が利用可能なソースから同期ソースを選択する際に、階層ごとに追加される同期距離を設定します。

構文は以下のようになります。

stratumweight dist-in-seconds

デフォルトでは、dist-in-seconds は 1 ミリ秒です。つまり、通常は、距離の値が非常に悪い場合でも、stratum が高いソースよりも、stratum が低いソースが優先されることを意味します。stratumweight を 0 に設定すると、chronyd は、ソースを選択するときに stratum を無視します。

rtcfile

rtcfile ディレクティブは、システムのリアルタイムクロック (RTC) の正確性の追跡に関連するパラメーターを chronyd が保存できるファイル名を定義します。

構文は以下のようになります。

rtcfile /var/lib/chrony/rtc

chronyd は、このファイルが存在し、chronycwritertc コマンドを実行すると、情報をこのファイルに保存します。保存される情報は、あるエポックでの RTC のエラー、そのエポック (1970 年 1 月 1 日以降の秒数)、および RTC の時間が早まるもしくは遅れる変化量です。リアルタイムクロックのコードはシステム固有のものなので、すべてのリアルタイムクロックがサポートされるわけではありません。このディレクティブを使用する場合は、リアルタイムクロックを手動で調整しないでください。リアルタイムクロックがランダムな間隔で調整されると、その変化量を測定する chrony の必要性が干渉されるためです。

rtcsync
rtcsync ディレクティブは、デフォルトで /etc/chrony.conf ファイルにあります。これにより、システムクロックが同期されていることがカーネルに知らされ、カーネルによりリアルタイムクロックが 11 分ごとに更新されます。