时间服务器NTP服务器_第1页
时间服务器NTP服务器_第2页
时间服务器NTP服务器_第3页
时间服务器NTP服务器_第4页
时间服务器NTP服务器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、第十五章、时间服务器:NTP服务器切换分辨率为800x600最近更新日期:2011/07/29计算机内部所记录的时钟是记载于BIOS(CMOS)内的,但如果你的计算机上面的电池没电了,或者是某些特殊因素导致BIOS资料被清除,此时计算机的时间就会不准。同时,某些作业系统程序的问题,也可能导致我们看到的时间与现实社会不相同的情况。所以我们都会调整一下时间,好让计算机系统的时间可以一直保持正确的状态。在实际生活中,我们可以透过电视台、广播电台、电话等等来调整我们的手表,那么如果是在网络上呢?该如何让我们的主机随时保持正确的时间信息?这就需要NTP这个服务器囉。15.1关于时区与网络校时的通讯协定什

2、么是时区?全球有多少时区?GMT在那个时区?什么是夏季节约时间(daylightsavings)?CoordinatedUniversalTime(UTC)与系统时间的误差NTP通讯协定NTP服务器的阶层概念15.2NTP服务器的安装与设定所需软件与软件结构主要设定档ntp.conf的处理NTP的启动与观察:ntpstat,ntpq安全性设定15.3用户端的时间更新方式Linux手动校时工作:date,hwclockLinux的网络校时:ntpdateWindows的网络校时15.4重点回顾15.5课后练习15.6参考资料15.7针对本文的建议:15.1关于时区与网络校时的通讯协定时间对于现代

3、人来说是很重要的,因为Timeismoney。既然时间如此重要,对于网际网络来说应该也是很重要吧?为什么呢?还记得我们在基础学习篇第三版第十九章、登录档分析吧?如果你架设了一个登录档服务器的话,那么总得要分析每个主机所传来的登录档信息吧?如果每一部主机的时间都不相同,那如何判断问题发生的时间点?所以囉,每一部主机的时间同步化就很重要了。每一部主机时间同步化的重要性当然不只如此,包括之前谈到的DHCP用户端/服务器端所需要的租约时间限制、网络侦测时所需要注意的时间点、刚刚谈到的登录档分析功能、具有相关性的主机彼此之间的错误侦测、前一章谈到的丛集计算机群等等,都需要具有相同的时间才能够捉出问题呢。

4、好了,底下咱们就来聊一聊,如何利用网络来进行主机的时间同步化吧!15.1.1什么是时区?全球有多少时区?GMT在那个时区?因为地球是圆的,所以同一个时刻,在地球的一边是白天,一边是黑夜。而因为人类使用一天24小时的制度,所以,在地球对角的两边就应该差了12个小时才对。由于同一个时间点上面,整个地球表面的时间应该都不一样,为了解决这个问题,所以可以想见的,地球就被分成24个时区了!那么这24个时区是依据什么来划分的呢?由于地球被人类以经纬度坐标来进行定位,而经度为零的地点在英国格林威治这个城市所在的纵剖面上,(注:所谓的纵剖面就是由南极切到北极的直线,而横切面就是与赤道平行的切线),如下图所示:

5、图15.1-1、地球的子午线、经纬度与时区的分隔概念因为绕地球一圈是360度角,这360度角共分为24个时区,当然一个时区就是15度角啦!又由于是以格林威治时间为标准时间(GreenwichMeanTime,GMT时间),加上地球自转的关系,因此,在格林威治以东的区域时间是比较快的(+小时),而以西的地方当然就是较慢囉!以台湾为例,因为台湾所在地约为东经120度北纬25度左右,又因为台湾在格林威治的东方(废话!因为是东经嘛!_),因此台湾本地时间(localtime)会比GMT时间快8小时(GMT+8)。当格林威治时间为零点,台湾就已经是早上八点了!底下约略列出各个时区的名称与所在经度,以及与

6、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,SouthA

7、ustralia142E+9.5东九半区GST,Guam150E+10东十区NZT,NewZealand180E+12东十二区IntlDateLine180E/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,WestA

