网络时间协议( NTP )的安装 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

  • 安装ntp-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4.2.0.tar.gz包:
    www.ntp.org下载ntp-4.2.0.tar.gz
    gzip解压ntp-4.2.0.tar.gz
    运行./configure
    运行make
    运行make check
    运行make install

  • 建立/etc/ntp/drift(空)

  • 建立/etc/ntp.conf,它包括以下内容:(*.*.*.*代表上一级时钟服务器的IP)
    server *.*.*.*
    driftfile: /etc/ntp/drift
    注意:*.*.*.* 须为可用的NTP服务器,如果不止一个,可以另起一行,再添加一个 ntp服务器,系统会自动选择一个稳定的服务器作为时钟源的.

  • 启动 ntpd 进程
    /usr/local/bin/ntpd -c /etc/ntp.conf

  • ntpq 查询时钟状态
    ”?“
    可以查看其所有命令
    “as”
    可以看到时钟id
    “ps id”
    如果有时钟前面有*出现,表明已经与第一级实现同步,恭喜你!

 

 

网络时间协议( NTP )的配置


ntp 是工作在 Unix 环境下的 NTP 协议第三版的实现程序,兼容第一和第二版,下面通过几方面内容介绍 ntpd 的具体工作情况。


首先应是怎样配置一个 NTP 子网

ntpd 开始运行时,读主机的原始的配置信息,一般为 etc/ntp.conf 文件,除非编译时起了另外一个名字,设置软件后,配置一配置文件是很重要的,最简单的,在文件中描述提供时间同步的服务器名,原则上 , 如果有一些时间服务器工作在广播 / 多播模式下则不用这样的描述,这种方式下客户机则应工作在 broadcast/multicast 模式。现今有许多提供时间同步的服务器,我们可用同步源跟踪反馈程序 ntptrace 来观察邻近子网,应该从已发布的时间源列表中选取同步源,而且应当选择至少三个,应选择在拓扑结构上离本机最近的服务器。

对于一个单独的工作站来讲,向 stratum-1 层请求时间同步是不明智的,因为 stratum-1 有过载的可能。因此,处于没有本地同步基础设备的工作站应从 stratum-2 服务器获取同步时间。这些服务器一般提供无限制进入,当然,要向管理者提交申请,在文件头标明进入方式和其它一些声明。

假如一个网关或服务器提供服务给一定数量的工作站或文件服务器,提供多用户的冗余的同步源和分级网络存取路径是很重要的,优选的配置是至少有三个管理上并列的时间服务器提供服务,其中每个都应和至少两个不同的外部时间源同步,宁可通过不同路径,通过不同的网关,这些时间源应工作在同一 stratum 。另外,这些同步源应和本地管理域内的其它时间服务器处于 peer 方式,且这一层中应有一外部时钟源。这样在这里共有六个外来的时钟源,加上同层(本网中处于 Peer 方式的)的时间源共有九个,在不超过十七分钟的时间内同层间就可轮询进行一次交换时间信息。

本地时间服务器网络层次的级别高低是一种技术上的选择,作为一种策略,并且为降低 primary 级服务器的负载,使用在整个管理范围内可靠、精确的更高层的同步时间服务器是必需配备的。


配置服务器和客户机

前面已提到过,配置文件一般叫 etc/ntp.conf ,其中列出了时间服务器的名字。一个时间服务器希望既从其它服务器接收同步,也向其发送同步时间,则用 peer 关键字标识,否则用 server 标识,若一本地 UTC 时间是有效的 , 则可将外部设为 peer, 内部为 server, 以便在 Internet 上永远提供。

ntpd
刚开始运行时所做的一件事就是计算出本机上时钟的频率错误,这要花费一天甚至更长时间,一旦这一初值被计算出以后将很少改变,并将这一值存于一文件中。 ntpd 灵活地支持地址棗掩码配置功能,并且要求用服务器的名字而不用其他地址,因为地址可能会改变,而机器名一般不会改变。

