Lin操作基础系统 2_第1页
Lin操作基础系统 2_第2页
Lin操作基础系统 2_第3页
Lin操作基础系统 2_第4页
Lin操作基础系统 2_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章

网络时间服务NTP《Linux操作系统(第5版)》学习目标

了解NTP的架构、作用及其在分布式系统中保持时间同步的重要性

掌握使用ntpsec(或ntp)软件包配置NTP服务器的方法

掌握使用chrony软件包配置NTP服务器的方法章节概述本章围绕网络时间协议NTP展开,阐述其在分布式系统中保持时间同步的重要性及分层结构。首先介绍NTP的四种工作模式,并指出NTPsec因安全考量已不再支持广播等方式。随后分别讲解基于ntpsec和chrony两种软件包配置NTP服务器与客户端的方法。最后介绍测试工具和手工同步命令,并说明ntp与chrony可共存互操作。目录0102NTP协议通过ntpsec配置NTP03通过chrony配置NTP04其他说明NTP协议13.113.1.1NTP简介NTPNTP(NetworkTimeProtocol)是网络时间协议,是用来同步网络中各个计算机时间的协议。NTP所建立的网络结构是分层管理的类树状结构。网络中的节点有两种:时钟源或客户端。每一层的时钟源或客户可向上一层或本层的时钟源请求时间校正。在此结构中,时间按NTP服务器的等级传播。按照离外部UTC源的远近程度将所有服务器归入不同的Stratum(层)。Stratum-1在顶层,由外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,依次类推,但Stratum层的总数限制在15以内。最外层提供UTC时间源的为Stratum-0,但不在NTP层次之内。也允许使用Stratum-16,表明该层距时间源非常远,不能提供可靠的时间。13.1.1NTP简介NTP计算机主机一般同多个时间服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务仍可有效运行。为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制。在通常情况下,NTP客户端发出时间请求,与时间服务器交换时间,这个交换的结果是,从服务器得到标准时间,且客户端能计算出时间的延迟,并基于此两者调整本地系统时间。冗余服务器和不同的网络路径可用于保证可靠性的精确度。除了客户端/服务器同步以外,NTP还支持同等计算机的广播同步。13.1.2NTP的工作模式NTP工作模式NTP协议的工作模式有:主动/被动对称模式:一对一的连接,双方均可同步对方或被对方同步,先发出申请建立连接的一方工作在主动模式下,另一方工作在被动模式下。此方式适用于配置冗余的时间服务器,可以提供更高的精确度给主机。客户/服务器模式:与主/被动模式基本相同。区别在于,客户方可被服务器同步,但服务器不能被客户同步。广播/组播模式:一对多的连接,服务器不论客户工作在何种模式下,主动发出时间信息,客户由此信息调整自己的时间。但此方式的精确度不高(仅秒级),对时间精确度要求不是很高的情况下可以采用。13.1.2NTP的工作模式NTP工作模式在NTP客户与服务器端通信时,每一个时间包内包含最近一次事件的时间信息、包括上次事件的发送与接收时间、传递现在事件的当地时间及此包的接收时间。在收到上述包后即可计算出时间的偏差量与传递信息的时间延迟。时间服务器利用过滤算法及先前八个校时信息计算出时间参考值,判断后续校时包的精确性。仅从一个时间服务器获得校时信息不能校正通信传递过程所造成的时间偏差,若同时与多个时间服务器相关联,就可利用过滤算法从中找出相对较可靠的时间源,然后采用它来校正时间。以上描述仅基于NTP协议的,但出于安全的原因,在NTPsec下,广播、多播和组播已经不再支持,同样是基于安全的原因,主动/被动模式也只部分支持。13.1.3NTP服务器及软件选择NTP服务器在所介绍的Linux系统中,可用于NTP服务的软件包有ntp,ntpsec和chrony等。国内常用的NTP服务器有(中国科学院国家授时中心)、和等;用户可以通过/zone/asia、/zone/cn、/zh/zone/cn或/Servers/NTPPoolServers得到常用的时间服务器,也可建立自己的时间服务器。

