免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5847 | 回复: 0
打印 上一主题 下一主题

翻译:Sun Solaris 339课程中关于NTP的部分(未完) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-14 22:34 |只看该作者 |倒序浏览
翻译约定:红色字体为含义不确定、词不达意或译者注。

配置NTP
目标:
本部分介绍了如何配置NTP(Network Time Protocol),也介绍了NTP的基本部分,包括计算机如何保持时间,如何使用NTP以及NTP的一些术语.本部分还描述了如何配置NTP服务器和NTP客户端,以及NTP的troubleshoot,包括日志的查看及snoop工具的使用.
结束本章的学习后,你将会:
掌握NTP基础知识
配置NTP服务器
配置NTP客户端
Troublleshoot NTP

下图显示了NTP在网络应用中的位置:


NTP基本知识
在配置NTP之前,你必须了解一些计算机时钟以及NTP相关的基本概念.
计算机如何保持时间:
本段描述计算机如何保持时间.这只是一个高级的介绍,并不包括所有内容.

当系统没有运行SolarisOE环境时,NVRAM维护24h的系统时间.当系统运行时,这个时间被复制到kernel的一个64位的计数器内,由系统来进行维护.
Sun系统使用振荡器和一个64位的计数器来跟踪系统时间.一个指定数量的振荡会产生一个中断,如果这个中断被处理(系统来得及的化),计数器将增长.
Sun的CPUs会有规律的产生中断.缺省情况下,每秒钟100个.只有中断被kernel处理,系统计数器才会递增.每一个被处理的中断都被称作clock tick.然而,并不是所有的中断都会被处理,比如系统负载过高导致来不及响应中断,或有更高优先级的任务在被处理.日积月累,这种时钟的丢失就会导致系统时间的偏移.

注意: 32位时间计数器会在2038年达到它的计数极限.64位计数器起始于1970年1月1日午夜0时,会在大约290万年后过期....呵呵

振荡器频率的变化(器件的物理特性导致)和中断响应的延迟导致了系统时钟的偏移.NTP可以被用来校正时钟频率和系统时间,为系统提供精确的时间机制.


使用NTP
许多网络应用需要同步系统系统时钟才能正常使用.例如:
加密----这种应用通常会使用时间作为密钥内容的一部分.
网络管理----当有事件发生时,这种应用使用时间来决定正确的行为.
日志----syslog工具使用时间来显示系统事件.
文件系统----当文件被创建或修改时会被加盖时间戳.

NTP术语
一些术语会在描述时间相关的主题时被使用.如下表:
参考时钟(Reference clock) : 提供与时间标准(如UTC)精确匹配的时钟。
Strata :  NTP服务器被按照层次结构分级规划,称为strata. 一个1级(stratum-1)的服务器要比10级(stratum-10)的服务器精确的多。这种层次结构最多有15级。(末句不确定)
1级服务器(Stratum-1 server) : 一个有自己参考时钟的高可用NTP服务器。
解析度(Resolution) : 时钟可以显示的时间的最小增幅。例如,手表的解析度是秒。
精度(Precision) : 计算机程序可以用到的时间的最小增幅。
Jitter : 多次测量所得的经验误差的差值。
精确性(Accuracy) : 描述时钟与官方参考时间(如UTC)的接近程度。
可靠性(Reliability) : 时钟在某个指定范围内所能保持精度的时间。
偏移(Wander) : 所有时钟都受频率变化的影响,这种变化被称为偏移。
漂移文件(Drift file) : 包含本地系统时钟震荡器偏移量的一个文件。漂移文件可以被NTP这样的协议使用来保证系统时钟更加精确。Sun系统缺省保存此文件于/var/ntp/ntp.drift
xntpd : NTP守护进程。
ntp.conf : 用来决定xntpd是以服务器还是以客户端方式启动,并相应的控制其行为的配置文件。
fudge : 你可以把fudge工具作为一个ntp.conf文件中的关键字,用指定的方式来确定参考时钟,比如给外部精确标准时间强制定义一个时钟偏移。
Discipline : 这是一个通用的术语,描述一些协议(用以帮助本地时钟更好的与官方时间源(比如UTP)同步)的多种行为,