8、frica15W-1西一区所以囉,台湾时间是GMT+8就很容易推算出来了吧!要特别留意的是,很多朋友在安装Linux的时候,总是会发现目前的时间慢或者快了8小时,不要怀疑,绝对与时区有关!赶紧给他查一下如何调整时区吧!_。另外,在上表中有个比较有趣的时区,那就是在太平洋上面的国际换日线了!我们刚刚说,在格林威治的东边时间会较快,而在西边时间会较慢,但是两边各走了180度之后就会碰头啊!那不就刚好差了24小时吗?没错啦!所以才订定为国际换日线啊!国际换日线刚好在太平洋上面,因此,如果你有坐飞机到美国的经验应该会发现,咦!怎么出发的时间是星期六下午,坐了13个小时的飞机到了美国还是星期六!因为刚好

9、通过了国际换日线,日期减少了一天喔!如果反过来,由美国到台湾,日期就会多加一天喔!_15.1.2什么是夏季节约时间(daylightsavings)?时区的概念先建立起来之后,现在再来谈一谈,那么什么是夏季节约时间(或称日光节约时间)?既然是夏季节约时间当然主要是与夏天有关啦!因为地球在运行的时候是呈现一个倾斜角在绕太阳运转的,所以才有春夏秋冬(这个大家应该都知道啦),在夏天的时候,白天的时间会比较长,所以为了节约用电,因此在夏天的时候某些地区会将他们的时间定早一小时,也就是说,原本时区是8点好了,但是因为夏天太阳比较早出现,因此把时间向前挪,在原本8点的时候,订定为该天的9点(时间提早一小时

10、)如此一来,我们就可以利用阳光照明,省去了花费电力的时间,因此才会称之为夏季节约时间!因为台湾实在是太小了,并没有横跨两个时区,因此,夏季节约时间对我们来说,虽然还是有帮助啦!不过,似乎没有特别推行的样子说15.1.3CoordinatedUniversalTime(UTC)与系统时间的误差了解了一些时区的概念之后,这里要谈的是什么是正确的时间。在1880年代的时间标准是以GMT时间为主的,但是GMT时间是以太阳通过格林威治的那一刻来作为计时的标准。然而我们都知道啊,地球自转的轨道以及公转的轨道并非正圆,加上地球的自转速度好像有逐年递减的问题,所以这个GMT时间与我们目前计时的时间就有点不一样

11、了。(注1)在计算时间的时候,最准确的计算应该是使用原子震荡周期所计算的物理时钟了(AtomicClock,也被称为原子钟),这也被定义为标准时间(InternationalAtomicTime)。而我们常常看见的UTC也就是CoordinatedUniversalTime(协和标准时间)就是利用这种AtomicClock为基准所定义出来的正确时间。例如1999年在美国启用的原子钟NISTF-1,他所产生的时间误差每两千年才差一秒钟!真的是很准吶!这个UTC标准时间虽然与GMT时间放在同一个时区为基准,不过由于计时的方式不同,UTC时间与GMT时间有差不多16分钟的误差呢!(注2)事实上,在我

12、们的身边就有很多的原子钟,例如石英表,还有计算机主机上面的BIOS内部就含有一个原子钟在纪录与计算时间的进行吶!不过由于原子钟主要是利用计算芯片(crystal)的原子震荡周期去计时的,这是因为每种芯片都有自己的独特的震荡周期之故。然而因为这种芯片的震荡周期在不同的芯片之间多多少少都会有点差异性,甚至同一批芯片也可能会或多或少有些许的差异(就连温度也可能造成这样的误差呢),因此也就造成了BIOS的时间会三不五时的给他快了几秒或者慢了几秒。或许你会认为,BIOS计时器每天快个五秒也没有什么了不起的,不过如果你再仔细的算一算,会发现,一天快五秒,那么一个月快2.5分钟,一年就快了75分钟了!所以说

13、,呵呵!时间差是真的会存在的!那么如果你的计算机真的有这样的情况,那要怎么来重新校正时间呢?那就需要网络校时(NetworkTimeProtocol,NTP)的功能了!底下我们就谈一谈那个NTP的daemon吧!15.1.4NTP通讯协定老实说,Linux作业系统的计时方式主要是由1970/01/01开始计算总秒数,因此,如果你还记得date这个指令的话,会发现它有个+%s的参数,可以取得总秒数,这个就是软件时钟。但,如同前面说的,计算机硬件主要是以BIOS内部的时间为主要的时间依据(硬件时钟),而偏偏这个时间可能因为BIOS内部芯片本身的问题,而导致BIOS时间与标准时间(UTC)有一点点的