通过ntpsec配置NTP13.213.2.1软件包的安装NTP软件包当前,Fedora和ubuntu提供的NTP软件包为基于NTPsec的ntpsec。OpenEuler使用的NTP软件包名仍为ntp。NTP软件包的安装方法如下:#dnfinstallntpsecntpstat-y #Fedora#dnfinstallntpntpstatntp-help-y #OpenEuler#aptinstallntpsecntpstatntpsec-ntpdatentpsec-doc-y #Ubuntu13.2.2服务管理NTP服务管理NTP的服务名在红帽/OpenEuler和Ubuntu下分别为ntpd和ntpsec,管理方法如下。1)Fedora和OpenEuler#systemctlenablentpd;systemctlstartntpd #启用并启动ntpd#systemctlstatusntpd #(必要时)检查运行状态#systemctldisable/stop/restartntpd #(其他)禁用/停止/重启13.2.2服务管理NTP服务管理2)Ubuntu#systemctlenablentpsec;systemctlstartntpsec #启用并启动ntpd#systemctlstatusntpsec #(必要时)检查运行状态#systemctldisable/stop/ntpsec #(其他)禁用/停止/重启需要提醒的是,每当修改配置文件后,都需要重启NTP服务。13.2.3配置文件ntp.conf及配置NTP配置1.配置文件ntp.conf及默认配置在红帽/OpenEuler和ubuntu中,NTP服务的配置文件分别为/etc/ntp.conf和/etc/ntpsec/ntp.conf,简记为ntp.conf,通过命令:#sed-e'/^[[:blank:]]*#.*$/d;/^[[:blank:]]*$/d'/etc/$([-e/etc/lsb-release]&&echontpsec/)ntp.conf可以得到去除空行和注释的有效配置内容。13.2.3配置文件ntp.conf及配置NTP配置2.ntp.conf配置文件结构与内容一个通常的NTP配置文件通常包含(日志)信息记录控制、安全与访问控制和服务器与参考时钟设置三部分(不分顺序)。前两部分一般采用系统提供的样本内容,不需要太多改变,第三部分则是需要配置的部分。还有一些杂项配置信息。13.2.3配置文件ntp.conf及配置NTP配置3.ntp.conf中常见配置项(1)信息记录控制这里的logging不仅是日志记录而是包括日志在内各种工作信息的记录。此部分,最简单,最小配置仅包含如下一行:driftfile/var/lib/ntpsec/ntp.drift参见Ubuntu的配置中注释掉的部分可知,还可能包括更多的内容。13.2.3配置文件ntp.conf及配置NTP配置(2)安全与访问控制(security/accesscontrols)此部分的内容大致如下所示: restrictdefaultkodlimitednomodifynoquery restrict restrict::1实际配置时,可能还需要加进对自己内容网段的限制。13.2.3配置文件ntp.conf及配置NTP配置restrict/unrestrict的语法格式:restrictaddress[/cidr][maskmask][flag...]:约束定义。其中address可以是IP,也可以是DNS能够解析的主机名,但必须在ntpd启动时能够被解析,若解析出多个IP地址,则只有首个被使用。一个default(IP,mask)项总是要包括进来,尽管没有配置它。一个没有flag的default项将不进行任何约束或限制。unrestrictaddress[/cidr][maskmask][flag...]:与restrict命令用法相仿但功能相反,是取消某些限制。13.2.3配置文件ntp.conf及配置NTP配置(3)服务器与参考时钟设置此部分设置的是本地Linux系统同步时间所需的NTP服务器,要根据自己的实际情况来确定。每个Linux发行商有自己的NTP服务器可供使用。比如,fedora、rhel(centos)和ubuntu的NTP服务器分别为2.、2.和0.、等,用户可以指定自己的NTP服务器。中国科学院国家授时中心服务器为

NTP的授时服务器务13.2.3配置文件ntp.conf及配置NTP配置

常用的配置命令选项如下:serveraddress[options]:用于C/S模式,指定服务器地址及选项。pooladdress[options]:类似server模式。用于实现池自动服务器发现方案的C/S模式。address可以是IP或主机名;如果有prefer选项,可将该server设为首选。•burst:当服务器可到达时,发送8个包,而不是通常的一个。•iburst:当服务器不可到达时,发送6个数据包。•prefer:设为首选。13.2.3配置文件ntp.conf及配置NTP配置(4)其他和杂项配置使用网络服务时,容易想到的是网络安全问题,使用NTP时也会存在同样的问题,使用ntpsec替换ntp软件包也是出于此目的。NTPsec软件包支持NTS(NetworkTimeSecurity)。若要配置启用安全的NTP服务,还要使用nts相关命令(若用户需要,可查阅相关文档。)还有一些杂项命令,比如tos,其用法为tos[ceilingceiling|floorfloor|maxclockmaxclock|maxdistmaxdist|minclockminclock|mindistmindist|minsaneminsane|orphanstratum|orphanwaitdelay]其配置的项目较多,不便介绍,用户需要时自行解决。13.2.4防火墙设置NTP防火墙设置若要让NTP服务器能够工作,防火墙必须允许ntp服务通过,设置方法如下。#firewall-cmd--add-servicentp #firawalld防火墙#ufwallowntp #ufw防火墙13.2.5ntp/ntpsec配置示例ntp/ntpsec配置示例任务在局域网内配置NTP服务器,并实现网内的系统时间同步。设网内NTP服务器IP为0,用外部服务器2.作为UTC时间源。

