NTP(Network Time Protocol)服务 是最常用的时间同步服务。
搭建流程如下:
假设外部时钟源的IP地址为192.168.10.11,MDSP内部的NTP server的IP地址为192.168.10.222。
操作步骤
以root用户登录作为NTP server的单板。
在“/etc”目录下的“ntp.conf”文件中配置NTP server信息。
# cd /etc
# vi ntp.conf
找到如下内容
server 192.168.10.111 # local clock (LCL)
fudge 192.168.10.111 stratum 10 # LCL is unsynchronized
在上述内容前面增加外部时钟源的IP地址:
server 192.168.10.11这里“server”后面的IP地址代表本机时钟同步的方向。
“192.168.10.11”服务器作为主用时钟源,“192.168.10.111”服务器作为备用时钟源。
如果“192.168.10.11”故障或网络中断,则时钟源自动切换到“192.168.10.111”服务器。
stratum后面的参数表示时钟源的级别,取值范围为1~15,数值越小,时钟源的级别越高。优先使用级别高的时钟源进行时间同步。
执行ntptrace NTP 192.168.10.11命令可以查看时钟源的级别,其中“192.168.10.11”为NTP server的IP。
在“ntp.conf”文件中增加如下内容:
restrict default nomodify notrap noquery
restrict 10.10.3.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap上面的内容表示:
默认不允许其他机器修改本NTP server的时间。
允许10.10.3.0/24和192.168.10.0/24这两个网段的客户端根据本NTP server时间来校对本机时间,但不允许其修改本NTP server的时间。可以根据实际情况修改允许访问的网段。
说明:
10.10.3.0/24和192.168.10.0/24这两个网段即实际的业务网段,本文只是举例说明,如果有多个实际业务网段,请咨询现场网络工程师把所有需要做时钟同步的网段都添加至配置文件。
保存退出。
启动NTP服务。
执行如下命令。
# /etc/init.d/ntp start
系统显示如下信息。
Starting network time protocol daemon (NTPD) done
执行如下命令检查NTP服务启动结果。
# /etc/init.d/ntp status
系统显示类似如下信息,表示NTP服务启动成功。
Checking for network time protocol daemon (NTPD): running
设置NTP服务开机自动启动。
执行如下命令。
# chkconfig ntp on
执行chkconfig -l ntp命令检查设置结果。
系统显示类似如下信息,表示操作成功。
ntp 0:off 1:off 2:on 3:on 4:off 5:on 6:off
执行如下命令,确认123端口已开放。
# netstat -unl | grep 123
系统显示类似如下信息,表示操作成功。
udp 0 0 192.168.10.222:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
udp 0 0 :::123 :::* 说明:
显示的行数与本机配置的IP地址个数有关。
执行如下命令,检查时间同步情况。
ntpq -p
系统显示如下内容。
remote refid st t when poll reach delay offset jitter
=========================================================================
*192.168.10.11 LOCAL(0) 10 l 53 64 377 0.000 0.000 0.008如果配置了多个外部时钟源,则显示的信息会有多行,每行代表一个外部时钟源的状态。最左边有*的行表示目前正在使用这台服务器同步时钟,说明这台外部时钟源有响应且时间最精确。
异常处理
出现如下场景,需要重启NTP server的NTP服务:
与外部时钟源有较长时间断连。
外部时钟源手工调整了时间。
上述两种情况下,NTP server会一直以内部时钟提供服务,不会再从外部时钟源同步时间。
没有外部时钟源的情况下,使用date命令重设了NTP服务器时间。
此种情况下,如果不重启NTP服务,客户端将不再从NTP server同步时间。
因修改夏令时规则等原因,造成NTP服务器时间跳变超过1000S时,必须重启NTP服务器的NTP服务。
重启NTP服务器的NTP服务后还需要执行如下操作:
停止NTP客户端NTP服务
# /etc/init.d/ntp stop
手动同步全网时间
在网络内所有单板上执行ntpd -q -g命令同步时间。
说明:
本操作需要在重启NTP服务器的NTP服务5~6分钟后执行,否则可能导致同步时间失败。
启动NTP客户端NTP服务
# /etc/init.d/ntp start