设置 NTP 服务器

设置 NTP 服务器

我在设置 NTP 以在独立网络上保持时间时遇到了问题。这将是一个孤岛时区。问题是,即使最初已同步,时间也会漂移。

有两个运行 RHEL 5.4 的冗余 NTP 服务器和多个 Windows XP 客户端。要求是网络同步到服务器 A,而服务器 B 充当备份。我们确实有一个 GPS,它充当控制服务器 A 和服务器 B 的时间服务器,但它并不总是可用的。当 GPS 存在时,两个服务器都会同步到 GPS。

一旦服务器分开,XP 客户端似乎就会分成两组;一组跟随服务器 A,另一组跟随服务器 B。

我怎样才能防止我的两台服务器渐行渐远?

我可以控制 XP 客户端跟随哪个服务器吗?

两个ntp.conf文件如下

服务器 A 的 ntp.conf ( 10.203.224.13)

# 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 

服务器 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

在服务器 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

在服务器 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

答案1

在服务器 A 上,删除指向其自身和服务器 B 的线路,只留下“fudge”本地时钟线路和 GPS。在服务器 B 上,删除“fudge”线路和服务器 B 线路,只留下服务器 A 线路和 GPS。

这个想法是,如果 GPS 可用,服务器 A 应该使用它,否则它应该信任自己的时钟。无论服务器 A 如何获取时间,服务器 B 都应该使用服务器 A,或者使用 GPS。如果允许服务器 B 信任自己,它将向其客户端通告一个可靠的时间源,即使该时间与服务器 A 的时间不同 - 这就是您所看到的。

答案2

这里存在一些问题:

  1. GPS 设备无法正常工作。这很可能是连接问题。要么是防火墙阻止了数据包,要么是防火墙没有监听正确的接口,要么是防火墙无法接收 GPS 信号,或者类似情况。可能是您提到的间歇性不可用。如果是这样,请尝试显示它ntpq -p何时正常工作。
  2. GPS 是层 16。当它工作时,它应该是 1。任何高于 11 的值都会导致与您遇到的相同问题,因为服务器 A 比 11 或更高级别的任何值更信任它的本地时钟。
  3. 服务器 A 配置为从服务器 B 获取时间,服务器 B 配置为从服务器 A 获取时间。这种设置应该是对等关系,而不是循环主/从关系。为此使用peer关键字,而不是关键字。server
  4. 服务器 A 和服务器 B 都设置为通过 ntp 协议使用自身作为时间源。这是多余的,并且不起作用。连接失败或当前层数为 16,无法再提高。
  5. 两台服务器都选择了自己的时钟作为最可靠的时间源(由源旁边的 * 表示)LOCAL。它们也都设法相互连接。我不确定为什么服务器 B 没有选择服务器 A 作为最佳时间源,因为它具有最低的层值,但可能是因为它的抖动明显高于时间LOCAL源。

让 GPS 工作起来,将两台服务器改为相互对等,并删除从其自己的 IP 地址获取时间的线路。(本地时钟很好,但为本地时钟添加网络协议的延迟是愚蠢的。)

相关内容