概要
Precision Time Protocol(PTP)は、パケットネットワーク用の分散ナノ秒の精度タイミング同期プロトコルです。PTPの精度は、スイッチおよびサーバネットワークインターフェイスカード(NIC)でのPTPのハードウェアサポートに起因します。PTPでは、マルチキャストグループ224.0.1.129とUDPポート319および320が使用されます。現在のPTP規格は、IEEE 1588-2008 Precision Time Protocol(PTP)バージョン2(PTPv2)です
PTPの拡張性は、このプロトコルにBoundary Clock(BC;境界クロック)という概念があることから生じます。この概念は、Grand Master(GM;グランドマスター)クロックから複数の物理/論理ホップに渡り、タイムスタンプを含むメッセージの再較正ポイントとしてされます。Nexus 3kは、BCとして機能し、ローカルエリアネットワーク(LAN)に接続されたサーバに正確なタイミングを提供するために、データセンター(DC)に広く導入されています。 BCとGMは、レイヤ3(ip接続)経由でのみ到達可能である必要があります。GMとPTPエンドクライアントの間には、BCの複数のレイヤが存在する場合があります。冗長性を提供する複数のGMと Nexus 3Kは、Best Master Clock(BMC)アルゴリズムを使用して最適なGMを選択します。
寄稿者:ニシャドモヒドゥエン
編集者:クマールスリダール
PTPの設定:
N3k(config)#機能ptp
このコマンドは、スイッチでPTPを有効にします。
N3k(config)# ptp source <ip address>
このコマンドは、スイッチによって生成されるPTPパケットの送信元IPアドレスを指定します。
N3k(config)# interface Ethernet slot/port
N3k(config-if)# ptp
このコマンドは、ポートでPTPを有効にします。Cisco Nexus 3548は境界クロックであるため、マスターポートとスレーブポートの両方があります。マスターポートとスレーブポートの設定に違いはありません。これらは「ptp」オプションとBMCアルゴリズムの両方で設定され、ポートがPTPスレーブポートかマスターポートかを判別します。
N3k(config)# clock protocol ptp
このコマンドは、PTPを使用してシステムカレンダーを更新するようにスイッチを設定します。この設定では、スイッチのクロックがPTPと同期されます。このコマンドを有効にしないと、スイッチがマスタポートでPTPクロックを伝搬するのを防ぐことができます。ただし、時刻源はNexusローカルクロックになります。
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
ローカル(発振器)クロックのプライオリティ値を設定します。数値が小さいほど、優先順位が高くなります。
N3k(config)# no ptp grandmaster-capable
デフォルトでは、Nexus 3kは「ptp grandmaster-capable」であるため、この機能を無効にしてGMと同期します。
インターフェイスの下のオプションのパラメータ(GMとパラメータを照合するように設定):
N3k(config)# interface Ethernet slot/port
N3k(config-if)# ptp delay-request minimum interval 3
N3k(config-if)# ptp announce interval 2
N3k(config-if)# ptp sync interval 0
検証:
N3k# show ptp clock
PTPデバイスタイプ:境界クロック
Clock Identity(CID): 00:62:ec:ff:fe:40:05:81
クロックドメイン:0
PTPポートの数:0
Priority1:1
Priority2:1
クロック品質:
Class:248
精度:254
オフセット(ログ分散):65535
マスターからのオフセット:0
Mean Path Delay(MDELAY):0
削除された手順:0
ローカルクロック時間:月5日00:00:23 2017
N3k# show ptp parent
PTP親プロパティ
親クロック:
親クロックID: 00:0c:ec:ff:fe:08:12:b1
親ポート番号:1
観測された親オフセット(ログの差異):N/A
監視対象の親クロックフェーズの変化率:N/A
Grandmaster Clock:
Grandmaster Clock Identity: 00:0c:ec:ff:fe:08:12:b1
Grandmaster Clock Quality:
Class:6 <<<
精度:32
オフセット(ログ分散):22752
プライオリティ1:128
優先度2:128
N3k# show ptp brief
PTPポートステータス
—
ポートの状態
— —
Eth1/5スレーブ<< GMへ
Eth1/24 Master << to Host
Eth1/24 Listening << no Valid GM or Host detected
N3k# show run | in clock(clock-protocolをチェックする)
N3k#show ptp counters all(Sync、Announce、Delay_Req、Delay_RespなどのPTPメッセージのTxとRxをチェックするため)
N3k# show ptp counters interface ethernet 1/24
インターフェイスEth1/24のPTPパケットカウンタ:
—
パケットタイプTX RX
— — —
アナウンス558 4479
同期1773 8941
フォローアップ1754 8950
遅延要求35 0
遅延応答0 35
PDelay要求0 0
PDelay Res 0 0
PDelayフォローアップ0 0
管理0 0
—
N3k#show ptp correction(PTP訂正タイムスタンプを確認するため)
PTPの過去の修正
—
スレーブポートのSUP時刻修正(ns) MeanPath Delay(ns)
— — — —
Eth1/24 Mon Jun 5 05:48:45 2017 171026 -51 1806
Eth1/24 Mon Jun 5 05:48:46 2017 171727 -2 1806
Eth1/24 Mon Jun 5 05:48:47 2017 173329 -47 1806
Eth1/24 Mon Jun 5 05:48:48 2017 174047 86 1806
Eth1/24 Mon Jun 5 05:48:49 2017 175690 -55 1794
Eth1/24 Mon Jun 5 05:48:50 2017 235577 -6 1794
Eth1/24 Mon Jun 5 05:48:51 2017 178035 -44 1794
Eth1/24 Mon Jun 5 05:48:52 2017 178804 83 1794
Eth1/24 Mon Jun 5 05:48:53 2017 180371 35 1794
Eth1/24 Mon Jun 5 05:48:54 2017 181839 -48 1794
Eth1/24 Mon Jun 5 05:48:55 2017 183667 -42 1794
Eth1/24 Mon Jun 5 05:48:56 2017 184423 -5 1794
Eth1/24 Mon Jun 5 05:48:57 2017 186030 113 1794
Eth1/24 Mon Jun 5 05:48:58 2017 186653 -48 1794
Eth1/24 Mon Jun 5 05:48:59 2017 188298 -6 1794
Eth1/24 Mon Jun 5 05:49:00 2017 189000 -88 1794
<中略>
トラブルシューティング:
1. PTP(ユニキャスト接続)からGMにpingできるかどうかを確認します。
2.経由でPTPであるクロックプロトコルをチェックします
N3k#show run | in clock
3.デフォルトでは、N3Kは「グランドマスター対応」です。を使用して無効にする必要がある
N3k# no ptp grandmaster capable
4. show ptp briefコマンドを使用して、ポートの状態が「リスニング」かどうかを確認します。
5.次に、ethanalyzerキャプチャを実行します。
ethanalyzer local interface inbound-hi capture-filter "udp port 320" limit-captured-frames 0 << <アナウンスとフォローアップ
ethanalyzer local interface inbound-hi capture-filter "udp port 319" limit-captured-frames 0 << Sync
PTP GM側からは、AnnounceメッセージとSyncメッセージがあります。TクライアントはDelay_Reqを送信し、GMはDelay_Respを送信します。
ethanalyzerでキャプチャされたパケットがない場合は、プライオリティの問題である可能性があります。Nexus 3kが優先順位の低いPTPパケット(または優先順位が等しい場合はクロッククラス)を受信すると、パケットは廃棄され、CPUにパントされません。
6.最善の方法は、パケットキャプチャ(GMとBCの間のパケットを取得するため)を実行して、BCがGMと同期していない理由を確認することです。キャプチャから、GMから送信される「Announce」メッセージを確認することで、GMから送信されるPTPプライオリティを確認できます。優先度がBCで設定された優先度より低い(数値が高い)場合、BCのPTP優先度を数値に変更します。
7. BC(Nexus3k)がGMと同期しているが、ダウンストリームホスト/サーバが同期されていない場合は、ホスト/サーバから「Delay_Req_Message」を探します。存在しない場合、ホスト/サーバのPTPデーモンに問題があります。