配置NTP服务
/etc/inet/ntp.server是一个NTP服务器配置模板,拷贝这个文件为/etc/inet/ntp.conf,并根据自己的网络环境进行相应的配置。当查看ntp.server文件内容时,记得它可能是一个NTP服务器也是一个NTP客户端。
如果/etc/inet/ntp.conf文件存在,系统会在启动时读取/etc/rc2.d/S74xntpd并启动xntpd进程。xntpd进程既可以被启动为客户端模式,也可以被启动为服务器模式,这依赖于你在ntp.conf中如何进行配置。

下面的步骤描述了xntpd的处理过程
1.NTP服务器使用多播地址(224.0.1.1)每64秒宣告一次自己是NTP服务器。NTP客户端如果没有配置单播的NTP服务器地址的话,在启动的时候也会进行多播。下面的输出决定了这是一个NTP服务器:
sys11# grep broadcast /etc/inet/ntp.server
broadcast 224.0.1.1 ttl 4
sys11#
也就是说,如果想让ntp以服务器方式运行,需要把上一行加入ntp.server     《---right?充分必要条件?
2.本地NTP服务器回答多播宣告。
3.NTP客户端发送请求包到所有回应了多播宣告的NTP服务器(但这次使用的是服务器的单播地址,而非多播)。包中包括了客户端的本地时间。
4.NTP服务器将UTC时间插入到接收到的包中并送还给客户端。
5.客户端比较最初的请求时间和他从服务器收到包时的本地时间,从而计算出包在网络中的传输时间。
6.客户端从服务器收到一些(到底是几个?)回应后,开始使用从NTP服务器收到的UTC时间。(为什么收到几个后才开始使用?提高可靠性?或者为了防止抖动?还是我翻译的有误?)NTP客户端与服务器同步时长可以为5分钟。(这5分钟如何规定的?具体是哪2点的时间差?) 这段有点晕。。。摘抄原文如下:
The client uses the UTC time value from the NTP server after it receives several responses from the NTP server. It can take up to five minutes for an NTP client to synchronize with an NTP server.

下表显示了部分NTP服务器配置文件及相应的描述
内容
描述
server 127.127.1.0 prefer
首选NTP服务器的ip地址。本例中使用了loopback地址,即说明使用本地时钟(local undisciplined clock)作为时间服务器。server关键字指明了接收时间同步的NTP服务器地址。如果本机恰巧是stratum-1,你就可以在127.127.x.0中使用x这种格式来认证一个参考时钟源。如果服务器是stratum-2(或更高层),它就会被当成另一个NTP服务器的地址。关键词prefer意味着在同一个strata系统中,如果有多个NTP服务器同时提供服务的话,有preferred标记的服务器总是参与计算的。
The IP address of the preferred NTP server. In this case, the loopback address is used, indicating the use of a local undisciplined clock. The server keyword indicates an IP address of an NTP server from which time will be received. If the system happens to be a stratum-1, then you use X in the 127.127.X.0 syntax to identify a reference clock source. If the server is a stratum-2 (or higher), this entry would be an IP address of another NTP server to contact for time information. The prefer keyword means that if multiple systems of the same strata are used to getting clock information, a preferred server is the one that will always be used when performing calculations.

fudge 127.127.1.0 stratum 0
fudge选项用来改变(fudge)服务器通告的stratum
broadcast 224.0.1.1 ttl 4
服务器向网络中发出通告时在IP数据段中所使用的TTL值。
enable auth monitor
开启认证和监视工具
driftfile /var/ntp/ntp.drift
指定drift文件位置
statsdir /var/ntp/ntpstats/
指定NTP状态的位置
keys /etc/inet/ntp.keys
认证通常所使用的KEY文件的名称
trustedkey 0
加密认证(参考RFC 1305 for more)
controlkey 0
key认证(参考RFC 1305 for more)

注意:其它类型的工具也可以被enable,比如loopstats或clockstats。(具体参考xntpd man page)

使用undisciplined本地时钟
NTP服务器可以但是并不应该使用自己的undisciplined时钟作为一个官方的可靠的时间源。
要使用一个undisciplined本地时钟,可以按照如下步骤:

1.拷贝文件/etc/inet/ntp.server文件到/etc/inet/ntp.conf
sys22# cp /etc/inet/ntp.server /etc/inet/ntp.conf
sys22#
2.编辑/etc/inet/ntp.conf,改变服务器ip为127.127.1.0,地址中数字“1” 用来表示undisciplined本地时钟。注释掉fudge关键字,因为本地参考时钟不需要这个关键字。
sys22# vi /etc/inet/ntp.conf
Change:
server 127.127.XType.0 prefer
fudge 127.127.XType.0 stratum 0
to:
server 127.127.1.0 prefer
# fudge 127.127.XType.0 stratum 0

注意:别忘记把那个白痴的XType替换掉。

3.在/etc/inet/ntp.conf中所指定的位置创建drift文件。通常为/var/ntp/ntp.drift
sys22# touch /var/ntp/ntp.drift
sys22#
注意:xntpd会自动创建drift文件的内容。

4.校验文件是否创建成功。
sys22# ls -al /var/ntp/ntp.drift
-rw-r--r-- 1 root other 0 Dec 27 00:57 /var/ntp/ntp.drift
sys22#

5.使用/etc/init.d目录中的脚本启动NTP守护进程。
sys22# /etc/init.d/xntpd start
sys22#

6.使用snoop工具查看NTP服务器多播通报。
sys22# /usr/sbin/snoop | grep -i ntp
Using device /dev/le (promiscuous mode)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:03:28 2001)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:04:32 2001)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:05:36 2001)
...
...
注意:NTP通告每64秒发送一次。因为NTP polling值为6,2^6为64。polling值可以用snoop –v 命令查看。

配置stratum
你可以通过编辑ntp.conf来手动配置NTP服务器的stratum。当你无法访问外部的NTP服务器,不得不手动同步系统时,这个选项非常有用。系统使用自己内部的时钟作为stratum-4服务器。
当本地时钟被配置为精确时钟源时,NTP会检测这个选项。使用自己的时钟作为时钟源的系统缺省情况下将通告自己为stratum-4服务器。然而fudge关键字可以被用来改变这个行为。fudge可以使用stratum选项覆盖NTP服务器时间通告发送的stratumm级别。(改变的目的?)

使用外部NTP参考服务器
先确定你的NTP服务器可以访问哪些其他的NTP服务器。参考
http://ww.eecis.udel.edu/~mills/ntp/clock2.htm中的stratum-2
服务器列表。你必须通知NTP服务器的管理员你将要使用他们的NTP服务器作为参考服务器,,以便于他们为额外的NTP负载正确的配置NTP他们的服务器。

要使用外部NTP服务器,可按照如下步骤:
1.拷贝文件/etc/inet/ntp.server文件到/etc/inet/ntp.conf
sys22# cp /etc/inet/ntp.server /etc/inet/ntp.conf
sys22#
2.编辑/etc/inet/ntp.conf,修改文件配置。注释掉fudge关键字,因为本外部参考时钟配置中不需要这个关键字。
sys21# vi /etc/inet/ntp.conf
Change:
server 127.127.XType.0 prefer
fudge 127.127.XType.0 stratum 0
to:
server external-time-server-a
server external-time-server-b
server external-time-server-c
# fudge 127.127.XType.0 stratum 0

3.在/etc/inet/ntp.conf中所指定的位置创建drift文件。通常为/var/ntp/ntp.drift
sys22# touch /var/ntp/ntp.drift
sys22#

4.校验文件是否创建成功。
sys22# ls -al /var/ntp/ntp.drift
-rw-r--r-- 1 root other 0 Dec 27 00:57 /var/ntp/ntp.drift
sys22#

5.使用/etc/init.d目录中的脚本启动NTP守护进程。
sys22# /etc/init.d/xntpd start
sys22#

6.检查是否NTP守护进程已经启动。
sys21# pgrep -lf ntp
1595 /usr/lib/inet/xntpd
sys21#

管理守护进程
缺省情况下NTP消息被送往syslog工具。
想要实时察看日志信息,使用tail命令。例如:
sys22# tail -f /var/adm/messages
Dec 27 01:25:37 sys22 xntpd[1614]: [ID 450285 daemon.error] 0 makes a
poor control keyid

