Jen*_*der 35 time-synchronization
我已经多次阅读(虽然我现在找不到它)数据中心付出了巨大的努力来确保所有服务器都具有完全相同的时间。包括但不限于担心闰秒。
为什么服务器具有相同的时间如此重要?实际公差是多少?
Mic*_*ton 53
通常,时间戳用于各种身份验证协议以帮助防止重放攻击,其中攻击者可以重用他能够窃取的身份验证令牌(例如通过嗅探网络)。
例如,Kerberos 身份验证就是这样做的。在 Windows 使用的 Kerberos 版本中,默认容差为 5 分钟。
这也被用于双因素身份验证的各种一次性密码协议使用,例如 Google Authenticator、RSA SecurID 等。在这些情况下,容差通常约为 30-60 秒。
如果客户端和服务器之间没有时间同步,就不可能完成身份验证。(最新版本的 MIT Kerberos 通过让请求者和 KDC 在身份验证期间确定它们的时钟之间的偏移量来删除此限制,但这些更改发生在 Windows Server 2012 R2 之后,您需要一段时间才能在 Windows 中看到它版本。但 2FA 的一些实现可能总是需要同步时钟。)
时钟同步可以更轻松地处理不同的系统。例如,如果所有系统都具有相同的时间,那么关联来自多个服务器的日志条目就会容易得多。在这些情况下,您通常可以使用 NTP 提供的 1 秒容差,但理想情况下,您希望时间尽可能紧密同步。PTP 提供了更严格的容差,但实施起来可能要昂贵得多。
Mik*_*ott 17
主要是为了让您可以关联来自不同设备上的日志的事件。假设您有一个安全事件,有人通过您的 Web 服务器访问您的数据库——您希望防火墙、负载均衡器、Web 服务器和数据库服务器上的时间戳全部匹配,以便您可以找到每个设备上的日志与事件有关的。理想情况下,您希望一切都在几毫秒之内。并且它需要与实际的外部时间同步,以便在必要时您还可以将您的日志与第三方日志相关联。
从管理的角度来看,这不仅很重要,而且从应用程序级别的相关性来看,时钟同步也很重要。这取决于解决方案的设计方式,运行的应用程序如何获取它们可能处理的任何事务的时间戳。我已经看到事务验证失败,因为与它与之交互的其他应用程序相比,在服务器上运行的应用程序偏移量太大(未来大约 20 秒)。
此外,如果在例如 VMWare ESXi 服务器上进行虚拟化,并且 VM 的时间与管理程序的时间不同步,则诸如 vmotion 之类的操作可能会与管理程序重新同步 VM 时钟,这反过来会导致不可预测的结果如果时差足够大。
我不知道任何实际的容差是什么,因为我认为这在很大程度上取决于系统的类型,但我认为一般来说,保持数据中心中的服务器彼此之间的偏移小于一秒是可以实现的。
| 归档时间: |
|
| 查看次数: |
11231 次 |
| 最近记录: |