第22章 NTPによる時刻の同期

目次

22.1. YaSTでのNTPクライアントの設定;
22.2. ネットワークでのntpの手動設定
22.3. ランタイム時の動的時刻同期
22.4. ローカルリファレンスクロックの設定

概要

NTP (network time protocol)メカニズムは、システムの時刻をネットワーク上で同期させるためのプロトコルです。最初に、マシンは信頼できる時刻を持つサーバに時刻を照会できます。次に、ネットワーク上の他のコンピュータがこのマシン自体に対し、時刻を照会できます。目的は2つあり、絶対的な時間を維持することと、ネットワーク内のすべてのマシンのシステム時刻を同期させることです。

正確なシステムタイムを維持することはさまざまな場で重要です。ハードウェア組み込み型(BIOS)クロックがデータベースやクラスタなどのアプリケーション要件に合致しないことがよくあります。システムタイムを手動で修正することは時に問題を発生させる可能性があります。たとえば、時間を逆廻りに戻すことで重要なアプリケーションの誤動作を誘発することもあります。ネットワーク内では、すべてのマシンのシステムタイムを同期させることが通常必要とされますが、手動での時刻調整はよい方法ではありません。NTPには、これらの問題を解決するメカニズムがあります。NTPサービスは、ネットワーク内の信頼できるタイムサーバのヘルプによって、システム時間を継続的に調整します。さらに、電波時計のようなローカルリファレンスクロックを管理する機能があります。

[Note]

アクティブディレクトリによる時間同期を有効にするには、手順 「Joining an AD Domain」 (↑Security Guide (セキュリティガイド))にある指示に従います。

22.1. YaSTでのNTPクライアントの設定;

ntpパッケージ付属のNTPデーモン(ntpd)は、ローカルコンピュータを時間の参照に使用するように事前設定されています。ただし、(BIOS)クロックは、より正確な時間ソースが利用できない場合の予備としてのみ使用されます。YaSTを利用すれば、NTPクライアントを簡単に設定することができます。

22.1.1. 基本的な設定

YaST NTPクライアントの設定([ネットワークサービス]+[NTP環境設定])は、タブで構成されています。ntpdの起動モードと照会先のサーバは、一般的な設定]タブで設定します。

手動でのみ

すべて自分で設定する場合は、[手動でのみ]を選択します。

今すぐ開始し、システム起動時に開始するよう設定

システムのブート時に自動的にntpdを起動するには、[今すぐ開始し、システム起動時に開始するよう設定]を選択します。次に、22.1.2項 「基本的な設定の変更」で説明されているようにサーバを設定します。

22.1.2. 基本的な設定の変更

[一般の設定]タブの下部には、クライアントに対するサーバおよび時刻情報のその他の情報源が表示されます。必要に応じて、[追加][削除]、および[編集]を使用してこのリストを変更します。Display Log]では、クライアントのログファイルを表示できます。

時刻情報の情報源を追加するには、[追加]をクリックします。表示されるダイアログで、時刻同期に使用する情報源のタイプを選択します。次のオプションを指定できます。

図22.1 YaST: NTPサーバ

YaST: NTPサーバ

サーバ

[選択]プルダウンリスト(図22.1「YaST: NTPサーバ」参照)で、ローカルネットワーク上のタイムサーバ([ローカルNTPサーバ])または目的のタイムゾーンを担当するインターネット上のタイムサーバ([公開NTPサーバ])のどちらを使用して時刻の同期を設定するか決定します。ローカルタイムサーバを使用する場合は、[検索]をクリックして、ネットワーク上の利用可能なタイムサーバを問い合わせるSLPクエリを実行します。検索結果のリストから最適なタイムサーバを選択し、[受諾]をクリックしてダイアログを閉じます。インターネット上の公開タイムサーバを使用する場合は、国(タイムゾーン)および適切なタイムサーバを[公開NTPサーバ]のリストから選択し、[受諾]をクリックしてダイアログを閉じます。メインダイアログの[テスト]を使用して、選択されているサーバの可用性をテストします。[オプション]では、ntpdの追加オプションを指定できます。