13.2.5ntp/ntpsec配置示例ntp/ntpsec配置示例1)服务器端编辑配置文件ntp.conf,在行 restrict::1下添加如下一行内容: restrictmasknomodify在第一个含有“pool…”或“server…”的行之前,添加服务器设置行如下: pool2.iburst若无这样的行,就添加在文件首或尾部。之后,可以注释掉其他的server或pool所在的行,也可保留。配置文件的其他地方保持不变。其实,如果所用系统内有有效server或pool配置的话,此行不加也可以,那就直接使用Linux系统提供的NTP时间源。编辑完成后,重启NTP服务。13.2.5ntp/ntpsec配置示例2)客户端对NTP客户端的配置,所要做的工作要比服务端少得多,只需要添加一个server配置项就可以了。还有,因为是要网内时间同步,在客户端的配置文件中应该注释掉其他的pool和server配置行。因为网内NTP服务器IP为0,故需要按服务器的配置方法添加如下的配置行: server0iburst配置完成后,重启NTP服务器。ntp/ntpsec配置示例13.2.6配置测试

配置测试1)检查ntp服务端口的使用情况ntp服务所使用的端口号为123(可通过命令grep'^ntp'/etc/services来查询),使用netstat命令可以查询该端口是否处于监听状态,命令如下:#netstat-unl|grep123 #查看123端口(输出略)13.2.6配置测试

配置测试2)ntpstatntpstat用于检查系统与服务器的时间同步状态。NTP服务器配置完成并重启后,并不会马上就进行时间同步,可用ntpstat来检查是否已经同步。如果已经同步,还可报告时间精度。#ntpstat #服务器未运行时:UnabletotalktoNTPdaemon.Isitrunning?#ntpstat #时间未同步时:unsynchronised,pollingserverevery1s#ntpstat #时间已经同步时:synchronisedtounspecifiedatstratum2,...13.2.6配置测试

配置测试3)使用ntpq监控NTP时间服务器ntpq可用于监视NTP守护进程的工作情况,它可应用于命令行模式或交互模式。ntpq的用法为: ntpq[-46dinp][-ccommand][host][…]选项-4/-6用于IPv4/IPv6主机或地址模式。-i:交互模式;-d:debug模式;-n:输出中的主机为IP形式;-ccommand:执行ntpq子命令;-p:输出已知的peer列表以及其状态的摘要,等同于-cpeers。当无参数和选项执行ntpq时进入交互模式,在此模式下可以通过help获得帮助。13.2.6配置测试

配置测试3)使用ntpq监控NTP时间服务器(1)ntpq-p或ntpq-cpeersntpq-p或ntpq-cpeers用于查询网络中的NTP服务器,同时显示客户端和每个服务器的关系。#ntpq-p13.2.6配置测试

配置测试3)使用ntpq监控NTP时间服务器(2)ntpq-cassocntpq-cassoc用于获取并显示所关联服务器的标识和状态列表。输出时,按照配置文件ntp.conf中的时间服务器先后顺序依次显示各服务器的状态。#ntpq-cassoc

通过chrony配置NTP13.313.3.1chrony软件包的安装chronychrony是开源的自由软件,用于保持系统时钟与NTP服务器的同步。它由chronyd和chronyc两个程序组成。chronyd是后台守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。chronyc提供了一个用户界面,用于监控chronyd性能并进行多样化的参数配置,它可以工作在chronyd实例控制的计算机上,也可以工作在远程计算机上。chrony可以同时作为NTP服务的客户端和服务端。13.3.1chrony软件包的安装chronychrony软件包在红帽/OpenEuler和Ubuntu下是相同的,安装命令如下。#dnfinstall-ychrony #红帽&OpenEuler#aptinstall-ychrony #Ubuntu13.3.2服务管理chrony服务管理chrony的服务名在红帽/openeuler和Ubuntu下分别为chronyd和chrony,管理方法如下。1.红帽和OpenEuler#systemctlenablechronyd;systemctlstartchronyd#启动且启动chronyd#systemctlstatuschronyd #状态检查(需要时)#systemctlrestart/stop/disablechronyd #重启/停止/禁用13.3.2服务管理chrony服务管理2.Ubuntu系统#systemctlenablechrony;systemctlstartchrony#启动且启动chrony#systemctlstatuschrony #状态检查(需要时)#systemctlrestart/stop/disablechrony #重启/停止/禁用每当配置被后,为使修改后的配置文件生效,需要重启服务。13.3.33配置文件chrony.conf及配置

