如何配置 NTP 具有 TAI 或 GPS 时间参考?

如何配置 NTP 具有 TAI 或 GPS 时间参考?

对于我们的项目,我们希望所有服务器和系统都同步到线性时间参考(无需闰秒)。

因此,我们将放弃 UTC,但对广告非常感兴趣台湾时间(或者GPS 时间)。

我们的时间服务器将连接到原子钟(或可能是 GPS 接收器)。

NTP 是否适合通告 TAI 或 GPS 时间?如果适合,如何配置?

我们是否应该使用其他协议来宣传这个时间?

最后说明:据我所知,Linux 内核没有可配置的 TAI 或 GPS 时间。我想我们最好的选择是通过将内核时间配置为 UTC 并为其提供 TAI 或 GPS 时间来“伪造”它。或者有更好的选择吗?

答案1

您可以在自己控制的独立网络上创建自己的时间标准。这有点笨拙。为了实现这一点,您必须将所有计算机配置为仅与您控制的时间服务器同步。我提供了四种可能性。我认为您最好的选择是第一种或第二种,具体取决于您的时间限制有多严格。

请记住,对于以下所有选项,您需要确保服务器没有跳跃文件,并且没有任何计算机向外界询问时间。

  1. ntpd 参考实现与无纪律的本地时钟 (推荐/最简单):

    如果您希望 ntp 服务器提供不同于 UTC 的时间,这非常简单。将硬件/内核时钟设置为您需要的任何假时间。然后配置 ntpd 以使用 Undisciplined Local Clock 驱动程序 (127.127.1.x) 并且不使用外部时钟。ntp 服务器将顺利运行并提供本地时钟。一个问题是,由于您使用的是本地时钟驱动程序,因此时间将不稳定,并且会以毫秒为单位向某个方向漂移,因为石英晶体不是铷原子参考。如果您需要假时间和稳定性,则需要使用选项 #2。

  2. 带有 ULC 和 PPS 源的 ntpd 参考实现(推荐/稳定):

    使用上面描述的 ULC 并添加 PPS 源。添加 PPS 源后,您需要在 ntp.conf 中为 ULC 条目添加首选关键字。这意味着服务器的时钟保持稳定,因为 PPS 源会为您计时每一秒。

  3. 具有外部时钟规则和本地时钟驱动程序的 ntpd 参考实现(复杂):

    这仍然是一个依赖于使用 ntpd 参考实现的解决方案,但我对它不太熟悉。我所能做的就是给你提供更多详细信息的链接: http://www.eecis.udel.edu/~mills/ntp/html/extern.html

  4. Jans - 第三方 ntp 测试工具(比#3更容易,但实体不明)

    我没有使用过该产品,但我从 ntp 邮件列表中知道它。它允许您使用服务器伪造时间,但它不像参考实现那样执行任何时钟规则。更多信息:http://www.vanheusden.com/time/jans/

答案2

根据NTP 项目关于此主题的页面,您这样做是错误的。 UTC 作为一个假设深深嵌入在 NTP 中,但“正确”的时区文件通常是可用的 - 我的桌面是 Fedora 20,它们作为软件包的标准部分tzdata,位于 中/usr/share/zoneinfo/right/

不要尝试让 NTP 将时钟同步到非 UTC 标准,而是让 NTP 保持时钟同步于 UTC,并让系统从符合 TAI 的时区文件中获取其标准时区,以便为所有请求的应用程序以 TAI 格式表示此时间。

相关内容