Menu Close

第 29 章 带有 HW 时间戳的 Chrony

硬件时间戳是一些网络接口控制器(NIC)中支持的一项功能,它提供了准确的传入和传出数据包的时间戳。NTP 时间戳通常由内核及使用系统时钟的 chronyd 创建。但是,当启用 HW 时间戳时,NIC 使用其自己的时钟在数据包进入或离开链路层或物理层时生成时间戳。与 NTP 一起使用时,硬件时间戳可能会显著提高同步的准确性。为了获得最佳准确性,NTP 服务器和 NTP 客户端都需要使用硬件时间戳。在理想的情况下,有可能有微秒级的准确性。

另一个用于使用硬件时间戳进行时间同步的协议是 PTP

NTP 不同,PTP 依赖于网络交换机和路由器。如果您想要达到同步的最佳准确性,请在带有 PTP 支持的网络中使用 PTP,在使用不支持这个协议的交换机和路由器的网络上选择 NTP

以下小节描述了如何进行:

  • 验证硬件时间戳支持
  • 启用硬件时间戳
  • 配置客户端轮询间隔
  • 启用交集模式
  • 为大量客户端配置服务器
  • 验证硬件时间戳
  • 配置 PTP-NTP 网桥

29.1. 验证硬件时间戳支持

要验证接口是否支持使用 NTP 的硬件时间戳,请使用 ethtool -T 命令。如果 ethtool 列出了 SOF_TIMESTAMPING_TX_HARDWARESOF_TIMESTAMPING_TX_SOFTWARE 模式,以及 HWTSTAMP_FILTER_ ALL 过滤器模式,则可以使用硬件时间戳的 NTP

例 29.1. 在特定接口中验证硬件时间戳支持

# ethtool -T eth0

输出:

Timestamping parameters for eth0:
Capabilities:
        hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
        software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
        hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
        software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
        software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
        hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
        off                   (HWTSTAMP_TX_OFF)
        on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        all                   (HWTSTAMP_FILTER_ALL)
        ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
        ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
        ptpv2-l4-sync         (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
        ptpv2-l4-delay-req    (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
        ptpv2-l2-sync         (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
        ptpv2-l2-delay-req    (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
        ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)
        ptpv2-sync            (HWTSTAMP_FILTER_PTP_V2_SYNC)
        ptpv2-delay-req       (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)