NTP服务器搭建

当搭建集群的时候,最好就要服务器之间的时间是同步的,于是就动手试了一下。

时间服务器作用:

大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,

如E-MAIL信息、文件创建和访问时间、数据库处理时间等。

大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性,

若计算机时间不同步,这些应用或操作或将无法正常进行。

大数据系统是对时间敏感的计算处理系统,时间同步是大数据能够得到正确处理的基础保障,是大数据得以发挥作用的技术支撑。

大数据时代,整个处理计算系统内的大数据通信都是通过网络进行。

时间同步也是如此,利用大数据的互联网络传送标准时间信息,实现大数据系统内时间同步。

网络时间同步协议(NTP)是时间同步的技术基础。

选用了2台虚拟机,一个当服务端(192.168.180.137),一个当客户端(192.168.180.105)

[ ~]# rpm -qa |grep ntp
python-ntplib-0.3.2-1.el7.noarch
ntpdate-4.2.6p5-29.el7.centos.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7.centos.x86_64
[root@localhost ~]# yum -y remove ntp-4.2.6p5-29.el7.centos.x86_64
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
[root@localhost ~]# yum remove -y ntpdate-4.2.6p5-29.el7.centos.x86_64
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 ntpdate.x86_64.0.4.2.6p5-29.el7.centos 将被 删除
--> 解决依赖关系完成

依赖关系解决

首先把已经安装的ntp服务给卸载掉,然后开始重新安装ntp

[ ~]# yum -y install ntp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 ntp.x86_64.0.4.2.6p5-29.el7.centos 将被 安装
--> 正在处理依赖关系 ntpdate = 4.2.6p5-29.el7.centos,它被软件包 ntp-4.2.6p5-29.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 ntpdate.x86_64.0.4.2.6p5-29.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================================================================================================
 Package                              架构                                版本                                               源                                 大小
=====================================================================================================================================================================
正在安装:
 ntp                                  x86_64                              4.2.6p5-29.el7.centos                              base                              548 k
为依赖而安装:
 ntpdate                              x86_64                              4.2.6p5-29.el7.centos                              base                               86 k

事务概要
=====================================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:635 k
安装大小:1.5 M
Downloading packages:
(1/2): ntpdate-4.2.6p5-29.el7.centos.x86_64.rpm                                                                                               |  86 kB  00:00:00
(2/2): ntp-4.2.6p5-29.el7.centos.x86_64.rpm                                                                                                   | 548 kB  00:00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                 1.5 MB/s | 635 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : ntpdate-4.2.6p5-29.el7.centos.x86_64                                                                                                             1/2
  正在安装    : ntp-4.2.6p5-29.el7.centos.x86_64                                                                                                                 2/2
  验证中      : ntp-4.2.6p5-29.el7.centos.x86_64                                                                                                                 1/2
  验证中      : ntpdate-4.2.6p5-29.el7.centos.x86_64                                                                                                             2/2

已安装:
  ntp.x86_64 0:4.2.6p5-29.el7.centos

作为依赖被安装:
  ntpdate.x86_64 0:4.2.6p5-29.el7.centos

完毕!

注:服务端和客户端都进行一样的安装

 服务端:

[ ~]# vim  /etc/ntp.conf

修改

NTP服务器搭建

restrict 192.168.180.137 nomodify notrap nopeer noquery
restrict 192.168.180.2 mask 255.255.255.0 nomodify notrap

 NTP服务器搭建

# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

注:把之前的server都注释掉

客户端:

NTP服务器搭建

restrict 192.168.180.105 nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 192.168.180.2 mask 255.255.255.0 nomodify notrap

 NTP服务器搭建

server 192.168.180.137
Fudge 192.168.180.137 stratum 10

启动ntp服务、查看状态

1)启动ntp服务

【命令】service ntpd start

2)查看ntp服务器有无和上层ntp连通

【命令】ntpstat

NTP服务器搭建

查看ntp状态时,可能会出现如下所示情况

① unsynchronised time server re-starting polling server every 8 s

NTP服务器搭建

② unsynchronised polling server every 8 s

NTP服务器搭建

