
华为交换机NTP介绍(二)' I' L4 t6 Z! o6 I" e9 E7 v) F
5、NTP工作模式
5 _5 G' c7 y8 ^4 ~8 M# R3 f 设备可以采用多种NTP工作模式进行时间同步:单播服务器/客户端模式、对等体模式、广播模式、组播模式、多播模式。用户可以根据需要选择合适的工作模式。 7 H9 a1 p* S4 R/ @8 Q( @9 i
1、NTP单播服务器/客户端模式 ! s: T# F- C( V" q2 i
点击查看原图
0 k& d+ I& C0 H- T 图1 NTP单播客户端/服务器模式
$ M, \0 [5 ~9 ?6 L z! m 单播服务器/客户端模式运行在同步子网中层数较高层上。这种模式下,需要预先知道服务器的IP地址。
8 u$ u1 O" v6 @- Y0 g6 _1 R 客户端:
) t: P, x6 A7 [- A$ V' O, ` 运行在客户端模式的主机(简称客户端)定期向服务器端发送报文,报文中的Mode字段设置为3(客户端模式)。当客户端接收到应答报文时,客户端会进行时钟过滤和选择,并同步到时钟优选的服务器。客户端不管服务器端是否可达及服务器端的层数。运行在这种模式的主机,通常是网络内部的工作站,它可以依照对方的时钟进行同步,但不会修改对方的时钟。 # v, Y3 E% e% v
服务器: 0 o5 ~, @0 b9 J% `3 L B
运行在服务器模式(简称服务器)的主机接收并回应报文,报文中的Mode字段设置为4(服务器模式)。运行在服务器模式的主机,通常是网络内部的时间服务器,它可以向客户端提供同步信息,但不会修改自己的时钟。
, l! E( H, l% d, j4 d) q! E* X 运行在客户端模式的主机在重新启动时和重新启动后定期向运行在服务器模式的主机发送NTP报文。服务器收到客户端的报文后,首先将报文的目的IP地址和目的端口号分别与其源IP地址和源端口号相交换,再填写所需的信息,然后把报文发送给客户端。服务器无需保留任何状态信息,客户端根据本地情况自由管理发送报文的时间间隔。
" h) q8 q3 K" f6 G# M- _ 2、NTP对等体模式
: {3 H% }* J0 X
点击查看原图
' o5 A7 N# Q+ X" L: u 图2 NTP对等体模式 % Z( Q2 X* I$ ~# J) V* k! S) I6 U
对等体模式运行在同步子网中层数较低处。这种模式下,主动对等体和被动对等体可以互相同步,等级低(层数大)的对等体向等级高(层数小)的对等体同步。
2 [8 _; }- o6 G! B+ b) Y 对等体模式下,主动对等体会发起Mode字段为3(客户端模式)NTP报文,由被动对等体响应4(服务器模式)的NTP报文。这一交互过程主要是为了获得网络延迟,使两端设备进入对等体模式。
4 G6 Y$ F% o9 X6 i 主动对等体: ) s2 ?8 L! ?* o; L
运行在这一模式下的主机定期发送报文,报文中的Mode字段设置为1(主动对等体)。不考虑它的对等体是否可达以及对等体的层数。运行在这一模式下的主机可以向对方提供同步信息,也可以依照对方的时间信息同步本地时钟。
' ^1 ?/ z( s8 c! r: f 被动对等体:
6 ^1 ]5 R' a, m! R9 Z8 I 运行在这一模式的主机接收并回应报文,报文中的Mode字段设置为2(被动对等体)。运行在被动对等体模式的主机可以向对方提供同步信息,也可以依照对方的时间信息同步本地时钟。
2 F4 {$ o* {' y3 I 被动对等体不需要用户配置,只有当本机收到NTP报文时才建立连接及相关的状态变量。 ' o0 |# O7 U' C! J: [7 V9 E* y
3、NTP广播模式
, F6 Q7 J _* j3 W) u
点击查看原图
) Q0 F- T# X6 u" M L. F
图3 NTP广播模式
% \% h6 H6 F7 }$ A: J 广播模式应用在有多台工作站、不需要很高的准确度的高速网络。典型的情况是网络中的一台或多台时间服务器定期向工作站发送广播报文,广播报文在毫秒级的延迟基础上确定时间。
; v" N( d' q. G 广播服务器: % }! E6 V) Q9 D% h! |4 L
运行在广播模式下,周期性向广播地址255.255.255.255发送时钟同步报文,报文中的Mode字段设置为5(广播模式)。不管它的对等体是否可达或层数为多少。运行在广播模式的主机通常是网络内运行高速广播介质的时间服务器,向所有对等体提供同步信息,但不会修改自己的时钟。 - i9 k" g5 K& o# x$ ?
广播客户端:
V5 S+ ]" |8 b1 A 客户端侦听来自服务器的时钟同步报文。当接收到第一个时钟同步报文,客户端与服务器交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,即客户端先启用一个短暂的服务器/客户端模式与远程服务器交换消息,以获得客户端与服务器间的网络延迟。之后恢复广播模式,继续侦听时钟同步报文的到来,根据到来的时钟同步报文对本地时钟再次进行同步。
P! [6 w1 N1 O2 Z 4、NTP组播模式
# X" G7 m* q) c. ?
点击查看原图
* F9 W) t* d/ A0 M3 m
图4 NTP组播模式
. R6 O, r7 Q; U8 d$ q% I 组播模式适用于有大量客户端分布在网络中的情况。通过在网络中使用NTP组播模式,NTP服务器发送的组播消息包可以到达网络中所有的客户端,从而降低由于NTP报文过多而给网络造成的压力。
+ P$ O1 \* i% s 组播服务器: 7 x* A: k4 T! J W8 c
服务器端周期性向组播地址发送时钟同步报文,报文中的Mode字段设置为5(组播模式)。运行在组播模式的主机通常是网络内运行高速广播介质的时间服务器,向所有对等体提供同步信息,但不会修改自己的时钟。
6 W% } M2 J, _. R0 J e" K 组播客户端: 0 l0 j: C0 H' w, z* u$ t1 X
客户端侦听来自服务器的组播消息包。当客户端接收到第一个组播报文后,客户端与服务器交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,即客户端先启用一个短暂的服务器/客户端模式与远程服务器交换消息,以获得客户端与服务器间的网络延迟。之后,客户端恢复组播模式,继续侦听组播消息包的到来,根据到来的组播消息包对本地时钟进行同步。 4 @! X- N: ~0 @/ ^6 r+ a
5、NTP多播模式 0 g! l4 n( M' P9 [. A3 i* A6 s/ V
点击查看原图
) L: N# `+ R/ _" R3 s# G
图5 NTP多播模式 & L& X, s+ d' ?7 _( F9 N
多播模式适用于服务器分布分散的网络中。客户端可以发现与之最近的多播服务器,并进行同步。多播模式适用于服务器不稳定的组网环境中,服务器的变动不会导致整网中的客户端重新进行配置。
& n2 k0 O6 m4 d! _7 S" n# q 多播服务器: & s: O& k; D& L; B) }
多播服务器持续侦听报文。若某个服务器可以被同步,则服务器将使用客户端的单播地址返回报文(Mode字段设置为4)。
, x: j5 f* H5 u9 A 多播客户端:
$ N* R- w) W9 A+ G! o/ _ 多播模式下的客户端周期性地向IPv4/IPv6组播地址发送请求报文(Mode字段设置为3)。当客户端接收到应答报文时,客户端会进行时钟过滤和选择,并同步到时钟优选的服务器。
( A; P/ f6 A) @6 |* H3 s. f3 i 为了防止多播模式下,客户端不断的向多播服务器发送NTP请求报文增加设备的负担,协议规定了最小连接数的概念。
- [! s5 O/ G0 u5 O3 Y( \ 多播模式下,客户端每次和服务器时钟同步后,都会记录下此次同步过程中建立的连接数,将调用最少连接的数量称为最小连接数。以后当客户端调动的连接数达到了最小连接数且完成了同步,客户端就认为同步完成;同步完成后每过一个超时周期,客户端都会传送一个报文,用于保持连接。同时,为了防止客户端无法同步到服务器,协议规定客户端每发送一个NTP报文,都会将报文的生存时间TTL(Time To Live)进行累加(初始为1),直到达到最小连接数,或者TTL值达到上限(上限值为255)。若TTL达到上限,或者达到最小连接数,而客户端调动的连接数仍不能完成同步过程,则客户端将停止一个超时周期的数据传输以清除所有连接,然后重复上述过程。
9 |4 `; B" T& n' ^! G8 {2 W# N 在NTP模块实现中,对每一个同步源都建立了一个PEER结构,并把这些PEER结构以Hash的形式存储成链状。每一个PEER结构对应于一个连接。 ; e8 ]/ ~, f6 {
5 ?" M( H% k4 E7 _9 k( M$ L 6、NTP访问控制 L+ X, d, }! ^
当同步子网中的一台时间服务器发生意外或遭到恶意攻击时,通常不应该导致子网中其它时间服务器的计时错误。因此,NTP还提供了如下安全机制:访问权限、KOD和NTP认证功能。这样就对网络的安全性提供了保障。 & w( A7 S0 L6 @6 i3 T
1、NTP访问权限
( I' z& H0 _/ X! D( H1 i 设备提供一种比较简单安全措施:访问权限,即通过设置访问权限对本地时钟进行保护。NTP的访问控制基于访问控制列表ACL(Access Control List)实现。
1 L9 H' H; y8 S0 b+ r" n NTP支持5个等级的访问限制,每个访问限制可指定相应的ACL规则。如果NTP访问请求命中该访问限制的ACL规则,则说明两者匹配成功,即该访问请求享有此级别的访问限制。
3 S: o: J+ x# _9 x: f8 o, H& m 当1个NTP访问请求到达本地时,按照最大访问限制到最小访问限制依次匹配,以第1个匹配的为准,匹配顺序如下: 8 r$ r3 o5 C0 G' n2 V% R# b
1、peer:可以对本地时钟进行时间请求和控制查询,本地时钟也可以同步到远程服务器。 ' P9 P3 `( Y8 g* a' y$ y' V# ~! p
2、server:可以对本地时钟进行时间请求和控制查询,但本地时钟不会同步到远程服务器。
8 C, P E/ z) d/ r& \5 X O 3、synchronization:只允许对本地时钟进行时间请求。 , }7 ]3 h$ [. P8 Y( A6 b
4、query:只允许对本地时钟进行控制查询。 + b; U4 \3 C* g3 g/ u9 X1 R
5、limited:当NTP报文速率高于上限时,丢弃入方向的NTP报文。如果使能KOD功能,此时还发送Kiss码。 6 J) ~' @2 g3 `; z0 }1 z& q
2、NTP KOD
9 t. C9 F% g* m4 K9 ]+ f* d3 } 当单位时间内,服务器收到大量客户端访问报文导致无法负荷时,可在服务器上使能KOD(Kiss-o'-Death)功能来进行接入控制。
1 E4 I% N3 {# G. h. \ KOD是NTPv4提出的一种全新的访问控制技术,主要用于服务器向客户端提供状态报告和接入控制等信息。KOD报文是特殊的NTP报文,当NTP报文携带的层数(Stratum)信息为0时,该报文被称为KOD报文,此时报文中会携带代表接入控制信息的ASCII(又称Kiss码)。目前仅支持DENY和RATE两种Kiss码。
6 n l# }+ m( k: v* f 在服务器上使能KOD功能后,服务器会根据配置向客户端发送DENY或RATE Kiss码。 1 G; Q1 W) }- P: v8 a
使能KOD功能后,还需要配置相应的ACL规则。当ACL规则为deny,此时服务器发送DENYKiss码;当ACL规则为permit且接收到的NTP报文速率达到配置的上限时,此时服务器发送RATE Kiss码。 1 a2 l; i% W1 n6 ?4 ^' C0 d
当客户端接收到DENYKiss码,客户端将断开与服务器的所有连接,并停止向服务器发送报文。当客户端接收到RATE Kiss码,客户端将立即缩短与该服务器的轮询时间间隔,且以后每次接收到RATE Kiss码,轮询时间间隔都会进一步缩短。 ) d6 ~+ y2 }' S( C0 t
3、NTP认证功能 . V' M0 j: Y6 y" O) Z
在安全性要求较高的网络中,可以启用NTP认证功能。不同工作模式下可配置不同的密钥。当用户在某一NTP工作模式下启用NTP认证时,系统会记录下此工作模式下相应的密钥ID。 ( U; i. f4 c- U4 Q, G& b
发送过程: 4 g1 K. [! u, [
首先判断在此工作模式下是否需要认证。如果不需要则直接发送报文;如果需要则根据相应密钥ID和加密算法对报文进行加密,然后发送报文。
7 B% m3 N1 y+ ?8 ]2 R! J 接收过程:
( F6 U0 e% W! d! w$ B$ g 在接收报文时,首先判断是否要对报文进行认证处理。如果不需要认证,则直接对报文进行后续处理;如果需要认证,则根据对应密钥ID和解密算法来认证。如果认证失败,则直接丢弃报文;如果认证通过,则对接收到的报文进行处理。 |
|