摘要:随着网络的飞速发展,设备的日益增多,许多网络应用和网络安全对时间同步问题提出了迫切需求。因此基于NTP的时间同步解决方案成为解决这些问题的合理选择。本文介绍了时间同步技术中的NTP协议的原理、工作模式和体系结构,并结合校园网的实际网络结构讨论了NTP在校园网中的应用,
关键字:时间同步,网络时间协议
1、引言:
随着网络的普及,许多单位都建了自己的园区网,使用的网络设备和服务器日益增多。这些设备都有自己的时钟,而且是可以调节的。但是无法保证网络中的所有设备和主机的时间是同步的,因为这些时钟每天会产生数秒、甚至数分钟的误差。经过长期运行,时间差会越来越大,这种偏差在单机中影响不太大,但在网络环境下的应用中可能会引发意想不到的问题。如在分布式计算环境中,由于每个主机时间不一致,会造成同一操作在不同主机的记录时间不一致,将导致服务无法正常地进行。随着各种网络应用的不断发展,对时间的要求也越来越高,否则会引发许多的问题。
2、时间同步概述
将网络环境中的各种设备或主机的时间信息(年月日时分秒)基于UTC(Universal Time Coordinated)时间偏差限定在足够小的范围内(如100ms),这种同步过程叫做时间同步[1]。
目前,有两种重要的时间同步技术,即网络时间协议(Network Time Protocol,NTP)协议和直接连接时间传输技术。其中直接连接时间传输技术,需要所有客户端直接连接到标准时间源。NTP适用于网络环境下,可以在一个无序的网络环境下提供精确和健壮的时间服务。这里我们只讨论基于NTP原理的时间同步技术和应用。
3、NTP工作原理和应用
3.1、NTP协议概述
NTP最早由美国Delaware大学的教授设计实现的,由时间协议、ICMP时间戳消息及IP时间戳选项发展而来[2]。NTP用于将计算机客户或服务器的时间同步到另一服务器或参考时钟源。它使用UTC作为时间标准,是基于无连接的IP 协议和UDP协议的应用层协议,使用层次式时间分布模型,所能取得的准确度依赖于本地时钟硬件的精确度和对设备及进程延迟的严格控制。在配置时,NTP可以利用冗余服务器和多条网络路径来获得时间的高准确性和高可靠性。实际应用中,又有确保秒级精度的简单的网络时间协议(Simple Network Time Protocol,SNTP)。
图1是一个UDP分组中的NTP信息。其中,LI是润秒插入或删除指示;VN是NTP协议版本号;Mode、Stratum和Precision分别代表工作模式、时钟级别和本地钟精度。Poll是当前发送NTP消息的时间间隔的期望值。Root Delay表示主要参考源的总延迟。Root Dispersion表示相对于主要参考源的正常差错。Synchronizing Distance和Synchronizing Dispersion是当前往返延迟和相对于PRS的误差范围。Reference Timestamp代表当前时钟参考源的种类和最近一次更新时间,为管理目的而设立。后面三个字段分别代表三个时间戳:Originate Timestamp发送方最后接触包的时间,Receive Timestamp接收方收到包的时间,Transmit Timestamp接收方发送echo reply时最后接触包的时间。Authenticator是密匙指示标志和加密的校验盒。
图1:UDP分组中的NTP信息[4]
3.2、NTP的工作原理
影响NTP 协议精确度最关键的原因在于由网络延迟的随机性而引起的时钟延迟计算的不准确。由于延迟不准确,所以无法依靠从时间服务器到客户机的单边传输来传递精确的时间信息。为了解决这个问题,在NTP协议中使用时间服务器和客户机之间的双向信息交换和时间戳(timestamp)的概念。图2显示了用这种方法确定延迟和偏移的基本原理。
如图所示,Ti,Ti-1,Ti-2,Ti-3为A、B主机之间最近的4个时间戳的值。假设:
a=Ti-2-Ti-3;b= Ti-1- Ti。那么A、B主机之间的往返传输延迟δi和B相对于A在Ti时刻的时间偏移量θi应该为:δi=a-b;θi=(a+b)/2
由于在网络传输中分组传输的流量不确定,可能时大时小,而且通常是以突发的方式到达客户机,所以传输延迟不是一个稳态随机过程。但是,我们可以通过对传输延迟的测量来对完成偏差的修正。在图2中,B相对于A的真实时间偏移是θ。假设用x表示从A到B的真实传输延迟,那么有:x+b=Ti-2–Ti-3=a。由于x必须为正,即有x=a–θ≥0,所以θ≤a。同理,我们可得出b≤θ,所以有b≤θ≤a,即:b=(a+b)/2-(a-b)/2≤θ≤(a+b)/2+(a-b)/2=a。相当于:θi -(δi)/2≤θ≤θi +(δi)/2。
这意味着,真实的时钟偏差值是以测量所得的偏差值为中心的,而其可能的变化范围则等长于测量所得的延迟。每一条NTP消息都包含最新的3个时间戳,第4个时间戳则由消息的到达时刻确定。因此,服务器和客户机都可以单独确定时间偏移。这种对称的连续采样的时间传输方法的优点是对发送和接受的消息的顺序没有要求,因此不需要可靠的传输途径。很显然,最终的准确度将取决于发送和接受路径的统计特性。
3.3、NTP的工作模式
NTP的工作模式有三种:
客户/服务器模式:客户机周期性地向服务器请求时间信息,服务器用来同步客户机但不能被客户机同步。客户机首先向服务器发送一个NTP 包,其中包含了该包离开客户机时的时间戳,当服务器接收到该包时,依次填入包到达时的时间戳、交换包的源地址和目的地址、填入包离开时的时间戳,然后立即把包返回给客户机。客户机在接收到响应包时再填入包返回时的时间戳。客户机用这些时间参数就能够计算出2个关键参数:包交换的往返延迟和客户机与服务器之间的时钟偏移。客户机使用时钟偏移来调整本地时钟,以使其时间与服务器时间一致[2]。
主/被动对称模式:与客户/服务器模式基本相同。唯一区别在于双方均可同步对方或被对方同步。
广播模式:没有同步的发起方。在每个同步周期中,服务器向网络广播广播带有自己时间戳的消息包,所有的目标节点被动接收这些消息,以此调整自己的时间。一般用于网络延时非常小,或者对时间精度要求不高的地方,如同局域网内,使用广播模式可节省带宽。
3.4、NTP系统体系结构
NTP采用层次式时间分布模型。网络体系结构主要包括主时间服务器、从时间服务器、客户机和各节点之间的传输路径。主时间服务器与高精度时间源进行同步,为其他节点提供时间服务。各客户端从时间服务器经由主服务器获得时间同步。正常情况下,节点(包括时间服务器和客户机)只用最可靠、最准确的服务器及传输路径进行同步,所以通常的同步路径为一个层次结构。其中,主时间服务器位于根节点,其他从时间服务器随同步精度增加而位于靠近叶子节点的层上,主机和学校服务器处于叶子节点。NTP将传输路径分为主动同步路径和备份同步路径,两者都同时进行时间信息包的传输,但节点只用主动同步路径数据进行同步处理[2]。
图3:客户/服务器模式的一个实现模型[3]
该模型中,本地时钟进程:处理由修正模块得出的偏移量并且用NTP中专用算法对本地时钟的相位和频率进行调节。传送进程:由和每个远端实体对应的不同定时器触发,用以从数据库中收集信息,并向远端实体发送NTP消息。每个消息包括发送时的本地时间戳,前一次收到的时间戳,还有用来判断同步网络层次结构以及管理连接的信息。接收进程:接收NTP消息,计算出远端时钟和本地时钟之间的偏移量。修正模块:处理与各个远端实体之间的偏移量,并用NTP中的一个算法选择最佳的一个。本地时钟进程:处理由修正模块得出的偏移量并且用NTP中专用算法对本地时钟进行调节。
4.NTP在校园网中的应用
在我校校园网络内,存在大量网络设备、服务器和主机,它们承载了校园网中的计费、维护、管理等功能,对时间的准确度需求比较高,要求在网络之间传递的信息能够在时间上保持高度一致。
时间同步在校园网内的应用主要集中在一下几个方面:
1、网络管理系统的日志审计:当网络中出现恶意攻击行为或网络故障问题时,需要网络管理员根据有关网络设备中产生的日志进行分析和判断,以便于查找攻击源和对网络造成的危害及产生的原因。但是如果网络中时间不能同步,那么同一个行为在不同设备中产生的日志将不能序列化。也就无法对这些问题进行分析和解决。另外当网管中心采用多点日志记录时,如果网络各个节点时间不同步,也将造成日志记录的混乱。若需要这些信息快速准确进行故障定位,准确的时间是必不可少的[1]。
2、应用认证过程:校园网内的一些应用系统及以后要建的一卡通系统,在进行用户认证的时候,要求网络中时间必须同步。因为认证中的数字时间戳服务要求客户端使用本地时间作为参数与认证服务器端交换认证信息包。如果不能做到网络中的时间同步,那么系统就会遇到问题,而且认证过程中还有可能受到重放攻击。
3、与时间有关的应用系统:严格要求记录数据提交时刻的网络应用系统,必须保证提交时间的准确性和不可更改性。另外,对客户端进行限时操作的应用系统也要求时间同步。
4、校园网备份系统:在备份服务器和客户机之间进行增量备份要求这两个系统之间的时间同步。
5、确保系统之间的远程系统调用能够正常进行:因为为了保证一个系统调用不会重复进行,该系统调用只在一个时间间隔内有效。如果系统间的时钟不同步。该系统调用可能在还没有发生之前就因为超时而不能进行
6、计费系统:网络计费系统中也要用到数字时间戳服务,所以也要求精确的时间同步。
校园网中各种应用系统及安全系统、网络管理系统推动了网络设备、服务器等对时间同步的需求。如果不能进行准确的时间同步,我们就得花费大量的时间来解决各种各样的可能会出现的问题。
总而言之,时间同步技术对网络管理和网络应用是非常重要的。为了保证校园网内各设备和系统之间时间的同步,我们需要解决三方面的问题:一是尽量选取非常精确的时间源;二是将精确的时间传送到需要时间服务的网络设备或主机,保证在传输过程中误差尽量小;三是用绝对时间同步时间设备,充分利用设备各自的时间校准机制自动实现时间同步,尽量排除人工因素。
为此结合校园网实际情况,按NTP的分层结构构建一个校园时间同步网,见图4。目前,校园网网络结构按物理范围划分为几个区域,各区域有一台三层交换机作为核心设备,这些核心设备通过网络中心的一台核心三层交换机接入Internet。我们采用网络中心的核心设备作为Internet上已公开的时间服务器(国际时间服务器见http://www.eesic.udel.edu/ntp/;中国教育网内时间服务器见http://www.time.edu.cn/mem.htm)的客户端,直接从Internet上的时间服务器取得准确的时间,然后做为校园网内的一级时间服务器,为整个校园网络提供时间服务;其他几个区域内的核心设备作为网络中心核心设备的客户端,从网络中心的核心设备上取得时间;校园网中分布层的网络设备作为核心层的客户端,从各自所处区域的核心设备上取得时间,并为校园网内终端用户提供时间服务。设置上一级时间服务器的配置命令如下:
(config)#ntp server x.x.x.x:其中x.x.x.x是要保持一致的上一级时间服务器的ip地址。
为了保持时间的准确性,校园网内的各种服务器一般可根据连接情况直接从最近连接的核心设备来取得时间,而各核心设备之间可以采用主/被动对称模式工作,它们同时可以互相之间进行协调,以保持时间的一致性。设置对等关系的配置命令如下:(config)#ntp peer x.x.x.x 其中x.x.x.x为对等地位的时间服务器的ip地址
校园内的服务器根据操作系统不同,分别采用不同配置命令或软件:对于Windows2000,可以使用Windows自带的命令,在命令行方式下输入:net time/set sntp :x.x.x.x 其中:x.x.x.x为时间服务器ip地址,可以有一个或多个,之间用空格分开。也可使用免费软件,如:ntptime等。对于Linux,可采用rdate或netdate与时间服务器进行时间同步。
核心层设备的时间服务非常重要,如果受到攻击,将会影响很大范围的服务。所以我们可以采用设置授时验证要求和访问控制策略来防止对核心设备的非授权访问和改动,以确保校园网内时间的准确、可靠和安全。对时间服务器端和对应客户端进行的NTP配置步骤如下:
1、启用NTP认证:
(switch-config)#ntp authenticate
2、配置NTP认证用的密码,使用MD5加密,需要和ntp server保持一致
(switch-config)#ntp authentication key 1 md5 keyword
3、配置双方信任的key
(switch-config)#ntp trusted – key 1
4、配置访问控制策略,只允许对符合access-list listnumber条件主机提供时间服务
(switch-config)#ntp acess-group peer listnumber
以上命令必须在需要认证的核心设备和对应客户端同时部署,而且配置命令必须一致:
图4 校园时间同步网
5.总结
本文讨论了NTP协议的工作原理和工作模式。并针对校园网对时间服务的需求结合校园网的实际情况提出了采用NTP协议分层模式的校园时间同步网的解决办法。以后随着校园网的建设,对时间服务有要求的网络应用会越来越多。在网络安全方面对时间服务的要求也会越来越高,这方面的研究还有待于深入。
|