分类:
2008-04-18 10:46:04
1. NTP的时间资源
a) 一个于HP_UX系统串口联结的无限电时钟
i. 通过GPS卫星发出的信号或其他无线电时钟来确定当前时间.
1. 最准确
2. 要花钱(高达数百美元)
ii. 公共网络上的NTP时间服务器
1.
iii. 本地网络上的NTP时间服务器
1. 只在本地网络的节点上需要时间同步的时候选用.
2. 方式:一个节点作为时间源,其他节点的时间向它同步.
2. NTP时间层级
a) 最高层的时间服务器(1层):从外部时间资源(如无线电)直接接收时间信号.
b) 下层时间服务器通过本层或更高层的一个或者多个时间服务器来估算时间.
c) 最下层的Client端只能从时间服务器接收时间信号.
见下图
3. NTP角色
a) server 向其他系统提供时间参照
b) peer 同级别的NTP server.一个NTP server在失去其上层server时,从同级别的其他server中对等的取得时间服务.
c) direct polling client 直接轮询客户机,定期的轮询一个或多个NTP服务器,比较这写服务器的响应,采用最准确的时间源进行同步.
d) broadcast client NTP广播客户机.被动监听本地网络上的NTP服务器发出的NTP广播(精确度低)(占用的网络流量少).
4. 需要用到的配置文件
a) /etc/rc.config.d/netdaemons 使系统启动时,自动启动xntpd进程.
b) /etc/ntp.conf 用于定义一个系统与网络上其他系统的NTP关系.该文件在系统启动过程中被xntpd进程读取.
c) /usr/lib/tztab 查看可用的时区表
d) /etc/TIMEZONE 修改时区
5. NTP如何调节系统时钟(3种时间机制)
a) ntpdate命令
i. ntpdate –b轮询一个或多个NTP server,可以立即与最准确的NTP server同步.
ii. 最好在启动应用程序前执行,避免应用程序运行混乱.
b) xntpd守护进程
i. 在后台持续不断地运行,定期轮询在/etc/ntp.conf文件中定义的NTP服务器.然后根据需要微调系统的时钟以便保持同步.
ii. 如果系统时间与NTP时间源相差超过1000秒,xntpd进程假定NTP server崩溃,然后自己死亡.
iii. /etc/ntp.drift文件
1. 同长用于在每次检查间隔时间时,继续客户机时钟与NTPserver时间的差别.
2. xntpd守护进程确定在Client和NTPserver的时钟有预期的漂移,那么xntpd间开始使用”期望”的漂移时间.该漂移时间在/etc/ntp.drift文件中记录.
3. xntpd通过参考drift文件进行缓慢的交互,胜于查询NTPserver.时间漂移值稳定后,对NTPserver的查询数量将大量减少.直到最小的NTP查询数.
1. 配置NTP服务器
a) 修改/etc/rc.config.d/netdaemons文件,使xntpd进程在系统启动后自动启动
export NTPDATE_SERVER=
export XNTPD=1
export XNTPD_ARGS=
b) 修改当前时间到你所需要的时间
root:[/]date 01020304 #
date: do you really want to run time backwards?[yes/no]yes
Wed Jan 2 03:04:00 MST 2008
root:[/]date
Wed Jan 2 03:04:01 MST 2008
c) 确认/etc/TIMEZONE中规定的时区是你所需要的时区.
TZ=MST7MDT
export TZ
d) 修改/etc/ntp.conf文件
server 127.127.1.1 #该IP为NTP定义的server自己的IP
fudge 127.127.1.1 stratum 10 #fudge表示该IP为NTPserver, stratum表示该#系统所在的NTP层级.
driftfile /etc/ntp.drift
e) 手工启动xntpd进程
/sbin/init.d/xntpd start
f) 等待5分钟左右,以便xntpd启动.
g) 检查
ps –ef |grep ntp
more /var/adm/syslog/syslog.log
ntpq –p
* 指出响应的NTP服务器和最精确的服务器
+ 指出响应这个查询请求的NTP服务器
Blank 指出没有响应的NTP服务器
Remote 响应这个请求的NTP服务器的名称
Refid NTP服务器使用的更高一级的服务器的名称
St 正在响应请求的NTP服务器的级别
t 时间源的类型(1=本地时钟,u=单点广播,b=广播)
When 上一次成功请求之后到现在的秒数
Poll 当前的请求的时钟间隔的秒数
reach 0:无法访问server.377:所有最近的查询都成功
delay 服务器响应轮询需要的时间(微秒)
disp 每次轮询的网络延时
2. 配置NTP客户端
a) 修改/etc/rc.config.d/netdaemons文件,使xntpd进程在系统启动后自动启动
export NTPDATE_SERVER= 109.10.1.71
export XNTPD=1
export XNTPD_ARGS=
b) 确认/etc/TIMEZONE中规定的时区是你所需要的时区.
TZ=MST7MDT
export TZ
c) 编辑/etc/ntp.conf文件来定义NTP客户机
server 109.10.1.71
driftfile /etc/ntp.drift
另:若想作为广播轮询client,则设置为
broadcastclient yes
driftfile /etc/ntp.drift
d) 手工启动xntpd进程
/sbin/init.d/xntpd start
e) 检查
ntpq –p
3. 部分内容解释说明
a) 客户端默认以64秒为间隔向NTPserver轮询.但当/etc/ntp.drift文件中所记录的漂移时间趋于稳定之后,client端将增大该轮询间隔,而通过读取/etc/ntp.drft中所记录的值来取代向server端轮询当前时间.以此来减少网络的使用.
b) client与server的时间同步有三种方式,根据client和server的时间差来定:
i. 时间差低于128秒 轮询时,分多次向server的时间靠拢,直到一致.
ii. 时间差高于128秒 一次直接同步.
iii. 时间差高于1000秒 client端的xntpd进程自动消亡.
c) 在xntpd已经启动的情况下,如果修改client时间,将在5分钟后向server同步时间.但即使同步了,也只是瞬时同步,还需要一段不定长短的时间来与server重新建立联结.
其他部分和上面的步骤是一样的,只是在修改/etc/ntp.conf文件时有些不同.
1. 在NTPserver上修改/etc/ntp.conf文件
server 127.127.1.1
fudge 127.127.1.1 stratum 10
broadcast 109.10.1.255 #在109.10.1.*网段广播自己的时间.
2. 在NTP client上修改/etc/ntp.conf文件
broadcastclient yes
word版的请参看附件.
|