技术中心

您现在的位置:化工生意网 > 技术首页 > 技术交流

NTP授时系统、NTP时间同步系统、NTP时钟同步系统

2011年08月17日 12:50:29人气:278来源:上海锐呈电气有限公司

 以下介绍了网络时钟服务器、网络时钟同步服务器、NTP服务器的设置

 
-----------------------------------------------------
服务配置:
相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter *没有设定,那就表示该 IP (或网域) 『没有任何限制!』
 
#   设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作.
 
下述设置以时钟源服务器IP地址为192.168.0.12为例。
 
可以命令ntpstat和ntpq -p 查看本机NTPD服务状态。配置完成后,均需要重新启动NTPD服务 service ntpd restart
 
在linux下,我们可以通过自带的NTP(Network Time Protocol)协议通过网络使自己的系统保持的时间。可用的公共时间服务器列表可以从下面的地址获取:
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
 
NTP是用来使系统和一个的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易,介绍一下环境:12为本地时间服务器,其他服务器和12同步。12和网上时间服务器同步。
 
一、配置12时间服务器
1、首先查询NTP软件版本
rpm -qa|grep ntp
ntp-4.2.2p1-9.el5.centos
如果没有可以从linux安装盘上查找,安装此ntp包
 
2、编辑配置文件
vim /etc/ntp.conf
 
首先定义服务器
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
restrict default nomodify notrap noquery
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap #从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间。如果你的服务器所用的版本在4.2之后的话,请将'notrust'选项去掉。
 
注释掉以下一行
#restrict default ignore
 
3、启动NTP服务器
#chkconfig ntpd on
#/etc/init.d/ntpd start
#/etc/init.d/ntpd stop
#/etc/init.d/ntpd restart
 
默认情况下,我们配置的NTP服务器不会去时间源那里同步时间,所以必须修改/etc/ntp/step-tickers文件,加入我们的时间源,这样每次通过/etc/init.d/ntpd 来启动服务的时候就会自动更新时间了
检查服务器同步状态:
 
ntpq -p
ntptrace 192.168.0.12
 
如果输出正确,则说明时间服务器成功。每次启动服务器,会自动同步时间。
 
配置LINUX客户端
在linux客户端上执行ntpdate ntp_server_ip 就可以根据时间服务器统一局域网的时间了,将上面的命令放到cron里每天早上3点定期执行,crontab –e 然后输入
0 3 * * * /usr/sbin/ntpdate 192.168.0.12
 
-----------------------------------------------------
排错:
错误1.Server dropped: Strata too high
 
在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。
在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
 
这是因为NTP server还没有和其自身或者它的server同步上。
以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。
server 127.127.1.0
fudge 127.127.1.0 stratum 8 
 
在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。
 
那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:
# watch ntpq -p
 
将会出现:
Every 2.0s: ntpq -p                                                                                                       Sun Apr  4 15:54:54 2010
remote           refid     st t when poll reach   delay   offset  jitter
==============================================================================
61.129.42.44    24.88.26.231     3 u   46   64  377    5.437  1096572 442044.
Hshh.org        66.220.9.122     2 u   52   64  377    5.483  727058. 301203.
122.226.192.4   192.43.244.18    2 u   52   64  377    5.239  606225. 353469.
*LOCAL(0)        .LOCL.          10 l   48   64  377    0.000    0.000   0.002
 
注意LOCAL的这个就是与自身同步的ntp server。
 
注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。
 
错误2.Server dropped: no data
 
从客户端执行netdate –d时有错误信息如下:
root@ubuserv:~# ntpdate -d ntp.freeoa.net
4 Apr 23:55:44 ntpdate[4138]: ntpdate 4.2.4p4@1.1520 -o Wed May 13 21:05:58 UTC 2009 (1)
transmit(192.168.0.12)
receive(192.168.0.12)
transmit(192.168.0.12)
receive(192.168.0.12)
transmit(192.168.0.12)
receive(192.168.0.12)
transmit(192.168.0.12)
receive(192.168.0.12)
transmit(192.168.0.12)
192.168.0.12: Server dropped: strata too high
server 192.168.0.12, port 123
stratum 16, precision -19, leap 11, trust 000
refid [192.168.0.12], delay 0.02582, dispersion 0.00026
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036 14:28:16.000
originate timestamp: cf62c29a.698153be  Sun, Apr  4 2010 15:47:38.412
transmit timestamp:  cf633500.c066d373  Sun, Apr  4 2010 23:55:44.751
filter delay:  0.02600  0.02583  0.02592  0.02582 
0.00000  0.00000  0.00000  0.00000 
filter offset: -29286.3 -29286.3 -29286.3 -29286.3
0.000000 0.000000 0.000000 0.000000
delay 0.02582, dispersion 0.00026
offset -29286.339566
 
4 Apr 23:55:44 ntpdate[4138]: no server suitable for synchronization found
 
出现这个问题的原因可能有2:
 
1)检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。
 
使用以下命令检查 ntp的版本:
# ntpq -c version
 
下面是来自ntp*的说明:
The behavior of notrust changed between versions 4.1 and 4.2.
In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".
In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd
 
解决:
把notrust去掉。
 
2)检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。
 
可以用命令
#service iptables stop
 
来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。
 

     公司名称:上海锐呈电气有限公司

地址:上海市翔殷路128号上海理工大学国家科技园1号楼

200433

51816732

:魏元栋

rcdq123@163.com

QQ1078860159

http://www.ruicheng-china.cn

      http://www.afzhan.com/St40821

全年征稿/资讯合作 联系邮箱:31food@vip.qq.com
版权与免责声明
1、凡本网注明"来源:化工生意网"的所有作品,版权均属于化工生意网,转载请必须注明化工生意网,https://www.chem31.com。违反者本网将追究相关法律责任。
2、企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3、本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
4、如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。