ntp底层是什么协议的?


对于企业用户,在Web服务器安全搭建时,如果您网内所有计算机都通过互联网同步时间,在速度和精度上都有一定的折扣,并且对互联网出口带宽也有一定的影响,对于这类用户,我们建议通过自己搭建ntp服务为内部用户提供时间同步服务。NTP网络时间协议基本概念它是用来同步网络中各个计算机的时间的协议。在计算机的世界里,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NTP(NetworkTimeProtocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止恶毒的协议攻击。0层的服务器采用的是原子钟、GPS钟等物理设备,stratum1与stratum0是直接相连的,往后的stratum与上一层stratum通过网络相连,同一层的server也可以交互。在Linux系统下搭建ntp服务是非常简单的,即便你对Linux不熟悉,只需要简单的几个操作就够用了,下面是几个必要的步骤:

1、安装你熟悉的操作系统(这里假设你安装的是CentOS6)。

2、查看是否已经安装ntp程序,在终端上运行如下命令:#rpm-qa|grepntpntp-4.2.4p8-2.el6.centos.x86_64ntpdate-4.2.4p8-2.el6.centos.x86_64如果看到这两个软件包,说明已经安装好了ntp程序。否则通过如下命令安装yuminstallntp3、修改/etc/ntp.conf文件,增加如下服务器地址:maxpoll6servertime.hko.hkmaxpoll6server133.243.238.163maxpoll6server193.190.230.65maxpoll6server220.maxpoll6启动ntpd程序,并让系统下次启动时默认启动ntpd程序:chkconfigntpdonservicentpdstart4、修改防火墙规则iptables-IINPUT-mudp-pudp--dport123-jACCEPTip6tables-IINPUT-mudp-pudp--dport123-jACCEPTserviceiptablessaveserviceip6tablessave经过一段时间的同步,你就可以通过如下命令来测试你机器是否可以正常服务了ntpdate-qSERVER_IP搭建NTP服务器可能的问题1、noserversuitableforsynchronizationfound原因:ntpd启动过程需要5分钟左右!(或者ntpd根本没有启动)在ntpserver上重新启动ntp服务后,ntpserver自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生noserversuitableforsynchronizationfound的错误。那么如何知道何时ntpserver完成了和自身同步的过程呢?在ntpserver上使用命令:watchntpq出现画面:**注意**LOCAL的这个就是与自身同步的ntpserver,而reach这个值,在启动ntpserver服务后,就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。如果之后从ntp客户端同步ntpserver还失败的话,用ntpdate–d来查询详细错误信息,再做判断。

2、Serverdropped:stratatoohigh”的错误,并且显示“stratum16”修改fudgeserver的stratum为0~153、Serverdropped:nodata从客户端执行ntpdate–dserver_ip(debug模式)时有错误信息:Serverdropped:nodata.ntp服务器出现这个问题的原因可能有2种:

(1)检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误(版本差异),解决方法是把notrust去掉。#ntpq-cversion

(2)检查ntpserver的防火墙,可能是server的防火墙屏蔽了upd123端口。可以用下面命令来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。#