所谓局域内时间同步,就是在局域网中选定一台时间服务器(作为标准时钟),局域网内的其它设备都与这台时钟进行同步,从而达到全网内的时间同步。保持时钟同步,是一个网络稳定、可靠运行的前提,比如SDH(同步数字体系)网络中必须要精确的做到时钟同步,才有可能保证网间数据的准确传输,但是这些运行在网络底层的规范对一般用户来说太遥远了,对于局域网用户来说,最常用的时间同步操作就是“自动与Internet时间服务器同步”,如图1所示
图1 自动与Internet时间服务器同步
那么我们在局域网中设置时间同步有什么意义呢?又是如何实现的呢?内外网中时间服务器的设置又有何区别?下面我们结合实际局域网中设置实例来详细说明一下。
一、局域网内由于时间不同步造成的问题
作为网络管理员,既要保证网络设备的稳定运行,又要及时处理网络中随时出现的故障,而如果无法实现时间同步,就会增加处理故障的难度,比如:
(一)有时候需要设置CISCO交换机设备定时重启,但每次执行该操作前都要先对时,这样才能保证执行reload命令时的准确性,更要命的是重启后以后,交换机的时间又变回默认的1994年了。
(二)局域内有几十台交换机,虽然大多可以实现远程网管,但由于时间不一致,造成无法准备网络故障发生的确切时间。
(三)最近单位实现指纹机考勤了,同事们也习惯于看电脑上的时间去按指纹,但微机上的时间老不准,结果往往赞成不是去早了就是去晚了,还有在进行文件传输时,不准确的时间信息也影响了检索结果,甚至会引起不必要的误会。
那么如何在局域网内实现时间同步呢?
二、时间同步的方法
(一)外网(办公局域网)时间同步的方法
外网,也就是办公局域网,这个局域网的网络设备都可以接入互联网,一个简化的网络拓扑如图2所示:
图2 外网的简化拓扑
如图2所示,外网使用了一台CISCO3550交换机作为核心交换机,下面级联了若干台CISCO的29系列交换机,局域网内还有多台微机。
在这种网络模式中,我们不能保证每台网络设备都可以快速的与互联网上时间服务器进行时间同步(比如由于网速或是时间服务器本身的问题),能够保证的是局域网内有一个比较稳定可靠的网络质量,这样的话,我们就选定了CISCO3550作为局域网内的时间服务器,CISCO3550交换机肩负着两个作用,一、它要与互联网上的时间服务器进行同步(保证自身时钟准确),二、它要将时钟信息在局域内广播出去,从而使得局域网内的网络设备(交换机、PC机)都可以与它进行时钟同步,从而保证全网内的时钟同步,下面我分别说明一下实现步骤。
1、设置CISCO3550交换机与互联网上的时间服务器进行同步
3550#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3550(config)#ntp peer 210.72.145.44 (peer的含义为本设备既可以接受时钟同步,也可以给远端设备提供时钟,双向 210.72.145.44是中科院国家授时中心的IP地址 )
clock timezone gmt 8 (即设置为北京时区)
是的,只需在CISCO3550交换机中敲这么简单的两条命令,过一段时间(前提是CISCO3550交换机可以访问互联网),就可以实现与与互联网上的时间服务器同步了,用直观的感受可以用show clock命令看出来,如下所示:
3550#show clock
22:18:45.667 gmt Sat May 23 2009
也就是说明本机的时间已经与互联网上的时间服务器同步了。
小提示
为了更好的理解以上的两步设置,还是有一些知识是需要了解的
(1) 如何得到互联网上的时间服务器的地址
很多方法可以得到,一是XP自身就带了两个时间服务器:time.windows.com和time.nist.gov,我们只需要DOS模式下执行一下ping操作,就可以得到它们对应的IP地址,分别为207.46.232.182和192.43.244.18,二是中科院有一个标准的授时服务器,地址为210.72.145.44,三可以从网上查,可以得到更为丰富的信息,比如我们访问www.ntp.org这个的网站,就可以找到一堆时间服务器的地址,如表1所示:
Worldwide | |
这些服务器都是可用的,而且对其进行连接速度也很快,其中重点推荐pool.ntp.org,正象它的网址名字所表达的,这实际是一个地址池,里面根据实际情况来实时调整可用的服务器地址。
(2) 在交换机上如何直接写域名
在交换机上可以直接写时间服务器的域名,前提是已经在交换机上设置了DNS服务器,如下所示:
ip name-server 218.56.57.58
ip name-server 219.146.0.130
在交换机上设置了DNS服务器信息以后,我们再在交换机上执行ping网址的操作,就会看到交换机自动在执行域名到IP地址的转换,如下所示:
3550#ping pool.ntp.org
Translating "pool.ntp.org"...domain server (218.56.57.58) [OK]
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 61.129.66.79, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 144/145/148 ms
这时已经看到交换机具备了域名至IP自动转换的能力,我们也就可以直接写时间服务器的域名了,如下所示:
3550(config)#ntp peer pool.ntp.org
(3) 如何查看NTP的信息
利用show clock命令可以了解到交换机当前的时间信息,另外还有一个更专业的命令,那就是“show ntp status”,它可以列出更加详细的本机的ntp信息,如下所示:
3550#show ntp status
Clock is synchronized, stratum 3, reference is 61.129.66.79
nominal freq is 250.0000 Hz, actual freq is 249.9983 Hz, precision is 2**18
reference time is CDC28871.0C1D8818 (22:36:33.047 gmt Sat May 23 2009)
clock offset is 109.9952 msec, root delay is 328.66 msec
root dispersion is 16010.33 msec, peer dispersion is 15875.03 msec
从显示的信息中,我们可以了解到:目前交换机是否已经与时间服务器同步了(Clock is synchronized),是与哪台时间服务器进行同步的(reference is 61.129.66.79)等等很多有用的信息。
2、如何将CISCO3550交换机做成局域网内的一台时间服务器
现在CISCO3550交换机自身的时钟是准确了,那么如何将时间信息在局域网内广播出去呢?执行如下的操作即可:
3550(config)#ntp source vlan 7
3550(config)#inter vlan 7
3550(config-if)#ntp broadcast version 2
由于我单位CISCO3550交换机规划了多个VLAN,我是选择了一个与PIX防火墙连接的VLAN上进行了NTP信息的广播,实际上由于在交换机上启用了VLAN之间的路由(使用ip routing命令来实现),别的VLAN中的交换机PC也是可以接受该广播信息的。
3、CISCO29系列交换机如何与CISOC3550进行时间同步
CISCO29系列交换机,作为终端与时间服务器进行时间同步的设置很容易,只需指定NTP服务器的地址即可,如下所示:
172switch(config)#ntp server 172.19.96.1 (ntp server表示本设备通过远端时钟源,来更新自身的时间,单向)
172switch(config)#ntp server 192.168.201.2
说明:
(1) VLAN间互通
单位的网络中VLAN7的ip地址为192.168.201.2,VLAN2的地址为172.19.96.1,由于已经做了VLAN间的路由,所以这两个VLAN间是可以互相访问的,在这台2924交换机上执行show ntp sta命令会看到如下信息:
172switch#show ntp stat
Clock is synchronized, stratum 4, reference is 192.168.201.2
nominal freq is 190.7348 Hz, actual freq is 190.7317 Hz, precision is 2**17
reference time is CDC37BE1.3232E33D (15:55:13.196 beijing Sun May 24 2009)
clock offset is 1.7548 msec, root delay is 286.65 msec
root dispersion is 25.83 msec, peer dispersion is 1.66 msec
可以看到这台29交换机目前参考的NTP服务器为192.168.201.2。
(2) 给交换机打上时间戳
现在局域网内的交换机都拥有了准确的时间,如果不能在日志信息中包含这项信息岂不是太可惜了,用时间戳就可以实现,设置方法如下:
service timestamps debug datetime localtime
service timestamps log datetime localtime
写上这两条指令,以后不论是日志信息还是调试信息都会被打上时间戳,反映出准备的时间信息。
4、XP机器的设置方法
安装有XP机器的设置就更为简单了,如图3所示:
图3 XP机器中与局域网中的时间服务器同步的方法
其实图1与图3唯一的不同就是填入了局域网中的时间服务器的IP地址,当然由于局域网的网速很快,所以时间同步也是进行的很快的,另外,由于时间服务器就位于局域网内部,稳定性较好,即使发生故障,排除起来也方便的多。
5、WIN2000机器的设置方法
WIN2000的操作系统中不象XP,有一个界面可以直接设置时间服务器的地址,但是还是有办法的。
方法一:
cmd命令
net time /setsntp:192.168.201.2
然后重新启动Windows Time服务,时间就自动更新了
方法二:
在win2k下使时间与局域网内一台时间服务器(192.168.201.2)同步
开始 -> 运行 -> 键入“cmd”
运行“net time /setsntp:192.168.201.2”将Windows 2000的SNTP服务器设为192.168.201.2,运行“w32tm /once”可立即进行NTP同步,在“控制面板”/“管理工具”/“服务”中将“Windows Time”的启动类别设成“自动”,可使每次开机时都进行NTP服务
(二) 内网(业务局域网)时间同步的方法
内网(业务局域网)在网络结构上与外网类似,但属于一个封闭的局域网,没有与互联网的接口,网络应用的侧重点也与外网有所不同,内网中的时间服务器设置如下:
1、 时间服务器的选择
在内网中选择哪种设备作为时间服务器,弄清楚这个问题我们还真是费了一番周折:CISCO的路由器和交换机行不行呢?从设备的稳定性上肯定没有问题,但是在具体的配置时就会发现,如果拿CISCO的路由器和交换机作时间服务器,在它们的上级必须有一个时钟源,不设置这项信息的话,CISCO设备自身是不能作为时间服务器的,此路不通,我们就需要在内网中找一个台式机作为时间服务器,要这样做的话,首先从硬件性能上,肯定要找一台服务器(即不是普通的PC机)才能保证时钟运行的稳定性和可靠性,其次是操作系统上,WINDOWS和LINUX平台都可以,但是现在单位中内网中的服务器都是安装WINDOWS的操作系统,所以我们选择了一台安装有WIN2003操作系统的DELL(PowerEdge 1750)做时间服务器,最后就是时间服务器软件了,WIN2003自带NTP功能,网上可以找到一堆教程,我们也配置成功了,局域网内的微机(不论是安装WINDOWS还是LINUX操作系统)都可以跟着该服务器进行时间同步,但是如果想让局域网内的CISCO交换机、路由器跟随进行时间同步的话,基本上是没戏了,我们做了无数次的调试,也从网上查了很多资料,都没有解决好这个问题,好在这个功夫也没白费,到最后终于明白了,那就是如果要做成能够使CISCO路由器、交换机跟随进行时间同步的时间服务器,只有两个方案,一个是选择第三方专业的NTP软件,另一个就是利用LINUX系统作一台NTP服务器,考虑到实际的网络环境,我们选择了方案一。
专业的NTP软件就叫NTP,它的WINDOWS版本(下载地址为http://www.meinberg.de/download/ntp/windows/ntp-4.2.4p7@copenhagen-o-win32-setup.exe)安装很简单,但是想让它正常运行起来也费了不少劲,不过现在我们有了一些经验,在许多台机器上都配置成功了,归纳起来,做好如下几点就可以了。
1) 安装时一切配置都按默认的即可,但是在选择安装程序时,有一个安装第三方软件的那个(即openssl的不必选),一路点下一步进行即可,当然这样做完以后,十次有九次会提示NTP服务没有启动成功。
2) 查看和修改配置文件
遇到点挫折没关系,我们再来打开配置文件,即“Edit NTP Configuration”这一项,里面有一点需要记住的地方,即“driftfile "C:\Program Files\NTP0606\etc\ntp.drift"”这一条,也就是说我们要在对应的目录下创建一个名为“ntp.drift”的文件,文件的内容为“0.000”,然后再把
server 127.127.1.0
fudge 127.127.1.0 stratum 12
这两行配置文件前面的“#”去掉。
3) 重新执行一次安装程序过程
做完以上两步后,如果直接运行重新启动进程命令(即“Restart NTP Service”)往往也是不行的,我们要做的是重新执行一遍安装过程,经过这么一番折腾后,一般来说,我们的NTP服务器就成功配置完成,并处于启动状态了。我们可以用“Quick NTP Status”来测试一下,如果出现如图4所示的信息,则说明NTP服务已经正常启动了。
图4 CISCO交换机与NTP服务器的同步
虽然是在局域网中,CISCO的NTP设置与在外网中是一样的,CISCO3550交换机的配置只需将时间服务器指向内网中架设好的NTP服务器的地址(本例中为10.231.0.1),其它设置均与外网中的相同为例来说明一下设置的方法。说完NTP服务器的配置以后,我们内网时间同步设备的拓扑就明晰了,如图5所示:
图5 内网时间同步设备拓扑图
2、华为交换机的NTP设置
在局域网的交换机中,我们选择CISCO3550交换机作为NTP服务器,CISCO交换机的设置于外网的类似,只需将NTP服务器的地址修改为内网中NTP服务器地址,再根据实际情况选择一个VLAN将时间同步信息广播出去即可(本例中我们选择的是VLAN1)。下面我们要重点介绍一下局域网中的其它厂家交换机的配置方法,主要是华为和迈普两种,下面级联的所有交换机都与CISCO交换机进行时间同步,华为3552/3528交换机的设置方法如下:
[ZXJF_3552]ntp-service unicast-server 10.230.0.1 (10.230.0.1为CISCO交换机VLAN1的地址)
华为3500系列交换机的NTP设置都是一样的,我们就不再赘述了。
3、迈普4126E交换机的设置方法如下:
Switch(config)#clock timezone beijing
Switch(config)#ntp service 10.230.0.1
可以看出迈普交换机的设置与CISCO交换机还是很相似的。
结论:
通过设置局域网内的NTP服务器,达到局域网内设备(交换机、PC机)的时间同步,既可以为进行故障判断提供准确的时间信息,还可以方便日常办公操作,我们实际配置后,确实起到了良好的效果。