1. 网络中对于时钟同步的需求
目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。随着广电系统双向网络改造的完成,以及三网融合对新业务提出的需求,计算机网络应用的不断涌现,计算机的时间同步问题成为愈来愈重要的事情。以Unix系统为例,时间的准确性几乎影响到所有的文件操作。如果一台机器时间不准确,例如在从时间超前的机器上建立一个文件,用ls查看一下,以当前时间减去所显示的文件修改时间会得一个负值,这一问题对于网络文件服务器是一场灾难,文件的可靠性将不复存在。为避免产生本机错误,可从网络上获取时间,这样系统时钟便可与公共源同步了。但是一旦这一公共时间源出现差错就将产生多米诺效应,与其同步的所有机器的时间会全都错误。
当涉及到网络上的安全设备时,同步问题就更为重要了。这些设备所生成的日志必须要反映出准确的时间。尤其是在处理繁忙数据的时候,如果时间不同步,几乎不可能将来自不同源的日志关联起来。一旦日志文件不相关连,安全相关工具就会毫无用处。不同步的网络意味着企业不得不花费大量时间手动跟踪安全事件。
上述问题的解决方法,就是需要一个能调整时钟抖动率,建立一个即时缓和、调整时间变化,并用一群受托服务器提供准确、稳定时间的时间管理协议,这就是网络校时协议(NTP)。
2. NTP简介
NTP (Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123[1] 。
使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行NTP的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。
2.1. NTP工作原理
NTP的基本工作原理如图1所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:

Figure 1. The basic principle of NTP
图1. NTP基本原理图
n 在Device A和Device B的系统时钟同步之前,Device A的时钟设定为5:00:00 am,Device B的时钟
设定为6:00:00 am。
n Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。
n NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。
系统时钟同步的工作过程如下:
n Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为5:00:00 am (T1)。
n 当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为6:00:01 am (T2)。
n 当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为6:00:02 am (T3)。
n 当Device A接收到该响应报文时,Device A的本地时间为5:00:03 am (T4)。
至此,Device A已经拥有足够的信息来计算两个重要的参数:
NTP报文的往返时延Delay = (T4 − T1) − (T3 − T2) = 2秒。
Device A相对Device B的时间差offset = ((T2 − T1) + (T3 − T4))/2 = 1小时[1] 。
这样,Device A就能够根据这些信息来设定自己的时钟,使之与Device B的时钟同步。
以上内容只是对NTP工作原理的一个粗略描述,详细内容请参阅RFC1305。
2.2. NTP的工作模式
设备可以采用多种NTP工作模式进行时间同步:客户端/服务器模式;对等体模式;广播模式;组播模式[2] 。
用户可以根据需要选择合适的工作模式。在不能确定服务器或对等体IP地址、网络中需要同步的设备很多等情况下,可以通过广播或组播模式实现时钟同步;服务器和对等体模式中,设备从指定的服务器或对等体获得时钟同步,增加了时钟的可靠性。
3. 河南有线NTP时钟源的选取
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC (Universal Time Coordinated)。NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。
网络时间服务的实现方式主要有以下三种方式:
(1) 无线时钟。服务器系统可以通过串口连接一个无线时钟。无线时钟接收GPS (全球卫星定位系统)的卫星发射的信号来决定当前时间。无线时钟是一个非常精确的时间源,但是需要花一定的费用。
(2)时间服务器。可以使用网络中NTP时间服务器,通过这个服务器来同步网络中的系统的时钟。http://www.eecis.udel.edu/~mills/ntp/servers.html列出了Internet上有效的一级时间服务器。
(3) 局域网内的同步。如果只是需要在本局域网内进行系统间的时钟同步,就可以使用局域网中任何一个系统的时钟。需要选择局域网中的一个节点的时钟作“权威的”的时间源,然后其它的节点就只需要与这个时间源进行时间同步即可。如果一个系统在一个局域网的内部,同时又不能使用无线时钟,这种方式是最好的选择。
河南有线网络集团是以传输有线电视信号为主业的网络多业务运营企业,为了可靠接收电视信号,独立架设了卫星接收天线,因此能够为网络提供准确的外部时钟源。河南有线数字电视系统规划的时钟同步器以GPS卫星时间为标准时间源,支持NTP协议(V 2.0/V 3.0/V 4.0)和SNTP协议,能够为局域网内成百上千的计算机、服务器、路由器等提供时间校准。
建立多级时钟同步体系,可以在一个无序的网络环境下提供精确和健壮的时间服务,河南有线数字电视平台时钟连接结构如图2所示。
河南有线电视网络集团公司采用的时钟同步器为北京中新创科技有限公司研制开发的网络时间服务器DNTS-88-OG,该型号的时钟同步器是一种高科技智能的、可独立工作的基于NTP/SNTP协议的高精度网络时钟服务器。
4. 河南有线网络NTP实现方案
河南有线广电网络从骨干网到城域网的设计思路和网络架构,包括出口设计、防火墙设计、数据中心VSS设计、IGP设计和MPLS VPN设计等。数据网络采用分层架构,分为骨干核心层、骨干汇聚层以及城域网接入层。
在河南有线数据网络中,核心层路由器与骨干数据中心交换机之间采用双上行连接,在核心层路由器与各地市骨干接入路由器以及核心层路由器与骨干出口路由器之间都采用“口”字型连接,此种链接方式为网络设备提供冗余备份。因此,在考虑NTP方案部署是不仅要部署NTP层次之间的客户端/服务器模式,还要部署同一层次间的对等体模式。
作为广电网络所有数据及双向网络的时钟信息发布者,核心层设计NTP结构时需要选定精确度高的设备作为根时钟源的设备,目前选用与GPS时钟服务器直连的数据中心交换机作为全网时钟同步信息的发布者,NTP层次等级设置为1,该数据中心设备采用思科 6509,其版本为:Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9-M),Version 12.2(33)SXI2a,RELEASE SOFTWARE (fc2),该设备通过网络到GPS时钟源服务器去同步时钟信息。
考虑到冗余的情况,GPS时钟服务器分别通过物理端口发布时钟信息,并且两个物理端口处于不同的网段,因此在核心数据中心交换机6509上配置主、备两个时钟服务器地址去进行同步,当某一个地址失效时,将自动切换到另外一个时钟服务器地址去进行同步。此外,进一步考虑到数据中心交换机与GPS时钟服务器之间的网络风险,当数据中心交换机与GPS时钟服务器之间的网络瘫痪时,数据中心交换机6509将会选择本地时钟向全网设备提供时钟源,由此可见,数据中心交换机的地位尤为重要。为了避免物理链路失效导致的路由失效,本次部署时所有层次设备采用环回地址作为时钟源发布地址。
在骨干核心层,除了数据中心交换机外,河南全省18地市的互连设备都与核心路由器采用星型连接,
考虑到网络结构,两台CISCO CRS设备向数据中心交换机进行时钟同步,并且两台CISCO CRS作为18地市互联设备的同步时钟源发布时钟信息。在两台CRS的NTP设计上,采用客户端/服务器方式+对等体方式,两台核心路由器都以数据中心交换机作为时钟源服务器,同时,两台核心路由器又以彼此作为对等体进行时钟同步,如图3所示。
两台CRS核心路由器的本地NTP等级设置为3级。这样做的原因是,当其中一台CRS核心路由器和数据中心交换机失去网络互连时,本身的NTP时钟级别变为3级,但是对等体CRS核心路由器的时钟源同步状态正常,等级为2级,这时对于18地市的互连设备来说,由于采用“口”字形连接,如图4所
示,将会有两个时钟源进行选择,正常状态的CRS核心路由器NTP级别高于网络故障路由器的级别,18

