##################################################################################
实验环境:Red Hat 6.8
vmware workstation 12.5
NTP Server Name:ocbsap01
NTP client Name: ocbsweb01
实验目的:架设一台ntp服务器,使用internet中的ntp服务器进行网络校时,
并允许子网192.168.10.0/24中的客户机通过该服务器进行网络校时
实验外网NTP地址: cn.pool.ntp.org
###################################################################################
NTP服务器Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
协议使用的UDP 123端口
#####################Server 端操作#####################################
1、检查ntp软件是否安装,这里安装的是系统自带版本ntp-4.2.6p5-10.el6.x86_64
|
2、编辑NTP配置文件/etc/ntp.conf,先备份一下,然后echo > /etc/ntp.conf清空文件复制如下配置
restrict 参数解释:
restrict 控制相关权限。
语法为: restrict IP地址 mask 子网掩码 参数
其中IP地址也可以是default ,default 就是指所有的IP、
参数有以下几个:
ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap : 不提供trap远端登陆:拒绝为匹配的主机提供模式,控制消息陷阱服务。陷阱服务是ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
nopeer : 用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
kod : 访问违规时发送 KoD 包。
restrict -6 表示IPV6地址的权限设置。
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!
2.1 配置文件内容如下:
|
3、启动ntp服务
[root@ocbsap01 etc]# service ntpd start
正在启动 ntpd: [确定]
4、查看ntp Server状态
[root@ocbsap01 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*time6.aliyun.co 10.137.38.86 2 u 5 16 1 48.348 43.397 0.000相关参数解释:
remote: 指最先响应这个请求的NTP服务器的名称
refid: 指给本地NTP服务器提供时间同步的上级NTP服务器源。
st: 该值用来表示上级NTP服务器源的层级别。由于NTP是层型结构,有顶端的服务器,多层的NTP服务器源,再到客户端。所以服务器从高到低级别可以设定为1-16。为了减缓负荷和网络堵塞,原则上应该避免直接连接到层级别为1的服务器上。
t: 该值用来表示远程服务器的类型,有如下类型:u代表单播或多播的客户端,b代表广播或组播服务器,l代表本地(参考时钟),s代表同级NTP服务器, A代表多播服务器,B代表广播服务器,M代表组播服务器
when: 该值为自上次接收到数据包的时间距离当前的时间值
poll: 该值为本地NTP服务器和上级NTP服务器源的轮询间隔,即双方每过多久同步一次(单位为秒)。在NTP刚开始运行时,poll值会比较小,此时和上级NTP服务器源同步的频率就会增加,因此可以尽快调整到正确的时间范围内。之后poll值就会逐渐增大,同步的频率也就会相应减小。
reach:这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
delay:该值为本地NTP服务器和上级NTP服务器源的NTP报文的往返时延。
offset:该值为本地NTP服务器和上级NTP服务器源的时间差值。该值越接近0,我们和上级NTP服务器源的时间就越准确。(日常
jitter:该值是用来统计在特定个连续的连接数里面offset(时间差值)的分布情况。该数值的绝对值越小,我们和上级NTP服务器源的时间就越准确。
#####################Client 端操作#####################################
1、使用ntpdate命令,检查命令是否安装如果没有安装rpm安装一下
|
测试修改目前clent端的时间。
[root@ocbsweb01 ~]# date -s 2014/05/05
2014年 05月 05日 星期一 00:00:00 CST
[root@ocbsweb01 ~]# date
2014年 05月 05日 星期一 00:00:01 CST2、client端从server端同步时间
|
备注:注意防火墙关闭,ntpd启动后客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。
3、client 自动同步时间,编辑/etc/ntp.conf,chkconfig ntpd --level 35 on
注销如下行
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst添加server 192.168.10.128 minpoll 4 maxpoll 4 perfer 或主机名即可 即可
#########################Client端验证操作#############################
1、查看ntp服务器有无和上层ntp连通,这里能看到NTP Server的IP,如下显示说明clent和ntp server之前通讯没有问题
|
2、使用ntpdate -d 192.168.10.128 进行时间服务验证,并查看同步详细信息
|
####################################常见报错#####################################################
1、当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found
错误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完成了和自身同步的过程呢?
错误2.Server dropped: no data
从客户端执行netdate -d时有错误信息如下:
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
192.168.30.22: Server dropped: no data
server 192.168.30.22, port 123
.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found出现这个问题的原因可能是:
检查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去掉。
