配置文件chrony.conf1.配置文件chrony.conf及默认配置chrony服务使用的配置文件为chrony.conf,在红帽/openeuler和Ubuntu下的位置分别为/etc/和/etc/chrony/,配置内容及格式和ntp.conf相似。可使用命令:#sed-e'/^[[:blank:]]*#.*$/d;/^[[:blank:]]*$/d'/etc/$([-e/etc/lsb-release]&&echochrony/)chrony.conf可得到去除空行和注释行只含有效行的配置文件内容13.3.33配置文件chrony.conf及配置

配置文件chrony.conf2.chrony.conf中常见配置项server/pooladdress...:同ntp driftfilefile:同ntpallowaddress 允许客户端通过address访问。address可以为主机名、IP或网段makestepthresholdlimit:通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。makestep强制chronyd在调整期大于某个阈值(threshold)时加速或减慢系统时间,但只有在chronyd启动后未超过指定限制(limit)时才生效(可使用负值来禁用限制)13.3.33配置文件chrony.conf及配置

配置文件chrony.conf2.chrony.conf中常见配置项confdirdir:子配置文件包含目录。dir中的文件名格式为*.conf,将在chrony服务启动时按字典排列顺序加载sourcedirdir 时间服务器包含目录。dir中的文件名格式为*.sources,将在chrony服务启动或重载时加载。但*.sources文件中只能包含"pool"和"server"等时间服务器配置项。13.3.4防火墙设置

防火墙设置因为chrony与ntpsec使用的都是NTP协议,使用chrony与ntpsec时防火墙设置方法相同。13.3.5chrony配置示例chrony配置示例任务:在局域网内使用chrony配置NTP服务器,实现网内系统的时间同步。设服务器地址为0(centos10),使用外部服务器作为UTC时间源。13.3.5chrony配置示例chrony配置示例1)服务器编辑配置文件chrony.conf,在第一个含有“pool...”或“server...”的行前添加如下行 pooliburst 若无这样的行,就添加在文件首或尾部。之后,可以注释掉其他的server或pool所在的行,也可以不注释掉。在行 #allow....前或后添加如下一行内容: allow/24若无这样的行,就添加在文件首或尾部。配置完成后,重启chrony服务。13.3.5chrony配置示例chrony配置示例2)客户端对客户端的配置,只需要在配置文件中添加一个server配置项,并注释掉其他的server或pool配置项即可。因为NTP服务器IP为0,故需要按服务器的配置方法添加如下的配置行: server0iburst配置完成后,重启chrony服务。13.3.5chrony配置示例chrony配置示例3)对ubuntu系统chrony配置的说明在ubuntu24+中,chrony.conf文件中没有行“#allow....”,且可将NTP服务器配置项pool或server等都放在文件/etc/chrony/sources.d/ubuntu-ntp-pools.sources中。基于此和表13-3,在ubuntu24+中,可使用以下方法配置chrony时间服务器:(1)不修改主配置文件chrony.conf;(2)若有配置添加或修改,则在/etc/chrony/conf.d下文件名格式为*.conf的自定义文件中进行;(3)若有时间源配置添加或修改,则在/etc/chrony/sources.d/下文件名格式为*.sources的自定义文件中进行;(4)完成配置修成后,重启服务。13.3.5chrony配置示例chrony配置示例(1)时间服务器配置将新添的时间服务器配置行 pooliburst #chrony服务器端 server0iburst #chrony客户端存放在自定义文件/etc/chrony/sources.d/local-ntp-pools.sources中。然后,注释掉ubuntu系统在ubuntu-ntp-pools.sources提供所有的pool或server配置项或不做任何处理。13.3.5chrony配置示例chrony配置示例(2)在chrony服务器端添加allow控制配置项在服务器端添加网内allow控制项 allow/24并将其存放在自定义文件/etc/chrony/conf.d/localnet-ntp-allow.conf中。完成配置修改后,重启chrony服务。13.3.6chrony配置测试chrony配置测试测试chrony刚配置的NTP服务器,可以使用客户端程序chronyc。关于chronyc对chronyd管理等由读者自行探索。chronyc的用法为: chronyc[OPTION]...[COMMAND]...当不使用任何选项和参数运行chronyc时,将进入交互界面。在交互界面下可通过help命令得到帮助。13.3.6chrony配置测试chrony配置测试1.显示有关系统时钟性能的参数#chronyctracking#说明:客户端与服务器端信息有区别2.检查NTP时间源服务器状态#chronycsourcestats #输出为注释掉其他server或pool的情况3.检查时间源#chronycsources #输出为注释掉其他server或pool的情况若要得到更详尽的信息,可使用-v选项,比如:#chronycsources-v#chronyc-nsources-v13.3.6chrony配置测试chrony配置测试1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论