你可以使用solairs8 OE中提到的xntpdc工具来查询或配置运行中的xntpd进程。xntpdc可以提供广泛的xntpd状态信息。你可以在交互模式或命令行模式使用这些状态信息。

如果/etc/inet/ntp.conf文件存在,NTP服务会在系统引导时自动启动。你可以使用/etc/init.d/xntpd脚本和stop参数来手动停止NTP服务。

要停止NTP守护进程,执行如下命令:
sys23# /etc/init.d/xntpd stop
sys23#

要启动NTP守护进程,执行如下命令
sys23# /etc/init.d/xntpd start
sys23#

查找NTP节点
ntpq工具是一个标准的NTP查询工具。可以用来查找网络中的NTP服务器。例如:
sys22# ntpq
ntpq> peers
remote refid st t when poll reach delay offset disp
==============================================================================
*LOCAL(0) LOCAL(0) 3 l 36 64 377 0.00 0.000 10.06
224.0.1.1 0.0.0.0 16 - - 64 0 0.00 0.000 16000.0
ntpq>
ntpq> exit
sys22#





配置NTP客户端
就像配置NTP服务器一样,NTP客户端也需要使用/etc/inet/ntp.conf文件。

创建基本配置
若要初始化文件配置,按照下列步骤执行:
1.复制 /etc/inet/ntp.client到/etc/inet/ntp.conf
sys23# cp /etc/inet/ntp.client /etc/inet/ntp.conf
sys23#
缺省情况下/etc/inet/ntp.conf文件只有一行内容。在此配置下,NTP客户端使用缺省的多播地址向服务器发出请求。
sys23# tail -1 /etc/inet/ntp.client
multicastclient 224.0.1.1
sys23#

2.检测是否NTP守护进程在运行
sys23# pgrep -lf ntp
sys23#

3.使用/etc/init.d目录下的xntpd脚本启动NTP守护进程。
sys23# /etc/init.d/xntpd start
sys23#

xntpd启动脚本首先使用ntpdate工具向UTC同步客户端时间。完成后,脚本启动xntpd来维护同步。
sys23# pgrep -lf ntp
1679 /sbin/sh /etc/init.d/xntpd start
1680 /usr/sbin/ntpdate -s -w -m 224.0.1.1
sys23#
注意:xntpd脚本一直处于等待状态,直到ntpdata执行结束。ntpdate工具自动完成标准时间的接收和系统时间的设置。ntpdate工具可能依赖于a step或a slew来执行初始化操作。(The ntpdate utility might perform this initial setting by means of a step or a slew).
具体请参考ntpdate的man page。

管理NTP客户端守护进程
NTP客户端守护进程的管理于NTP服务器守护进程的管理类似。

欲管理NTP客户端守护进程,可按如下步骤:
1.检测NTP守护进程是否在运行。
sys23# pgrep -lf ntp
sys23#
2.使用/etc/init.d目录中的xntpd脚本启动NTP守护进程
sys23# /etc/init.d/xntpd start
sys23#
xntpd启动脚本首先使用ntpdate工具向UTC同步客户端时间。完成后,脚本启动xntpd来维护同步。
sys23# pgrep -lf ntp
1679 /sbin/sh /etc/init.d/xntpd start
1680 /usr/sbin/ntpdate -s -w -m 224.0.1.1
sys23#


Troubleshooting NTP
使用工具组合来解决NTP问题,比如查看日志信息或使用snoop工具。

查看信息
日志信息由系统的日志转发设置产生。系统周期性的发送出带有错误时间的NTP请求。NTP服务器用正确的时间响应之。收到几次更新后,客户端改变自己的时间,并记录于/var/adm/messages
用snoop跟踪处理过程如下:
1.客户端向服务器发送包含本地时间的消息
sys23 -> sys22 NTP client (Thurs December 27 02:16:03 2001)

2.服务器用正确的实间来响应
sys22 -> sys23 NTP server (Thurs December 27 02:14:51 2001)

3.这种交换在服务器和客户端间重复多次,终于,客户端终于承认自己的时间是错误的。然后,客户端按照服务器发出的时间通告来修改自己的时间,并把此次改变进行记录。
sys23 -> sys22 NTP client (Thurs December 27 02:15:27 2001)

