1. はじめに
このドキュメントは Nexus シリーズにおける PTP のサポート状況、及び PTP の基本的な動作について説明を行ないます。
2. 対象機種
Nexus シリーズでは以下の機器が PTP をサポートしています。
- Nexus 9000 シリーズ 7.0(3)I1(1) 以降 ( *1 )
- Nexus 7000 シリーズ 5.2(1) 以降
- Nexus 6000 シリーズ 6.0(2)N1(2) 以降 (最初のリリースからサポート)
- Nexus 5000 シリーズ 5.2(1)N1(1) 以降
- Nexus 3500 シリーズ 6.0(2)A1(1) 以降
- Nexus 3000 シリーズ 5.0(3)U2(2) 以降
*1 7.0(3)I1(1) では 9332PQ/9396PX/X9636PQ Linecard でのみサポート
3. PTP とは
Precision Time Protocol (PTP) は IEEE-1588 で定義された Network Time Protocol (NTP) よりも非常高い制度で時刻同期を行なうためのプロトコルです。
PTP ドメインは階層構造を持ち、役割によって幾つかのクロックタイプが定義されています。
4. PTP クロックタイプ
PTP には主に以下のようなクロックタイプがあります
4.1. Ordinary clock (OC)
ポートを一つだけ持つ PTP ノードで、Master もしくは Slave として動作します。Master で動作した場合 Grand Master Clock となります。
4.2. Grand master clock (GM)
GM は PTP ドメイン内で最優先されるクロックソースを提供します。
PTP ドメイン上に複数の GM が存在する場合は、Best Master Clock (BMC) アルゴリズムによって最適な GM が選択されます。
4.3. Slave clock
スレーブクロックは GM からの PTP メッセージを受信し、時刻の同期を行ないます。
4.4. Boundary clock (BC)
BC は PTP ドメイン上で GM に同期するスレーブクロックとして動作し、また接続されたネットワークに対し PTP メッセージを中継する役割を持ちます。
4.5. Transparent clock (TC)
TC は PTP ドメインで PTP メッセージを中継しますが時刻を終端しません。TC が存在する場合、時刻同期までのシーケンスが若干異なりますが、このドキュメントでは説明を行ないません。
5. PTP アルゴリズム
PTP は以下のような手順を経て時刻の同期を行ないます。
- Master は Sync メッセージを送信し、Slave は受信した時刻を T2 とします。
- Master は Follow_up メッセージを生成し、Sync メッセージを送信した時刻 T1 を Slave に伝えます。
- Slave は Delay_Req を送信します。送信した時刻が T3 となります。
- Master は Delay_Req を受信した時刻 T4 を含んだ Delay_Resp を送信します。
- Delay_Resp を受信した Slave は T1/T2/T3/T4 を元に時刻のずれを修整します。
修整に必要な補正 (Offset) の算出には以下の計算式が使用されます。
Offset = T2 - T1 - meanPathDelay
meanPathDelay = ((T2 - T1) + (T4 - T3)) / 2
以下の例では ((82 - 100) + (106 - 86)) / 2 により meanPathDelay が 2 秒, Offset は 82 - 100 - 2 により -20 秒。これにより Slave が 20 秒遅れていることが分かったので +20 秒が実際に補正されます。
6. BMC アルゴリズム
分散されたクロックソースから最適なソースを選択するために BMC アルゴリズム (BMCA) が提供されています。BMCA は以下の属性順に比較し優先するソースを選択します。
- Priority1
- clockClass
- clockAccuracy
- offsetScaledLogVariance
- Priority2
- clockIdentity
Nexus シリーズのは PTP ポートは BMCA クロックによって以下のステータスに遷移します。
Master: クロックソースとして動作しているポートです。
Slave: Master ポートから PTP メッセージを受信し、時刻同期したポートです。
Disabled: PTP が無効となっているポートです
Passive: Master ではなく,また Slave として時刻同期もしていないポートです。
Passive ポートは PTP のメッセージがループするような構成で、Spanning Tree の Blocking ポートのような役割を持ちます。
7. PTP 使用時の注意点
PTP の設定は物理インターフェースに行ない、ポートチャネルインターフェースや VLAN インターフェースに行なう事はできません。これは ASIC のハードウェアクロックを使用して同期を行なっており,論理インターフェースでは ASIC のクロックを利用できないため設定を行なう事ができません。
もし、ポートチャネルのリンクで PTP を使用したい場合は、メンバーの物理インターフェース全てで PTP の設定を行なってください。
PTP ドメイン内の機器は全て PTP 対応である事が推奨されます。以下のような制限があります。
- PTP 非対応の機器が存在する場合,その機器での遅延が考慮されず正確な時刻同期が行なえません。
- PTP 非対応の機器とのポートチャネルでの接続が行なえません。
8. 関連情報