所属分类: 网络技术 整理: FengNet.Com 更新日期:2007/6/6 15:43:49 阅读次数:6747

NTP网络时钟协议的实现



概念简介及含义
网络时间协议Network Time Protocol( N T P)是用来在整个网络内发布精确时间的T C P / I P协议,其本身的传输基于U D P,保留端口号123。它可以使计算机或网络设备对其服务器或时钟源(如石英钟,GPS等等)做同步化,可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratun(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。

NTP的实现

一、 Windows系统下的实现(PC-PC):

服务器端(Windows2000 OR WindowsXP):
方法一:
第一步:指定主时间服务器。在DOS方式输入“net time /setsntp:pool.ntp.org”,这里我们指定pool.ntp.org是主时间服务器,也可以是其它地址。
第二步:开始与主时间服务器同步。先关闭windows time服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以DOS方式输入“net stop w32time”、“net start w32time”。
第三步:设置电脑的Windows time服务的启动方式为自动。在“管理工具”的“服务”界面下完成。注意这台windows主机不能加入任何域,否则无法启动windows time服务。此时,这台windows电脑已经是互联上主时间服务器的客户了,以后每次电脑启动时,都会自动与主时间服务器校对时间。如果网络不通,电脑也会过45分钟后再次自动校对时间。需要注意的是电脑的时钟与标准时间误差不能超过12小时,否则不能自动校对,而要手动校正了。
第四步:使这台电脑成为时间服务器,供局域网内部的电脑校对时间。运行“regedit”把 “HKEY_LOCAL_MACHINE_SYSTEM_CurrentControlSet_Services_W32Time_Parameters”中的 LocalNTP改为1即可。

方法二:
安装第三方NTP服务器软件,推荐使用NTP V4.1

1.安装时提示设置服务器地址,输入ntp服务器的IP地址
2.ntpd的控制:控制面板->;管理工具->;组件服务-NetworkTimeProtocol
3.可以启动ntpd守护进程保持时间同步
4.在C:\WINNT目录下有个ntp的配置文件ntp.conf
设置为:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
5.确定ntp是否工作: ntpq –p


客户端:
客户端的主要任务是连接到局域网内的时间服务器,以保持电脑的时钟与服务器同步。分Linux、Windows98、2000、XP几种情况介绍

1、LINUX主机
  其实在上面介绍Linux系统中的ntp服务时,已经提到ntp时间服务时同时也是一个时间服务的客户端,只要把/etc/ntp.conf文件中的 “server pool.ntp.org”改为“server 内部时间服务器IP地址”即可。如不想使用ntp服务,也可使用ntp软件包中带来的ntpdate命令,只要手工执行“ntpdate 时间服务器IP地址”即可。如想每天自动对时,可以把这条命令放在cron中,注意在同一台电脑上ntp服务与ntpdate命令不能同时使用。
2、Windows2000主机
  执行设置时间服务器时的前三步即可
3、WindowsXP主机
  可以按Windows2000主机的方法设置,也可双击任务栏右下角的时钟图标,打开“日期时间属性”对话框,在“Internet时间”卡片上选中“自动与Internet时间服务器同步”,并在服务器上填入内部时间服务器的IP地址即可。
4、Windows98主机
  需要安装第三方软件,推荐使用achron 。软件操作简单,只要将“Hostname or IP Address”中输入局域网内时间服务器的IP地址,“Protocol”中选SNTP即可。当然在windows98电脑上执行“net time 机器名或IP地址 /set /yes”也可能与其它windows电脑同步时钟,前提是这些电脑在同一网段,并且安装有netbios协议。把该命令放在autoexec.bat 中,就可以做到开机自动对时了。

二、 UNIX系统下的实现(PC-PC):

服务器端
以LINUX REDHAT 9.0为例:
第一步:检查是否已经安装有ntp软件包。输入“rpm -qa|grep ntp”,如果已经安装应该显示“ntp-4.1.2-0.rc1”。
第二步:安装ntp软件,从ftp://ftp.redhat.com下载rpm包,输入“rpm -ivh ntp-xxx.rpm”执行安装。
第三步:配置ntp服务。备份原/etc/ntp.conf文件后,输入以下内容
server pool.ntp.org
server pool.ntp.org
server pool.ntp.org
driftfile /etc/ntp/drift
3行server都设pool.ntp.org是为了提供连接冗余,当第一个地址连接失败时,后面的地址提供时间服务,注意这里的pool.ntp.org对应一组IP地址,由DNS随机分配。
第四步:启动ntp服务。输入“service ntp restart”。 为了保证以后Linux机启动后ntp服务能自动启动,还要输入“chkconfig ntpd on”。Linux下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,可以供局域网内的电脑校对时间。建议启动 NTP服务后,先用date命令手工校正一下时间,以后系统会自动与互联网上的主时间服务器保持同步。ntp服务还有一个好处,如果当前系统的时间与标准时间有所误差,它不是马上把时间校正,而是逐步缩小与标准时间的误差,以免系统内部出现时间突变。

以HP-UX为例:
在hp-ux系统上时区的配置文件是/etc/TIMEZONE,内容如下
TZ=EAT-8
export TZ

时区设置完毕就即可配置ntp服务器,修改配置文件/etc/ntp.conf,设置以下几个参数:
server 用来同步时间的上级服务器,网上有很多免费的。
restrict 设置访问权限,注意restrict default ignore一定要注释掉

参考设置示例:
server 203.117.180.36
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap
允许192.168网段的机器访问服务器,但不允许他们修改。


客户端设置与Windows系统下实现的客户端设置相同


三、网络设备的NTP实现(以CISCO IOS为例):

NTP的时钟源在一般的情况下也可以使用路由器上的时钟。高档的路由器/交换机上提供了硬件时钟,称为calendat,与clock相互独立,在系统重启时clock使用calendar的值。可以用命令calendar set设置硬件时钟的值,用命令clock read-calendar将系统时钟设置为calendar的值,也可以用命令clock update-calendar将当前系统时钟值写入calendar中。在客户端,用ntp master x.x.x.x 指定NTP服务器地址(CatOS:set ntp server x.x.x.x),用命令ntp update update-calendar 可以让NTP协议定时更新calendar的值。如果更改了时钟源的时间,需要数分钟才能同步到客户端,更新calendar需要更长的时间。常用的调试命令有:show ntp status 和 show ntp associations等。

N T P的会聚( c o n v e rg e n c e )可能需要长达半个小时,这意味着在修改N T P主系统时钟之后,再过半个小时其它的时钟才进行同步。这是因为N T P将时钟的改变视为时钟系统的不稳定。NTP需在等待系统稳定后才会进行同步和传递时钟的改变


在Cisco网络系统中的NTP配置需要用到的命令及定义:

ntp access-group: 该全局命令用于路由器N T P服务的访问控制。
ntp authenticate: 是一个全局命令,它启用N T P身份验证。
ntp authentication-key: 该全局命令用于定义N T P身份验证的键值。
ntp broadcast: 是一个接口命令,用于指定一特定接口来发送N T P广播包。
ntp broadcast client: 是一个接口命令,使路由器通过特定接口来接收N T P广播包。
ntp broadcast delay: 是一个全局命令,它用于设定数据包在路由器和N T P服务器之间一个回程所需时间的估计值。
ntp clock-period: 这条全局命令不必输入,当使用N T P进行系统时钟同步时,路由器将自动产生这条命令。
ntp disable: 这条接口命令使特定接口不接收N T P包。
ntp master: 这条全局命令用来配置路由器为N T P主时钟,只有当没有可用的外部N T P源或者为测试用途才使用该命令。
ntp peer: 该全局命令使路由器的系统时钟与其对等体的时钟同步(或对对等体的时钟进行同步)。
ntp server: 该全局命令使路由器的系统时钟由时间服务器进行同步。
ntp source: 该全局命令强制路由器在其N T P包中使用特定的源地址。
ntp trusted-key: 该全局命令用于确认路由器的特定身份验证键值。
ntp update-calendar: 该全局命令使N T P周期性地更新Cisco 7XXX 系列路由器的日历。
show ntp status: 是一执行模式命令,用于显示路由器的N T P信息,它可以表明该路由器是通过N T P对等体进行时钟同步还是通过N T P服务器进行同步。
show ntp association[detail]: 这条执行模式命令显示与N T P有关的信息,如轮询周期等。


简要配置示例:

EXAMPLE 1
路由器A和路由器B通过串口连接,路由器A被设为N T P主时钟,路由器B都被配置成根据路由器A来同步时钟。

RouterA#clock set xx:xx:xx:xx
RouterA(config)# int s0
RouterA(config-if)#ip add 172.23.1.1 255.255.255.0
RouterA# ntp master 1
RouterB#ntp server 172.23.1.1  
...

EXAMPLE 2
路由器A被设置为N T P主时钟,路由器B被配置成通过N T P服务器与路由器A进行时钟同步,路由器C则被配置成路由器B的对等体,与B的时钟同步。三台路由器通过串口进行连接,路由器A和B之间、路由器B和C之间的连接都使用交叉电缆。
...
RouterA#clock set xx:xx:xx:xx
RouterA(config)# int s0
RouterA(config-if)#ip add 172.23.1.1 255.255.255.0
RouterA# ntp master 1
RouterB#ntp server 172.23.1.1
RouterB(config-if) ip add 172.16.1.2 255.255.255.0
RouterC#ntp peer 172.16.1.2
...

EXAMPLE 3
使用局域网广播的CISCO NTP
3台路由器通过以太网接入同一个网段,路由器a作为NTP服务器通过e0接口向以太网发送NTP广播。
...
RouterA#clock set xx:xx:xx:xx
routerA(config0#int e0
RouterA(config-if)#ip add 172.23.1.1 255.255.255.0
RouterA(config-if)#ntp broadcast
RouterA# ntp master

RouterB(config)#int e0
RouterB(config-if) # ip add 172.23.1.2 255.255.255.0
RouterB(config-if) #ntp broadcast client

RouterC(config)#int e0
RouterC(config-if) # ip add 172.23.1.3 255.255.255.0
RouterC(config-if) #ntp broadcast client

PC客户端配置同前两种方法。


--------------------------------------------------------------------------------

相关文章
Linux查找目录下的所有文件中是否含有某个字符 2015/10/9 10:55:20
系统架构师经验总结 2014/12/18 15:48:36
linux查找命令的备忘 2014/12/18 15:46:08
从攻到防,深入浅出DDoS 2014/4/23 10:15:26
Cisco路由器故障诊断技术详解 2014/2/8 23:20:14
TCP/UDP常见端口参考 2013/5/23 15:26:35
Linux下查看Nginx Apache MySQL的并发连接数和连接状态 2013/3/15 17:03:50
centos一些常用命令的备忘录 2012/3/29 15:45:16
详细分析Linux du命令的使用 2011/10/23 13:15:42
VMware ESX Server下的一些命令 2009/8/17 14:33:08
2009版各大搜索引擎网站登录入口网址提交页面 2009/4/17 13:36:26
理解掌握Cisco错误消息 2009/2/2 12:42:44
RHEL 5系统下故障处理方法 2008/9/28 16:20:08
loopback具体作用 2008/8/20 14:45:14
cisco ASA防火墙配置笔记 2008/6/7 11:22:48
计算机时钟设定和校准 2007/12/8 16:04:32
Tcpdump 的用法 2007/11/13 9:27:16
Linux 2.6.19.x 内核编译配置选项简介 2007/5/29 7:55:59
怎样将系统时钟马上和NTP(网络时间协议)服务器同步? 2007/5/15 8:04:19
Cisco IOS Cookbook 中文精简版第十九章 访问列表 2007/4/2 10:00:57
Cisco IOS Cookbook 中文精简版第十八章日志 2007/4/2 9:36:07
Cisco IOS Cookbook 中文精简版第十四章NTP和时钟 2007/3/28 9:08:37
iptables防火墙配置工具ShoreWall的安装和使用实例 2/2 2007/3/22 10:33:22
系统时间同步及ntp服务的提供 2007/2/1 17:14:30
理解Cisco错误消息 2006/11/28 9:14:05
配置cisco vpn client使用scep从ios router ca获取证书 2006/8/4 7:46:25
NAT+DHCP+HSRP+ACL+NTP配置实例 2006/8/4 7:02:10
Cisco配置手记 2006/7/17 10:08:27
超级详细Tcpdump 的用法 2006/7/14 9:52:30
ASA 5520配置例子 2006/7/14 9:47:04
Cisco路由器故障诊断技术(重新编辑) 2006/7/14 9:42:38
路由器默认密码 2006/6/28 23:05:49
使用TSIG和DNSSEC加固域名服务器 2006/6/17 10:05:24
DHCP + DNS (bind) == DDNS 2006/6/17 10:04:25
NetFlow交换及其在网络管理中的应用 2006/5/28 17:22:00
构建安全的N层环境 2006/5/25 19:50:04
Linux下配置完整安全的DHCP服务器详解 2006/4/30 12:46:51
二层、三层、四层交换机存在哪些区别 2006/3/28 10:24:10
dllhost占用大量内存 2006/2/13 16:35:00
auto secure命令的使用 2006/1/4 13:48:11
Meta标签详解 2005/12/14 20:39:11
Cisco IOS命名规则 2005/11/26 20:11:25
信息安全的隐患-GoogleHacking原理和防范 2005/8/26 10:06:10
Cisco IOS基本安全配置详解 2005/8/4 13:04:57
Cisco CatOS基本安全配置详解 2005/8/4 13:04:21
2005年网络工程师考试题目预测(1) 2005/7/6 20:54:53
网络安全方面的专业词汇大全 2005/6/20 10:33:11
路由器安全配置速查表 2005/6/17 15:06:17
Windows服务器安全设置经验 2005/6/3 11:52:37
Solaris 系统管理命令及相关技术中英文对照 2005/4/13 10:36:48
Solaris启动过程详解 2005/3/23 13:22:12
三分种保证IIS自身的安全性 2004/11/24 9:25:45
恢复Windows2000/XP 管理员密码 2004/11/24 8:38:12
FTP反馈信息集锦 2004/10/25 17:26:32
常见的CatcOs错误消息在Cisco Catalyst 交换机 2004/8/29 12:29:00
Cisco路由器及交换机安全加固 2004/8/13 12:51:44
CISCO网络安全 2004/7/26 8:42:25
恢复Windows2000/XP 管理员密码 2004/7/22 14:21:55
Cisco路由器及交换机安全加固 2004/7/14 16:21:36
第四层交换 2004/6/18 8:07:38
二层交换机,三层交换机,四层交换机的区别 2004/6/3 9:28:26
安全配置WIN2000服务器 2004/6/2 15:08:02
Cisco路由器故障诊断技术 2004/5/26 14:16:19
Linux一句话精彩问答-网络相关篇 2004/5/26 13:44:58
Linux一句话精彩问答-网络无关篇 2004/5/26 13:43:14
个人学术网站之发展:案例分析、宏观分析与政策建议 2004/5/26 13:33:10
TCP/IP各层的安全性和提高各层安全性的方法 2004/3/31 14:39:14
Outlook Express 错误代码表 2004/3/30 14:51:50
让你的WINDOWS XP更爽 2004/3/3 15:57:05
网络端口及其详解分页 2004/2/17 9:03:12
在接入服务器上使用Cisco IOS DHCP服务器 2004/2/4 8:31:10
Cisco路由器由Windows 2000 CA中心登记证书 2004/2/4 8:30:02
Snort 中文手册 2004/1/29 11:53:10
Linux支持ASP 安装配置手册 2004/1/24 19:16:30
LINUX新手入门及安装配置faq200(上) 2003/12/31 20:51:43
在RedHat9下配置时间服务器 2003/12/31 20:35:06
Cisco路由器故障诊断技术 2003/12/2 10:37:30
路由基本配置命令收录(快速入门) 2003/10/23 15:30:15
CISCO 路由器基本配置常识 2003/10/8 17:11:37
贴一个外资银行的路由器配置 2003/9/8 7:41:37
最佳的75个安全工具 2003/9/5 15:18:38
常见端口表汇总 2003/9/1 10:31:24
如何在Linux下实现设备的配置 2003/8/12 8:14:10
Cisco IOS基本安全配置详解 2003/7/28 15:31:36
用实验快速配置DHCP 2003/7/21 8:36:11
安装完系统后需要做的一些事 2003/7/15 8:37:58
系统平台安装操作手册 SUN Fire 280安装配置手册 2003/7/15 8:36:18
服务器的安全解决方案 2003/7/14 16:23:48
win2000忘记administrator密码的解决方案 2003/7/13 18:58:23
非常全面的NFS文档(FOR LINUX) 2003/7/13 18:04:38
理解 Linux 配置文件 2003/7/4 9:25:55
木马的分析方法 2003/5/23 20:50:33
Linux新手入门教程 2003/5/16 23:18:21
Internet安全,防火墙及其它 2003/2/23 14:48:51
木马是如何编写的(二)(3) 2002/11/10 17:50:36
木马是如何编写的(一)(2) 2002/11/10 17:46:51
注册码 2002/11/9 12:45:44
通用序列号 2002/11/9 12:44:35
注册码大全二 2002/11/9 12:43:08
通用序列号 2002/11/9 12:37:37
中国科学院院士毕业学校一览 2002/11/9 9:38:17


感性空间
设计&运维
网络技术
休闲娱乐
NetFilter
linux&Unix
网络安全
程序空间
软件考试
RFC&ISO
规划&规范
虚拟&存储
Apple技巧
云计算&大数据



文章搜索



站内搜索