我在设置 NTP 以在独立网络上保持时间时遇到问题。这将是一个岛屿时区。问题是时间会分开,即使在它们最初同步之后也是如此。
有两个运行 RHEL 5.4 的冗余 NTP 服务器和几个 Windows XP 客户端。要求是网络同步到服务器 A,而服务器 B 作为备份。我们确实有一个 GPS 作为时间服务器控制服务器 A 和服务器 B,但它并不总是可用。当 GPS 存在时,两个服务器都会同步到 GPS。
一旦服务器分开,XP 客户端似乎分成两组;一些跟随服务器 A 和其他服务器 B。
如何防止我的两台服务器分开?
我可以控制 XP 客户端跟随哪个服务器吗?
两个ntp.conf文件如下
服务器 A ( 10.203.224.13) 的ntp.conf
# Tweek NTP's behavior
tinker panic 0 step 0.01 stepout 64
# GPS
server 10.203.220.12 burst iburst minpoll 4 maxpoll 6
# Server A
server 10.203.224.13 burst iburst minpoll 4 maxpoll 6
# Server B
server 10.203.224.14 burst iburst minpoll 4 maxpoll 6
# Configure the local clock to serve from
server 127.127.1.1
fudge 127.127.1.1 stratum 11
# Establish the drift file location
driftfile /etc/ntp.drift
Run Code Online (Sandbox Code Playgroud)
服务器 B 的 ntp.conf ( 10.203.224.14)
# Tweek NTP's behavior
tinker panic 0 step 0.01 stepout 64
# GPS
server 10.203.220.12 burst iburst minpoll 4 maxpoll 6
# Server A
server 10.203.224.13 burst iburst minpoll 4 maxpoll 6
# Server B
server 10.203.224.14 burst iburst minpoll 4 maxpoll 6
# Configure the local clock to serve from
server 127.127.1.1
fudge 127.127.1.1 stratum 13
# Establish the drift file location
driftfile /etc/ntp.drift
Run Code Online (Sandbox Code Playgroud)
在服务器 A
[root@serverA]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.203.220.12 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.203.224.13 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.203.224.14 LOCAL(1) 14 u 27 64 377 0.312 359.753 0.289
*LOCAL(1) .LOCL. 11 l 55 64 377 0.000 0.000 0.001
Run Code Online (Sandbox Code Playgroud)
在服务器 B
[root@serverB]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.203.220.12 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.203.224.13 LOCAL(1) 12 u 55 64 377 0.346 -359.56 0.107
10.203.224.14 .INIT. 16 u - 64 0 0.000 0.000 0.000
*LOCAL(1) .LOCL. 13 l 54 64 377 0.000 0.000 0.001
Run Code Online (Sandbox Code Playgroud)
在服务器 A 上,删除指向自身和服务器 B 的线路,只留下“捏造”的本地时钟线路和 GPS。在服务器 B 上,删除“fudge”线和服务器 B 线,仅保留服务器 A 线和 GPS。
这个想法是服务器 A 应该使用 GPS(如果可用),否则它应该信任自己的时钟。服务器 B 应该使用服务器 A,无论服务器 A 获取时间或 GPS。如果允许服务器 B 信任自己,它将向其客户端通告可靠的时间源,即使该时间与服务器 A 的时间不同 - 这就是您所看到的。