[Access Control Options]を使用すると、コンピュータ上で実行するデーモンによりリモートコンピュータが実行可能なアクションを制限できます。このフィールドは、[セキュリティの設定]タブで[NTP サービスを設定したサーバに制限する]にチェックマークを入れた後でのみ有効になります(図22.2「高度なNTP設定:セキュリティの設定」参照)。このオプションは、/etc/ntp.conf内のrestrict節に対応します。たとえばnomodify notrap noqueryは、サーバがコンピュータのNTP設定を変更し、NTPデーモンのトラップ機能(リモートイベントのログ記録機能)を使用することを拒否します。自身の管理下にないサーバについては(たとえばインターネット上のサーバなど)、こうした制限を適用することをお勧めします。

詳細については、/usr/share/doc/packages/ntp-doc(ntp-docパッケージの一部)を参照してください。

ピア

ピアは、対称的な関係が確立されたコンピュータで、タイムサーバとクライアントの両方の役割を果たします。サーバの代わりに、同じネットワーク内のピアを使用するには、そのピアシステムのアドレスを入力します。ダイアログのそれ以外の内容は[サーバ]ダイアログと同じです。

ラジオクロック

時刻同期にシステムのラジオクロックを使用するには、クロックタイプ、ユニット番号、デバイス名、およびその他のオプションをこのダイアログで指定します。ドライバを微調整するには、[ドライバの調整]をクリックします。ローカルラジオクロックの動作の詳細については、/usr/share/doc/packages/ntp-doc/refclock.htmlを参照してください。

ブロードキャストの発信

時刻情報とクエリは、ネットワーク上にブロードキャストすることができます。このダイアログでは、このブロードキャストの送信先を指定します。電波時計のような信頼できる時刻ソースがない限りブロードキャストをアクティブにしないでください。

ブロードキャストの着信

クライアントで情報をブロードキャスト経由で受け取る場合は、どのアドレスからのパケットを受け入れるかをこのフィールドに指定します。

図22.2 高度なNTP設定:セキュリティの設定

高度なNTP設定:セキュリティの設定

[セキュリティの設定]タブで(図22.2「高度なNTP設定:セキュリティの設定」参照)、ntpdをchroot jailで起動するかどうか指定します。デフォルトでは、[Run NTP Daemon in Chroot Jail]が選択されています。このオプションは、攻撃によってシステム全体が危険な状態に陥ることを防ぐので、ntpdが攻撃された場合のセキュリティを強化します。

[Restrict NTP Service to Configured Servers Only]は、リモートコンピュータがユーザのコンピュータのNTP設定を表示および変更すること、およびリモートイベントログのトラップ機能を使用することを拒否し、それによってシステムのセキュリティを向上させます。[一般の設定]タブの時間ソースのリストで、個別のコンピュータに対するアクセス制御オプションを上書きしない限り、こうした制限は有効になるとすべてのリモートコンピュータに適用されます。他のすべてのリモートコンピュータでは、ローカルタイムのクエリのみが許可されます。

SuSEfirewall2がアクティブな場合、[ファイアウォール内でポートを開く]を有効にします(デフォルト)。ポートを閉じたままにすると、タイムサーバと接続を確立することはできません。

22.2. ネットワークでのntpの手動設定

ネットワーク内のタイムサーバを使用するには、serverパラメータを設定するのが最も簡単です。たとえば、タイムサーバntp.example.comがネットワークから接続可能な場合、その名前をファイル/etc/ntp.confに行として追加します。

server ntp.example.com