14、差异存在!所以为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作就显的很重要了!软件时钟:由Linux作业系统根据1970/01/01开始计算的总秒数;硬件时钟:主机硬件系统上面的时钟,例如BIOS记录的时间;那么怎么让时间同步化呢?想一想,如果我们选择几部主要主机(Primaryserver)调校时间,让这些PrimaryServers的时间同步之后,再开放网络服务来让Client端连线,并且提供Client端调整自己的时间,不就可以达到全部的计算机时间同步化的运作了吗!那么什么协定可以达到这样的功能呢?那就是NetworkTimeProtocol,

15、另外还有DigitalTimeSynchronizationProtocol(DTSS)也可以达到相同的功能!不过,到底NTP这个daemon是如何让Server与Client同步他们的时间呢?1首先,主机当然需要启动这个daemon,之后,2Client会向NTPServer发送出调校时间的message,3然后NTPServer会送出目前的标准时间给Client,4Client接收了来自Server的时间后,会据以调整自己的时间,就达成了网络校时咯!在上面的步骤中你有没有想到一件事啊,那就是如果Client到Server的讯息传送时间过长怎么办?举例来说,我在台湾以ADSL的PC主机,连线

16、到美国的NTPServer主机进行时间同步化要求,而美国NTPServer收到我的要求之后,就发送当时的正确时间给我,不过,由美国将资料传送回我的PC时,时间可能已经延迟了10秒钟去了!这样一来,我的PC校正的时间是10秒钟前的标准时间喔!此外,如果美国那么NTP主机有太多的人喜欢上去进行网络校时了,所以loading(负荷)太重啦!导致讯息的回传又延迟的更为严重!那怎么办?为了这些延迟的问题,有一些program已经开发了自动计算时间传送过程的误差,以更准确的校准自己的时间!当然啦,在daemon的部分,也同时以server/client及master/slave的架构来提供使用者进行网络校

17、时的动作!所谓的master/slave就有点类似DNS的系统咯!举例来说,台湾的标准时间主机去国际标准时间的主机校时,然后各大专院校再到台湾的标准时间校时,然后我们再到各大专院校的标准时间校时!这样一来,那几部国际标准时间主机(Timeserver)的loading就不至于太大,而我们也可以很快速的达到正确的网络校时的目的呢!台湾常见的TimeServer有(注3):至于ntp这个daemon是以port123为连结的埠口(使用UDP封包),所以我们要利用Timeserver来进行时间的同步更新时,就得要使用NTP软件提供的ntpdate来进行port123的连线喔!关于网络校时更多的说明,

18、可以到NTP的官方网站(注4)上察看喔!15.1.5NTP服务器的阶层概念如前所述,由于NTP时间服务器采用类似阶层架构(stratum)来处理时间的同步化,所以他使用的是类似一般server/client的主从架构。网络社会上面有提供一些主要与次要的时间服务器,这些均属于第一阶及第二阶的时间服务器(stratum-1,stratum-2),如下所示:主要时间服务器:次要时间服务器:由于这些时间服务器大多在国外,所以我们是否要使用这些服务器来同步化自己的时间呢?其实如果台湾地区已经有标准时间服务器的话,用那部即可,不需要连线到国外啦!浪费频宽与时间啊!而如前面提到的,台湾地区已经有标准的时间服

19、务器了,所以当然我们可以直接选择台湾地区的NTP主机即可。如果你评估一下,确定有架设NTP的需求时,我们可以直接选择台湾地区的上层NTP来同步化时间即可。举例来说这个国家单位的主机应该是比较适合的。一般来说,我们在进行NTP主机的设定时,都会先选择多部上层的TimeServer来做为我们这一部NTPServer的校正之用,选择多部的原因是因为可以避免因为某部时间服务器突然挂点时,其他主机仍然可以提供我们的NTP主机来自我更新啊!然后我们的NTPServer才提供给自己的Client端更新时间。如此一来,国家单位的负载才不会太大,而我们的Client也可以很快速的达到校时的动作!Tips:其实N

