1 需求分析
为服务器群提供统一的时间同步方案。
2 实施规划
2.1 NTP时间服务器
NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
2.2 NTP工作原理
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC源的远近将所有服务器归入不同的Stratun(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。
为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
在基本条件下,NTP客户端发出时间请求,与时间服务器交换时间,这个交换的结果是,客户端能计算出时间的延迟,它的弥补值,并调整与服务器时间同步。通常情况下,在设置的初始,在5至10分钟有内6次交换。一旦同步后,每10分钟与服务器时间进行一次同步,通常要求单一信息交换。冗余服务器和不同的网络路径用于保证可靠性的精确度,除了客户端/服务器商的同步以外,NTP还支持同等计算机的广播同步。NTP在设计上是高度容错和可升级。时间按NTP服务器的等级传播。
2.3 NTP服务器的规划
由于NTP服务器所需资源很少,不需要单独一台服务器部署此服务,集成到某台linux主机上即可。
2.4 NTP服务器前期准备
操作系统版本:RedHat EL 6.4默认桌面安装
暂停防火墙:service iptables stop;
3 实施步骤
3.1 NTP服务器的配置
3.1.1理解NTP服务器的配置文件
NTP服务器包括四个配置文件:
目录名称 |
应用功能说明 |
/etc/ntp.conf |
Ntp服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同 |
/usr/share/zoneinfo |
规定了各主要时区的时间设定文件,例如*地区的时区设置文件时/usr/share/zoneinfo/Asia/Shanghai |
/etc/sysconfig/clock |
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为“ZONE=Asia/Shanghai”,这表示linux系统的时间设定使用/usr/share/zoneinfo/Asia/Shanghai这个文件 |
/etc/localtime |
本地系统的时间设定文件,如果clock文件里规定使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,linux操作系统将会Shanghai那个文件复制一份为/etc/localtime,所以系统时间会以Shanghai那个时间设定文件为准 |
与 NTP 及系统时间有关的执行文件包括以下几个:
命令名称 |
命令应用功能说明 |
/bin/date |
Linux系统上面日期与时间修改及输出命令 |
/sbin/hwclock |
主机的BIOS时间与Linux系统时间是分开的,所以使用date这个指令调整时间之后,只是调整了linux的系统时间,还需要使用hwclock才能将修改过后的时间写入BISO。这个命令必须root用户才能执行 |
/usr/sbin/ntpd |
NTP服务的守护进程文件,需要启动它才能提供NTP服务 |
/usr/sbin/ntpdate |
NTP客户端用来连接NTP服务器命令文件 |
/usr/sbin/ntpq |
标准的网络计时协议(NTP)查询程序 |
/usr/sbin/ntptrace |
跟踪网络计时协议主机链到他们的控制时间源 |
/sbin/clock |
调整RTC时间。RTC是电脑内置硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设定成与硬件时钟之间时间一致,或是把系统时间回存到硬件时钟 |
3.1.2 NTP服务安装
1)由于Red Hat EL6.4已经默认安装
2)如未安装可通过YUM源进行安装:yum install ntp �Cy
3.1.3配置NTP服务/etc/ntp.conf
1)修改配置文件如下图:
/etc/ntp.conf配置文件详解:
权限的设定主要以 restrict 这个参数来设定,格式如下:
restrict IP地址 mask 子网掩码参数
其中IP可以是IP地址,也可以是default,default就是指所有的IP。
参数有以下几个:
ignore:关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery:不提供客户端的时间查询
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制。
用server这个参数设定上级时间服务器,格式如下:
server IP地址或域名 [prefer]
IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示NTP服务器主要以该部主机时间进行校准。
driftfile格式如下:
driftfile文件名
在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。
3.1.4 查看NTP的运行状态
需要耐心等待5~15分钟,等待NTP触发与上级NTP服务器联系,并且此时客户端连接服务端的同时也会报错。
ntpq �Cp命令的选项详解:
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服务器源的时间就越准确。
上级NTP服务器状态:
* 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+ 它将作为辅助的NTPServer和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
-远程服务器被clustering algorithm(聚类算法)认为是不合格的NTP服务器
" "(空格) 没有响应的NTP服务器
x 远程服务器不可用
ntpstat命令选项详解:
查看与上级NTP连接是否正常。
3.1.5 国内主要时间服务器表
国内时间服务器名称 |
IP地址或域名 |
国家授时中心服务器 |
210.72.145.44 |
上海交通大学网络中心NTP服务器 |
202.120.2.101 |
北京邮电大学 |
s1a.time.edu.cn |
清华大学 |
s1b.time.edu.cn |
3.2 客户端配置
3.2.1 Linux客户端配置
1)编辑/etc/crontab文件以便执行定期同步NTP服务器
3.2.2 Windows客户端配置
4 配置注意事项
关闭防火墙。
若必须开启防火墙时,请打开UDP123的防火墙策略。
本文出自 “Linux菜鸟” 博客,请务必保留此出处http://lythjq.blog.51cto.com/8902270/1603266