注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

RHEL 5 NTP同步配置  

2013-06-19 21:23:46|  分类: RedhatLinux和Cen |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://zhumeng8337797.blog.163.com/blog/static/100768914201242513942197/

 

RHEL 5

一、搭建时间同步服务器
1、编译安装ntp server
rpm -qa | grep ntp
若没有找到,则说明没有安装ntp包,从光盘上找到ntp包,使用
rpm -Uvh ntp***.rpm
进行安装
2、修改ntp.conf配置文件
vi /etc/ntp.conf
①、第一种配置:允许任何IP的客户机都可以进行时间同步
将“restrict default nomodify notrap noquery”这行修改成:
restrict default nomodify notrap
配置文件示例:/etc/ntp.conf
②、第二种配置:只允许192.168.211.***网段的客户机进行时间同步
在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行:
restrict 192.168.211.0 mask 255.255.255.0 nomodify notrap
3、启动ntp服务
service ntpd start
开机启动服务
chkconfig ntpd on
4、ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。
二、配置时间同步客户机
手工执行 ntpdate <ntp server> 来同步
或者利用crontab来执行
crontab -e
0 21 * * * ntpdate 192.168.211.22 >> /root/ntpdate.log 2>&1
每天晚上9点进行同步


附:
当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个:
错误1.Server dropped: Strata too high
在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。
在ntp客户端用ntpdate -d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
这是因为NTP server还没有和其自身或者它的server同步上。
以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

server 127.127.1.0
fudge 127.127.1.0 stratum 8

在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。
那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:

# watch ntpq -p
出现画面:
Every 2.0s: ntpq -p Thu Jul 10 02:28:322008
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001
LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001
注意LOCAL的这个就是与自身同步的ntp server。
注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。
错误2.Server dropped: no data
从客户端执行netdate –d时有错误信息如下:

transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
192.168.30.22: Server dropped: no data
server 192.168.30.22, port 123

.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found
出现这个问题的原因可能有2:
1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。

使用以下命令检查ntp的版本:
# ntpq -c version
下面是来自ntp官方网站的说明:
The behavior of notrust changed between versions 4.1 and 4.2.
In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".
In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd
解决
把notrust去掉。

2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。
可以用命令
#service iptables stop

来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。

/////////////////////////////////////////////

WINDOWS