20、TP的阶层概念与DNS很类似啦,当你架设一部NTP主机,这部NTP所向上要求同步化的那部主要主机为stratum-1时,那么你的NTP就是stratum-2囉!举例来说,如果我们的NTP是向台湾的这部stratum-2的主机要求时间同步化,那我们的主机即为stratum-3,如果还有其他的NTP主机向我们要求时间同步,那么该部主机则会是stratum-4啦!就这样啊那最多可以有几个阶层?最多可达15个阶层喔!15.2NTP服务器的安装与设定NTP服务器也是一个很容易就可以架设成功的玩意儿,不过这个软件在不同的distribution上面可能有不一样的名称,你要作的其实就是将他安装起来之后,规定

21、一部上层NTP服务器来同步化你的时间即可啊!如果你只是想要进行你自己单部主机的时间同步化,别架设NTP,直接使用NTP用户端软件即可喔!15.2.1所需软件与软件结构在CentOS6.x上头,你所需要的软件其实仅有ntp这个玩意儿而已,请自行使用rpm去找找看,若没有安装,请利用yuminstallntp即可啊!不过,我们还需要时区相关的资料档案,所以你需要的软件有:ntp:就是NTP服务器的主要软件啦,包括设定档以及执行档等等。tzdata:软件名称为TimeZonedata的缩写,提供各时区对应的显示格式。与时间及NTP服务器设定相关的设定档与重要资料档有底下几个:/etc/ntp.con

22、f:就是NTP服务器的主要设定档,也是唯一的一个;/usr/share/zoneinfo/:由tzdata所提供,为各时区的时间格式对应档。例如台湾地区的时区格式对应档案在/usr/share/zoneinfo/Asia/Taipei就是了!这个目录里面的档案与底下要谈的两个档案(clock与localtime)是有关系的喔!/etc/sysconfig/clock:设定时区与是否使用UTC时间钟的设定档。每次开机后Linux会自动的读取这个档案来设定自己系统所预设要显示的时间说!举个例子来说,在我们台湾地区的本地时间设定中,这个档案内应该会出现一行ZONE=Asia/Taipei的字样,这表

23、示我们的时间设定档案要取用/usr/share/zoneinfo/Asia/Taipei那个档案的意思!/etc/localtime:这个档案就是本地端的时间设定档啦!刚刚那个clock档案里面规定了使用的时间设定档(ZONE)为/usr/share/zoneinfo/Asia/Taipei,所以说这就是本地端的时间了,此时Linux系统就会将Taipei那个档案复制一份成为/etc/localtime,所以未来我们的时间显示就会以Taipei那个时间设定档案为准。至于在常用于时间服务器与修改时间的指令方面,主要有底下这几个啦:/bin/date:用于Linux时间(软件时钟)的修改与显示的指

24、令;/sbin/hwclock:用于BIOS时钟(硬件时钟)的修改与显示的指令。这是一个root才能执行的指令,因为Linux系统上面BIOS时间与Linux系统时间是分开的,所以使用date这个指令调整了时间之后,还需要使用hwclock才能将修改过后的时间写入BIOS当中!/usr/sbin/ntpd:主要提供NTP服务的程序囉!设定档为/etc/ntp.conf/usr/sbin/ntpdate:用于用户端的时间校正,如果你没有要启用NTP而仅想要使用NTPClient功能的话,那么只会用到这个指令而已啦!例题:假设你的笔记型计算机安装CentOS这套系统,而且选择的时区为台湾。现在,你

25、将有一个月的时间要出差到美国的纽约去,你会带着这个笔电,那么到了美国之后,时间会不一致啊!你该如何手动的调整时间参数呢?答:因为时区资料档在/usr/share/zoneinfo内,在该目录内会找到/usr/share/zoneinfo/America/New_York这个时区档。而时区设定档在/etc/sysconfig/clock,且目前的时间格式在/etc/localtime,所以你应该这样做:rootwww#dateThuJul2815:08:39CST2011=重点是CST这个时区喔!rootwww#vim/etc/sysconfig/clockZONE=America/New_Yo