4.NTP服务器再次用正确的时间响应
sys22 -> sys23 NTP server (Thurs December 27 02:15:27 2001)

使用snoop工具

你可以使用snoop工具来跟中NTP在网络中的交互过程。

要查看服务器多播通告,请使用snoop工具
sys22# /usr/sbin/snoop | grep -i ntp
Using device /dev/le (promiscuous mode)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:03:28 2001)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:04:32 2001)
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 01:05:36 2001)

下面是一个NTP客户端的多播举例:
sys23 -> 224.0.1.1 NTP client (Thu Dec 27 02:25:10 2001)

下面是一个NTP服务器的多播举例(原文好像写错了):
sys22 -> 224.0.1.1 NTP broadcast (Thu Dec 27 02:25:33 2001)

下面是一个NTP客户端的时间请求举例:
sys23 -> sys22 NTP client (Thu Dec 27 02:26:19 2001)

下面是一个NTP服务器的回应举例:
sys22 -> sys23 NTP server (Thu Dec 27 02:26:19 2001)

注意:使用snoop工具监视NTP流量的另一个方法是使用命令snoop -V port 123.




练习:配置NTP
















xtest#man xntpd
用法:
xntpd的配置文件格式与UNIX的配置文件类似。’#’表示注释本行。空行被忽略。配置命令由关键字和跟随其后的一些参数组成,关键字与参数间用空格分隔,其中一些参数为可选项。
这些命令只能写在一行,不可以多行书写。参数可以是主机名,点分十进制格式的主机地址,整数,小数(当用秒来指定时间时)和文本

配置命令:
在下面的描述中,可选参数用’[]’标识,多个必选参数间用’|’标识。前三个命令指定了时间服务的三种不同运行模式。