Figure 2. The structural representation of time synchronization system
图2. 时钟同步系统结构示意图

Figure 3. The design model 1 of backbone core network NTP
图3. 骨干核心层NTP设计模型1

Figure 4. The design model 2 of backbone core network NTP
图4. 骨干核心层NTP设计模型2
地市的路由器通过选择,仍然选择到正常的路由器去进行时钟同步,最大限度的确保了时钟信息的准确性。
城域网中的设计思路与骨干核心层设计思路相同,分别以各地市的7609设备作为时钟源服务器,具体实现在这里不再进行赘述。另外,从网络安全方面考虑,在数据中心交换机上使能NTP认证,要求客户端请求的同步消息中必须携带认证信息,内容包括可靠的Key值和经MD5算法加密后的密钥。
由于城域网设备采用的是中兴8905、8908设备和华为9306、9303设备,因此在方案部署的时还需要考虑不同厂家设备之间的对接测试,包括认证key值范围,所支持的NTP的工作模式。
5. 结语
通过在河南有线电视网络中实现NTP部署,时钟源服务器根据全网物理拓扑结构,实现了分层部署,各层相关设备(包括路由器、交换机、服务器等)能够根据物理网络位置去获取精准的时钟源信息,既保证全网时钟信息精确同步,又分散大量设备进行时钟同步信令交互给核心时钟源服务器带来的压力。这样,既实现了河南有线电视网络集团对全网业务提供统一时钟,又增加了全网设备上报的相关日志信息可读性,为运维人员对设备运行情况的掌握提供了便利,提升了运维工作的效率。
另附,相关配置命令解析,以CISCO CRS设备为例:
ntp authentication-key **** md5 encrypted ****-----配置认证KEY和密钥
authenticate------使能认证
trusted-key ****-----信任认证KEY server #.#.#.# key**** source Loopback0-----主时钟源server地址
peer #.#.#.# key **** source Loopback0-----备时钟源server地址
source Loopback0-----时钟源更新地址
ntp master 3-----本地时钟源级别