Centos7时钟服务器和客户端搭建(NTP)

一、角色设计(二者能通讯)

1、服务器 : 192.168.137.3

2、客户端:  192.168.137.6

 二、服务器和客户端ntp和ntpdate服务安装检查

1、 在服务器和客户端同时检查ntp和ntpdate服务是否已经安装:

# rpm -qa |grep  ntp  ntpdate  

fontpackages-filesystem-1.44-8.el7.noarch

python-ntplib-0.3.2-1.el7.noarch

ntpdate-4.2.6p5-28.el7.centos.x86_64                                                                                

ntp-4.2.6p5-28.el7.centos.x86_64

存在如上红色字体安装包输出,则代表该服务器已经安装ntp和ntpdate服务

2、如没有安装,则在服务器和客户端同时安装ntp和ntpdate服务 # yum install  ntp  ntpdate  -y

三、查找中国区最近的时钟源服务器,以作为本NTP服务器的上一级时钟源

1、登陆https://www.pool.ntp.org/zone/cn网站

2、找到中国区的4个时钟源服务器域名:

server 0.cn.pool.ntp.org

server 1.cn.pool.ntp.org

server 2.cn.pool.ntp.org

server 3.cn.pool.ntp.org

  •  服务器端的配置

1、编辑服务器端/etc/ntp.conf配置文件如下:

server  0.cn.pool.ntp.org  iburst

server  1.cn.pool.ntp.org  iburst

server  2.cn.pool.ntp.org  iburst

server  3.cn.pool.ntp.org  iburst

server  127.127.1.0  iburst   local  clock  

restrict  192.168.137.0  mask  255.255.255.0  nomodify   notrap  nopeer    

fudge  127.0.0.1  stratum  10

解释:

(1)、server  0.cn.pool.ntp.org  iburst:指定本NTP服务器的上一级时钟源域名(中国区就4个);4个域名下挂有67台时钟源服务器,其中 0-3.cn.pool.ntp.org 域名解析将会每小时更新,并随机指向其下挂的一系列时钟服务器(中国区目前下挂有67台时钟源服务器,免费的为中国区各企业、单位的NTP服务器提供时间源;如果你有一台IP地址固定、运行稳定、接入互联网的服务器,也可以向国际时钟源组织申请添加你的服务器作为时钟源服务器,以提供公益性的时钟同步服务);另外如果你记不得亚洲区或及其下设中国区的时钟源域名,这里的域名配置可以直接写成server  pool.ntp.org  iburst即可,让根域名服务器自己区解析找到下一级域名;最后,iburst参数配上的话可以减少上一级时钟源的资源开销,所以这里推荐给配置上。

(2)、server  127.127.1.0  iburst   local  clock:当本NTP服务器的上一级时钟源不可用时,使用自己时间作为客户端的时钟源。

(3)、restrict  192.168.137.0  mask 255.255.255.0  nomodify  notrap  nopeer:限制只允许那些客户端网段的客户端前来本NTP服务器时间同步,nomodify客户端不能修改NTP服务端的时钟相关参数、notrap本NTP服务器不作为客户端的日志记录、nopeer不允许客户端跟NTP服务器tratum层级相等。

(4)、fudge  127.0.0.1  stratum  10:设置本NTP的tratum层级(从1-15级,一般默认设置10级别即可);因为UTC时间是分层通过众多的时钟服务器逐级的往下传播时间的,即第一stratum层级的时钟服务器首先向UTC时间源同步时间,之后第一stratum层级的时钟源给第二stratum层级的时钟服务器同步时间,然后第二stratum层级的时钟源又给第三stratum层级的时钟服务器同步时间,以此类推;这里我们把自己的NTP服务器设置为比较靠后的层级即可(默认10级)。

 2、服务器端firewall防火墙开放123/udp端口:

#firewall-cmd  --permanent  --add-port=123/udp     --permanent永久开放端口,避免重启失效

# firewall-cmd --reload                            --重新加载防火墙

#iptables -L -n             --检查iptables规则列表是否也开放了123/udp端口

