chronyで時刻同期設定。同じFQDN名をserverに複数設定

最終更新日付: 2021年1月14日

CentOS7やRHEL7になってから、時刻同期のデフォルトパッケージがntpdからchronyに変わりましたね。
これはslewオードでのSYNC_HWCLOCK(ハードウェアへの動機)がchronyの方がシンプルで簡単だからかもしれませんね。

そんなchronyの設定方法についてポイントを紹介します。

環境・前提条件

image

上記のような環境を作成した。

  • CentOS Linux 7.3.1611
  • chrony 2.1.1-3

以下で紹介するchronyで設定ファイルは以下です。

  • /etc/chrony.conf

chronydもchronycもになる。(chronyd:デーモン、chronyc:クライアント)

NTP Server設定に同じFQDN名を複数指定可能

たとえば、Server-Aのchrony.confに以下のようなServer設定が可能です。

server ntp.nict.jp iburst

server ntp.nict.jp iburst

server ntp.nict.jp iburst

server ntp.nict.jp iburst

一見、同じ設定を4行も入れて無駄なように見えますが、Server-Aでchronycを確認しますと

image

上記のように、全部別々のNTPサーバーから取得してくれます。

ちなみに、「server ntp.nict.jp iburst」を5行chrony.confに追加するとIPv6側も取得してきたchronycの結果になります。ちゃんと異なるIPアドレスを取得し確認してくれているんですね。

RHELでは2台のNTPサーバーを指定することを推奨していません

ntpd時代の話(RHEL5、RHEL6)ですが、2 台の NTP サーバーを指定するNTPを使用することは推奨されません。
なぜなら、どちらが「より」正確なNTPサーバーなのかをNTP クライアントが判断できなるからです。

スプリッドブレイン的な当然の現象ですね。
RHELでは、NTP サーバーが複数台必要な場合は、4 台使用することが推奨しています。

NTPサーバーの指定は、chronyであっても1台もしくは4台が好ましいと思います。

image

参考、2 台の NTP サーバーを、「プライマリ」および「バックアップ」に指定して使用することはできますか? - Red Hat Customer Portal

stratum 1から同期しているNTPサーバーから同期を受け取るとstratum 2になる

image

ntp.nict.jp はstratum 1で、
ntp.nict.jpをサーバー指定しているServer-Aはstratum 2となる。

ちなみに、Server-AにNTPサーバーを指定しなかった時は、

image

local stratum 10

Server-Aのchrony.confに上記のlocal stratum行を設定しないと、デフォルトでstratum 16となりServer-AはNTPサーバーになれない。

NTPサーバーとしてNTPクライアントがアクセス出来るネットワークを設定する。

image

allow設定で、NTPサーバーにアクセスできるNTPクライアントネットワークを定義する。
これが設定されていないと、いわゆるNTPサーバーにはなれずに、NTPクライアントとなってしまう。

allow

のみ設定すると、全部のネットワークからNTPサーバーにアクセス出来る設定になる。

ハードウェアクロック(RTC)へカーネルクロックを同期する。rtcsync

Server-Aのchrony.confに、以下の設定を入れると

rtcsync

11分ごとにカーネルシステムクロックをハードウェアクロック=リアルタイムクロック(RTC)に同期更新する動きになる。

サンプル設定。Server-Aのchrony.conf

server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst

stratumweight 0

driftfile /var/lib/chrony/drift

rtcsync

makestep 10 3

allow

bindcmdaddress 127.0.0.1
bindcmdaddress ::1

keyfile /etc/chrony.keys

commandkey 1

generatecommandkey

noclientlog

logchange 0.5

logdir /var/log/chrony

上記のように設定すれば、とりあえずNTPサーバーが構築できる。

参考: 15.2. chrony の概要および設定(https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Understanding_chrony_and-its_configuration.html リンク切れ)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です