簡介
精確時間協定(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的可擴充性源於以下事實:該協定具有邊界時鐘(BC)的概念,邊界時鐘可以是遠離主控(GM)時鐘的多個物理/邏輯躍點,並且充當包含時間戳的消息的重新校準點。Nexus 3k廣泛部署在資料中心(DC)中,充當BC,為連線到區域網(LAN)的伺服器提供準確的時序。 BC和GM只需要通過第3層(ip連線)到達。在GM和PTP終端客戶端之間可以有多層BC。可以有多個GM來提供冗餘,並且 Nexus 3K將通過最佳主時鐘(BMC)演算法選擇最佳的GM。
貢獻者:尼沙德·莫希烏丁
編輯者:庫馬爾·斯里達爾
PTP配置:
N3k(config)# feature 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大師級」,因此禁用此功能以與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裝置型別:邊界時鐘
時鐘標識: 00:62:ec:ff:fe:40:05:81
時鐘域:0
PTP埠數:2
優先順序1 :1
優先順序2:1
時鐘品質:
類:248
準確性:254
偏移(日誌差異):65535
從主偏移量:0
平均路徑延遲:0
刪除的步驟:0
本地時鐘時間:6月5日週一00:00:23 2017
N3k# show ptp parent
PTP父屬性
父時鐘:
父時鐘標識: 00:0c:ec:ff:fe:08:12:b1
父埠號:1
觀察到的父偏移(日誌差異):不適用
觀察到的父時鐘相位變化率:不適用
大師級時鐘:
大師級時鐘標識: 00:0c:ec:ff:fe:08:12:b1
大師級時鐘品質:
類:6 <<<<
準確性:32
偏移(日誌差異):22752
優先順序1:128
優先順序2:128
N3k# show ptp brief
PTP埠狀態
-----------------------
埠狀態
------- --------------
Eth1/5從裝置<<< To GM
Eth1/24 Master <<< to Host
Eth1/24偵聽<<<未檢測到有效的GM或主機
N3k#show run |在時鐘(檢查時鐘協定)
N3k#show ptp counters all(用於檢查PTP消息(如Sync、Announce、Delay_Req、Delay_Resp等)的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
延遲請求0 0
PDelay資源0 0
PDelay後續活動0 0
管理0 0
----------------------------------------------------------------
N3k#show ptp corrections(檢查PTP更正時間戳)
PTP過去更正
----------------------------------------------------------------------------------------------------------------
從埠SUP時間校正(ns)平均路徑延遲(ns)
---------- ----------------------------------------------- ------------------ ------------------
Eth1/24 6月5日週一05:48:45 2017 171026 -51 1806
Eth1/24 6月5日週一05:48:46 2017 171727 -2 1806
Eth1/24 6月5日週一05:48:47 2017 173329 -47 1806
Eth1/24 6月5日05:48:48 2017 174047 86 1806
Eth1/24 6月5日週一05:48:49 2017 175690 -55 1794
Eth1/24 6月5日週一05:48:50 2017 235577 -6 1794
Eth1/24 6月5日週一05:48:51 2017 178035 -44 1794
Eth1/24 6月5日週一05:48:52 2017 178804 83 1794
Eth1/24 6月5日週一05:48:53 2017 180371 35 1794
Eth1/24 6月5日週一05:48:54 2017 181839 -48 1794
Eth1/24 6月5日週一05:48:55 2017 183667 -42 1794
Eth1/24 6月5日週一05:48:56 2017 184423 -5 1794
Eth1/24 6月5日週一05:48:57 2017 186030 113 1794
Eth1/24 6月5日週一05:48:58 2017 186653 -48 1794
Eth1/24 6月5日週一05:48:59 2017 188298 -6 1794
Eth1/24 6月5日週一05:49:00 2017 189000 -88 1794
<snip>
疑難排解:
1.檢查您是否能從PTP(單播連線)對GM執行ping。
2.檢查時鐘協定,它應該是PTP,通過
N3k#show run |在時鐘中
3.預設情況下,N3K具有「特級大師能力」。需要通過
N3k# 無ptp大師級支援
4.使用show ptp brief命令檢查埠狀態是否為「Listening」。
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守護程式存在問題。