解释:centos7之后,操作系统防火墙的概念由以前的iptables变为firewall;且二者共用firewalld服务即之前的iptables服务已经集成到了firewalld服务中,所以在centos7之后运行systemctl status iptables.service提示找不到对应的服务;但是centos7之后的操作系统版本为了兼顾老工程师们对iptables防火墙的使用习惯,特意保留了iptables访问规则列表的配置;所以这里为了确保万无一失,最好也检查一下iptables的访问规则列表是否也开放了135/udp端口(但一般我们新建的虚拟机,其iptables 访问规则列表都是默认的,啥也没控制)。

 2、服务器端重启ntp服务

#systemctl  restart  ntpd.service

3、设置服务器端ntp服务开机启动

#systemctl enable  ntpd.service  

4、服务器端验证是否成功同上级时钟源或自身同步了时间(上级不可用时同步自己)

# ntpq  -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 211.138.200.209 .INIT.          16 u    -   64    0    0.000    0.000   0.000
 ns.pku.edu.cn   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 211.138.200.208 .INIT.          16 u    -   64    0    0.000    0.000   0.000
 nipper.paina.jp .INIT.          16 u    -   64    0    0.000    0.000   0.000
 send.mx.cdnetwo .INIT.          16 u    -   64    0    0.000    0.000   0.000
*LOCAL(0)        .LOCL.           5 l   52   64    1    0.000    0.000   0.000

解释:如果这步同步失败的话,很大原因为你没有给本NTP服务器指定DNS域名服务器,导致无法解析中国区的UTC时钟源域名(0-3.cn.pool.ntp.org),解决如下:

#vi  /etc/resolv.conf    --以贵州茅台为例,编辑该文件并填入如下DNS地址

nameserver  10.0.11.169

Nameserver 173.16.0.169

#nslookup         --测试解析域名是否成功

>www.baidu.com   --正向解析(域名解析为IP),以百度域名为例

Server:         10.0.11.169

Address:        10.0.11.169#53

Non-authoritative answer:

www.baidu.com   canonical name = www.a.shifen.com.

Name:   www.a.shifen.com

Address: 14.215.177.39

Name:   www.a.shifen.com

Address: 14.215.177.38

 # date  -R     --查看同步后的系统时间
Fri, 15 Jul 2016 15:28:34 +0800

  •  客户端的配置

1、编辑客户端/etc/ntp.conf配置文件如下:

server  192.168.137.3  iburst

restrict  192.168.137.3  mask 255.255.255.0  nomodify  notrap  nopeer

 解释:

  1. 、第一条配置中iburst参数是可选项;
  2. 、第二条配置,同样是客户端也限制服务器端不能对客户端做modifry,trap,peer操作。

  2、客户端firewall防火墙无需开放123/udp端口(因为客户端是源端口,只要保证目的端口即服务器端开启123端口即可):

 3、客户端重启ntp服务

#systemctl restart  ntpd.service

4、设置客户端ntp服务开机启动

#systemctl enable  ntpd.service  

5、客户端时间同步测试

# date       --查看客户端系统当前时间
Fri Jul 15 15:31:22 CST 2016

# ntpdate  192.168.137.3      --客户端向NTP服务器同步时间
15 Jul 15:33:04 ntpdate[63912]: step time server 192.168.137.3 offset -4.492463 sec 

6、客户端设置计划任务,每天晚上1点向NTP服务器同步时间

#crontab -e

00 01 * * * root  /usr/sbin/ntpdate  192.168.137.3; /sbin/hwclock -w      

解释:

(1)、格式 00 01 * * *  五个字符表示  分 时 日 月 年

(2)、/sbin/hwclock -w 把系统时间写入bios时间

附加一:NTP配置文件/etc/ntp.conf中配置参数解释

restrict 控制相关权限:

语法为: restrict  IP地址 mask 子网掩码 参数(其中IP地址可以是default ,代表的是所有的IP地址)。

参数有以下几个:

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

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

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

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

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

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

kod : 访问违规时发送 KoD 包(kiss of dead,是一种攻击方式)。

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

server 设定NTP上一级时钟源

语法为:server 主机ip或域名 参数

参数有以下几个:

burstWhen the server is reachable, send a burst of eight packets instead of the usual one. The packet spacing is nor‐mally 2 s; however, the spacing between the first and second packets can be changed with the calldelay command to allow additional time for a modem or ISDN call to complete. This option is valid only with the server command and type s addressesa. It is a recommended option when the maxpoll option is greater than 10 (1024 s).

iburstWhen the server is unreachable, send a burst of eight packets instead of the usual one.  The  packet  spacing  is normally 2 s; however, the spacing between the first and second packets can be changed with the calldelay command to allow additional time for a modem or ISDN call to complete. This option is valid only with the server  command and type s addresses. It is a recommended option with this command.

preferMark  the server as preferred. All other things being equal, this host will be chosen for synchronization among a set of correctly operating hosts. See the Mitigation Rules and the prefer Keyword page for  further  information. This option is valid only with the server and peer commands.

trueMark  the  association  to  assume  truechimer status; that is, always survive the selection and clustering algorithms. This option can be used with any association, but is most useful for reference clocks with  large  jitter on  the  serial  port  and  precision pulse-per-second (PPS) signals. Caution: this option defeats the algorithms designed to cast out falsetickers and can allow these sources to set the system clock. This option is valid  only with the server and peer commands.

例如:以下表示优先向192.168.7.49这部时钟源主机进行时间同步。

server  192.168.7.49  prefer

fudge 主机ip  stratum 层数

这个配置主要用来设定本机作为为其他机器的时间源的时候,其层数为多少,层数必须在15层之内,一般取10。

fudge 127.0.0.1 stratum 10

附件二:NTP服务器的发展历史与工作原理

一、ntp服务是什么

1. 定义

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。

 2. 发展

首次记载在Internet Engineering Note之中,其精确度为数百毫秒。

稍后出现了首个时间协议的规范RFC-778,它被命名为DCNET互联网时间服务,这种服务还是借助于Internet control Message Protocol (ICMP)中的时间戳和时间戳应答消息作为NTP。

名称的首次出现是在RFC-958之中,该版本也被称为NTP v0,其目的是为ARPA网提供时间同步;这时的NTP已脱离ICMP,作为独立协议运行,美国特拉华大学的David L.Mills主持了网络时间同步项目,成功的开发出了NTP协议的第1, 2, 3版:

v1:出现于1988年6月,在RFC-1059中描述了首个完整的NTP的规范和相关算法。这个版本已经采用了client/server模式以及对称操作,但是它不支持授权鉴别和NTP的控制消息。

v2:1989年9月推出了取代RFC-958和RFC-1059的NTP v2版本即RFC-1119。

v3:在1992 年3月,NTP v3版本RFC-1305问世,该版本总结和综合了NTP先前版本和DTSS,正式引入了校正原则,并改进了时钟选择和时钟滤波的算法,而且还引入了时间消息发送的广播模式,这个版本取代了NTP的先前版本。NTP v 3 发布后,一直在不断地进行改进,NTP实现的一个重要功能是对计算机操作系统的时钟调整。

v4:截止到2010年6月,最新的NTP版本是第4版(NTPv4),其标准化文档为 RFC 5905,它继承自RFC 1305所描述的NTP v3。网络时间同步技术也将向更高精度、更强的兼容性和多平台的适应性方向发展。网络时间协议NTP是用于互联网中时间同步的标准之一,它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.lms,在Internet上绝大多数的地方其精度可以达到1- 50ms.

值得提一下的是,简单的NTP(SNTP)version4已经在RFC2030描述了。

3. 主要结构

(1) 时间来源

现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

(2) 传播

在NTP中,定义了时间按照服务器的等级传播,按照离外部UTC源远近将所有的服务器归入不同的Stratum(层)中,例如把通过GPS取得发送标准时间的服务器叫Stratum-1的NTP服务器,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础,这种阶梯式的架构示意图如下图所示:

计算机主机一般同多个时钟服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源以便校正主机时间。即使在主机长时间无法与某一时钟服务器联系的情况下,NTP服务依然可以有效运转。

二、架构及安装

1. 架构

如上图所示,对于一些服务依赖于时间的集群(如hadoop集群),需要有一部主机作为ntp服务器,其他客户端主机从这部主机进行时间同步,另外ntp服务主机从更高一层的服务器获得时间信息。

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

centreon~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值