別のタイムサーバを追加するには、別の行にキーワードの「server」を挿入します。rcntpd startコマンドでntpdを初期化後、時間が安定し、ローカルコンピュータのクロックを修正するドリフトファイルが作成されるまで、約1時間かかります。ドリフトファイルを用いることで、バードウェアクロックの定誤差はコンピュータの電源が入った時点で、すぐに算出されます。修正はすぐに反映されるため、システム時刻がより安定します。

NTP機構をクライアントとして使用するには、2種類の方法があります。まず、クライアントは既知のサーバに定期的に時間を照会することができます。クライアント数が多い場合、この方法はサーバの過負荷を引き起こす可能性があります。2つ目は、ネットワークでブロードキャストを行う時刻サーバから送信されるNTPブロードキャストを、クライアントが待機する方法です。この方法には不利な面があります。サーバの精度が不明なこと、そしてサーバから送信される情報が誤っていた場合、深刻な問題が発生する可能性があることです。

ブロードキャスト経由で時刻を取得する場合、サーバ名は必要ではありません。この場合は、設定ファイル/etc/ntp.confに行broadcastclientを記述します。1つ以上の信頼された時刻サーバのみを使用するには、serversで始まる行にサーバの名前を記述します。

22.3. ランタイム時の動的時刻同期

ネットワークに接続せずにシステムが起動すると、ntpdは起動しますが、設定ファイルで設定されたタイムサーバのDNS名を解決できません。これは、暗号化されたWLANでネットワークマネージャを使用するときに発生します。

ランタイム時にntpdでDNS名を解決するには、dynamicオプションを設定する必要があります。ネットワークが起動後に確立されると、ntpdは再度名前を検索し、時刻を取得するタイムサーバに到達します。

/etc/ntp.confを手動で編集して、dynamicを1つ以上のserverエントリに追加します。

server ntp.example.com dynamic

または、YaSTを使用して、次の手順に従います。

  1. YaSTで、[ネットワークサービス]+[NTP環境設定]の順にクリックします。

  2. 設定するサーバを選択します。[編集]をクリックします。

  3. [オプション]フィールドを有効にして、[dynamic]を追加します。他のオプションが入力されている場合は、スペースで区切ります。

  4. [OK]をクリックして、編集ダイアログを閉じます。前の手順を繰り返して、必要に応じてすべてのサーバを変更します。

  5. 最後に、[OK]をクリックして設定を保存します。

22.4. ローカルリファレンスクロックの設定

ntpソフトウェアパッケージには、ローカルリファレンスクロックに接続するためのドライバが含まれています。サポートされているクロックのリストは、ntp-docパッケージの/usr/share/doc/packages/ntp-doc/refclock.htmファイルに記載されています。各ドライバには、番号が関連付けられています。ntpでは、実際の設定は疑似IPアドレスを使用して行われます。クロックは、ネットワークに存在しているものとして/etc/ntp.confファイルに入力されます。このため、これらのクロックには127.127.t.uという形式の特別なIPアドレスが割り当てられます。ここで、tはクロックのタイプを示し、使用されているドライバを決定します。uはユニットのタイプを示し、使用されているインタフェースを決定します。

通常、各ドライバは設定をより詳細に記述する特別なパラメータを持っています。/usr/share/doc/packages/ntp-doc/driverNN.html(ここでNNはドライバの番号)ファイルは、特定のクロックタイプの情報を提供します。たとえば、タイプ 8クロック(シリアルインタフェース経由のラジオクロック)はクロックをさらに細かく指定する追加モードを必要とします。また、Conrad DCF77レシーバモジュールはモード 5です。このクロックを優先参照として使用するには、キーワードpreferを指定します。Conrad DCF77レシーバモジュールの完全なserver行は次のようになります。

server 127.127.8.0 mode 5 prefer

他のクロックも同じパターンで記述されます。ntp-docパッケージのインストール後は、ntpのマニュアルを/usr/share/doc/packages/ntp-docディレクトリで参照できます。ドライバパラメータについて説明するドライバページへのリンクは、ファイル/usr/share/doc/packages/ntp-doc/refclock.htmに記述されています。