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

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 4, 5, 6, 7 の NTP
  • Red Hat Enterprise Linux 7 の Chrony

Issue

  • 2 台の NTP サーバーを、「プライマリ」および「バックアップ」と指定して使用することはできますか?
  • NTP の設定ファイルにどの程度の数の上位時刻サーバを設定すべきですか?

Resolution

推奨される設定

  • 2 つの NTP サーバのみを利用することは推奨されません
  • もし、1 つ以上の NTP サーバが必要な場合には、4 つの NTP サーバが最小として推奨されます。4 つのサーバの場合には、1 つの不正確なタイムソースまたは "falseticker" に対して守られます。詳細については、Best practices for NTP を参照してください。
  • 同様に、追加情報のためにアップストリームの NTP ドキュメント、https://support.ntp.org/bin/view/Support/SelectingOffsiteNTPServers を参照してください。特に、5.3.3. Upstream Time Server Quantity は詳細に記載され明快に説明しています。

冗長性

  • 冗長性のために 2 台の NTP サーバーが必要な場合は、1 つのサーバを "true"` オプションを使用して truechimer として仮定することができます。しかし、NTP クライアントは、この設定に盲目的に従うものではありません。
  • このオプションは、NTP のタイムソース選択アルゴリズムの目的を無効化するものとなり、このオプションが設定されているソースにシステムクロックを設定するということを許します。この特定のタイムソースが不安定な場合、システムは、この問題を特定することができなくなるでしょう。

NTP の設定例

  • 以下は /etc/ntp.conf 仕様の例になります。
 server 192.168.0.1 true  
 server 192.168.0.2
  • ntpd サービスを再開します。正確に動作するために NTP が十分な情報を収集するには、15 分程度かかります。その後、ntpq -pn を使用して同期ステータスを確認することができます。以下の 2 つの結果となる可能性があります。
  1. 両方の NTP サーバーが安定していて、互いに同期している場合は、NTP サーバーの前に "*" または "+" が表示されます。たとえば、次のようになります。

    # ntpq -pn  
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +192.168.0.1     LOCAL(0)         6 u   10   16  377    0.154    4.200   2.416
    *192.168.0.2     LOCAL(0)         6 u    1   16  377    0.981    0.982   0.400
    
  2. ローカルクロックに同期している2 台の NTP サーバーによって提供されている時間情報がお互いに同期していない場合、ntpd は "true" オプションを持つサーバーを信頼し、もう 1 台を信頼できない Falseticker と判断します。たとえば、次のようになります。

    # ntpq -pn  
        remote           refid       st t when poll reach   delay   offset   jitter  
    ==============================================================================  
    *192.168.0.1        LOCAL(0)     6  u 10   16   377     0.211   -16.920 2.562  
    x192.168.0.2        LOCAL(0)     6  u 1    16   377     0.581    5.242  4.597
    

Root Cause

  • NTP が 2 つのタイムソースから情報を取得し、提供された時刻が、十分小さな範囲に存在していない場合には、NTP クライアントはどちらのタイムソースが正しく、どちらが、falseticker かということを判断することができません。

Diagnostic Steps

RHEL4-7において、

  • /etc/ntp.conf ファイル内で構成されているクロックの数を確認します。
grep -E '^(peer|server)' /etc/ntp.conf
  • ntpd が現在利用しているクロックの数を確認します。
ntpq -p

RHEL7 においては、

  • /etc/chrony.conf ファイル内に構成されているクロックの数を確認します。
grep -E '^(peer|server)' /etc/chrony.conf
  • 現在 chronyd が利用しているクロックの数を確認します。
chronyc sources
  • Component
  • ntp

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.