Red Hat Training

A Red Hat training course is available for RHEL 8

第 34 章 在 chrony 中实现一些之前被 NTP 支持的设置

chrony 不支持一些在之前的 Red Hat Enterprise Linux 主要版本中被 ntp 支持的设置。以下小节列出了这些设置,并描述了在使用 chrony 的系统中达到它们的方法

34.1. 使用 ntpq 和 ntpdc 进行监控

chronyd 无法被来自 ntp 发行版本的 ntpq 和 ntpdc 监控,因为 chrony 不支持 NTP 模式 6 和 7。它支持不同的协议,chronyc 是一个客户端的实现。详情请查看 chronyc(1) man page。

要监控使用 chronyd 的系统时钟的状态,您可以:

  • 使用 tracking 命令
  • 使用支持 chronyntpstat 工具,它提供类似于用于它的输出 ntpd

例 34.1. 使用跟踪命令

$ chronyc -n tracking
Reference ID    : 0A051B0A (10.5.27.10)
Stratum         : 2
Ref time (UTC)  : Thu Mar 08 15:46:20 2018
System time     : 0.000000338 seconds slow of NTP time
Last offset     : +0.000339408 seconds
RMS offset      : 0.000339408 seconds
Frequency       : 2.968 ppm slow
Residual freq   : +0.001 ppm
Skew            : 3.336 ppm
Root delay      : 0.157559142 seconds
Root dispersion : 0.001339232 seconds
Update interval : 64.5 seconds
Leap status     : Normal

例 34.2. 使用 ntpstat 程序

$ ntpstat
synchronised to NTP server (10.5.27.10) at stratum 2
   time correct to within 80 ms
   polling server every 64 s

34.2. 使用基于公钥加密的认证机制

在 Red Hat Enterprise Linux 7 中, ntp 支持 Autokey,它是一个基于公钥加密的认证机制。 chronyd 不支持 Autokey。

在 Red Hat Enterprise Linux 8 系统中,建议您使用对称密钥。使用 chronyc keygen 命令生成密钥。客户端和服务器需要共享在 /etc/chrony.keys 中指定的密钥。客户端可以使用 serverpoolpeer 指令中的 key 选项启用身份验证。

34.3. 使用临时对称关联

在 Red Hat Enterprise Linux 7 中, ntpd 支持临时对称关联,该关联可由来自对等的数据包加载,这些数据包没有在 ntp.conf 配置文件中指定。在 Red Hat Enterprise Linux 8 中, chronyd 都需要在 chrony.conf 中指定所有对等者。不支持临时对称关联。

请注意,使用 serverpool 指令启用的客户端/服务器模式与 peer 指令启用的对称模式相比更为安全。

34.4. 多播/广播客户端

Red Hat Enterprise Linux 7 支持广播/多播 NTP 模式,该模式简化了客户端配置。使用这个模式,可将客户端配置为侦听发送到多播/广播地址的数据包,而不是侦听单个服务器的具体名称或地址(这些内容可能会随时间改变)。

在 Red Hat Enterprise Linux 8 中, chronyd 不支持广播/多播模式。主要的原因是它比一般的客户端/服务器以及对称模式的准确性较低且安全性较低。

NTP 广播/多播设置中迁移有几个选项:

  • 将 DNS 配置为将单个名称(如 ntp.example.com)转换为不同服务器的多个地址。

    客户端只能使用单一池指令来与多个服务器同步进行静态配置。如果池中的服务器变得不可访问,或者不适合同步,客户端会自动将其替换为池中的另一台服务器。

  • 通过 DHCP 分配 NTP 服务器列表

    当 NetworkManager 从 DHCP 服务器获得 NTP 服务器列表时, chronyd 会自动配置为使用它们。这个功能可以通过在 /etc/sysconfig/network 文件中添加 PEERNTP=no 来禁用。

  • 使用 Precision Time Protocol (PTP)

    这个选项主要适用于服务器经常更改的环境,或者大量的客户端需要在没有指定服务器的情况下相互同步。

    PTP 它被设计为多播消息,它的工作方式与 NTP 广播模式相似。PTP 软件包中包括了一个 linuxptp 实现。

    PTP 通常需要硬件时间戳并支持网络开关执行正常。但是,即使使用软件时间戳且不支持网络交换机, PTP 也比广播模式中的 NTP 更好地工作。

    在同一个通信路径中有大量 PTP slave 的网络中,建议使用 hybrid_e2e 选项配置 PTP 从设备,以便减少从设备生成的网络流量数量。您可以将运行 chronyd 的计算机配置为 NTP 客户端,可能还会作为 PTP grandmaster 操作,使用多播消息向大量计算机分发同步时间。NTP