Show Table of Contents
第17章 chrony スイートを使用した NTP 設定
IT では、多くの理由で正確な時間の維持が重要です。たとえばネットワーキングでは、正確なタイムスタンプがパケットとログで必要になります。Linux システムでは、
NTP プロトコルがユーザースペースで実行しているデーモンにより実装されます。
ユーザースペースのデーモンは、カーネルで実行されているシステムクロックを更新します。システムクロックは様々なクロックソースを使用して時間を維持しています。一般に使用されるのは Time Stamp Counter (TSC) です。TSC は、最後にリセットされた時点からのサイクル数を計測する CPU レジスタです。非常に高速で高い分解能を持ち、中断も発生しません。
デーモンは、ntp と chrony の各パッケージにあるリポジトリーで利用できる、
ntpd と chronyd から選びます。
本章では、chrony スイートの使い方について説明します。
17.1. chrony スイートの概要
Chrony は、ネットワークタイムプロトコル (NTP) の実装です。Chrony を使うと以下のことが行えます。
- システムクロックを
NTPサーバーと同期する、 - システムクロックを GPS レシーバーなどの基準クロックと同期する、
- システムクロックをマニュアルの時間入力と同期する、
- ネットワーク内の他のコンピューターにタイムサービスを提供する
NTPv4(RFC 5905)サーバーまたはピアとして。
Chrony は、ネットワーク接続が頻繁に切断される、ネットワークの混雑が長時間続く、温度が変わる (一般的なコンピューターのクロックは温度に敏感) といった様々な条件下や、継続的に実行されない、または仮想マシンで実行されているといったシステムにおいても、良好に動作します。
インターネット上で同期している 2 つのマシン間の一般的精度は数ミリ秒以内、LAN 上のマシン間では数十マイクロ秒以内です。ハードウェアタイムスタンプまたはハードウェア基準クロックは、同期している 2 つのマシン間の精度をサブマイクロ秒レベルにまで高めることができます。
Chrony は、ユーザースペースで実行されるデーモンの
chronyd と、 chronyd のパフォーマンスを監視したり様々なオペレーティングパラメーターをその実行中に変更したりすることに使用できるコマンドラインプログラム、chronyc から構成されています。
17.1.1. ntpd と chronyd の違い
chronyd が ntpd よりも優れている点として、以下が挙げられます。
chronydは、時間参照へのアクセスが途切れやすい環境でも良好に機能します。一方ntpdは、良好に機能するためには時間参照の定期的なポーリングを必要とします。chronydはネットワークの混雑が長時間にわたる場合でも機能します。chronydは通常、クロックをより高速に、より高い精度で同期できます。chronydは、水晶振動子の温度変化などによってクロックのレートが突然変更しても素早く適応します。一方、ntpdの場合は、落ち着くまでに長時間かかる場合があります。- デフォルトの設定では、
chronydは、実行中の他のプログラムを混乱させないようにするため、システムの起動時にクロックを同期した後は時間をステップしません。ntpdも時間をステップしないように設定することは可能ですが、そうするとクロックの調整に異なる方法を用いなければならず、それによってクロックの精度にマイナスの影響が出るというデメリットがあります。 chronydは Linux 上のクロックのレートを幅広い範囲で調整できるため、たとえば仮想マシン上など、壊れたクロックもしくは不安定なクロックのあるマシン上でも操作が可能になります。chronydの方が小型でメモリ使用量が少なく、必要なときだけ CPU を起動させるので、省電力性に優れています。
chronyd では可能で、ntpd ではできない点は、以下のとおりです。
chronydは、時間補正の方法がクロックを監視している管理者などによる手動入力のみである隔離されたネットワークにサポートを提供します。chronydは、異なる更新時に修正されたエラーを検証し、コンピューターの時刻が進んだり遅れたりする時点のレートを予測して、この予測を使ってその後のコンピュータークロックの調整を行います。chronydは、たとえばコンピューターの電源を切った後も作動し続けるクロックのような、リアルタイムクロックの時間の増減率の計算をサポートしています。このデータがあれば、システムの起動時に、リアルタイムクロックから取得した適合された時間の値を使ってシステムの時間を設定できます。これらのリアルタイムクロック機能が利用できるのは、現在 Linux のシステムのみです。chronydは Linux のハードウェアタイムスタンプに対応しており、ローカルネットワークにおける非常に精度の高い同期を可能にしています。
ntpd では可能で chronyd ではできない点は、以下のとおりです。
ntpdは、ブロードキャスト、マルチキャスト、メニーキャストのクライアントやサーバーなど、NTPバージョン 4 (『RFC 5905』) のすべてのオペレーティングモードに対応しています。ただし、ブロードキャストとマルチキャストの各モードは、認証はされても、一般的なサーバーやクライアントモードと比べて精度と安全性がもともと低いため、通常は避けることが推奨されます。ntpdは、公開鍵暗号でサーバーの承認を行う Autokey プロトコル (『RFC 5906』) に対応しています。ただし、このプロトコルは安全性が低いことが実証されており、将来 Network Time Security (NTS) 仕様の実装に置き換えられる可能性があるのでご注意ください。ntpdには多くの基準クロックのドライバーが含まれています。一方のchronydは、共有メモリ (SHM) または Unix ドメインソケット (SOCK) を使って基準クロックのデータにアクセスするために、gpsd のような他のプログラムに依存しています。
17.1.2. NTP デーモンの選択
Chrony は、chrony に対応していないツールで管理または監視されているシステムや、chrony と互換性のないハードウェア基準クロックを搭載しているシステムを除いた、すべてのシステムに推奨されます。
注記
chronyd は Autokey プロトコルをサポートしていないため、このプロトコルを使ってパケット認証を行う必要があるシステムには ntpd しか使用できません。Autokey プロトコルには重大なセキュリティ上の問題があるため、使用を避けることが推奨されます。Autokey ではなく、対称鍵を使って認証を行ってください。この方法は、chronyd と ntpd の両方が対応しています。Chrony は SHA256 や SHA512 といったより強力なハッシュ関数に対応しています。一方、ntpd が使用できるのは MD5 と SHA1 のみです。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.