它的WINDOWS版本(下载地址为http://www.meinberg.de/download/ntp/)安装很简单,但是想让它正常运行起来也费了不少劲,不过现在我们有了一些经验,在许多台机器上都配置成功了,归纳起来,做好如下几点就可以了。

  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”来测试一下。



rhel6.0 NTP

在日期的一些应用如kerberos, oracle rac,都需要同步系统时钟,而计算机是以BIOS内部的时间为依据,由于BIOS内部芯片本身的问题,有时会出现BIOS时间与UTC时间的差异,而为了避免主机时间长期运行产生的时间偏差,就需要借助NTP(Network TIme Protocal)来校正时间的功能。
1UTC
在计算时间的时候,最准确的计算应该是使用”原子震荡周期”所计算的物理时钟( Atomic Clock, 也被称为原子钟 ),这也被定义为标准时间(International Atomic Time)。而我们常常看见的 UTC 即 Coordinated Universal Time (协和标准时间)就是利用原子钟 为基准所定义出来的正确时间。这个 UTC 标准时间以 GMT 这个时区为主。所以本地时间与 UTC 时间的时差就是本地时间与 GMT 时间的时差。
2 NTP协议
网络时间协议(Network Time Protocol )是一种通过因特网服务于计算机时钟的时间同步协议。它提供了一种同步时间机制,能在庞大而复杂多样的因特网中用光速调整时间分配。它使用的是可返回时间设计,分布式子网内的时间服务器,能自我组织操作、分层管理配置,经过有线或无线方式同步子网内的逻辑时钟达到国家标准时间。此外,通过本地路由选择运算法则及时间后台程序,服务器可以重新分配标准时间。
NTP 的设计带来了三种产品——时钟偏移、时间延迟及差量,它们都与指定参考时钟相关联。
时钟偏移表示调整本地时钟与参考时钟相一致而产生的偏差数;
时间延迟表示在指定时间内发送消息到达参考时钟的延时时间;
差量表示了相对于参考时钟本地时钟的最大偏差错误。
因为大多数主机时间服务器通过其它对等时间服务器达到同步,所以这三种产品中的每一种都有两个组成部分:其一是由对等决定的部分,这部分是相对于原始标准时间的参考来源而言;其二是由主机衡量的部分,这部分是相对于对等而言。每一部分在协议中都是独立维持的,从而可以使错误控制和子网本身的管理操作变得容易。它们不仅提供了偏移和延迟的精密测量,而且提供了明确的最大错误范围,这样用户接口不但可以决定时间,而且可以决定时间的准确度。
NTP 源于时间协议和 ICMP 时间标志消息,但其设计更强调精确度和健壮性两个方面,即使是在有多路网关、延迟差量及不可靠网络上使用时。当前使用的最新版是 NTPv3 ,它与以前的版本兼容.
3 NTP服务器的安装和配置
3.1 检查需要的包
[root@rhel.philip.com ~]rpm -qa |grep ntp
ntp-4.2.4p8-2.el6.i686
ntpdate-4.2.4p8-2.el6.i686
fontpackages-filesystem-1.41-1.1.el6.noarch
time zone data ,主要提供各个时区对应的显示格式。
[root@rhel.philip.com ~]rpm -qa|grep tzdata
tzdata-java-2010l-1.el6.noarch
tzdata-2010l-1.el6.noarch
3.2配置文件
(1) /etc/ntp.conf
ntp daemon的主要配置文件,不同版本可能放置的目录不同,rhel 6 是放在/etc目录下,可以通过locate 查找。
[root@rhel.philip.com ~]locate ntp.conf
/etc/ntp.conf
/usr/share/man/man5/ntp.conf.5.gz
/usr/share/system-config-date/ntp.conf.template

(2) /etc/sysconfig/clock
每次开机会读取 该文件中包含的配置文件中默认色显示时间。会将ZONE对应的文件另存为/etc/localtime,可以从后面两个文件的内容看出。
[root@rhel Asia]# less /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE=”Asia/Shanghai”
(END)

(3) /usr/share/zoneinfo目录
linux本身提供,规定了各个主要时区的时间设置文件,如shanghai.
[root@rhel.philip.com /usr/share/zoneinfo]ls
Africa Australia Cuba Etc GMT0 Iceland Japan MST Poland right Universal Zulu
America Brazil EET Europe GMT-0 Indian Kwajalein MST7MDT Portugal ROC US
Antarctica Canada Egypt Factory GMT+0 Iran Libya Navajo posix ROK UTC
Arctic CET Eire GB Greenwich iso3166.tab MET NZ posixrules Singapore WET
Asia Chile EST GB-Eire Hongkong Israel Mexico NZ-CHAT PRC Turkey W-SU
Atlantic CST6CDT EST5EDT GMT HST Jamaica Mideast Pacific PST8PDT UCT zone.tab
[root@rhel.philip.com /usr/share/zoneinfo]cd Asia
[root@rhel.philip.com /usr/share/zoneinfo/Asia]ls -al Shanghai
-rw-r–r–. 3 root root 405 Aug 31 2010 Shanghai
[root@rhel.philip.com /usr/share/zoneinfo/Asia] strings Shanghai
TZif2
p ~h
!Iap”^J
#)Cp$Gg
TZif2
!Iap
#)Cp
CST-8

(4)[root@rhel Asia]# strings /etc/localtime
TZif2
p ~h
!Iap”^J
#)Cp$Gg
TZif2
!Iap
#)Cp
CST-8

如果换了时区,只需将/usr/share/zoneinfo目录中新的时区文件内容覆盖/etc/localtime,然后修改/etc/sysconfig/clock中的内容即可。
(5)/bin/date
(6)/sbin/hwclock
因为biso时间和系统时间是分开的,用date调整了系统时间后,通过该命令将修改后的时间写入bios.
[root@rhel Asia]# whereis hwclock
hwclock: /sbin/hwclock /usr/sbin/hwclock /usr/share/man/man8/hwclock.8.gz
[root@rhel Asia]# hwclock
Sat 17 Sep 2011 06:50:23 PM CST -0.229942 seconds
(7)/usr/sbin/ntpd
服务器daemon
(8)/usr/sbin/ntpdate
client 端用于连接ntp server.
[root@rhel Asia]# ntpdate 0.pool.ntp.org
17 Sep 19:20:32 ntpdate[16649]: step time server 115.181.34.4 offset 6404.317378 sec
(9)/usr/sbin/ntptrace
3.3/etc/ntp.conf配置文件
ntp类似于DNS,采用分层的概念,比如我们架设了一台NTP主机,这台主机本身要向上同步的那台主机位stratum-1时,那么自己架设的就为stratum-2。总共可以设置15个阶层。

[root@rhel ~]# less /etc/ntp.conf
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
server 0.pool.ntp.org iburst
(END)
说明:
driftfile /var/lib/ntp/drift #由于ntp server本身的时间是依据bios芯片震动周期频率计算的,与上层ntp server不完全一致,两者频率的误差记录在该文件中。
ps:必须是完整的路径;不能是链接文件,需要设置ntp有写入权限;数值单位为百万分之一秒(ppm).
[root@rhel ntp]# less drift
-395.982

restrict [ip] mask [netmask_ip] [parameter]
parameter参数主要有:
ignore: 拒绝所有类型的NTP联机
nomodify:不能更改ntp服务器的时间参数
noquery:不提供ntp的网络校时。
notrap:不提供trap远程事件登陆的功能。
notrust:拒绝没有认证的客户端。
ip段没带任何的parameter,即缺省情况下,表示“该ip或网段不受任何限制”.

server ip or hostname [prefer] 上层ntp 服务器的,prefer表示优先

kyes可以参考ntp-keygen

[root@rhel ntp]# vim /etc/sysconfig/ntpd

# Drop root to id ‘ntp:ntp’ by default.
OPTIONS=”-u ntp:ntp -p /var/run/ntpd.pid -g”
SYNC_HWCLOCK=yes #同步BIOS的时间。

4 相关命令
启动
[root@rhel ntp]# service ntpd restart
Shutting down ntpd: [ OK ]
Starting ntpd: [ OK ]
[root@rhel ntp]# /etc/init.d/ntpd restart
Shutting down ntpd: [ OK ]
Starting ntpd: [ OK ]
[root@rhel ntp]#
开机启动:
[root@rhel ntp]# chkconfig –level 35 ntpd on
[root@rhel ntp]# ntpstat #列出ntp 服务器是否与上层联机
synchronised to NTP server (122.226.192.4) at stratum 3
time correct to within 471 ms
polling server every 64 s
[root@rhel ntp]#

ntptrace -n 127.0.0.1 列出当前NTP服务器与上层服务器彼此之间的关系。

[root@rhel ntp]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
122.226.192.4 .STEP. 16 u 8 64 0 0.000 0.000 0.001
59.37.71.88 .STEP. 16 u – 64 0 0.000 0.000 0.001
114.80.81.13 204.152.184.72 2 u 4 64 1 34.175 -68.858 0.001
[root@rhel ntp]# ntpq -p 0.pool.ntp.org
remote refid st t when poll reach delay offset jitter
==============================================================================
+time.nist.gov .ACTS. 1 u 677 1024 377 310.070 -99.093 0.078
*clock.isc.org .GPS. 1 u 704 1024 377 193.074 -20.552 0.946
+clock.via.net .GPS. 1 u 435 1024 377 223.588 -52.498 6.851
-clock.fmt.he.ne 10.200.208.2 2 u 430 1024 377 193.955 -43.976 4.073
-clock.fmt.he.ne 10.200.208.2 2 u 423 1024 377 218.026 -61.087 5.216
-clock.fmt.he.ne 10.200.208.2 2 u 691 1024 377 303.909 -93.482 1.800
-clock.nyc.he.ne 10.200.208.2 2 u 698 1024 377 197.886 -38.389 6.438
ntpq -p:查出ntp与上层ntp的状态
remote: ntp 的主机或主机名称,”+”表示当前正在作用的上层ntp,”*“表示有连上线,但作为次要的ntp主机。
refid: 参考的上层ntp主机地址。
st:stratum阶层。类似于 DNS,由大至小。
when: 几秒前做过时间同步。
poll: 下一次更新在几秒之后。
reach: 已经上上层NTP服务器要求更新的次数。
delay: 网络传输过程中延迟的时间,单位为百万分之一秒。
offset: 时间补偿的结果,单位为百万分之一秒。
jitter: 系统时间与BIOS硬件时间的差异时间。

端口:
[root@rhel ntp]# netstat -tlnup|grep 123
udp 0 0 192.168.122.1:123 0.0.0.0:* 2298/ntpd
udp 0 0 192.168.1.191:123 0.0.0.0:* 2298/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2298/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2298/ntpd

配置时间同步客户机
手工执行 ntpdate <ntp server> 来同步
或者利用crontab来执行
crontab -e
0-59/10 * * * * /usr/sbin/ntpdate 192.168.2.10&&/sbin/hwclock -w >> /root/ntpdate.log 2>&1
表示每隔10分钟同步一次时间

当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个:
错误1.Server dropped: Strata too high
在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。
在ntp客户端用ntpdate -d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
这是因为NTP server还没有和其自身或者它的server同步上。
以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。
server 127.127.1.0
fudge 127.127.1.0 stratum 8
在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。
那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:
# watch ntpq -p
[root@rhel ntp]# watch ntpq -p
Every 2.0s: ntpq -p Tue Dec 7 05:52:55 2010
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 8 l 22 64 377 0.000 0.000 0.001

注意LOCAL的这个就是与自身同步的ntp server。
注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。


错误2.Server dropped: no data
从客户端执行netdate –d时有错误信息如下:
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
192.168.30.22: Server dropped: no data
server 192.168.30.22, port 123
…..
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found
出现这个问题的原因可能有2:
1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。
使用以下命令检查ntp的版本:
# ntpq -c version
下面是来自ntp官方网站的说明:
The behavior of notrust changed between versions 4.1 and 4.2.
In 4.1 (and earlier) notrust meant “Don’t trust this host/subnet for time”.
In 4.2 (and later) notrust means “Ignore all NTP packets that are not cryptographically authenticated.” This forces remote time servers to authenticate themselves to your (client) ntpd
解决:
把notrust去掉。
2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。
可以用命令
#service iptables stop

来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。
[root@rhel ntp]# iptables -A INPUT -p UDP -s 192.168.1.0/24 –dport 123 -j ACCEPT

  评论这张
 
阅读(1259)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018