这种情况属于正常,ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/ntp.conf中配置的标准时间进行同步。

等一段时间之后,再次使用ntpstat命令查看状态,就会变成如下正常结果:

NTP服务器搭建

3)查看ntp服务器与上层ntp的状态

【命令】ntpq -p

NTP服务器搭建

remote:本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

refid:参考上一层ntp主机地址

st:stratum阶层

when:多少秒前曾经同步过时间

poll:下次更新在多少秒后

reach:已经向上层ntp服务器要求更新的次数

delay:网络延迟

offset:时间补偿

(四)设置开机启动

【命令】chkconfig ntpd on

测试:

将客户的时间改错,然后启动ntp

[ ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.180.137 LOCAL(0)         6 u    2   64   17    2.057  2369747   0.378
[root@topcheer ~]# date
2020年 01月 30日 星期四 13:16:08 CST
[root@topcheer ~]# ntpstat
unsynchronised
  time server re-starting
   polling server every 8 s
[root@topcheer ~]# ntpstat
unsynchronised
   polling server every 64 s
[root@topcheer ~]# date
2020年 01月 30日 星期四 19:56:31 CST
[root@topcheer ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.180.137 LOCAL(0)         6 u    2   64   37    2.017    0.543   0.585

服务端的时间:

[ ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.           5 l    1   64   17    0.000    0.000   0.000
[root@localhost ~]# ntpstat
synchronised to local net (127.127.1.0) at stratum 6
   time correct to within 449 ms
   polling server every 64 s

(五)从其他博客的一些参考摘录

===/etc/ntp.conf 配置内容===

# 1. 先处理权限方面的问题,包括放行上层服务器以及开放局域网用户来源:
restrict default kod nomodify notrap nopeer noquery     <==拒绝 IPv4 的用户
restrict -6 default kod nomodify notrap nopeer noquery  <==拒绝 IPv6 的用户
restrict 220.130.158.71   <==放行 tock.stdtime.gov.tw 进入本 NTP 的服务器
restrict 59.124.196.83    <==放行 tick.stdtime.gov.tw 进入本 NTP 的服务器
restrict 59.124.196.84    <==放行 time.stdtime.gov.tw 进入本 NTP 的服务器
restrict 127.0.0.1        <==底下两个是默认值,放行本机来源
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行局域网用户来源,或者列出单独IP

# 2. 设定主机来源,请先将原本的 [0|1|2].centos.pool.ntp.org 的设定批注掉:
server 220.130.158.71 prefer  <==以这部主机为最优先的server
server 59.124.196.83
server 59.124.196.84

# 3.默认的一个内部时钟数据,用在没有外部 NTP 服务器时,使用它为局域网用户提供服务:
# server    127.127.1.0     # local clock
# fudge     127.127.1.0 stratum 10

# 4.预设时间差异分析档案与暂不用到的 keys 等,不需要更动它:
driftfile /var/lib/ntp/drift
keys      /etc/ntp/keys

===restrict选项格式===

restrict [ 客户端IP ]  mask  [ IP掩码 ]  [参数]

restrict 控制相关权限

ignore  :关闭所有的 NTP 联机服务

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网

noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器

notrap :,不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

kod : 访问违规时发送 KoD 包。

restrict -6 表示IPV6地址的权限设置。

restrict default kod nomodify notrap nopeer noquery  #首先我们对于默认的client拒绝所有的操作

restrict 127.0.0.1    #允许本机地址的一切操作

restrict 192.168.180.0 mask 255.255.255.0 nomodify notrap  #在该子网里面的客户端可以进行网络校时,但是不能修改NTP时间服务器的时间参数,不提供trap远端登陆

server 127.127.1.0    #新增上级时间服务器为本机
fudge 127.127.1.0 stratum 10  #设置时间服务器的层次,

===server选项格式===

server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。

◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。

◆ prefer: 如果有多个server选项,具有该参数的服务器有限使用。

◆ mode: 指定数据报文mode字段的值。

◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。

◆ maxpoll:  指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。

◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。

===查看网关方法===

【命令1】route -n  

【命令2】ip route show  

【命令3】netstat -r