网络协议
我们过度的依赖网络时间,一直都相信着网络里的计算机都有精确的时间。然而我们不知道的是计算机时间与NTP时间往往很多都是不一致的对于一些独立运行的系统不会有什么太大的影响,对于一个有着多种相互关联的业务系统的供电企业而言,却是致命的。
一方面是国网公司“SG186”工程要求,同一业务系统在上下级公司的纵向上要做到贯通,各种业务系统在公司内部的横向上要做到集成。所以各业务系统传递的信息,在时间上必须保持高度一致,并准确地与北京时间同步。另一方面是一些自动化系统,如电能量采集系统、调度自动化系统、配网自动化系统等,这些系统中的计费、维护、管理等功能,对时间的精确有着更苛刻的要求。
在我们依赖文件服务器、邮件服务器、互联网网关以及其它无数网络设备的背后,存在一个基本的信任就是:网络里的计算机都有精确的时间。随着公司计算机应用的广度和深度不断加大,网络中的设备种类和业务类型越来越多,服务器的数量也与日俱增。传统上,各种服务器、网络设备使用的时间都是由设备内部时钟来提供的。由于服务器、网络设备本身的时钟误差是不可避免的,尽管这种误差每天不大,但经过一段时间的累积就会出现大的时间差,从而导致网络中各服务器、网络设备的时间不一致。伴随着企业计算的引人注目的增长以及真正类似UNIX的多任务机制在PC上实现,相应地,企业内产生了同步所有计算机/工作站的需求。
数据共享、分布式软件开发和安全是当今三个最常用的也是最容易遭受攻击的网络应用。网络管理员需要精确的时间信息来进行网络操作,以确保这三种应用以及其它关键网络应用的性能。一台专门设计来在企业内部发布精确时间信息的时间服务器(NTP)在今天的网络环境内成为一个基本组成部分。
你的计算机有正确的时间吗?
每周,计算机时钟都会有几秒钟的漂移,包括复杂的基于UNIX的工作站也是这样。因此,任意两台计算机的时间差都可能达到几分钟甚至几个小时。看看你周围的计算机,假如有两台计算机的时间是统一的、准确的时间,这将会是一件非常难得的事。
问题在于计算机只是机械的信任它处理的信息,就好像其它计算机知道准确的时间一样。它们假设这是正确的,但是当假设错误时就会导致操作失败。
网络授时协议和GPS是救星
网络授时协议使得网络内的计算机有可能统一到准确的时间。NTP是互联网TCP/IP协议族的一部分,它把网络里的计算机时间同步到共同的时间源。在大的企业网内,有可能用到不同级别的时间服务器(NTP)来分发统一的时间。
有很多时间源可以来设置NTP的时间,精度由低到高包括:拨号连接,无线电接收机、互联网NTP时间服务器(NTP)以及GPS卫星系统。互联网上有很多NTP服务器,但是它们的可靠性比较低,因为这取决于你的互联网连接的可靠性、本地网的流量以及NTP服务器的可靠性和负载情况。而且,因为互联网上的任何人都可以很容易的伪装一个错误的时间,所以安全性降低了。GPS在世界任何地方都可以提供一个高可靠的时间标准给网络管理员,GPS是设计来做导航和授时的,它由地球轨道上的带有原子钟的24颗卫星组成。基于GPS的时间服务器(NTP)不但授时精度比互联网上的时间服务器(NTP)高,而且时间还可以连续不断的更新,就是说GPS时钟可以每秒更新时间服务器(NTP)的时间,而不需要周期性的发送请求到其它时间服务器(NTP)请求时间,这只能在一个请求周期结束的时候才能更新本地时间服务器(NTP)的时间。
另一个网络授时的重要问题是时间源的冗余。这在网络分布比较广阔的环境下很必要,比如分布在不同的建筑甚至在不同的大陆。数据流量很大的环境、从事重要任务的部门以及具有可疑可靠性数据链的网络是另外一个问题,在这种场合冗余备份就更加重要。如果是在这种情况下,需要好几个GPS时间服务器(NTP)提供必要的冗余,以确保即使网络连接断了也能使得所有的工作站保持时间同步。
依赖时间的网络应用
有很多应用依赖计算机间准确的时间才能运作正常,如果计算机间的时间误差比较大,这些应用和协议就可能完全失败。
分布式软件开发
网络文件系统(NFS)是一个依赖时间的网络应用,它完全依赖各个工作站给服务器上的文件提供时间戳。当一个文件被创建或者被修改了,终端工作站的时钟被作为时间戳加在文件上。因此,如果客户端的时钟不同于服务器的时钟,则文件的时间戳将有不同。很多应用,从磁盘备份到生成程序都使用时间戳来确定哪个文件是最新的。在这种情况下,错误的时间戳意味着重大的文件损失,也就是工时和机时的损失。
计算机程序员经常需要“make”程序来编译代码生成软件应用程序,“make”程序完全依赖各个文件的时间戳来确定哪个文件最近被修改了,随后决定哪个文件需要重新生成。如果“make”程序在一个分布式文件系统中应用,比如NFS,一台终端标记的时间戳和其它终端标记的会有不同,除非时钟是同步的。如果两台终端的时间不一致,这时运行“make”就会发生严重的错误。对于有些“make”程序,允许的时间偏差可以大一些,但是从典型意义上来说,与单独一次编译差不多,这段时间对于今天的计算机来说只不过是几秒钟而已。
很多情况下,有很多终端和一台生成程序的主机。一个工程组可能保留一台最快的计算机来生成所有的程序,或者可能是来自几台不同机器的同一个项目的很多程序员。客户端使用自己的计算机编辑文件,而另外一台计算机编译这些文件。如果两台计算机的时间不同,导致的问题可能是好的话简单的浪费了一台计算机资源,或者严重的话就是不能包含一些最新生成的代码。
安全
当你组织内部的计算机网络不断扩大,更多的部门依赖互联网上的资源的时候,我们更关心这个重要的资源的安全性。
有几个新程序可以使你的内部网更安全,他们的作用范围从保护登录名和口令信息到验证分布式环境中至关重要的信息。下面讨论几个比较普遍的安全话题。
Kerberos是MIT开发的一个协议,用来在一个不安全的网络内,比如说一个大学网,发送加密的口令信息。Kerberos允许在互联网上安全
通信而不需要防火墙,并且支持很多通用的TCP/IP应用程序,例如telnet,ftp以及很多远程过程调用RPC程序。
Kerberos允许用户向Kerberos密钥分发中心(KDC)服务器申请一个“加密票”,“加密票”包括用户的口令和时间戳,两者用计算机上常用的DES算法加密。时间戳用来防止网络信息拦截机把拦截到的“加密票”伪装成刚刚授权的“加密票”不断的重复发送。“加密票”在一段时间内有效,这就要求客户端机器时钟和Kerberos服务器时钟在这一段时间内同步。有代表性的,时间范围是5分钟,时间范围越小网络越安全。
如果时钟漂移出允许的时间范围,网络上的用户就不能使用Kerberos并且不能使用网络。如果扩大时间范围,则这个网络对于网络上的监听者来说就是容易攻破的。
和具有Kerberos的网络一样,安全的NFS和RPC程序运行允许DES密钥通过以访问文件服务器和做客户端接入,虽然他们和Kerberos系统不同,但是他们使用相似的方法即在数据包内加上时间戳。和具有Kerberos的网络一样,如果客户端和服务器超出密钥的时间范围,链接将中断,用户就不能使用请求的资源。如果没有精确的时间源,这种安全措施就不能成为被广泛支持的协议。
诊断和性能
利用时间戳诊断优化网络功能有好几种方法,时间戳在这种情况下非常重要,可以确保网络的最小标准和识别问题,这些会影响网络的性能和效率。
电子邮件
电子邮件是计算机网络中最重要的信息流,即使没有本地网,许多公司也会利用MODEM在世界各地或者只是在一个房间内的一组人之间利用电子邮件相互通信。
时间戳可以用来衡量邮件服务器的性能和可靠性,并且设置性能标准,测定瓶颈服务器,判定哪个链接需要更宽的带宽。同样的邮件服务器要有时钟同步才行。
网络管理
SNMP被广泛的用来管理和控制远程设备,SNMP代理可以是集线器、交换机、网桥、路由器甚至计算机。这些网络设备内的代理向网络管理站(NMS)发送重要事件作为对故障和过载报警的响应。NMS站从整个网络内收到数百的重要事件和报警,必须使得这些报警和时间相关联。如果设备是错误的时间,则重大事件报告内也是包含的错误时间,这就很难确定是什么原因引起这种状况,触发这些重大事件报告。
SNMP同样包含远程网络监控(RMON)标准,可以在分布式的监控设备里有效的设置拦截包和极限重大事件。这个标准允许用户拦截包和报警,记录他们的时间戳并和其它RMON设备的结果相关联。还有,如果每个RMON设备的时钟没有同步,比较的结果和相关性就没有意义,甚至导致错误的结论。
总的说来,现代网络的分布计算环境有许多非常依赖精确时间的应用,包括电子邮件服务器、文件服务器以及C/S应用。用时间来标记这些文件创建以及后来修改的情况。这些时间戳由很多不同的机器产生,他们的时间的可靠性经常被忽略,等到发现有问题已经晚了。
全部0条评论
快来发表一下你的评论吧 !