副标题[/!--empirenews.page--]
《NTP中间服务器(Relay Server)设置及其日常维护》要点: 本文介绍了NTP中间服务器(Relay Server)设置及其日常维护,希望对您有用。如果有疑问,可以联系我们。
NTP(Network Time Protocol)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击.
NTP顶级时钟源都是由国际组织管理维护的,那么我们如何自己架设一个NTP中间服务器(NP Relay Server),以及NTP服务器日常维护都需要关注些什么呢?请往下看……
1. 架设一个NTP Relay Server其实非常简单,我们先把需要的RPM包装上
# rpm -ivh ntp-4.2.2p1-5.el5.rpm
2. 找到在互联网上给我们提供同步服务的NTP Server,可以在TekTea前面文章提到的pool.ntp.org上找你所在地区的上级NTP服务器,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server,那么在中国大陆就可以选择下面这两个服务器(这两个域名分别解析到中国大陆和香港地区)
cn.pool.ntp.org
hk.pool.ntp.org
3. 在打开NTP服务器之前先和这些服务器做一个同步,使得我们机器的时间尽量接近标准时间,这里我们可以用ntpdate命令
# ntpdate cn.pool.ntp.org
6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
# ntpdate hk.pool.ntp.org
6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec
4. 假如你的时间差的很离谱的话第一次会看到调整的幅度比较大,所以保险起见可以运行两次,那么为什么在打开NTP服务之前先要手动运行同步呢?
1)因为根据NTP的设置,如果你的系统时间比正确时间要快的话那么NTP是不会帮你调整的,所以要么你把时间设置回去,要么先做一个手动同步
2)当你的时间设置和NTP服务器的时间相差很大的时候,NTP会花上较长一段时间进行调整,所以手动同步可以减少这段时间
5. 配置和运行NTP Server
现在我们就来创建NTP的配置文件了,它就是/etc/ntp.conf. 我们只需要加入上面的NTP Server和一个driftfile就可以了
# vi /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
非常的简单,接下来我们就启动NTP Server,并且设置其在开机后自动运行
# /etc/init.d/ntpd start
# chkconfig –level 35 ntpd on
6. 查看NTP服务的运行状况
现在我们已经启动了NTP的服务,但是我们的系统时间到底和服务器同步了没有呢?为此NTP提供了一个很好的查看工具: ntpq (NTP query)
我建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里我们可以使用watch命令来查看一段时间内服务器各项数值的变化
# watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:45 2007
remote refid st t when poll reach delay offset jitter
==============================================================================
+193.60.199.75 193.62.22.98 2 u 52 64 377 8.578 10.203 289.032
*mozart.musicbox 192.5.41.41 2 u 54 64 377 19.301 -60.218 292.411
现在我就来解释一下其中的含义
remote:
它指的就是本地机器所连接的远程NTP服务器
refid:
它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
st:
远程服务器的级别,由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端,所以服务器从高到低级别可以设定为1-16,为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
t:
这个…..我也不知道啥意思^_^
when:
我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
poll:
本地机和远程服务器多少时间进行一次同步(单位为秒),在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
reach:
这是一个八进制值,用来测试能否和服务器连接,每成功连接一次它的值就会增加
delay:
从本地机发送同步要求到服务器的round trip time
offset:
这是个最关键的值,它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
jitter:
这是一个用来做统计的值,它统计了在特定个连续的连接数里offset的分布情况,简单地说这个数值的绝对值越小我们和服务器的时间就越精确
那么大家细心的话就会发现两个问题: 第一我们连接的是cn.pool.ntp.org为什么和remote server不一样?第二那个最前面的+和*都是什么意思呢?
第一个问题不难理解,因为NTP提供给我们的是一个cluster server所以每次连接的得到的服务器都有可能是不一样.同样这也告诉我们了在指定NTP Server的时候应该使用hostname而不是IP.
第二个问题和第一个相关,既然有这么多的服务器就是为了在发生问题的时候其他的服务器还可以正常地给我们提供服务.那么如何知道这些服务器的状态呢?这就是第一个记号会告诉我们的信息
*
它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+
它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
–
远程服务器被clustering algorithm认为是不合格的NTP Server
x
远程服务器不可用
了解这些之后我们就可以实时监测我们系统的时间同步状况了
(编辑:源码门户网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|