#部署内部ntp时间服务器 Description:本文是部署内部的NTP时间服务器,分别介绍了用ntpd软件和chronyd软件来部署NTP服务器,在实际应用中,只需要用其中一款软件来部署NTP服务器即可。 NET-TOP: NTP-Server:node11-IP:192.168.11.11 <----------------> NTP-Client:node12-IP:192.168.11.12
Linux的NTP总结(百度文库):https://wenku.baidu.com/view/3dc46b4403020740be1e650e52ea551811a6c97a.html?rec_flag=default&sxts=1553654764639
#NTP协议简介 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。 在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间? NTP就是用来解决这个问题的,NTP(网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。 它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止病毒的协议攻击。
NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间吗?答案是否定的。因为格林尼治时间是以地球自转为基础的时间计量系统,但是地球每天的自转是有些不规则的,而且正在缓慢加速,因此,格林尼治时间已经不再被作为标准时间使用。新的标准时间,是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时)。所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
#安装ntpd软件 yum install -y ntp
#配置内部ntpd服务器 [ -f /etc/ntp.conf.bak ] || cp -v /etc/ntp.conf{,.bak} vi /etc/ntp.conf 添加如下内容 server 192.168.11.11 #把本机作为ntp服务端 fudge 192.168.11.11 stratum 10 #本时间服务器的层次为第10层。
#重启ntpd服务,并设为开机启动
systemctl restart ntpd
chmod -v +x /etc/rc.d/rc.local
echo 'systemctl restart ntpd' >> /etc/rc.d/rc.local
#查看ntp服务信息 ntpq -p
#防火墙放行ntp服务 iptables -I INPUT -p udp --dport 123 -j ACCEPT
#node12客户端与192.168.11.11时间服务器校对时间 ntpdate 192.168.11.11
#查看系统时间,查看硬件时间,并将系统时间写入硬件时钟 date hwclock hwclock -w
#centos 7的chrony网络时间服务器------------------------ #关闭ntpd时间服务 systemctl stop ntpd
#安装chrony时间服务器软件 yum install -y chrony
#修改配置文件 vi /etc/chrony.conf 修改如下内容 allow 192.168.11.11/24 #允许此网段的主机同步时间 local stratum 10 #设置本地时间服务器为第10层(用于定义内部时间服务器)
#重启chronyd服务 systemctl restart chronyd systemctl enable chronyd
#查网络进程 netstat -atunlp|grep chrony
#客户端时间同步 date -s "20120303" chronyc sources date
#chrony服务配置和测试完毕-----------
NTP 工作原理 参考文档1:https://blog.csdn.net/xiaoshengqdlg/article/details/37695293 参考文档2:https://wenku.baidu.com/view/d4e61446a8956bec0975e321.html
上图1所示的是NTP基本工作原理,路由器A和路由器B通过网络相连,它们都有自己独立的系统时钟,要实现各自系统时钟的自动同步,作如下假设: 路由器A和B的系统时钟同步之前,路由器A的时钟设定为10:00:00am,路由器B的时钟设定为11:00:00am。 以路由器B为NTP时间服务器,即路由器A将使自己的时钟与路由器B的时钟同步。 数据包在路由器A和B之间单向传输所需要的时间为1秒。
系统时钟同步的工作过程如下: 路由器A发送一个NTP消息包给路由器B,该消息包带有它离开路由器A时的时间戳,该时间戳为10:00:00am(T1)。 当此NTP消息包到达路由器B时,路由器B加上自己的时间戳,该时间戳为11:00:01am(T2)。 当此NTP消息包离开路由器B时,路由器B再加上自己的时间戳,该时间戳为11:00:02am(T3)。 当路由器A接收到该响应消息包时,加上一个新的时间戳,该时间戳为10:00:03am(T4)。
至此,RouterA 拥有足够信息来计算以下两个重要参数: NTP 消息来回一个周期的时延:Delay=(T4-T1)-(T3-T2)。 RouterA 相对RouterB 的时间差:Offset=((T2-T1)+(T3-T4))/2。 RouterA 根据这些信息来设定自己的时钟,实现与RouterB 的时钟同步。
NTP的四种工作模式:
服务器 / 客户模式(server / client)
这种模式只需要在客户端配置,服务器端除了配置NTP 主时钟外,不需要进行其他专门配置。并且,只能是客户端同步到服务器,服务器不会同步到客户端。
配置完成后:
客户端向服务器发送同步请求报文,报文中的 Mode 字段设置为3(客户模式)。
服务器端收到请求报文后,自动工作在服务器模式,并发送应答报文,报文中的
Mode 字段设置为4(服务器模式)。
客户端收到应答报文后,进行时钟过滤和选择,并同步到优选的服务器端。