我在 AWS 上的 VPC 公共子网中有一个 NAT 服务器。它对自己的 NTP 设置非常满意,所以我想,没问题,让我们让所有私有子网都使用此服务器作为其指定的时间同步服务器。
如果/etc/ntp.conf
我将服务器设置为我的 NAT 实例的公共 DNS,则一切正常。但是,如果我将其设置为 NAT 实例的公共 IP 地址,则它永远不会建立连接。例如,如果ntpdate
我运行得到no servers can be used
。
无论是否/etc/ntp.conf
将设置为公共 IP 或公共 DNS,如果我运行ntpq -p
,我都会看到远程地址指向公共 DNS 而不是 IP(我不明白这有什么关系,除非在 IP 和 DNS 之间发生文字模式匹配,而这是失败的原因)。
我对此进行了研究,试图查看是否有明确指出 IP 是不可行的,但实际上我发现的说法恰恰相反。
为每个要轮询时间同步的服务器添加一个条目。您可以为此条目使用 DNS 名称或点分四路 IP 地址(例如 10.0.0.254)。http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
诚然,这是一个私有 IP,但如果公共 DNS 有效,那么公共 IP 也应该有效,因为公共 DNS 只是对公共 IP 的查找。
它运行正常,但我感到困惑。有人能解释一下吗?我觉得我这里缺少了基本的知识。
编辑:
需要澄清的是,当我修改时etc/ntp.conf
,我是在我的私有子网上的服务器上进行的。我引用的公共 DNS(或 IP)是 NAT,因为他们将使用该服务器来同步他们的时间。NAT 服务器正在使用公共 NTP 池来保持其时间正常。
答案1
您不应为此使用公共 IP。这样做会产生带宽费用,而且没有必要。
如果您确实想要托管自己的 NTP(您实际上不应该这样做),请为您的服务器的私有 IP 创建一个 DNS 名称并让您的客户端使用该名称。
但实际上,你不应该这样做。为了拥有健康的 NTP 设置,你的客户端应该轮询三个不同的服务器。如果我是你,我只会将你的客户端配置为使用 NTP 池中的三个服务器,然后就完成了。这样你就少了一个需要监控和维护的系统。