26、rk=改的是这里啦!rootwww#cp/usr/share/zoneinfo/America/New_York/etc/localtimerootwww#dateThuJul2803:09:21EDT2011=时区与时间都改变了!这个范例做完之后,记得将这两个档案改回来!不然以后你的时间都是美国时间啦!接下来,我们先来谈一谈如何设计那个/etc/ntp.conf吧!15.2.2主要设定档ntp.conf的处理由于NTP服务器的设定需要有上游服务器的支援才行,因此请回头参考一下及的介绍,这样才能够理解为何底下的设定是这样呦!好了,我假设俺的NTP服务器所需要设定的架构如下:我的上层NTP服务器

27、共有.tw,.tw,三部,其中以最优先使用(prefer);不对Internet提供服务,仅允许来自内部网域的查询而已;侦测一些BIOS时钟与Linux系统时间的差异并写入/var/lib/ntp/drift档案当中。好了,先让我们谈一谈如何在ntp.conf里面设定权限控制吧!利用restrict来管理权限控制在ntp.conf档案内可以利用restrict来控管权限,这个参数的设定方式为:restrict你的IPmasknetmask_IPparameter其中parameter的参数主要有底下这些:ignore:拒绝所有类型

28、的NTP连线;nomodify:用户端不能使用ntpc与ntpq这两支程序来修改服务器的时间参数,但用户端仍可透过这部主机来进行网络校时的;noquery:用户端不能够使用ntpq,ntpc等指令来查询时间服务器,等于不提供NTP的网络校时囉;notrap:不提供trap这个远端事件登录(remoteeventlogging)的功能。notrust:拒绝没有认证的用户端。那如果你没有在parameter的地方加上任何参数的话,这表示该IP或网段不受任何限制的意思喔!一般来说,我们可以先关闭NTP的使用权限,然后再一个一个的启用允许登入的网段。利用server设定上层NTP服务器上层NTP服务器

29、的设定方式为:serverIPorhostnameprefer在server后端可以接IP或主机名称,鸟哥个人比较喜欢使用IP来设定说!至于那个perfer表示优先使用的服务器囉有够简单吧!以driftfile记录时间差异设定的方式如下:driftfile可以被ntpd写入的目录与档案因为预设的NTPServer本身的时间计算是依据BIOS的芯片震荡周期频率来计算的,但是这个数值与上层TimeServer不见得会一致啊!所以NTP这个daemon(ntpd)会自动的去计算我们自己主机的频率与上层Timeserver的频率,并且将两个频率的误差记录下来,记录下来的档案就是在driftfile后面

30、接的完整档名当中了!关于档名你必须要知道:driftfile后面接的档案需要使用完整路径档名;该档案不能是连结档;该档案需要设定成ntpd这个daemon可以写入的权限。该档案所记录的数值单位为:百万分之一秒(ppm)。driftfile后面接的档案会被ntpd自动更新,所以他的权限一定要能够让ntpd写入才行。在CentOS6.x预设的NTP服务器中,使用的ntpd的owner是ntp,这部份可以查阅/etc/sysconfig/ntpd就可以知道啦!keyskey_file除了以restrict来限制用户端的连线之外,我们也可以透过金钥系统来给用户端认证,如此一来可以让主机端更放心了。不过

31、在这个章节里面我们暂不讨论这个部分,有兴趣的朋友可以参考ntp-keygen这个指令的相关说明喔!根据上面的说明,我们最终可以取得这样的设定档案内容喔(底下仅修改部分资料,保留大部分的设定值喔)!rootwww#vim/etc/ntp.conf#1.先处理权限方面的问题,包括放行上层服务器以及开放区网用户来源:restrictdefaultkodnomodifynotrapnopeernoquery=拒绝IPv4的用户restrict-6defaultkodnomodifynotrapnopeernoquery=拒绝IPv6的用户restrict1=放行进入本NTP服

32、务器restrict3=放行进入本NTP服务器restrict4=放行进入本NTP服务器restrict=底下两个是预设值,放行本机来源restrict-6:1restrictmasknomodify=放行区网来源#2.设定主机来源,请先将原本的的设定注解掉:server1prefer=以这部主机为最优先#3.预设时间差异分析档案与暂不用到的keys等,不需要更动它:driftfile/var/lib/ntp/driftkeys/etc/ntp/keys这样就设

温馨提示

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

最新文档

评论

0/150

提交评论