简介
精确时间协议(PTP)是一种分布式纳秒精度定时同步协议,用于数据包网络。PTP的准确性来自交换机和服务器网络接口卡(NIC)中对PTP的硬件支持。PTP使用组播组224.0.1.129和UDP端口319和320。当前PTP标准是IEEE 1588-2008精确时间协议(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)#功能ptp
此命令在交换机上启用PTP。
N3k(config)# ptp source <ip address>
此命令指定交换机生成的PTP数据包的源IP地址。
N3k(config)#接口以太网插槽/端口
N3k(config-if)# ptp
此命令在端口上启用PTP。Cisco Nexus 3548是边界时钟,因此它同时具有主端口和从端口。主端口和从端口之间没有配置差异。它们都配置了“ptp”选项,BMC算法将确定端口是PTP从端口还是主端口。
N3k(config)#时钟协议ptp
此命令将交换机配置为使用PTP更新系统日历。此配置使交换机的时钟与PTP保持同步。不启用此命令不会阻止交换机在其主端口上传播PTP时钟。但是,时间源将是Nexus本地时钟。
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
配置本地(振荡器)时钟的优先级值。数值越低表示优先级越高。
N3k(config)#不支持ptp grandmaster
默认情况下,Nexus 3k是“ptp grandmaster-capable”,因此禁用此功能可与GM同步。
接口下的可选参数(配置以将参数与GM匹配):
N3k(config)#接口以太网插槽/端口
N3k(config-if)# ptp delay-request minimum interval 3
N3k(config-if)# ptp announce interval 2(N3k(config-if)# ptp announce interval 2)
N3k(config-if)# ptp同步间隔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
当地时钟时间:2017年6月5日星期一00:00:23
N3k#显示ptp父级
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#显示ptp brief
PTP端口状态
—
端口状态
—
Eth1/5从<<<朝GM
Eth1/24主<<<朝主机
Eth1/24侦听<<未检测到有效GM或主机
N3k#show run |在时钟中(以检查时钟协议)
N3k#show ptp counters all(以检查PTP消息的Tx和Rx,如同步、通告、Delay_Req、Delay_Resp等)
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#显示ptp更正(以检查PTP更正时间戳)
PTP过去的更正
—
从端口SUP时间校正(ns)MeanPath延迟(ns)
— —
Eth1/24周一6月5日05:48:45 2017 171026 -51 1806
Eth1/24 2017年6月5日星期一05:48:46 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 GrandMaster
4.使用show ptp brief命令检查端口状态是否为“侦听”。
5.然后进行Ethanalyzer捕获。
ethanalyzer本地接口入站 — hi捕获 — 过滤器“udp port 320” limit-captured-frames 0 <<<通告和跟进
ethanalyzer本地接口入站 — hi捕获 — 过滤器“udp port 319” limit-captured-frames 0 <<< Sync
从PTP GM端将显示“通告”和“同步”消息。 T客户端将发送Delay_Req,GM将发送Delay_Resp。
如果EthAnalyzer中未捕获任何数据包,则可能是优先级问题。如果Nexus 3k接收优先级较低的PTP数据包(或在优先级相等时的时钟类),它将丢弃该数据包,不会传送到CPU。
6.最佳方法是执行数据包捕获(获取GM和BC之间的数据包),以了解BC为何不与GM同步。从捕获中,我们可以通过查看来自GM的“通告”消息来验证GM发送的PTP优先级。如果优先级低于BC中配置的优先级(较高的数字值),则将BC的PTP优先级更改为较高的数字值。
7.如果BC(Nexus3k)与GM同步,但下游主机/服务器不同步,则从主机/服务器查找“Delay_Req_Message”。如果不存在,则主机/服务器中的PTP守护程序出现问题。