您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 15第十五章时间服务器NTP服务器
第十五章、时间服务器:NTP服务器最近更新日期:2011/07/29计算机内部所记录的时钟是记载于BIOS(CMOS)内的,但如果你的计算机上面的电池没电了,或者是某些特殊因素导致BIOS数据被清除,此时计算机的时间就会不准。同时,某些操作系统程序的问题,也可能导致我们看到的时间与现实社会不相同的情况。所以我们都会调整一下时间,好让计算机系统的时间可以一直保持正确的状态。在实际生活中,我们可以透过电视台、广播电台、电话等等来调整我们的手表,那么如果是在网络上呢?该如何让我们的主机随时保持正确的时间信息?这就需要NTP这个服务器啰。15.1关于时区与网络校时的通讯协议15.1.1什么是时区?全球有多少时区?GMT在那个时区?15.1.2什么是夏季节约时间(daylightsavings)?15.1.3CoordinatedUniversalTime(UTC)与系统时间的误差15.1.4NTP通讯协议15.1.5NTP服务器的阶层概念15.2NTP服务器的安装与设定15.2.1所需软件与软件结构15.2.2主要配置文件ntp.conf的处理15.2.3NTP的启动与观察:ntpstat,ntpq15.2.4安全性设定15.3客户端的时间更新方式15.3.1Linux手动校时工作:date,hwclock15.3.2Linux的网络校时:ntpdate15.3.3Windows的网络校时15.4重点回顾15.5课后练习15.6参考数据15.7针对本文的建议:=11797615.1关于时区与网络校时的通讯协议时间对于现代人来说是很重要的,因为『Timeismoney』。既然时间如此重要,对于因特网来说应该也是很重要吧?为什么呢?还记得我们在基础学习篇第三版第十九章、登录档分析吧?如果你架设了一个登录档服务器的话,那么总得要分析每个主机所传来的登录文件信息吧?如果每一部主机的时间都不相同,那如何判断问题发生的时间点?所以啰,『每一部主机的时间同步化』就很重要了。每一部主机时间同步化的重要性当然不只如此,包括之前谈到的DHCP客户端/服务器端所需要的租约时间限制、网络侦测时所需要注意的时间点、刚刚谈到的登录文件分析功能、具有相关性的主机彼此之间的错误侦测、前一章谈到的丛集计算机群等等,都需要具有相同的时间才能够捉出问题呢。好了,底下咱们就来聊一聊,如何利用网络来进行主机的时间同步化吧!15.1.1什么是时区?全球有多少时区?GMT在那个时区?因为地球是圆的,所以同一个时刻,在地球的一边是白天,一边是黑夜。而因为人类使用一天24小时的制度,所以,在地球对角的两边就应该差了12个小时才对。由于同一个时间点上面,整个地球表面的时间应该都不一样,为了解决这个问题,所以可以想见的,地球就被分成24个时区了!那么这24个时区是依据什么来划分的呢?由于地球被人类以『经纬度』坐标来进行定位,而经度为零的地点在英国『格林威治』这个城市所在的纵剖面上,(注:所谓的纵剖面就是由南极切到北极的直线,而横切面就是与赤道平行的切线),如下图所示:图15.1-1、地球的子午线、经纬度与时区的分隔概念因为绕地球一圈是360度角,这360度角共分为24个时区,当然一个时区就是15度角啦!又由于是以格林威治时间为标准时间(GreenwichMeanTime,GMT时间),加上地球自转的关系,因此,在格林威治以东的区域时间是比较快的(+小时),而以西的地方当然就是较慢啰!以台湾为例,因为台湾所在地约为东经120度北纬25度左右,又因为台湾在格林威治的东方(废话!因为是东经嘛!^_^),因此台湾本地时间(localtime)会比GMT时间快8小时(GMT+8)。当格林威治时间为零点,台湾就已经是早上八点了!底下约略列出各个时区的名称与所在经度,以及与GMT时间的时差:标准时区经度时差GMT,GreenwichMeanTime0W/E标准时间CET,CentralEuropean15E+1东一区EET,EasternEuropean30E+2东二区BT,Baghdad45E+3东三区USSR,Zone360E+4东四区USSR,Zone475E+5东五区Indian,First82.3E+5.5东五半区USSR,Zone590E+6东六区SST,SouthSumatra105E+7东七区JT,Java112E+7.5东七半区CCT,ChinaCoast(台湾所在地)120E+8东八区JST,Japan135E+9东九区SAST,SouthAustralia142E+9.5东九半区GST,Guam150E+10东十区NZT,NewZealand180E+12东十二区Int'lDateLine180E/W国际日期变更线BST,Bering165W-11西十一区SHST,Alaska/Hawaiian150W-10西十区YST,Yukon135W-9西九区PST,Pacific120W-8西八区MST,Mountain105W-7西七区CST,Central90W-6西六区EST,Eastern75W-5西五区AST,Atlantic60W-4西四区Brazil,Zone245W-3西三区AT,Azores30W-2西二区WAT,WestAfrica15W-1西一区所以啰,台湾时间是GMT+8就很容易推算出来了吧!要特别留意的是,很多朋友在安装Linux的时候,总是会发现目前的时间慢或者快了8小时,不要怀疑,绝对与时区有关!赶紧给他查一下如何调整时区吧!^_^。另外,在上表中有个比较有趣的时区,那就是在太平洋上面的国际日期变更线了!我们刚刚说,在格林威治的东边时间会较快,而在西边时间会较慢,但是两边各走了180度之后就会碰头啊!那不就刚好差了24小时吗?没错啦!所以才订定为『国际日期变更线』啊!国际日期变更线刚好在太平洋上面,因此,如果你有坐飞机到美国的经验应该会发现,咦!怎么出发的时间是星期六下午,坐了13个小时的飞机到了美国还是星期六!因为刚好通过了国际日期变更线,日期减少了一天喔!如果反过来,由美国到台湾,日期就会多加一天喔!^_^15.1.2什么是夏季节约时间(daylightsavings)?时区的概念先建立起来之后,现在再来谈一谈,那么什么是『夏季节约时间(或称日光节约时间)』?既然是『夏季节约时间』当然主要是与夏天有关啦!因为地球在运行的时候是呈现一个倾斜角在绕太阳运转的,所以才有春夏秋冬(这个大家应该都知道啦),在夏天的时候,白天的时间会比较长,所以为了节约用电,因此在夏天的时候某些地区会将他们的时间定早一小时,也就是说,原本时区是8点好了,但是因为夏天太阳比较早出现,因此把时间向前挪,在原本8点的时候,订定为该天的9点(时间提早一小时)~如此一来,我们就可以利用阳光照明,省去了花费电力的时间,因此才会称之为夏季节约时间!因为台湾实在是太小了,并没有横跨两个时区,因此,夏季节约时间对我们来说,虽然还是有帮助啦!不过,似乎没有特别推行的样子说~15.1.3CoordinatedUniversalTime(UTC)与系统时间的误差了解了一些时区的概念之后,这里要谈的是『什么是正确的时间』。在1880年代的时间标准是以GMT时间为主的,但是GMT时间是以太阳通过格林威治的那一刻来作为计时的标准。然而我们都知道啊,地球自转的轨道以及公转的轨道并非正圆,加上地球的自转速度好像有逐年递减的问题,所以这个GMT时间与我们目前计时的时间就有点不一样了。(注1)在计算时间的时候,最准确的计算应该是使用『原子震荡周期』所计算的物理时钟了(AtomicClock,也被称为原子钟),这也被定义为标准时间(InternationalAtomicTime)。而我们常常看见的UTC也就是CoordinatedUniversalTime(协和标准时间)就是利用这种AtomicClock为基准所定义出来的正确时间。例如1999年在美国启用的原子钟NISTF-1,他所产生的时间误差每两千年才差一秒钟!真的是很准吶!这个UTC标准时间虽然与GMT时间放在同一个时区为基准,不过由于计时的方式不同,UTC时间与GMT时间有差不多16分钟的误差呢!(注2)事实上,在我们的身边就有很多的原子钟,例如石英表,还有计算机主机上面的BIOS内部就含有一个原子钟在纪录与计算时间的进行吶!不过由于原子钟主要是利用计算芯片(crystal)的原子震荡周期去计时的,这是因为每种芯片都有自己的独特的震荡周期之故。然而因为这种芯片的震荡周期在不同的芯片之间多多少少都会有点差异性,甚至同一批芯片也可能会或多或少有些许的差异(就连温度也可能造成这样的误差呢),因此也就造成了BIOS的时间会经常的给他快了几秒或者慢了几秒。或许你会认为,BIOS定时器每天快个五秒也没有什么了不起的,不过如果你再仔细的算一算,会发现,一天快五秒,那么一个月快2.5分钟,一年就快了75分钟了!所以说,呵呵!时间差是真的会存在的!那么如果你的计算机真的有这样的情况,那要怎么来重新校正时间呢?那就需要『网络校时』(NetworkTimeProtocol,NTP)的功能了!底下我们就谈一谈那个NTP的daemon吧!15.1.4NTP通讯协议老实说,Linux操作系统的计时方式主要是由1970/01/01开始计算总秒数,因此,如果你还记得date这个指令的话,会发现它有个+%s的参数,可以取得总秒数,这个就是软件时钟。但,如同前面说的,计算机硬件主要是以BIOS内部的时间为主要的时间依据(硬件时钟),而偏偏这个时间可能因为BIOS内部芯片本身的问题,而导致BIOS时间与标准时间(UTC)有一点点的差异存在!所以为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作就显的很重要了!软件时钟:由Linux操作系统根据1970/01/01开始计算的总秒数;硬件时钟:主机硬件系统上面的时钟,例如BIOS记录的时间;那么怎么让时间同步化呢?想一想,如果我们选择几部主要主机(Primaryserver)调校时间,让这些PrimaryServers的时间同步之后,再开放网络服务来让Client端联机,并且提供Client端调整自己的时间,不就可以达到全部的计算机时间同步化的运作了吗!那么什么协议可以达到这样的功能呢?那就是NetworkTimeProtocol,另外还有DigitalTimeSynchronizationProtocol(DTSS)也可以达到相同的功能!不过,到底NTP这个daemon是如何让Server与Client同步他们的时间呢?1.首先,主机当然需要启动这个daemon,之后,2.Client会向NTPServer发送出调校时间的message,3.然后NTPServer会送出目前的标准时间给Client,4.Client接收了来自Server的时间后,会据以调整自己的时间,就达成了网络校时咯!在上面的步骤中你有没有想到一件事啊,那就是如果Client到Server的讯息传送时间过长怎么办?举例来说,我在台湾以ADSL的PC主机,联机到美国的NTPServer主机进行时间同步化要求,而美国NTPServer收到我的要求之后,就发送当时的正确时间给我,不过,由美国将数据传送回我的PC时,时间可能已经延迟了10秒钟去了!这样一来,我的PC校正的时间是10秒钟前的标准时间喔!此外,如果美国那么NTP主机有太多的人喜欢上去进行网络校时了,所以loading(负荷)太重啦!导致讯息的回传又延迟的更为严重!那怎么办?为了这些延迟的问题,有一些program已经开发了自动计算时间传送过程的误差,以更准确的校准自己的时间!当然啦,在daemon的部分,也同时以server/client及master/slave的架构来提供用户进行网络校时的动作!所谓的master/slave就有点类似DNS的系统咯!举例来说,台湾的标准时间主机去国际标
本文标题:15第十五章时间服务器NTP服务器
链接地址:https://www.777doc.com/doc-3021525 .html