第22章 ntpd を使用した NTP 設定
22.1. NTP の概要
Network Time Protocol (NTP)を使用すると、ネットワークまたはインターネットで共通の参照と同期しているネットワーク化されたコンピューターシステム上のタイムクロックを維持できるように、正確な時間と日付情報を取り除くことができます。世界中の多くの標準機関には原子時計があり、これが参照先として利用可能になっている場合があります。Global Position システムを構成するサテライトには、複数の atomic クロックが含まれるため、時間のシグナルが非常に正確になる可能性があります。この信号は、軍事的な理由で意図的に弱められる場合があります。理想的な状況では、各サイトに独自の参照時計があるサーバーがあり、これがサイト全体のタイムサーバーとして機能します。低周波数のラジオ伝送またはグローバル位置システム (GPS) を介して、日時と日付を取得するデバイスが多数存在します。ただし多くの場合、インターネットに接続され、各地に分散する公開されたアクセス可能なタイムサーバーを使うことができます。これらの
NTP
サーバーは、「協定世界時」 (UTC)を提供します。これらのタイムサーバーに関する情報は、『www.pool.ntp.org』 を参照してください。
IT では、多くの理由で正確な時間の維持が重要です。たとえばネットワーキングでは、パケットとログのタイムスタンプが正確であることが必要になります。ログはサービスとセキュリティーの問題を調査するために使用されるため、異なるシステム上のタイムスタンプは同期クロックで行われるため、実際の値である必要があります。システムおよびネットワークがますます高速化するにつれ、これに対応してクロックの正確性と精度の必要性も高まっています。国によっては、正確な同期クロックを保持することが法律で定められているところもあります。詳細は、『www.ntp.org』 を参照してください。Linux システムでは、
NTP
はユーザー空間で実行しているデーモンにより実装されます。Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 のデフォルトの NTP
デーモンは ntpd
です。
ユーザースペースのデーモンは、カーネルで実行しているソフトウェアクロックであるシステムクロックを更新します。Linux は、「リアルタイム」 クロック (RTC) と呼ばれる一般的な埋め込みハードウェアクロックよりも、より優れた解像度を実現するために、ソフトウェアクロックをシステムクロックとして使用します。ハードウェアクロックに関する情報は、man ページの
rtc (4)
および hwclock(8
)を参照してください。システムクロックは、さまざまなクロックソースを使用して時間を維持します。通常、Time Stamp Counter (TSC)が使用されます。TSC は、最後にリセットされた時点からのサイクル数を計測する CPU レジスターです。TSC は、それが最後にリセットされてからのサイクル数をカウントする CPU レジスターです。これは非常に高速で精度が高く、割り込みがありません。RTC が保持する時間は、気温の変化により、1 カ月あたり最大 5 分ごとに実際の時間から離れます。RTC が維持している時間は実際の時間と比べて、温度変化によりひと月で最大 5 分間の誤差を生じます。ntpd
がシステムクロックを同期している場合には、カーネルは自動的に RTC を 11 分ごとに更新します。