NTP(网络时间协议)基础及服务配置

1.NTP简介

背景:网络时间协议(network time protocol,NTP)由美国德拉瓦大学的David L Mills教授于1985年提出,是用于设计使Internet上的计算机保持时间同步的一种通信协议。

  • 由RFC1305定义的时间同步协议
  • 在分布式时间服务器和客户端之间进行时间同步
  • 基于UDP报文传输,端口号123
  • 采用分层的方法来定义时钟的准确度
  • 支持访问控制和MD5加密验证
  • 可以采用单播、组播或广播方式发送协议报文

时钟层的概念:时钟的层数决定了时钟的准确度,取值范围0——15。参考时钟的层数取值范围为0~15,准确度从0到15依次递减,层数0处于子网特殊位置,是基准时间的参考源,目前普遍采用GPS的UTC时间源。

2.NTP工作原理

通过交换时间服务器和客户端的时间段,计算出客户端相对于服务器的时延和偏差,从而实现时间的同步。

3.NTP工作模式

根据网络结构和交换机在以太网中的位置,交换机共4种NTP工作模式进行时间同步。

  • 服务器/客户端模式(server/client)
  • 对等体模式(symmetric active / symmetric passive)
  • 广播模式(broadcast server / broadcast client)
  • 组播模式(multicast server / muticast client)

4.应用建议

  • 尽量在本地局域网部署SNTP服务器,Internet上公用的SNTP服务器时延具有不确定性,会对授时精度产生影响。
  • 客户端授时请求大于1min,以免SNTP服务器负载过量,无法及时响应。
  • 高可靠性系统中,最好配置多台SNTP服务器,利用DNS实现负载均衡。
  • 客户端应能够识别服务器故障,一旦发现故障,应丢弃时间戳,转向其他服务器请求授时。

5.NTP服务部署框架

internet NTP服务器----局域网NTP服务器---局域网NTP客户端

NTP(网络时间协议)基础及服务配置

Internet NTP服务器

查询Internet NTP服务器:https://www.ntppool.org

中国所在时区:https://www.ntppool.org/zone/cn

0.cn.pool.ntp.org

1.cn.pool.ntp.org

2.cn.pool.ntp.org

3.cn.pool.ntp.org

6.局域网NTP服务器配置

网络适配器NAT模式

NTP(网络时间协议)基础及服务配置

查询是否安装ntp软件包:rpm -qa | grep ntp

NTP(网络时间协议)基础及服务配置

设置时区:cp /usr/share/zoneinfo/Aisa/Shanghai /etc/localtime

NTP(网络时间协议)基础及服务配置

修改系统时间,与Internet时间同步:date 080110002019.00        ntpdate  0.cn.pool.ntp.org 

NTP(网络时间协议)基础及服务配置

将硬件时间修改到与系统时间相同

NTP(网络时间协议)基础及服务配置

NTP(网络时间协议)基础及服务配置

修改/etc/ntp.conf主配置文件

a)driftfile参数:解决NTP服务器校准时间时的传送延迟

     driftfile /var/lib/ntp/drift

b)restrict参数:权限的控制(局域网ntp服务器需修改,ntp客户端可不用修改)

格式:restrict IP mask 掩码 参数

用途:IP规定了允许或不允许访问的地址(此处若为default,即为0.0.0.0所有ip),配合掩码可以对某一网段进行限制。

restrict参数包括:

ignore:关闭所有NTP服务

nomodify:客户端不能修改服务器的时间,但可以作为客户端的校正服务器

noquery:不提供时间查询(用户端不能用ntpq、ntpc命令)

nopeer:不与同一层的其他服务器进行时间同步

kod:kod技术可以阻止”kiss of death”包(一种DNS攻击)对服务器的破坏

notrap:不提供trap远端事件登录的功能(远程事件日志记录程序)

对应默认配置项

 restrict default kod nomodify notrap nopeer noquery 

 #默认对所有client拒绝所有的操作

 restrict -6 default kod nomodify notrap nopeer noquery

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

 restrict -6 ::1

 restrict -6:限制IPv6

 c)server参数:设定上级时间服务器(局域网ntp服务器和客户端都需要配置)

格式: server IP地址或域名 [prefer]

用途:

  • 为该NTP服务器指定的上级NTP服务器。
  • 当指定多个NTP服务器时
  • 使用prefer参数的服务器优先级最高
  • 未使用prefer参数,优先级则按从上到下的顺序依次由高到低

默认配置项

server 0.rhel.pool.ntp.org iburst

server 1.rhel.pool.ntp.org iburst

server 2.rhel.pool.ntp.org iburst

server 3.rhel.pool.ntp.org iburst

注释,并添加内容如下:

NTP(网络时间协议)基础及服务配置NTP(网络时间协议)基础及服务配置

修改/etc/sysconfig/ntpd文件

让ntp服务修改硬件时间

添加语句:SYNC_HWCLOCK=yes

NTP(网络时间协议)基础及服务配置

修改/etc/ntp/step-tickers

当ntpd服务启动,或重启时,自动与该文件中记录的上层NTP服务进行时间校对

查看ntp客户端是否与ntp服务器时间同步:ntpstat

NTP(网络时间协议)基础及服务配置

将ntp服务加入开机自启动:chkconfig ntpd on

NTP(网络时间协议)基础及服务配置

控制ntp服务:

开启NTP服务

NTP(网络时间协议)基础及服务配置

查看NTP服务状态

NTP(网络时间协议)基础及服务配置

关闭NTP服务

NTP(网络时间协议)基础及服务配置

重启NTP服务

NTP(网络时间协议)基础及服务配置

7.常用命令

  • ntpstat:查看ntp服务器有无和上层ntp连通
  • ntpq –p命令:该命令可以列出目前我们的NTP与相关的上层NTP的状态
  • remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“*”则表示也有连上线,不过是作为次要联机的NTP主机。
  • refid:参考的上一层NTP主机的地址
  • st:即stratum阶层(0-15)
  • when:几秒前曾做过时间同步更新的操作
  • poll:下次更新在几秒之后
  • jitter:Linux系统时间与BIOS硬件时间的差异时间
  • reach:已经向上层NTP服务器要求更新的次数
  • delay:网络传输过程钟延迟的时间
  • offset:时间补偿的结果

watch “ntpq –p”命令:结果同上

8.局域网客户端配置

检查是否安装ntp: rpm -qa | grep ntp

NTP(网络时间协议)基础及服务配置

同步系统时间、并修改硬件时间ntpdate

服务器端:

NTP(网络时间协议)基础及服务配置

NTP(网络时间协议)基础及服务配置

NTP(网络时间协议)基础及服务配置

修改/etc/ntp.conf主配置文件(注释并添加)

server  局域网NTP服务器IP  prefer

server  局域网NTP服务器IP

NTP(网络时间协议)基础及服务配置

注:ntp客户端不用修改restrict参数

修改/etc/ntp/step-tickers,添加server:

       局域网NTP服务器IP

       局域网NTP服务器IP

NTP(网络时间协议)基础及服务配置

修改/etc/sysconfig/ntpd,使其自动修改将硬件时间:SYNC_HWCLOCK=yes

NTP(网络时间协议)基础及服务配置

是否开机自启动:chkconfig   ntpd  on

NTP(网络时间协议)基础及服务配置

启动服务并查看状态

NTP(网络时间协议)基础及服务配置

NTP(网络时间协议)基础及服务配置

NTP(网络时间协议)基础及服务配置