在 Ubuntu 中设置 NTPD 以同步 Windows AD

在 Ubuntu 中设置 NTPD 以同步 Windows AD

我正在设置我的 Ubuntu 10.0.4 服务器以与 Windows 2008 AD 同步时钟。由于所有“远程”前面都没有“*”(最糟糕的是前面有一个空格),这是否意味着没有选择时间同步源?偏移量一直在增加。我试过了ntpdate到同一台服务器,一切正常。

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 172.18.133.201  .LOCL.           1 u   38   64  377    0.827  277.677  58.375

有什么帮助可以解决这个问题吗?

这是我的 ntp.conf(已删除所有注释)

driftfile /var/lib/ntp/ntp.drift     

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

server 172.18.133.201 iburst

以下是 ntpdata、ntpq 和 ntptime 的结果:

master@ds02:~$ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 172.18.133.201  .LOCL.           1 u   38   64  377    1.094  527.521   8.092
master@ds02:~$
master@ds02:~$ ntpdc -c sysstat
time since restart:     15349
time since reset:       15349
packets received:       2163
packets processed:      246
current version:        0
previous version:       246
bad version:            0
access denied:          0
bad length or format:   0
bad authentication:     0
rate exceeded:          0

master@ds02:~$ ntpdate -d 172.18.133.201
18 Sep 13:51:42 ntpdate[12661]: ntpdate [email protected] Tue Apr 19 07:08:19 UTC 2011 (1)
Looking for host 172.18.133.201 and service ntp
host found : windc01.dom01.com
transmit(172.18.133.201)
receive(172.18.133.201)
transmit(172.18.133.201)
receive(172.18.133.201)
transmit(172.18.133.201)
receive(172.18.133.201)
transmit(172.18.133.201)
receive(172.18.133.201)
transmit(172.18.133.201)
server 172.18.133.201, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.04182, dispersion 0.00066
transmitted 4, in filter 4
reference time:    d40246c6.e7e11e93  Tue, Sep 18 2012  9:03:02.905
originate timestamp: d4028a6f.6657e747  Tue, Sep 18 2012 13:51:43.399
transmit timestamp:  d4028a6e.dc7980f5  Tue, Sep 18 2012 13:51:42.861
filter delay:  0.04202  0.04189  0.04182  0.04193
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.540268 0.539520 0.538873 0.538204
         0.000000 0.000000 0.000000 0.000000
delay 0.04182, dispersion 0.00066
offset 0.538873    
18 Sep 13:51:42 ntpdate[12661]: step time server 172.18.133.201 offset 0.538873 sec

master@ds02:~$ ntptime
ntp_gettime() returns code 5 (ERROR)
  time d4028a79.7d1947a0  Tue, Sep 18 2012 13:51:53.488, (.488667603),
  maximum error 7705516 us, estimated error 16 us
ntp_adjtime() returns code 5 (ERROR)
  modes 0x0 (),
  offset 0.000 us, frequency 0.000 ppm, interval 1 s,
  maximum error 7705516 us, estimated error 16 us,
  status 0x2040 (UNSYNC,NANO),
  time constant 0, precision 0.001 us, tolerance 500 ppm,

ntpq 的 rv 结果:

ntpq> rv 45516
assID=45516 status=9014 reach, conf, 1 event, event_reach,
srcadr=windc01.dom01.com, srcport=123, dstadr=172.18.133.53,
dstport=123, leap=00, stratum=1, precision=-6, rootdelay=0.000,
rootdispersion=10300.171, refid=LOCL, reach=001, unreach=1, hmode=3,
pmode=4, hpoll=6, ppoll=6, flash=400 peer_dist, keyid=0, ttl=0,
offset=746.777, delay=0.587, dispersion=15.594, jitter=7.193,
reftime=d40246c6.e7346994  Tue, Sep 18 2012  9:03:02.903,
org=d402a6d2.ec1198ae  Tue, Sep 18 2012 15:52:50.922,
rec=d402a6d2.2cf807c0  Tue, Sep 18 2012 15:52:50.175,
xmt=d402a6d2.2cd18fe0  Tue, Sep 18 2012 15:52:50.175,
filtdelay=     0.59    0.64    0.59    0.65    0.61    0.67    0.50    0.65,
filtoffset=  746.78  749.88  753.20  756.30  759.51  747.08  750.40  753.52,
filtdisp=     15.63   15.66   15.69   15.72   15.75   15.78   15.81   15.84

答案1

是的,这意味着没有选择时间源。refid 显示本地,您是否在 ntp.conf 文件中注释掉了本地 fudge 时钟行。

此外,我从经验中知道,与 Windows AD 服务器同步时存在问题,我自己也曾见过这种情况,RHEL 服务器从 Windows AD 获取时间。AD 服务器使用什么时间源。在调试客户端之前,您可以省略 AD 服务器并使用一些公共池 NTP 服务器来查看这实际上不是 NTP 服务器的问题。

如果您决心在 AD 服务器和 ubuntu 机器之间同步,那么以下输出可能会有所帮助。

ntpq -pn

ntpdc -c sysstat

ntpdate -d <time-server-ip>

ntptime

在 root 提示符下运行 ntpq,然后在 shell 中运行这些。关联 rv

这应该会提供一些其他的线索。

答案2

我最近也遇到了同样的问题,按照 VMWare 主页上的指南进行操作我能够将 Linux NTP 时钟与 Windows AD 同步:

默认情况下,未同步的 Windows 服务器会选择 10 秒的分散度,并在每次轮询间隔中增加分散度以保持同步。默认情况下,ESXi/ESX 主机不接受任何根分散度大于 1.5 秒的 NTP 回复。

由于 ESX:es 也运行 ntp,因此相同的解决方案也适用于 Ubuntu:将以下行添加到 ntp.conf,然后重新加载守护程序:

tos maxdist 30

相关内容