peer host_address [ key # ] [ version  # ][ prefer ]
指定本地服务器运行于“symmetric active”模式,其对应的远程主机在命令中用“host_address”标明。在这种模式下,本地服务器可以与远程服务器同步,远程服务器也可以与本地服务器同步。(This  is  useful  in a network of servers where, depending on various failure scenarios,           either  the  local  or  remote  server host may be the better source of time. 上面这句不知道怎么翻译好了。。。)peer,以及后面的server、broadcast关键字都可以跟随以下参数:
key  
表明到这个地址的所有数据包都包含认证字段,并用指定的key number加密。数字的范围为unsigned 32位整数。缺省情况下,数据包不包含加密字段。
version
指定发送的NTP数据包的版本号。可以是Version 1,2,和3,缺省为3。
prefer
标记主机为首选主机。对于其他主机来说,这个主机在同步时会有优先权。

server
server host_address [ key # ] [ version f1#  ] [ prefer ] [  mode
标明本地服务器作为命令(配置)中所指定的远程服务器的客户端工作。在此模式下本地服务器可以向远程服务器同步,但是远程服务器不能向本地服务器同步。

broadcast
broadcast  host_address [ key # ] [ version  #  ] [ ttl #  ]
标明服务器工作于“broadcast”模式,此模式下服务器周期性的向命令(配置)中标明的广播/多播地址发送消息。通常这种模式只应用于服务器作为“transmitter”的情况下。对于服务器作为客户端的情况,请参见本文档其它位置关于broadcastclient或multicastclient命令的描述。在“broadcast”模式下,“host_address”通常是本地网络广播地址或者是为NTP指定的多播地址。IANI已经为NTP指定了224.0.0.1这个多播地址。下面的选项仅仅用于广播模式:
ttl
指定多播包的time-to-live。这个值的确定有些妖怪,而且最好由网络管理员来调整。缺省值为127。

broadcastclient
此模式下指定本地服务器监听本地网络的广播消息,查看相同的子网内是否有其他的服务器。当第一次收到广播消息时,本地服务器同远程服务器进行一个简短的client/server交换来测量nominal网络延时。然后服务器进入“broadcastclient”模式,开始监听并根据随后收到的消息进行同步。在这种模式下,为了避免意外以及恶意破坏,本地和远程服务器双方都必须使用相同的trusted key和key identifier进行认证。

multicastclient
[IP address …]
和broadcastclient命令的用法相同,只不过把广播地址换成了多播地址而已。此模式也需要认证。如果给定多个IP地址,服务器加入各自的多播组。如果没有给定IP地址,则使用224.0.1.1。(Support for this  command  requires  the  use  of authentication.   If  one  or  more   IP addresses are given,  the  server  joins  the  respective  multicast group(s).  If none are given, the  IP address assigned to  NTP (224.0.1.1) is assumed.)

driftfile filename
指定用来记录本地时钟振荡器频率偏移量的文件的名称。如果该文件存在,它会在启动时被读取以用来设定最初的频率偏移量。然后这个文件会根据NTP守护进程的计算每小时更新一次。如果该文件不存在或者没有给出这个命令(配置),则最初的偏移量被假设为0。在本例中,需要几小时来使频率趋于稳定,the residual timing errors to subside. 该文件包含一个单独的以ppm(parts-per-million)为单位的浮点数。文件更新时,系统先把当前偏移量写入一个临时文件,然后使用rename将新版本代替旧版本。这要求xntpd必须对drift文件坐在目录有写权限,因此尽量避免系统连接(硬连接),字符连接等。

enable auth|bclient|pll|monitor|stats [ ... ]
disable auth|bclient|pll|monitor|stats [ ...]
开启或关闭某个开关项(Flag)。其中auth,bclient,pll,monitor,stats等为开关项。未提到的开关项不会受(enable/disable)设置的影响(Flags not mentioned are unaffected.就是说即使配置了也会被忽略?)。下面会描述可以被设置的开关项以及它们的缺省值。
auth
缺省值:disable
在与unconfigured peers同步时,服务器仅仅会同那些经过正确trusted key和key identifier认证的的结点同步。(Causes the server to  synchronize with  unconfigured  peers only if the  peer  has   been   correctly authenticated using a trusted key and key identifier.)何为unconfigured peers?
eersfigurednitor,stats
bclient
缺省值:disable
让服务器监听本地广播或多播。After this occurs, an association is automatically instantiated for that server. default for this flag is disable (off).

pll
缺省值:enable
允许服务器调整本地时钟。如果设置为disable,本地时钟会按照其内部的时间及偏移来运行。这个选项通常会在如下情景中发生作用:服务器仅仅用于给客户端提供同步服务,并且其时钟由其它设备或其它协议来控制。

monitor
缺省值:disable
开启监视工具(具体参见本文其他位置的相关描述)

stats
缺省值:enable
开启状态文件生成(filegen)。(参见下面的监视工具部分)。


认证命令

keys filename
当xntpd开启认证模式时,此命令(配置)用来指定包含encryption key和key identifier信息的文件的位置及名称。本文档后面会描述此文件的格式。

trustedkey   # [ # ... ]
指定一个用于结点间认证同步的encryption key identifiers。认证过程请求本地和远程服务器共享相同的key和key identifier,此命令即用于此目的。然而,不同的key可以被用于不同的服务器。命令参数为32位无符号整数。然而注意:值0是固定的并且容易被猜到,因此用0做键值是不被信任的。(Note, however, that key 0 is fixed and globally known. If meaningful authentication is to be performed, the 0 key should not be trusted.)

controlkey #
ntpq是一个用来诊断和修复xntpd问题的工具,controlkey用来指定ntpq的key identifier。ntpq和xntpd参照RFC 1305编写。对本地服务器状态有影响的ntpq程序请求必须经过认证。这个认证要求远程服务器和本地服务器共享相同的key和key identifier。参数为32为无符号整数。如果配置文件中不包含controlkey命令或者key不匹配的话,请求会被忽略。

authdelay seconds
指定在本地计算机加密一个NTP认证字段所需要的时间。。当认证用于外出的数据包时,这个值用来纠正传输时间戳。虽然其值依赖于主机CPU速度,但其范围通常在0.0001秒到0.003秒之间。


访问控制命令

restrict
address [ mask numeric_mask ] [ flag ] [ ...  ]
xntpd实现了一个基于地址和掩码的限制列表。列表以IP地址和子网掩码形式存储,并且按照IP地址顺序进行匹配,The list is sorted by IP address and mask, and the list is searched in  this order for matches, with the last match found defining the restriction flags associated with  the incoming packets.接收包的源地址被用来与本命令中的掩码进行逻辑与运算,然后与命令中列出的、同样已经与掩码进行过与运算的IP地址的结果进行比较来确定其访问权限。“mask”参数缺省值为255.255.255.255,这意味着每个条目对应的是单独的主机地址(而不是网络)。条目列表中首位总是包含一个地址为0.0.0.0,掩码为0.0.0.0的缺省条目。注意,一个缺省条目也可能被书写成如下格式:地址不用点分十进制表示,而用字符串“default”代替,并且没有掩码。
在现有的设计中,flags总是被用来限制访问,比如一个没有任何flags标记的条目地址通常可以不受限制的访问提供的服务。flags不会重叠,也就是说,越多的限制flags也就意味着越少的访问权限。通常flags可以被分成两类,一类用来限制时间服务,一类用来限制信息查询以及对服务器的重新配置行为。(In the current implementation, flags always restrict access,  i.e.,  an entry with no flags indicates that free access to the server is to be given. The  flags are not orthogonal, in that more restrictive flags often make less restrictive ones redundant. The flags can generally be classed into two categories, those which restrict time service and those  which restrict informational queries and attempts to do run time reconfiguration of the server.)

可以指定下面的一个或多个flags作为参数:
ignore
忽略所有来自匹配主机的数据包。此选项对查询和时间服务轮询没有作用。Ignore all packets from hosts which  match  this entry. If this flag is specified neither queries nor time server polls will be responded to.

noquery
忽略所有处于NTP模式7的数据包(比如信息查询和重新配置请求)。时间服务不受影响。

nomodify
忽略所有企图修改服务器状态的处于模式7的数据包(比如:重新配置时间)。查询信息可以响应。

notrap
拒绝对匹配的主机提供模式6的控制消息陷阱(control message trap)服务。trap
服务是模式6控制消息协议的一个子系统,准备用来给远程事件日志程序使用的。

lowpriotrap
降低匹配主机的traps优先级。一个服务器所能维护的traps数量是有限的。当前数量是3。traps通常按照“先来先服务,后来被拒绝”的法则处理。这个flag修改了规则,允许后来的(正常优先级的)请求优先于低优先级的traps被处理。

nopeer
为轮询的主机提供stateless的时间服务,但是不分配节点内存资源给那些主机,即使它们在将来的同步中被认为是有用的。Provide stateless time service to polling hosts, but do not  allocate peer memory resources to these hosts even if they otherwise might be considered   useful as future synchronization partners.

notrust
拒绝用匹配主机作为同步源,其他方面与正常无异。

limited
可以限制同一网段的客户端数量。这里的网段指由IP地址划分的逻辑网段(而不是物理网段)。服务器只接受那些在此数量内的客户端(这些客户端必须出现在服务器上并且处于激活状态)。同一网段其他客户端的请求将被拒绝。只有时间请求(time request)包会被处理。“Private”,“control”和“broadcast”包不受此限制,因此不会被计数器记录。xntpd的监视功能保存了一个客户端的历史记录(具体内容是什么?)。因此,当此条目出现时,监视功能也被激活(还是说当此条目出现时,监视功能必须处于活动状态?)。client_limit缺省值为3,client_limit_period缺省值为3600秒。通常这两个值都不能在运行状态配置。

ntpport
这个flag实际上更象一个对匹配算法的修改,而不是一个限制flag。这个选项只会对源端口为标准NTP端口(123)的数据包进行响应。你可以用“ntpport”和“non-ntpport”这两个flags,表达的意思都是一样的。通常都使用ntpport,因为它不容易造成混淆。The ntpport is considered more specific and is sorted later in the list.
为了防止服务器去和自己同步这种白痴行为,服务器每个网络接口的IP地址都会被加入限制列表起始处,并付以ignore,ntpport标记。




Default  restriction  list  entries,  with   the  flags,   ignore,  ntpport, for each of the local host's interface addresses are inserted into the table  at  startup  to  prevent  the server from attempting to synchronize to  its  own  time.

  

监视命令
其他命令
认证Key文件格式
主要时钟支持
变量

  



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15711/showart_85344.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP