From: XIE WEN-MFK346 <wenxie at motorola.com>
Date: 2008/10/16
Subject: ntp同步时间
To: xiewenxiewen at gmail.com
网络时间协议NTP(Network Time Protocol)是用于校正网络上服务器的时间的协议
客户端通过UDP的123端口接连提供NTP时间服务的服务器,同步时间,保证客户端的时间是准确的
NTP采用客户机-服务器的分层结构
最高一级是第0级(stratum 0),比如美国海军天文台的铯原子钟(cesium clock)或全球定位系统(GPS)时钟,也叫参考时钟(reference clocks)
往下一级是第1级(stratum 1),从第0级的参考时钟同步时间,是在因特网上提供时间服务的顶级时间服务器
再往下一级是第2级(stratum 2),从第1级同步时间,这一级服务器在因特网上有很多,所以一般就从这级同步时间
以此类推,下一级从上一级同步时间。最低一级是16级(stratum 16),表示服务不可访问
ntp.org上有个项目叫pool.ntp.org,是按大洲国家划分建立起一系列虚拟的NTP服务器集群,用来分散单个服务器上的压力
选用了pool做时间服务器,它会按一定规则分配一个真实的服务器地址返回给客户机
pool.ntp.org是最高一级,包括了全部服务器
往下按洲划分为europe,north-america,oceania,asia,south-america,africa
比如, europe.pool.ntp.org, africa.pool.ntp.org
再往下按国家分,比如cn.pool.ntp.org
每级域名下又分3个下级域名,从0到2
比如0.pool.ntp.org,1.asia.pool.ntp.org,0.cn.pool.ntp.org,2.us.pool.ntp.org
NTP的工作方式有下面三种:
客户端-服务器(client-server):客户机从服务器同步时间
点对点(peer-to-peer):互相参考校正时间,用于配置多个时间服务器给客户使用,保证可靠性
广播/多播(broadcast/multicast):用于局域网内服务器向客户机定时广播时间,精度不高
举例
图1 --------------------- ---------------------------- --------------------- | 0.asia.pool.ntp.org | | north-america.pool.ntp.org | | 1.asia.pool.ntp.org | --------------------- ---------------------------- --------------------- ^ ^ ^ | | | | --------------------- | | | | | | --------------------------------------------------- | | | | | | ----------------- | | | | cn.pool.ntp.org | | | | ----------------- | | | ^ | | | --------------------- | ---------------------- | | | | europe.pool.ntp.org | | | oceania.pool.ntp.org | | | | --------------------- | ---------------------- | | | ^ | ^ | | | | | | | | | --------------- | ----------- | | | | | | | | | | | | | | | | | | | | | | | | Internet ---------------------------------------------------------------------------------------------- | | | | | | Intranet | | | | | | | | | | | | --------------- ---------------- | time1 | peer | time2 | | 192.168.11.16 |<----------------->| 192.168.12.100 | --------------- ---------------- ^ ^ ^ ^ ^ ^ | | | | | | | -------- --------------------|--- | | | | | | | | --------------------------------- | | | | | | | | | ---|--|---------- -------------- | | | | | | | | | | | | ------- ------- ------- | srv 1 | | srv 2 | .... | srv n | ------- ------- -------
内网上有两台机器time1,time2,从公网上时间服务器上同步时间,用的是服务器/客户机模式
time1,time2采用点对点对等的模式,互相同步
time1,time2向内网上其它机器提供时间同步服务,用的也是服务器/客户机模式
本来想在内网内用广播模式的,但路由器好像阻止了广播,所以没成功
在time2上配置/etc/ntp.conf
restrict是安全访问控制用的
restrict default ignore 默认阻止使用NTP服务
restrict 127.0.0.1 允许本地127.0.0.1访问NTP服务。后面什么都不加,表示有全部的权限
restrict 192.168.11.0 mask 255.255.255.0 nomodify notrp 允许192.168.11.0子网访问服务,但不能修改服务器上时间(nomodify)或查看事件日志(notrap),可以查询
server 指定了时间服务器地址
后面的restrict指定时间服务器的访问控制权限。我不知道应该用什么权限好,所以全部开放了
server 127.127.1.0
fudge 127.127.1.0 stratum 10
在本地建立一个假的时间服务器
broadcast 是广播地址,暂时没用
broadcastdelay 广播延迟
driftfile 保存了系统时钟频率偏差。用于补偿时钟漂移,保证精确度
keys 口令文件,服务器之间认证才用到,暂时没用
配置/etc/ntp/step-tickers
脚本/etc/init.d/ntpd中,在每次ntpd启动前,首先调用ntpdate从这些服务器同步时间
配置成跟/etc/ntp.conf的server一样就行
awk '/^server/{print $2}' /etc/ntp.conf |grep -v '127.127.1.0' />/etc/ntp/step-tickers
配置/etc/ntp/ntpservers
不知道干什么的,redhat说的:
#This file contains a list of ntp servers to show in the system-config-date user
interface.
#It is not recommended that you modify this file by hand.
配成跟step-tickers一样
awk '/^server/{print $2}' /etc/ntp.conf |grep -v '127.127.1.0' />/etc/ntp/ntpservers
启动ntpd服务
service ntpd start
这时时间还没有同步,要等几分钟后NTP才能正常工作
ntpstat
ntpq -p查看
第1列remote 是上级服务器地址, 前三行是pool.ntp.org上的,LOCAL(0)是本地的, MGT是点对点的那个
第2列refid, 表示上上级服务器的地址, INIT表示正在初始化, BCST表示是广播地址, RSRT表示不可访问
第3列st,表示服务器的级别(stratum), 16说明当前不可访问
其它略
10分钟后,
一般在reach值30多以后,看到同步时间服务正常了
配置time1,方法一样
配置客户机 time1,time2作时间服务器
其它时间同步方式:
ntpdate 前台命令方式,放在crontab定时调用,也是NTP协议的,没ntpd好用,不建议使用
sntp 简单的NTP协议,精度秒级
rdate 不同于NTP协议,精度只有秒级
参考:
Introduction to NTP
The NTP FAQ and HOWTO
A complex NTP configuration scenario
NTP 時間伺服器
ntp.org www.ntp.org
ntp作者 http://www.eecis.udel.edu/~mills/ntp/
RFC1305 http://www.ietf.org/rfc/rfc1305.txt
Xie Wen (谢文)
Network & Operations,
Multimedia Applications & Services (MDB)
MOTOROLA Inc.
NO.104 mail box, 8th floor, Motorola Tower,
No. 1 Wang Jing East Road, Chao Yang District,
Beijing 100102 P. R. China
e-mail wenxie at motorola.com
--fin-
No comments:
Post a Comment