17.6. HW タイムスタンプを使った Chrony
17.6.1. ハードウェアタイムスタンプについて
NTP タイムスタンプは通常、システムクロックを使用してカーネルおよび chronyd が作成します。しかし、HW タイムスタンプが有効になると、パケットがリンク層または物理層に出入りする際に、NIC は独自のクロックを使用してタイムスタンプを生成します。NTP と共に使用すると、ハードウェアタイムスタンプは、同期の精度を大幅に向上させることができます。 最高精度を実現するには、NTP サーバーと NTP クライアントの両方が、ハードウェアタイムスタンプを使用しなければなりません。理想的な条件下では、サブマイクロ秒単位の精度を実現できるかもしれません。
PTP があります。PTP に関する詳細は、19章ptp4l を使用した PTP の設定 を参照してください。NTP とは異なり、PTP はネットワークスイッチおよびルーターの支援に依存します。最高精度の同期を実現したい場合は、PTP サポートのあるスイッチおよびルーターを持つネットワーク上で PTP を使用し、このようなスイッチおよびルーターを持たないネットワーク上では NTP を使用します。
17.6.2. ハードウェアタイムスタンプのサポートの確認
NTP でのハードウェアタイムスタンプがインターフェースによってサポートされていることを確認するには、ethtool -T コマンドを使用します。ethtool が、SOF_TIMESTAMPING_TX_HARDWARE および SOF_TIMESTAMPING_TX_SOFTWARE 機能、そして HWTSTAMP_FILTER_ALL フィルターモードも一覧表示する場合、NTP を使ったハードウェアタイムスタンプにインターフェースを使用できます。
例17.2 特定のインターフェース上におけるハードウェアタイムスタンプのサポートの確認
~]# ethtool -T eth0
Timestamping parameters for eth0:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
ptpv2-l4-sync (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
ptpv2-l4-delay-req (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
ptpv2-l2-sync (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
ptpv2-l2-delay-req (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)
ptpv2-sync (HWTSTAMP_FILTER_PTP_V2_SYNC)
ptpv2-delay-req (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)17.6.3. ハードウェアタイムスタンプの有効化
/etc/chrony.conf ファイルの hwtimestamp ディレクティブを使用します。ディレクティブは、単一のインターフェースを指定できます。または、ワイルドカードキャラクター (*) を使用して、ハードウェアタイムスタンプをサポートするすべてのインターフェース上で、ハードウェアタイムスタンプを有効にすることができます。linuxptp パッケージの ptp4l など、他のアプリケーションがインターフェース上でハードウェアタイムスタンプを使用していない場合に備えて、ワイルドカード仕様を使います。複数の hwtimestamp ディレクティブが、chrony 設定ファイルで許可されています。
例17.3 hwtimestamp のディレクティブを使用したハードウェアタイムスタンプの実現
hwtimestamp eth0 hwtimestamp eth1 hwtimestamp *
17.6.4. クライアントポーリング間隔の設定
/etc/chrony.conf 内の以下のディレクティブは、1 秒のポーリング間隔を使用してローカルの NTP サーバーを指定します。
server ntp.local minpoll 0 maxpoll 0
17.6.5. インターリーブモードの有効化
NTP アプライアンスではなく、たとえば chrony など、ソフトウェアの NTP 実装を実行する一般目的のコンピューターである NTP サーバーは、パケット送信後にのみハードウェア転送先タイムスタンプを取得します。この動作により、サーバーは対応するパケットにタイムスタンプを保存することができません。転送後に生成された転送先タイムスタンプを受信する NTP クライアントを有効にするには、/etc/chrony.conf のサーバーディレクティブに xleave オプションを追加し、クライアントが NTP インターリーブモードを使用するように設定します。
server ntp.local minpoll 0 maxpoll 0 xleave
17.6.6. 多数のクライアント向けのサーバーの設定
/etc/chrony.conf の clientloglimit ディレクティブを増やします。このディレクティブは、サーバー上でクライアントのアクセスログに割り当てられたメモリーの最大サイズを指定します。
clientloglimit 100000000
17.6.7. ハードウェアタイムスタンプの確認
例17.4 ハードウェアタイムスタンプが有効化されたインターフェースでメッセージをログ
chronyd[4081]: Enabled HW timestamping on eth0 chronyd[4081]: Enabled HW timestamping on eth1
NTP クライアントまたはピアとして設定されている場合、chronyc ntpdata コマンドにより、転送先と受信先タイムスタンプモードおよびインターリーブモードを各 NTP ソースに報告することができます。
例17.5 各 NTP ソースの転送先および受信先のタイムスタンプおよびインターリーブモードを報告
~]# chronyc ntpdataRemote address : 203.0.113.15 (CB00710F) Remote port : 123 Local address : 203.0.113.74 (CB00714A) Leap status : Normal Version : 4 Mode : Server Stratum : 1 Poll interval : 0 (1 seconds) Precision : -24 (0.000000060 seconds) Root delay : 0.000015 seconds Root dispersion : 0.000015 seconds Reference ID : 47505300 (GPS) Reference time : Wed May 03 13:47:45 2017 Offset : -0.000000134 seconds Peer delay : 0.000005396 seconds Peer dispersion : 0.000002329 seconds Response time : 0.000152073 seconds Jitter asymmetry: +0.00 NTP tests : 111 111 1111 Interleaved : Yes Authenticated : No TX timestamping : Hardware RX timestamping : Hardware Total TX : 27 Total RX : 27 Total valid RX : 27
例17.6 NTP 測定の安定性を報告
# chronyc sourcestatsNTP 測定の安定性は、通常のロードにおいて数十ナノ秒または数百ナノ秒となります。この安定性は、chronyc sourcestats コマンドの出力の Std Dev コラムに報告されます。
210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ntp.local 12 7 11 +0.000 0.019 +0ns 49ns
17.6.8. PTP-NTP ブリッジの設定
PTP) のグランドマスターが、 PTP サポートのあるスイッチまたはルーターを持たないネットワークで利用可能な場合、コンピューターは、PTP スレーブおよび stratum-1 NTP サーバーとしての操作に専念する可能性があります。このようなコンピューターには、2 つ以上のネットワークインターフェースが必要なほか、グランドマスターに近いか、またはグランドマスターと直接接続されている必要があります。これにより、ネットーワークで非常に精度の高い同期が確実に実行されます。
PTP を使用してシステムクロックを同期するためにインターフェースを 1 つ使用します。この設定は、19章ptp4l を使用した PTP の設定 で説明しています。他のインターフェースを使用してシステムの時間を提供するために chronyd を設定します。
例17.7 他のインターフェースを使用してシステムに時間を提供するよう chronyd を設定
bindaddress 203.0.113.74 hwtimestamp eth1 local stratum 1

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.