ntp
还包括三个询问程序,用于询问远端 NTP 实现时间准确性的评估和检查错误。它们分别是 ntptrace ,用于展示所选主机的路径,通常是无线时钟所在的 primary 主机,这一程序可工作于 NTP 第二、三版本,但不能工作于第一版本; ntpdc NTP 专用模式化控制消息,对本地或远端服务器进行查询,这些消息的格式和内容指示 ntpd 的版本和一些旧的版本,程序允许检查内部计数器的性能和其它状态数据,是一个很好的测试工具, ntpdc 还提供运行时间重配制的用户界面。

ntpd
支持版本二和三中的选择性证实。在证实方式下,每个被传送的包都包括一个 32 比特的关键字 ID 和一个 64/128 比特的密码。这里可使用两种标准编码方式, DES 方式和 MDS 方式。在证实方式下,先要启动证实功能,尤其是在发送无证实包的 Peer 或发送本地服务器不能解码的证实包的 peer 发送用不适合同步的码加密的证实包时。注意,服务器可能知道很多关键字,但可能只有这些中的一个作为委托,这允许服务器实时间。另和一客户机共享关键字。在证实方式下,客户机委托服务器而不是被服务器所委托,这些都需要一定的证外,需要一些附加的参数,用于配置证实同层连接的关键字( ID )。 ntp.keys 文件则包含关键字列表和服务器所知道的关键字 ID 。因此,这里就有一个安全问题,因为关键字文件可能一定时间内不会改变,而当 Internet 的安全状态不稳定时,这一文件的内容还可能会丢失。

考虑到 NTP 三个版本兼容问题。因为当第一、二版本的实现程序收到一个第三版本服务器发来的包时,便不能做处理而丢掉它。因此和老版本进行同步是要失败的, ntpd 考虑到这一问题, ntp 可透明的给以前的 NTP 版本的客户机提供服务。在配置文件中用不同版本实现的服务器则标出其 NTP 版本,以便在不同的版本之间进行协调。

ntpd
tick tickadj 来调整本机时钟的跳动,对频率容差违规进行处理。普通的工作站是允许 10ppm 即百万分之十的误差,若出现这一误差, NTP 将自动地对出现误差的晶振进行补偿 , 而无需进行调整。然而,对于某些平台 , sun4,1,1, 这样的误差则是违规的,可用 tick tickadj 进行调整。这样就能保证本机的时间取自准确的时间源,而又将本机硬件时钟的误差降到最小。

NTP
就是这样将 NTP Server 以多种模式组成遍布全网的多级网状结构,保证了国际标准时间的可靠传播,同步全网,提高了 Internet 的可靠性和准确性。

以下是 ntp.conf 的配置表:

# server
IP 地址假设为 202.203.204.205 202.203.206.207 202.204.205.206
# peer configuration for host
server 202.203.204.205
server 202.203.206.207
peer 202.204.205.206
driftfile /etc/ntp.drift
statsdir \home\ntp\status\ #
记录连线状态
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable
filegen clockstats file clockstats type day enable

其中的 server host_name 表示本机同 host_name 这台机器以 client 模式作时间矫正, peer host_name 就是以 peer 模式的方式作时间矫正 , 所以 , 就上述而言 , 本机和三台时间服务器作矫正 , 且与二台以 clientmode 的方式,一台 peer 模式。 driftfile 的用处是当 ntpd 启动后它会去计算机器内部时钟频率的误差 , 计算第一次的误差通常需要很长的时间 , 但一旦计算出来了 , 接下来的误差只要计算相对与初始值的差值就可以了 , 但若不小心在计算初始值时 ntpd 停了 , 下次启动又要花时间去重算 , 若我们在 /etc/ntp.conf 内加入这行,则 ntpd 会储存现在的值于 ntp.drift , 下次启动时 , 可省下不少时间计算误差 , 所以 driftfile/etc/ntp.drift 通常都会出现在 /etc/ntp.conf 内。