AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 655027
Accepted
ndemou
ndemou
Asked: 2014-12-28 12:07:35 +0800 CST2014-12-28 12:07:35 +0800 CST 2014-12-28 12:07:35 +0800 CST

一些服务器的正确 NTP 配置

  • 772

我在一个小型网络中有大约 20 台 Linux 服务器,我需要它们的时钟彼此接近(例如,在 20 毫秒内)。我已经开始将它们中的每一个同步到 europe.pool.ntp.org 并且工作已经完成。

现在我有两个问题:

  1. 我是游泳池的明显负担吗?即,如果我从 20 台服务器或 2 台服务器访问,它对池有什么明显的影响吗?
  2. 如果它确实有所不同,那么让我的子网保持同步并使池处于轻负载状态的设置/配置是什么?有针对大型网络的指南(http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101),但我没有找到针对小型网络的指南。
ntp
  • 2 2 个回答
  • 5380 Views

2 个回答

  • Voted
  1. Best Answer
    ndemou
    2014-12-31T02:08:48+08:002014-12-31T02:08:48+08:00
    1. 我是游泳池的明显负担吗?即,如果我从 20 台服务器或 2 台服务器访问,它对池有什么明显的影响吗?

    鉴于该池多年来一直需要服务器(请参阅 [1]),我想说尽管 2 或 20 台服务器并没有真正产生影响,但您应该始终记住,您并不孤单。因此,您最好考虑说 1000 名管理员,在这种情况下,我们正在谈论 2000 或 20000 台服务器,这确实会产生影响。

    1. 如果它确实有所不同,那么让我的子网保持同步并使池处于轻负载状态的设置/配置是什么?

    您必须将网络中的两个 [2] 服务器与池同步(我们称它们为Primary NTP Servers),然后将所有其他服务器同步到这两个服务器。这种方法还有一个优点,就是所有服务器之间的时间会更加匹配(小于 1 毫秒)。这符合 IETF 最佳实践。

    1) 主 NTP 服务器的配置

    server将 ntp[d].conf 的和行替换为restrict以下内容,并将其余部分保留为您的发行版默认值 [3]:

    peer 10.11.12.1  iburst
    #      ^^^^^^^^^^^
    #      The LAN IP of the _other_ Primary NTP server 
    server 0.europe.pool.ntp.org 
    server 1.europe.pool.ntp.org 
    server 2.europe.pool.ntp.org 
    server 3.europe.pool.ntp.org 
    restrict -4 default kod notrap nomodify nopeer noquery
    restrict -6 default kod notrap nomodify nopeer noquery
    restrict 127.0.0.1
    restrict ::1
    

    请注意,此配置还允许来自 Internet 上的主机通过 NTP 查询来查询您的主机时间。如果您不想,请使用防火墙。在我的示例中,10.11.12.1 和 10.11.12.2 是主 NTP 服务器的 IP(它们有两张网卡,一张面向公共互联网,一张面向本地 10.11.12.x 子网)。每个主 NTP 服务器都将另一个声明为对等点(对等点基本上意味着服务器和客户端 - 您将另一台主机用作时间源,而另一台主机也将您用作时间源)。所以调整第一行的IP,让每个Primary NTP Server的配置指向另一个作为对等点。有关我选择使用 4 个服务器的信息,请参阅 [4]。

    2) 所有其他服务器的配置

    2A) 如果您有两个网络接口

    您最好使用第二个接口来创建本地子网(例如10.11.12.0/24)并将其用于 NTP 查询。在这种情况下,限制线可以更紧。因此,再次将 ntp[d].conf 的server和restrict行替换为以下内容,并将其余部分保留为您的发行版默认值 [3]:

    restrict -4 default ignore
    restrict -6 default ignore
    restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer noquery
    restrict 127.0.0.1
    restrict ::1
    
    # Only use our Primary NTP Servers
    server 10.11.12.1 iburst
    server 10.11.12.2 iburst
    #      ^^^^^^^^^^
    #      The IPs of your 2 Primary NTP Servers
    

    2B) 如果您没有两个网络接口

    您应该使用下面的限制行(并阅读上面关于使用防火墙阻止访问您的 NTP 服务器的说明)。因此,再次将 ntp[d].conf 的server和restrict行替换为以下内容,并将其余部分保留为您的发行版默认值 [3]:

    restrict -4 default kod notrap nomodify nopeer noquery
    restrict -6 default kod notrap nomodify nopeer noquery
    restrict 127.0.0.1
    restrict ::1
    
    # Only use our Primary NTP Servers
    server 10.11.12.1 iburst
    server 10.11.12.2 iburst
    #      ^^^^^^^^^^
    #      The IPs of your 2 Primary NTP Servers
    

    笔记

    [1]从 2006 年到 2012 年,他们不断要求更多服务器加入:2006 年的请求、2009年的请求和2012年的请求。查看www.pool.ntp.org了解当前状态的更新。

    [2]仅建议将两个主 NTP 服务器作为一种简单的方式来获得冗余,而无需复杂的高可用性安排。您可能出于其他原因选择 3 或 4(再次阅读IETF 最佳实践)

    [3]实际上,无论您的发行版如何,您需要在 ntpd 配置中包含的唯一其他内容是定义一个目录以放置漂移文件及其名称的行 - 例如driftfile /var/lib/ntp/ntp.drift. 我已经在 CentOS、Debian 和 Ubuntu 中测试了我的解决方案。我猜它适用于大多数其他发行版。

    [4]我按照最佳实践配置了 4 个池服务器。配置超过 4 台服务器在技术上是可以接受的,但是您会增加 NTP 池的负载以获得有问题的可用性增益,所以不要这样做。在最佳实践中,我看到“从 ntp-4.2.6 开始,'pool' 指令将启动“足够”的关联以提供强大的时间服务”,所以如果您使用 .pool。像我在这里做的地址和 ntp >=4.2.6 服务器行的确切数量可能无关紧要。

    咆哮哦!我讨厌 NTP(除了我喜欢它的工作原理)。官方文档充满了过时的信息,他们有“我如何使用它?” 信息与有关内部的科学细节混合在一起。我也讨厌restrict 127.0.0.1真正的意思allow everything for 127.0.0.1


    更新历史

    我已经iburst从本地 NTP 服务器的配置中删除了该选项,因为它们对池的友好性值得商榷。(看评论)。删除它们只会为第一次同步增加几分钟的等待时间。


    学分

    SF 用户 Marki 和 Sven 的评论和回答为这个答案提供了一个很好的起点。感谢他们俩。还要感谢 SF 用户 BACON 多年后纠正了一个严重错误(ndemou 定律:“给予足够的眼球和无限的时间,所有错误都是浅薄的”)

    • 8
  2. Sven
    2014-12-28T12:26:53+08:002014-12-28T12:26:53+08:00

    通常的方法是使用分层设置 - 您将网络中的一或两台服务器与池同步,然后将它们用作本地时间源。这个级别在 NTP 术语中称为分层。

    另外,请考虑一下:如果您像您描述的那样执行此操作,它不会真正引人注目,但是如果您的大小为 1000 个站点,那么您最终会收到 20k 个大多数不必要的请求,并且在某些时候,它会变得很明显。

    阅读http://en.wikipedia.org/wiki/Network_Time_Protocol

    • 6

相关问题

  • 网络时间服务器的 DHCP 选项

  • 公共 NTP 服务器

  • 时间同步和计划任务

  • 时间漂移

  • Windows Server 无法可靠地同步 NTP 时间

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve