我们的管理员无法在同步的各种机器上获得超过500毫秒的时钟.我猜对了,this post意味着我们应该能够让linux盒子在源和对方的2毫秒内同步.
解决方法
首先,您需要一个NTP主源.因此,您的一台Linux服务器将成为主服务器.我将创建一个名为time.example.com的DNS A记录(假设example.com是域).这样,如果你的主人移动你不需要更新其他19个服务器.
在主服务器上,您需要具有适当配置的ntp.conf文件.
这是我们的主/etc/ntp.conf文件之一.请注意,这是一个使用172.17.x.x的私有地址空间(RFC1918)的数据中心,因此您需要相应地进行调整.如果您需要多个主服务器,请创建多个具有不同IP的DNS A记录,以便在需要时获得一些容错能力.
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 server 0.north-america.pool.ntp.org server 1.north-america.pool.ntp.org server 2.north-america.pool.ntp.org server 3.north-america.pool.ntp.org # Logging & Stats statistics loopstats statsdir /var/log/ntp/ filegen peerstats file peers type day link enable filegen loopstats file loops type day link enable # Drift file. Put this in a directory which the daemon can write to. # No symbolic links allowed,either,since the daemon updates the file # by creating a temporary in the same directory and then rename()'ing # it to the file. # driftfile /etc/ntp/drift broadcastdelay 0.008 restrict default noquery nomodify restrict 0.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery restrict 1.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery restrict 2.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery restrict 3.north-america.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery # Allow LAN to query us restrict 172.17.0.0 mask 255.255.0.0 nomodify notrap # Trust ourselves. :-) restrict 127.0.0.1
现在在每个客户端上,我们有一个/etc/ntp.conf文件,如下所示:
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 server time.example.com # Drift file. Put this in a directory which the daemon can write to. # No symbolic links allowed,since the daemon updates the file # by creating a temporary in the same directory and then rename()'ing # it to the file. driftfile /etc/ntp/drift multicastclient # listen on default 224.0.1.1 broadcastdelay 0.008 # Don't serve time or stats to anyone else by default (more secure) restrict default noquery nomodify restrict time.example.com mask 255.255.255.255 nomodify notrap noquery # Allow LAN to query us restrict 172.17.0.0 mask 255.255.0.0 nomodify notrap # Trust ourselves. :-) restrict 127.0.0.1
使用ntpq命令查看与其同步的服务器.
它为您提供了已配置的时间服务器列表和延迟,
您的服务器遇到的偏移和抖动.
为了正确同步,应该是延迟和偏移值
非零且抖动值应小于100.
同样在我们的客户端节点上,我们有一个rc脚本(/etc/rc.d/rc.local),它在启动NTPD守护进程之前同步时钟.以下是重要部分……它们依赖于订单.
将客户端的时钟与主时间源同步
/usr/sbin / ntpdate -b time.example.com
启动NTPD守护程序,允许在启动期间进行大量时间调整.
/usr/sbin / ntpd -g -x
最后,根据您的设置,您需要打开防火墙规则以允许time.example.com主服务器通过UDP端口访问公共Internet.这是一个典型且适当放置的IPTables规则
iptables -t nat -A POSTROUTING -o $PUB_IF -p udp –dport 123 -j MASQUERADE
PUB_IF是公共接口(eth0,eth1,等等)