第20章 ptp4l を使用した PTP の設定
20.1. PTP の概要
Precision Time Protocol (PTP) は、ネットワーク内でのクロック同期に使用されるプロトコルです。ハードウェアサポートと合わせて使用すると PTP
はマイクロ秒以下の正確性があり、これは NTP
で得られる正確性よるもはるかに優れています。PTP
サポートは、カーネルとユーザースペースに分けられます。Red Hat Enterprise Linux のカーネルには PTP
クロックのサポートが含まれており、これはネットワークドライバーが提供しています。実際のプロトコル実装は linuxptp と呼ばれ、これは Linux の IEEE 標準 1588 に準拠した PTPv2
実装です。
linuxptp パッケージには、クロック同期用の ptp4l および phc2sys プログラムが含まれています。ptp4l プログラムは、PTP
境界クロックと通常のクロックを実装します。ハードウェアタイムスタンプでは PTP
ハードウェアクロックのマスタークロックとの同期に使用され、ソフトウェアタイムスタンプではシステムクロックのマスタークロックとの同期に使用されます。phc2sys プログラムは、システムクロックを network interface card (NIC) 上の PTP
ハードウェアクロックと同期するハードウェアタイムスタンプでのみ必要となります。
20.1.1. PTP を理解する
PTP
で同期するクロックは、マスター/スレーブ階層で組織されています。スレーブはマスターと同期し、このマスターは別のマスターのスレーブとなっています。この階層は、best master clock (BMC) アルゴリズムで作成され、自動的に更新されます。クロックにポートが 1 つしかない場合は、マスター または スレーブ にすることができます。このようなクロックは 通常のクロック (OC) と呼ばれます。クロックにポートが 1 つしかない場合、これはマスターにもスレーブにもなることができ、boundary クロック (BC) と呼ばれます。トップレベルのマスターは、Global Positioning System (GPS) のタイムソースを使用して同期できる グランドマスタークロック と呼ばれます。GPS ベースの時間ソースを使うことで、高度の正確性を保って異なるネットワークが同期可能になります。
図20.1 PTP グランドマスター、境界、スレーブの各クロック

20.1.2. PTP の利点
PTP
が Network Time Protocol (NTP) よりも優れている点の 1 つは、様々な network interface controllers (NIC) およびネットワークスイッチにあるハードウェアサポートです。この特化されたハードウェアにより、PTP
はメッセージ送信の遅れを説明でき、時間同期の精度を大幅に高められます。ネットワーク内で PTP 以外に対応するハードウェアコンポーネントを使用することは可能ですが、その場合、変動が増えたり、遅れが非対称となったりして、同期が不正確になります。これにより、通信パスで使用される複数の非 PTP 対応コンポーネントが追加されます。可能な限りの精度を実現するには、PTP
クロック間の全ネットワークコンポーネントが PTP
ハードウェアを有効にすることが推奨されます。ネットワークハードウェアが PTP
に対応していない大規模なネットワークでの時間同期は、NTP
に適している場合があります。
ハードウェア PTP
サポートでは、NIC には独自のオンボードクロックがあります。これは受信および送信の PTP
メッセージのタイムスタンプで使用されます。PTP
マスターに同期しているオンボードクロックで、コンピューターのシステムクロックは NIC 上の PTP
ハードウェアクロックに同期されます。ソフトウェア PTP
サポートでは、システムクロックは PTP
メッセージのタイムスタンプに使用され、PTP
マスターに直接同期します。ソフトウェア PTP
サポートではオペレーティングシステムによる追加の PTP
パケット処理を必要としますが、ハードウェア PTP
サポートでは、NIC が PTP
パケットの送受信時の瞬間にタイムスタンプができるので、より優れた正確性が得られます。