004.NTP多层级架设

2019-07-01 14:11:12 浏览数 (1)

一 环境需求

1.1 需求

User-client:局域网所有节点主机;

IN-NTP Server:隐藏于局域网内部的NTP服务器;

Border-NTP:边界NTP服务器,用于同步外部时钟,同时对内部IN-NTP服务器提供校对;

亚洲授时中心:公网NTP授时中心。

内部局域网所有节点client需要和IN-NTP Server同步,IN-NTP Server对外隐藏,同时通过 Border-NTP进行同步, Border-NTP边界NTP服务器实时同步公网授时中心。

1.2 架构

主机名

IP

备注

border_ntp

内网IP:172.24.8.71

边界NTP服务器

in_ntp01

172.24.8.72

内部NTP服务器01

in_ntp02

172.24.8.73

内部NTP服务器02

client

172.24.8.74

模拟局域网内部客户端节点

注意:

  • Border-NTP部署在边界上,作为和互联网(亚洲授时中心)同步,同时为局域网内部IN-NTP提供同步服务。
  • User-client,包括所有局域网内客户端等,从两台(一主一备)IN-NTP进行同步。

二 Border-NTP配置

2.1 服务包安装

代码语言:javascript复制
  1 [root@border_ntp ~]# rpm -qa | grep ntp
  2 [root@border_ntp ~]# yum -y install ntp			#安装ntp服务

2.2 ntp配置

代码语言:javascript复制
  1 [root@border_ntp ~]# vi /etc/ntp.conf
  2 driftfile /var/lib/ntp/drift
  3 #定义与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
  4 driftfile   /var/lib/ntp/drift
  5 pidfile     /var/run/ntpd.pid				#进程pid文件
  6 logfile     /var/log/ntp.log				#开启日志记录
  7 #定义与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
  8 
  9 restrict default nomodify notrap nopeer noquery	        #默认拒绝所有NTP连接
 10 restrict 127.0.0.1
 11 restrict ::1 						#开启本地授权
 12 
 13 restrict 172.24.8.72 mask 255.255.255.255 nomodify notrap	#添加IN-NTP Server允许校时
 14 restrict 172.24.8.73 mask 255.255.255.255 nomodify notrap	#添加IN-NTP Server允许校时
 15 
 16 #server 0.cn.pool.ntp.org
 17 #server 1.asia.pool.ntp.org
 18 #restrict 0.cn.pool.ntp.org nomodify notrap noquery
 19 #restrict 1.asia.pool.ntp.org nomodify notrap noquery
 20 #添加Border-NTP的上一级时间中心,即亚洲授时中心服务器,此处建议注释,转而采用国内阿里云时钟,相对网络更稳定,如下。
 21 server ntp1.aliyun.com iburst minpoll 4 maxpoll 10
 22 restrict ntp1.aliyun.com nomodify notrap nopeer noquery
 23 server ntp2.aliyun.com iburst minpoll 4 maxpoll 10
 24 restrict ntp2.aliyun.com nomodify notrap nopeer noquery
 25 #允许阿里授时中心修改本地时间。
 26 server 127.127.1.0
 27 fudge 127.127.1.0 stratum 4
 28 #当授时不可用,采用本地时间,stratum级别为4。

2.3 其他配置

代码语言:javascript复制
  1 [root@border_ntp ~]# chown ntp:ntp /var/log/ntp.log
  2 [root@border_ntp ~]# chcon -t ntpd_log_t /var/log/ntp.log
  3 [root@border_ntp ~]# firewall-cmd --permanent --add-service=ntp
  4 [root@border_ntp ~]# firewall-cmd --reload
  5 [root@border_ntp ~]# setenforce 0

提示:若开启日志功能,需要ntp进程具备写入日志权限。同时防火墙开放ntp服务,SELinux写入上下文授权。

建议:若没有特殊必要,建议关闭SELinux和防火墙。

2.4 开启服务

代码语言:javascript复制
  1 [root@border_ntp ~]# systemctl start ntpd.service
  2 [root@border_ntp ~]# systemctl enable ntpd.service

提示:开启ntp server后,需要等待一定时间(通常为5分钟以内),才能实现和亚洲授时中心的同步。

2.5 验证

代码语言:javascript复制
  1 [root@border_ntp ~]# ntpq -np

提示:ntpq相关含义见附录一。

三 IN-NTP Server配置

3.1 服务包安装

代码语言:javascript复制
  1 [root@in_ntp01 ~]# rpm -qa | grep ntp			#查看是否安装ntp
  2 [root@in_ntp01 ~]# yum -y install ntp			#安装ntp服务

3.2 ntp配置

代码语言:javascript复制
  1 [root@in_ntp01 ~]# vi /etc/ntp.conf
  2 driftfile   /var/lib/ntp/drift
  3 pidfile     /var/run/ntpd.pid				#进程pid文件
  4 logfile     /var/log/ntp.log				#开启日志记录
  5 #定义与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
  6 tinker stepout 0
  7 restrict    default ignore				        #默认拒绝所有连接
  8 restrict -6 default ignore				        #默认拒绝所有ipv6连接
  9 restrict    127.0.0.1
 10 restrict    -6 ::1					        #开启本地授权
 11 
 12 restrict 172.24.8.0 mask 255.255.255.0 nomodify notrap	#允许局域网内网段校时
 13 
 14 restirct 172.24.8.71 nomodify notrap nopeer noquery
 15 #允许根据上一级时间修改本地时间
 16 server 172.24.8.71  iburst minpoll 3 maxpoll 3 prefer
 17 #添加上一层Border-NTP服务地址
 18 
 19 #peer 172.24.8.72 iburst minpoll 4 maxpoll 6
 20 #peer 172.24.8.73 iburst minpoll 4 maxpoll 6
 21 #服务器接收其他服务器的地址,同时也会为其他设备提供NTP服务器,即互相同步,用于在孤岛环境中,若同时具备上层时钟,可注释掉。
 22 
 23 server 127.127.1.0
 24 fudge 127.127.1.0 stratum 8			#上一级不可用,使用本地时间,stratum为8

3.3 其他配置

参考2.3.

3.4 开启服务

代码语言:javascript复制
  1 [root@in_ntp01 ~]# systemctl start ntpd
  2 [root@in_ntp01 ~]# systemctl enable ntpd

3.5 验证

代码语言:javascript复制
  1 [root@in_ntp01 ~]# ntpq -np

注意:两台IN-NTP Server都需要配置。

四 user-client配置

4.1 服务包安装

代码语言:javascript复制
  1 [root@client ~]# rpm -qa | grep ntp			#查看是否安装ntp
  2 [root@client ~]# yum -y install ntp			#安装ntp服务

4.2 ntp配置

代码语言:javascript复制
  1 [root@client ~]# vi /etc/ntp.conf
  2 driftfile   /var/lib/ntp/drift
  3 pidfile     /var/run/ntpd.pid				#进程pid文件
  4 logfile     /var/log/ntp.log				#开启日志记录
  5 #定义与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
  6 
  7 tinker panic 600
  8 #当client和server时差在600秒以内,使用渐变调整client时间,超过600秒,ntpd进程自动终止,需要手动进行调整。
  9 restrict    default ignore				        #默认拒绝所有连接
 10 restrict -6 default ignore				        #默认拒绝所有ipv6连接
 11 restrict    127.0.0.1					#开启本地授权
 12 
 13 restrict 172.24.8.72 nomodify notrap noquery		#允许根据上一级时间修改本地时间
 14 restrict 172.24.8.73 nomodify notrap noquery		#允许根据上一级时间修改本地时间
 15 
 16 server 172.24.8.72 iburst minpoll 4 maxpoll 6 prefer
 17 server 172.24.8.73 iburst minpoll 4 maxpoll 6

4.3 其他配置

参考2.3.

4.4 开启服务

代码语言:javascript复制
  1 [root@client ~]# systemctl start ntpd
  2 [root@client ~]# systemctl enable ntpd

4.5 验证

代码语言:javascript复制
  1 [root@client ~]# ntpq -np
代码语言:javascript复制
  1 [root@client ~]# ntpstat

附录一

ntpq参数解释:

remote:本地服务器所连接的远程NTP服务器。

refid:NTP服务器使用的上一级ntp服务器,即给远程ntp服务器提供时间同步是服务器。。

st :remote远程服务器的级别,由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低级别可以设定为1-16,为了减

缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的。

when: 上一次成功请求之后到现在的秒数。

poll : 本地机和远程服务器多少时间进行一次同步(单位为秒),在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调

整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小。

reach:这是一个八进制值,用来测试能否和服务器连接,每成功连接一次它的值就会增加

delay:从本地机发送同步要求到ntp服务器的round trip time

offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset越接近于0,主机和ntp服务器的时间越接近。

jitter:这是一个用来做统计的值,它统计了在特定个连续的连接数里offset的分布情况,简单地说这个数值的绝对值越小,主机的时间就越精确。

『 * 』:代表目前正在作用当中的NTP,即主NTP Server;

『 』:代表辅助的NTP Server和带有*号的服务器一起为我们提供同步服务, 当主NTP Server服务器不可用时备服务器接管,即作为下一个提供时间更新的候

选者。

『 - 』:远程服务器被认为是不合格的NTP Server。

『 x 』:远程服务器不可用。

附录二

ntp服务,默认只会同步系统时间。若需要ntp同时同步硬件时间,可以在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes ,则可以让硬件时间与系统时间一起同步。

SYNC_HWCLOCK=yes

注意:允许BIOS与系统时间同步,也可以通过hwclock -w 命令。

ntp

0 人点赞