02-NTP配置
本章节下载: 02-NTP配置 (494.83 KB)
目 录
在大型的网络中,如果依靠管理员手工配置来修改网络中各台设备的系统时间,不但工作量巨大,而且也不能保证时间的精确性。NTP(Network Time Protocol,网络时间协议)可以用来在分布式时间服务器和客户端之间进行时间同步,使网络内所有设备的时间保持一致,并提供较高的时间同步精度。NTP采用的传输层协议为UDP,使用的UDP端口号为123。
这里的“分布式”指的是运行NTP的设备既可以与其他设备的时间同步,又可以作为时间服务器为其他设备提供时间同步。
NTP主要应用于需要网络中所有设备的时间保持一致的场合,比如:
· 需要以时间作为参照依据,对从不同设备采集来的日志信息、调试信息进行分析的网络管理系统。
· 对设备时间一致性有要求的计费系统。
· 多个系统协同处理同一个比较复杂的事件的场合。此时,为保证正确的执行顺序,多个系统的时间必须保持一致。
NTP的基本工作原理如图1-1所示。Device A和Device B通过网络相连,Device A和Device B的时间不同,需要通过NTP实现时间的自动同步。为便于理解,作如下假设:
· 在Device A和Device B的时间同步之前,Device A的时间设定为10:00:00 am,Device B的时间设定为11:00:00 am。
· Device B作为NTP时间服务器,即Device A与Device B的时间同步。
· NTP报文从Device A到Device B、从Device B到Device A单向传输所需要的时间均为1秒。
· Device B处理NTP报文所需的时间是1秒。
图1-1 NTP基本工作原理图
Device A和Device B时间同步的工作过程如下:
(1) Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00 am(T1)。
(2) 当此NTP报文到达Device B时,Device B在NTP报文上增加该报文到达Device B时的时间戳,该时间戳为11:00:01 am(T2)。
(3) 当此NTP报文离开Device B时,Device B再在NTP报文上增加该报文离开Device B时的时间戳,该时间戳为11:00:02 am(T3)。
(4) 当Device A接收到该响应报文时,Device A的本地时间为10:00:03 am(T4)。
至此,Device A可以根据上述时间戳计算两个重要的参数:
· NTP报文的往返时延Delay = (T4 – T1) – (T3 – T2) = 2秒。
· Device A相对Device B的时间差Offset = ((T2 – T1) + (T3 – T4)) / 2 = 1小时。
这样,Device A就能够根据这些信息来设定自己的时间,使之与Device B的时间同步。
以上内容只是对NTP工作原理的一个粗略描述,详细内容请参阅相关的协议规范。
NTP通过时钟层数来定义时钟的准确度。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟处于未同步状态。
图1-2 NTP网络结构
如图1-2所示,实际网络中,通常将从权威时钟(如原子时钟)获得时间同步的NTP服务器的层数设置为1,并将其作为主时间服务器,为网络中其他设备的时钟提供时间同步。网络中的设备与主时间服务器的NTP距离,即NTP同步链上NTP服务器的数目,决定了设备上时钟的层数。例如,从主时间服务器获得时间同步的设备的时钟层数为2,即比主时间服务器的时钟层数大1;从时钟层数为2的时间服务器获得时间同步的设备的时钟层数为3,以此类推。
为了保证时间的准确性和可靠性,可以为一台设备指定多个时间服务器,设备根据时钟层数等参数进行时钟过滤和选择,从多个时间服务器中选择最优的时钟,与其同步。设备选中的时钟称为参考时钟。时钟优选过程的详细介绍,请参阅相关的协议规范。
在某些网络中,例如无法与外界通信的孤立网络,网络中的设备无法与权威时钟进行时间同步。此时,可以从该网络中选择一台时钟较为准确的设备,指定该设备与本地时钟进行时间同步,即采用本地时钟作为参考时钟,使得该设备的时钟处于同步状态。该设备作为时间服务器为网络中的其他设备提供时间同步,从而实现整个网络的时间同步。
NTP支持以下几种工作模式:
· 客户端/服务器模式
· 对等体模式
· 广播模式
· 组播模式
用户可以根据需要选择一种或几种工作模式进行时间同步。各种模式的详细介绍,如表1-1所示。
本文中NTP服务器或服务器指的是客户端/服务器模式中工作在服务器模式的设备;时间服务器指的是所有能够提供时间同步的设备,包括NTP服务器、NTP对等体、广播服务器和组播服务器。
表1-1 NTP模式介绍
模式 |
工作过程 |
时间同步方向 |
应用场合 |
客户端/服务器模式 |
客户端上需要手工指定NTP服务器的地址。客户端向NTP服务器发送NTP时间同步报文。NTP服务器收到报文后会自动工作在服务器模式,并回复应答报文 如果客户端可以从多个时间服务器获取时间同步,则客户端收到应答报文后,进行时钟过滤和选择,并与优选的时钟进行时间同步 |
· 客户端能够与NTP服务器的时间同步 · NTP服务器无法与客户端的时间同步 |
如图1-2所示,该模式通常用于下级的设备从上级的时间服务器获取时间同步 |
对等体模式 |
主动对等体(Symmetric active peer)上需要手工指定被动对等体(Symmetric passive peer)的地址。主动对等体向被动对等体发送NTP时间同步报文。被动对等体收到报文后会自动工作在被动对等体模式,并回复应答报文 如果主动对等体可以从多个时间服务器获取时间同步,则主动对等体收到应答报文后,进行时钟过滤和选择,并与优选的时钟进行时间同步 |
· 主动对等体和被动对等体的时间可以互相同步 · 如果双方的时钟都处于同步状态,则层数大的时钟与层数小的时钟的时间同步 |
如图1-2所示,该模式通常用于同级的设备间互相同步,以便在同级的设备间形成备份。如果某台设备与所有上级时间服务器的通信出现故障,则该设备仍然可以从同级的时间服务器获得时间同步 |
广播模式 |
广播服务器周期性地向广播地址255.255.255.255发送NTP时间同步报文。广播客户端侦听来自广播服务器的广播报文,根据接收的广播报文将设备的时间与广播服务器的时间进行同步 广播客户端接收到广播服务器发送的第一个NTP报文后,会与广播服务器进行报文交互,以获得报文的往返时延,为时间同步提供必要的参数。之后,只有广播服务器单方向发送报文 |
· 广播客户端能够与广播服务器的时间同步 · 广播服务器无法与广播客户端的时间同步 |
广播服务器广播发送时间同步报文,可以同时同步同一个子网中多个广播客户端的时间。如图1-2所示,使用同一个时间服务器为同一个子网中的大量设备提供时间同步时,可以使用广播模式,以简化网络配置 由于只有广播服务器单方向发送报文,广播模式的时间准确度不如客户端/服务器模式和对等体模式 |
组播模式 |
组播服务器周期性地向指定的组播地址发送NTP时间同步报文。客户端侦听来自服务器的组播报文,根据接收的组播报文将设备的时间与组播服务器的时间进行同步 |
· 组播客户端能够与组播服务器的时间同步 · 组播服务器无法与组播客户端的时间同步 |
组播模式对广播模式进行了扩展,组播服务器可以同时为同一子网、不同子网的多个组播客户端提供时间同步 组播模式的时间准确度不如客户端/服务器模式和对等体模式 |
为了提高时间同步的安全性,NTP提供了NTP服务的访问控制权限和NTP验证功能。
本功能是指利用ACL限制对端设备对本地设备上NTP服务的访问控制权限。NTP服务的访问控制权限从高到低依次为peer、server、synchronization、query。
· peer:完全访问权限。该权限既允许对端设备向本地设备的时间同步,对本地设备进行控制查询(查询NTP的一些状态,比如告警信息、验证状态、时间服务器信息等),同时本地设备也可以向对端设备的时间同步。
· server:服务器访问与查询权限。该权限允许对端设备向本地设备的时间同步,对本地设备进行控制查询,但本地设备不会向对端设备的时间同步。
· synchronization:仅具有访问服务器的权限。该权限只允许对端设备向本地设备的时间同步,但不能进行控制查询。
· query:仅具有控制查询的权限。该权限只允许对端设备对本地设备的NTP服务进行控制查询,但是不能向本地设备的时间同步。
当设备接收到NTP服务请求时,会按照权限从高到低的顺序依次进行匹配。匹配原则为:
· 如果没有指定权限应用的ACL或权限应用的ACL尚未创建,则继续匹配下一个权限。
· 如果所有的权限都没有应用ACL或权限应用的ACL尚未创建,则所有对端设备对本地设备NTP服务的访问控制权限均为peer。
· 如果存在应用了ACL的权限,且该ACL已经创建,则只有NTP服务请求匹配了某个权限应用的ACL中的permit规则,发送该NTP服务请求的对端设备才会具有该访问控制权限。其他情况下(NTP服务请求匹配某个权限应用的ACL中的deny规则或没有匹配任何权限的任何规则),发送该NTP服务请求的对端设备不具有任何权限。
配置NTP服务的访问控制权限,仅提供了一种最小限度的安全措施,更安全的方法是使用NTP验证功能。
在一些对时间同步的安全性要求较高的网络中,运行NTP协议时需要使用NTP验证功能。NTP验证功能可以用来验证接收到的NTP报文的合法性。只有报文通过验证后,设备才会接收该报文,并从中获取时间同步信息;否则,设备会丢弃该报文。从而,保证设备不会与非法的时间服务器进行时间同步,避免时间同步错误。
图1-3 NTP验证功能示意图
如图1-3所示,NTP验证功能的工作过程为:
(1) NTP报文发送者利用密钥ID标识的密钥对NTP报文进行MD5运算,并将计算出来的摘要信息连同NTP报文和密钥ID一起发送给接收者。
(2) 接收者接收到该NTP报文后,根据报文中的密钥ID找到对应的密钥,并利用该密钥对报文进行MD5运算。接收者将运算结果与报文中的摘要信息比较,依据比较结果,有以下两种情况:
· 比较结果不相同,则丢弃该报文。
· 比较结果相同,则检查NTP报文发送者是否有权在本端使用该密钥ID,检查通过,则接收该报文;否则,丢弃该报文。
与NTP相关的协议规范有:
· RFC 1305:Network Time Protocol (Version 3) Specification, Implementation and Analysis
· RFC 5905:Network Time Protocol Version 4: Protocol and Algorithms Specification
配置NTP时,需要注意:
· 设备上不能同时配置NTP和SNTP功能。
· 支持NTP的接口均为三层接口,包括VLAN接口、Tunnel接口等。
· 为保证时间同步的准确性,不建议用户在组网中配置两个或者两个以上的时钟源,以免造成时钟震荡,甚至出现无法同步的情况。
· 建议用户不要在聚合成员口上进行NTP相关配置。
NTP配置任务如下:
(1) 开启NTP服务
(2) 配置不同工作模式下的NTP
(3) (可选)配置本地时钟作为参考时钟
(4) (可选)配置NTP服务的访问控制权限
(5) (可选)配置NTP验证功能
(6) (可选)控制NTP报文的收发
NTP服务与SNTP服务互斥,同一时刻只能开启其中一个服务。因此,在开启NTP服务器之前,请确保SNTP服务关闭。
(1) 进入系统视图。
system-view
(2) 开启NTP服务。
ntp-service enable
缺省情况下, NTP服务处于关闭状态。
· 当设备采用客户端/服务器模式时,需要在客户端上指定服务器的地址。
· 当服务器端的时钟层数大于或等于客户端的时钟层数时,客户端将不会与其同步。
· 可以通过多次执行ntp-service unicast-server命令和ntp-service ipv6 unicast-server命令为设备指定多个服务器。
· 服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则客户端不会将自己的时间与服务器的时间同步。
(1) 进入系统视图。
system-view
(2) 为设备指定NTP服务器。
(IPv4网络)
ntp-service unicast-server { server-name | ip-address } [ authentication-keyid keyid | maxpoll maxpoll-interval | minpoll minpoll-interval | priority | source interface-type interface-number | version number ] *
(IPv6网络)
ntp-service ipv6 unicast-server { server-name | ipv6-address } [ authentication-keyid keyid | maxpoll maxpoll-interval | minpoll minpoll-interval | priority | source interface-type interface-number ] *
缺省情况下,未指定NTP服务器。
· 当设备采用对等体模式时,需要在主动对等体上指定被动对等体的地址。
· 被动对等体上需要执行ntp-service enable命令来开启NTP服务,否则被动对等体不会处理来自主动对等体的NTP报文。
· 主动对等体和被动对等体的时钟至少要有一个处于同步状态,否则它们的时间都将无法同步。
· 可以通过多次执行ntp-service unicast-peer命令或ntp-service ipv6 unicast-peer命令为设备指定多个被动对等体。
(1) 进入系统视图。
system-view
(2) 指定设备的被动对等体。
(IPv4网络)
ntp-service unicast-peer { peer-name | ip-address } [ authentication-keyid keyid | maxpoll maxpoll-interval | minpoll minpoll-interval | priority | source interface-type interface-number | version number ] *
(IPv6网络)
ntp-service ipv6 unicast-peer { peer-name | ipv6-address } [ authentication-keyid keyid | maxpoll maxpoll-interval | minpoll minpoll-interval | priority | source interface-type interface-number ] *
缺省情况下,未指定被动对等体。
· 当设备采用广播模式时,广播服务器端和广播客户端上都需要进行配置。
· 配置NTP的广播模式之前,广播服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则广播客户端不会将自己的时间与广播服务器的时间同步。
(1) 进入系统视图。
system-view
(2) 进入要接收NTP广播报文的接口。
interface interface-type interface-number
(3) 配置设备工作在NTP广播客户端模式。
ntp-service broadcast-client
缺省情况下,未配置NTP工作模式。
执行本命令后,设备将通过当前接口接收NTP广播报文。
(1) 进入系统视图。
system-view
(2) 进入要发送NTP广播报文的接口。
interface interface-type interface-number
(3) 配置设备工作在NTP广播服务器模式。
ntp-service broadcast-server [ authentication-keyid keyid | version number ] *
缺省情况下,未配置NTP工作模式。
执行本命令后,设备将通过当前接口周期性发送NTP广播报文。
· 设备采用组播模式时,在组播服务器端和组播客户端上都需要进行本配置。
· 配置NTP的组播模式之前,组播服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则组播客户端不会将自己的时间与组播服务器的时间同步。
(1) 进入系统视图。
system-view
(2) 进入要接收NTP组播报文的接口。
interface interface-type interface-number
(3) 配置设备工作在NTP组播客户端模式。
(IPv4网络)
ntp-service multicast-client [ ip-address ]
(IPv6网络)
ntp-service ipv6 multicast-client ipv6-address
缺省情况下,未配置NTP工作模式。
执行本命令后,设备将通过当前接口接收NTP组播报文。
(1) 进入系统视图。
system-view
(2) 进入要发送NTP组播报文的接口。
interface interface-type interface-number
(3) 配置设备工作在NTP组播服务器模式。
(IPv4网络)
ntp-service multicast-server [ ip-address ] [ authentication-keyid keyid | ttl ttl-number | version number ] *
(IPv6网络)
ntp-service ipv6 multicast-server ipv6-address [ authentication-keyid keyid | ttl ttl-number ] *
缺省情况下,未配置NTP工作模式。
执行本命令后,设备将通过当前接口周期性发送NTP组播报文。
本配置用来指定设备与本地时钟进行时间同步,使得该设备的时钟处于同步状态。
· 配置本地时钟作为参考时钟后,本地设备的时钟将处于同步状态,可以作为时间服务器为网络中其他设备的时钟提供时间同步。如果本地设备的时钟不正确,则会导致网络中设备的时间错误,请谨慎使用本配置。
· 不同的设备在时钟精度方面存在差异,一个网段中建议只配置一个精度最高参考时钟,否则可能出现网络震荡,导致时钟无法同步。
配置本地时钟作为参考时钟之前,建议先校准本地系统时间。
(1) 进入系统视图。
system-view
(2) 配置本地时钟作为参考时钟。
ntp-service refclock-master [ ip-address ] [ stratum ]
缺省情况下,设备未采用本地时钟作为参考时钟。
在配置对本地设备NTP服务的访问控制权限时,需要创建并配置与访问权限关联的ACL。ACL的配置方法请参见“安全配置指导”中的“ACL”。
(1) 进入系统视图。
system-view
(2) 配置对端设备对本地设备NTP服务的访问控制权限。
(IPv4网络)
ntp-service { peer | query | server | synchronization } acl ipv4-acl-number
(IPv6网络)
ntp-service ipv6 { peer | query | server | synchronization } acl ipv4-acl-number
缺省情况下,对端设备对本地设备NTP服务的访问控制权限为peer(完全访问权限)。
客户端和服务器上需要配置相同的密钥ID及密钥值,并且保证对端有权在本端使用该密钥ID进行验证,否则会导致NTP验证失败。
客户端和服务器上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见表1-2。其中,表格中的“-”表示不管此项是否配置。
客户端 |
服务器 |
结果 |
|||
身份验证 |
关联密钥 |
关联密钥存在且为可信密钥 |
身份验证 |
关联密钥存在且为可信密钥 |
|
是 |
是 |
是 |
是 |
是 |
身份验证成功 |
是 |
是 |
是 |
是 |
否 |
身份验证失败 |
是 |
是 |
是 |
否 |
- |
身份验证失败 |
是 |
是 |
否 |
- |
- |
身份验证失败 |
是 |
否 |
- |
- |
- |
不进行身份验证 |
否 |
- |
- |
- |
- |
不进行身份验证 |
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(5) 将指定密钥与对应的NTP服务器关联。
(IPv4网络)
ntp-service unicast-server { server-name | ip-address } authentication-keyid keyid
(IPv6网络)
ntp-service ipv6 unicast-server { server-name | ipv6-address } authentication-keyid keyid
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5{ cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
主动对等体和被动对等体上需要配置相同的密钥ID及密钥值,并且保证对端有权在本端使用该密钥ID进行验证,否则会导致NTP验证失败。
主动对等体和被动对等体上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见表1-3。其中,表格中的“-”表示不管此项是否配置。
表1-3 主动对等体和被动对等体上进行不同配置时的NTP验证结果
主动对等体 |
被动对等体 |
结果 |
||||
身份验证 |
关联密钥 |
关联密钥存在且为可信密钥 |
时钟层数 |
身份验证 |
关联密钥存在且为可信密钥 |
|
是 |
是 |
是 |
- |
是 |
是 |
身份验证成功 |
是 |
是 |
是 |
- |
是 |
否 |
身份验证失败 |
是 |
是 |
是 |
- |
否 |
- |
身份验证失败 |
是 |
否 |
- |
- |
是 |
- |
身份验证失败 |
是 |
否 |
- |
- |
否 |
- |
不进行身份验证 |
否 |
- |
- |
- |
是 |
- |
身份验证失败 |
否 |
- |
- |
- |
否 |
- |
不进行身份验证 |
是 |
是 |
否 |
大于被动对等体 |
- |
- |
身份验证失败 |
是 |
是 |
否 |
小于被动对等体 |
是 |
- |
身份验证失败 |
是 |
是 |
否 |
小于被动对等体 |
否 |
- |
不进行身份验证 |
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(5) 将指定密钥与对应的被动对等体关联。
(IPv4网络)
ntp-service unicast-peer { ip-address | peer-name } authentication-keyid keyid
(IPv6网络)
ntp-service ipv6 unicast-peer { ipv6-address | peer-name } authentication-keyid keyid
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
广播服务器和广播客户端上需要配置相同的密钥ID及密钥值,并且保证对端有权在本端使用该密钥ID进行验证,否则会导致NTP验证失败。
广播客户端和广播服务器上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见表1-4。其中,表格中的“-”表示不管此项是否配置。
表1-4 广播客户端和广播服务器上进行不同配置时的NTP验证结果
广播服务器 |
广播客户端 |
结果 |
|||
身份验证 |
关联密钥 |
关联密钥存在且为可信密钥 |
身份验证 |
关联密钥存在且为可信密钥 |
|
是 |
是 |
是 |
是 |
是 |
身份验证成功 |
是 |
是 |
是 |
是 |
否 |
身份验证失败 |
是 |
是 |
是 |
否 |
- |
身份验证失败 |
是 |
是 |
否 |
是 |
- |
身份验证失败 |
是 |
是 |
否 |
否 |
- |
不进行身份验证 |
是 |
否 |
- |
是 |
- |
身份验证失败 |
是 |
否 |
- |
否 |
- |
不进行身份验证 |
否 |
- |
- |
是 |
- |
身份验证失败 |
否 |
- |
- |
否 |
- |
不进行身份验证 |
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(5) 进入接口视图。
interface interface-type interface-number
(6) 将指定密钥与对应的广播服务器关联。
ntp-service broadcast-server authentication-keyid keyid
缺省情况下,广播服务器没有与密钥关联。
组播服务器和组播客户端上需要配置相同的密钥ID及密钥值,并且保证对端有权在本端使用该密钥ID进行验证,否则会导致NTP验证失败。
组播客户端和组播服务器上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见表1-5。其中,表格中的“-”表示不管此项是否配置。
表1-5 组播客户端和组播服务器上进行不同配置时的NTP验证结果
组播服务器 |
组播客户端 |
结果 |
|||
身份验证 |
关联密钥 |
关联密钥存在且为可信密钥 |
身份验证 |
关联密钥存在且为可信密钥 |
|
是 |
是 |
是 |
是 |
是 |
身份验证成功 |
是 |
是 |
是 |
是 |
否 |
身份验证失败 |
是 |
是 |
是 |
否 |
- |
身份验证失败 |
是 |
是 |
否 |
是 |
- |
身份验证失败 |
是 |
是 |
否 |
否 |
- |
不进行身份验证 |
是 |
否 |
- |
是 |
- |
身份验证失败 |
是 |
否 |
- |
否 |
- |
不进行身份验证 |
否 |
- |
- |
是 |
- |
身份验证失败 |
否 |
- |
- |
否 |
- |
不进行身份验证 |
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(1) 进入系统视图。
system-view
(2) 开启NTP身份验证功能。
ntp-service authentication enable
缺省情况下,NTP身份验证功能处于关闭状态。
(3) 配置NTP身份验证密钥。
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置NTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
ntp-service reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(5) 进入接口视图。
interface interface-type interface-number
(6) 将指定密钥与对应的组播服务器关联。
(IPv4网络)
ntp-service multicast-server [ ip-address ] authentication-keyid keyid
(IPv6网络)
ntp-service ipv6 multicast-server ipv6-address authentication-keyid keyid
缺省情况下,组播服务器没有与密钥关联。
· 如果指定了NTP报文的源接口,则设备在主动发送NTP报文时,NTP报文的源地址为指定的源接口的地址。建议将Loopback接口指定为源接口,以避免设备上某个接口的状态变化而导致NTP报文无法接收。
· 设备对接收到的NTP请求报文进行应答时,应答报文的源地址始终为接收到的NTP请求报文的目的地址。
· 如果在命令ntp-service unicast-server/ntp-service ipv6 unicast-server或ntp-service unicast-peer/ntp-service ipv6 unicast-peer中指定了NTP报文的源接口,则优先使用ntp-service unicast-server/ntp-service ipv6 unicast-server或ntp-service unicast-peer/ntp-service ipv6 unicast-peer命令指定的接口作为NTP报文的源接口。
· 如果在接口视图下配置了ntp-service broadcast-server或ntp-service multicast-server/ntp-service ipv6 multicast-server,则NTP广播或组播模式报文的源接口为配置了ntp-service broadcast-server或ntp-service multicast-server/ntp-service ipv6 multicast-server命令的接口。
(1) 进入系统视图。
system-view
(2) 配置NTP报文的源接口。
(IPv4网络)
ntp-service source interface-type interface-number
(IPv6网络)
ntp-service ipv6 source interface-type interface-number
缺省情况下,未指定NTP报文的源接口。
启动NTP服务后,缺省情况下所有接口都可以接收NTP报文。如果出于安全性、简化网络管理等方面的考虑,不希望设备为某个接口对应网段内的对端设备提供时间同步,或不希望设备从某个接口对应网段内的对端设备获得时间同步,则可以在该接口上执行本配置,使该接口关闭接收NTP报文功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 关闭接口接收NTP报文功能。
(IPv4网络)
undo ntp-service inbound enable
(IPv6网络)
undo ntp-service ipv6 inbound enable
缺省情况下,接口接收NTP报文。
本功能用来限制动态会话的数目,以避免设备上维护过多的动态会话,占用过多的系统资源。
NTP会话分为两种:
· 静态会话:用户手动配置NTP相关命令而建立的会话。
· 动态会话:NTP协议运行过程中建立的临时会话,若系统长期(大约12分钟)没有报文交互就会删除该临时会话。
各种模式中,会话的建立情况如下:
· 客户端/服务器模式中,在客户端上指定了NTP服务器后,客户端上会建立一个静态会话,服务器端在收到报文之后只是被动的响应报文,而不会建立会话(包括静态和动态会话)。
· 对等体模式中,在主动对等体上指定了被动对等体后,主动对等体上会建立静态会话,被动对等体端会建立动态会话。
· 广播模式和组播模式中,在广播/组播服务器端上会建立静态会话,而在广播/组播客户端上会建立动态会话。
设备同一时间内最多可以建立的会话数目为128个,其中包括静态会话数和动态会话数。
(1) 进入系统视图。
system-view
(2) 配置NTP动态会话的最大数目。
ntp-service max-dynamic-sessions number
缺省情况下,NTP动态会话的最大数目为100。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定NTP/IPv6 NTP服务器发送的NTP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置NTP报文的DSCP优先级。
¡ (IPv4网络)
ntp-service dscp dscp-value
缺省情况下,IPv4 NTP报文的DSCP优先级为48。
¡ (IPv6网络)
ntp-service ipv6 dscp dscp-value
缺省情况下,IPv6 NTP报文的DSCP优先级为56。
在完成上述配置后,在任意视图下执行display命令可以显示配置后NTP的运行情况,通过查看显示信息验证配置的效果。
表1-6 NTP显示和维护
操作 |
命令 |
显示NTP服务的所有IPv6会话信息 |
display ntp-service ipv6 sessions [ verbose ] |
显示NTP服务的所有IPv4会话信息 |
display ntp-service sessions [ verbose ] |
显示NTP服务的状态信息 |
display ntp-service status |
显示从本地设备回溯到主时间服务器的各个NTP时间服务器的简要信息 |
display ntp-service trace [ source interface-type interface-number ] |
为了通过NTP实现Switch与AC的时间同步,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· 配置Switch工作在客户端模式,指定AC为NTP服务器。
图1-4 配置NTP客户端/服务器模式组网图
(1) 按照图1-4配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置AC
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
(3) 配置Switch
# 开启NTP服务。
<Switch> system-view
[Switch] ntp-service enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
# 设置AC为Switch的NTP服务器。
[Switch] ntp-service unicast-server 1.0.1.11
# 完成上述配置后,Switch向AC进行时间同步。同步后查看Switch的NTP状态。可以看出,Switch已经与AC同步,层数比AC的层数大1,为3。
[Switch] display ntp-service status
Clock status: synchronized
Clock stratum: 3
System peer: 1.0.1.11
Local mode: client
Reference clock ID: 1.0.1.11
Leap indicator: 00
Clock jitter: 0.000977 s
Stability: 0.000 pps
Clock precision: 2^-10
Root delay: 0.00383 ms
Root dispersion: 16.26572 ms
Reference time: d0c6033f.b9923965 Wed, Dec 29 2010 18:58:07.724
# 查看Switch的NTP服务的所有IPv4会话信息,可以看到Switch与AC建立了会话。
[Switch] display ntp-service sessions
source reference stra reach poll now offset delay disper
********************************************************************************
[12345]1.0.1.11 127.127.1.0 2 1 64 15 -4.0 0.0038 16.262
Notes: 1 source(master), 2 source(peer), 3 selected, 4 candidate, 5 configured.
Total sessions: 1
为了通过IPv6 NTP实现Switch与AC的时间同步,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· 配置Switch工作在客户端模式,指定AC为IPv6 NTP服务器。
图1-5 配置IPv6 NTP客户端/服务器模式组网图
(1) 按照图1-5配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置AC
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
(3) 配置Switch
# 开启NTP服务。
<Switch> system-view
[Switch] ntp-service enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
# 设置AC为Switch的IPv6 NTP服务器。
[Switch] ntp-service ipv6 unicast-server 3000::34
# 完成上述配置后,Switch向AC进行时间同步。同步后查看Switch的NTP状态。可以看出,Switch已经与AC同步,层数比AC的层数大1,为3。
[Switch] display ntp-service status
Clock status: synchronized
Clock stratum: 3
System peer: 3000::34
Local mode: client
Reference clock ID: 163.29.247.19
Leap indicator: 00
Clock jitter: 0.000977 s
Stability: 0.000 pps
Clock precision: 2^-10
Root delay: 0.02649 ms
Root dispersion: 12.24641 ms
Reference time: d0c60419.9952fb3e Wed, Dec 29 2010 19:01:45.598
# 查看Switch的NTP服务的所有IPv6会话信息,可以看到Switch与AC建立了会话。
[Switch] display ntp-service ipv6 sessions
Notes: 1 source(master), 2 source(peer), 3 selected, 4 candidate, 5 configured.
Source: [12345]3000::34
Reference: 127.127.1.0 Clock stratum: 2
Reachabilities: 15 Poll interval: 64
Last receive time: 19 Offset: 0.0
Roundtrip delay: 0.0 Dispersion: 0.0
Total sessions: 1
网络中存在时间服务器AC。为了通过NTP实现Switch与AC进行时间同步,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· 配置AC工作在对等体模式,指定Switch为被动对等体,即AC为主动对等体,Switch为被动对等体。
图1-6 配置NTP对等体模式组网图
(1) 按照图1-6配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置Switch
# 开启NTP服务。
<Switch> system-view
[Switch] ntp-service enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
(3) 配置AC
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 配置通过NTP协议获取时间。
[AC] clock protocol ntp
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
# 设置Switch为被动对等体。AC处于主动对等体模式。
[AC] ntp-service unicast-peer 3.0.1.32
# 完成上述配置后,Switch选择AC作为参考时钟,与AC进行时间同步。同步后查看Switch的状态。可以看出,Switch已经与AC同步,层数比AC的层数大1,为3。
[Switch] display ntp-service status
Clock status: synchronized
Clock stratum: 3
System peer: 3.0.1.31
Local mode: sym_passive
Reference clock ID: 3.0.1.31
Leap indicator: 00
Clock jitter: 0.000916 s
Stability: 0.000 pps
Clock precision: 2^-17
Root delay: 0.00609 ms
Root dispersion: 1.95859 ms
Reference time: 83aec681.deb6d3e5 Wed, Jan 8 2014 14:33:11.081
# 查看Switch的NTP服务的IPv4会话信息,可以看到Switch与AC建立了会话。
[Switch] display ntp-service sessions
source reference stra reach poll now offset delay disper
********************************************************************************
[12]3.0.1.31 127.127.1.0 2 62 64 34 0.4251 6.0882 1392.1
Notes: 1 source(master), 2 source(peer), 3 selected, 4 candidate, 5 configured.
Total sessions: 1
网络中存在时间服务器AC。为了通过IPv6 NTP实现Switch与AC进行时间同步,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· 配置AC工作在对等体模式,指定Switch为被动对等体,即AC为主动对等体,Switch为被动对等体。
图1-7 配置IPv6 NTP对等体模式组网图
(1) 按照图1-7配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置Switch
# 开启NTP服务。
<Switch> system-view
[Switch] ntp-service enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
(3) 配置AC
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 配置通过NTP协议获取时间。
[AC] clock protocol ntp
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
# 设置Switch为IPv6被动对等体。AC处于主动对等体模式。
[AC] ntp-service ipv6 unicast-peer 3000::36
# 完成上述配置后,Switch选择AC作为参考时钟,与AC进行时间同步。同步后查看Switch的状态。可以看出,Switch已经与AC同步,层数比AC的层数大1,为3。
[Switch] display ntp-service status
Clock status: synchronized
Clock stratum: 3
System peer: 3000::35
Local mode: sym_passive
Reference clock ID: 251.73.79.32
Leap indicator: 11
Clock jitter: 0.000977 s
Stability: 0.000 pps
Clock precision: 2^-10
Root delay: 0.01855 ms
Root dispersion: 9.23483 ms
Reference time: d0c6047c.97199f9f Wed, Dec 29 2010 19:03:24.590
# 查看Switch的NTP服务的IPv6会话信息,可以看到Switch与AC建立了会话。
[Switch] display ntp-service ipv6 sessions
Notes: 1 source(master), 2 source(peer), 3 selected, 4 candidate, 5 configured.
Source: [1234]3000::35
Reference: 127.127.1.0 Clock stratum: 2
Reachabilities: 15 Poll interval: 64
Last receive time: 19 Offset: 0.0
Roundtrip delay: 0.0 Dispersion: 0.0
Total sessions: 1
为了通过NTP实现Switch与AC的时间同步,并保证时间同步的安全性,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· Switch工作在客户端模式,指定AC为NTP服务器;
· AC和Switch上同时配置NTP验证。
图1-8 配置带身份验证的NTP客户端/服务器模式组网图
(1) 按照图1-8配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置AC的本地时钟作为参考时钟
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
(3) 配置Switch
# 开启NTP服务。
<Switch> system-view
[Switch] ntp-service enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
# 在Switch上启动NTP验证功能。
[Switch] ntp-service authentication enable
# 创建编号为42的NTP验证密钥,密钥值为aNiceKey,以明文形式输入。
[Switch] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey
# 配置编号为42的密钥为可信密钥。
[Switch] ntp-service reliable authentication-keyid 42
# 设置AC为Switch的NTP服务器,并将该服务器与编号为42的密钥关联。
[Switch] ntp-service unicast-server 1.0.1.11 authentication-keyid 42
以上配置将使得Switch与AC进行时间同步,但由于AC没有使能NTP身份验证,所以,Switch还是无法与AC同步。
(4) 在AC上配置NTP验证功能。
# 在AC上启动NTP验证功能。
[AC] ntp-service authentication enable
# 创建编号为42的NTP验证密钥,密钥值为aNiceKey,以明文形式输入。
[AC] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey
# 配置编号为42的密钥为可信密钥。
[AC] ntp-service reliable authentication-keyid 42
# 完成上述配置后,Switch可以与AC的时间同步。同步后查看Switch的状态。可以看出,Switch已经与AC同步,层数比AC的层数大1,为3。
[Switch] display ntp-service status
Clock status: synchronized
Clock stratum: 3
System peer: 1.0.1.11
Local mode: client
Reference clock ID: 1.0.1.11
Leap indicator: 00
Clock jitter: 0.005096 s
Stability: 0.000 pps
Clock precision: 2^-10
Root delay: 0.00655 ms
Root dispersion: 1.15869 ms
Reference time: d0c62687.ab1bba7d Wed, Dec 29 2010 21:28:39.668
# 查看Switch的NTP服务的所有IPv4会话信息,可以看到Switch与AC建立了会话。
[Switch] display ntp-service sessions
source reference stra reach poll now offset delay disper
********************************************************************************
[1245]1.0.1.11 127.127.1.0 2 1 64 519 -0.0 0.0065 0.0
Notes: 1 source(master),2 source(peer),3 selected,4 candidate,5 configured.
NTP时间同步过程中需要进行复杂的时钟优选运算,时间同步速度较慢,并且占用较多的系统资源。SNTP(Simple NTP,简单NTP)是由RFC 4330定义的客户端版本的简单NTP,采用与NTP相同的报文格式及交互过程,但简化了NTP的时间同步过程,以牺牲时间精度为代价实现了时间的快速同步,并减少了占用的系统资源。在时间精度要求不高的情况下,可以使用SNTP来实现时间同步。
SNTP只支持客户端/服务器模式,在模式中提供客户端功能,即作为客户端,从NTP服务器获得时间同步,不能作为服务器为其他设备提供时间同步。
如果同时为SNTP客户端指定了多个NTP服务器,则SNTP客户端根据如下方法选择与哪个服务器的时间同步:
(1) 优先选择时钟层数值最小的NTP服务器。
(2) 如果时钟层数相同,则选择接收到的第一个NTP报文对应的NTP服务器。
与SNTP相关的协议规范有:
· RFC 4330:Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI
配置SNTP时,需要注意:
· 设备上不能同时配置NTP和SNTP功能。
SNTP配置任务如下:
(1) 开启SNTP服务
(2) 为SNTP客户端指定NTP服务器
(3) (可选)配置SNTP验证功能
NTP服务与SNTP服务互斥,同一时刻只能开启其中一个服务。因此,在开启SNTP服务器之前,请确保NTP服务关闭。
(1) 进入系统视图。
system-view
(2) 开启SNTP服务。
sntp enable
缺省情况下, SNTP服务处于关闭状态。
NTP服务器的时钟只有处于同步状态时,才能作为时间服务器为SNTP客户端提供时间同步。当NTP服务器的时钟层数大于或等于客户端的时钟层数时,客户端将不会与其同步。
(1) 进入系统视图。
system-view
(2) 为设备指定NTP服务器。
(IPv4网络)
sntp unicast-server { server-name | ip-address } [ authentication-keyid keyid | source interface-type interface-number | version number ] *
缺省情况下,未指定IPv4 NTP服务器。
可以通过多次执行本命令配置多个NTP服务器。authentication-keyid参数用来将指定密钥与对应的NTP服务器关联。使用验证功能时,需要指定本参数。
(IPv6网络)
sntp ipv6 unicast-server { server-name | ipv6-address } [ authentication-keyid keyid | source interface-type interface-number ] *
缺省情况下,未指定IPv6 NTP服务器。
可以通过多次执行本命令配置多个IPv6 NTP服务器。authentication-keyid参数用来将指定密钥与对应的NTP服务器关联。使用验证功能时,需要指定本参数。
在一些对时间同步安全性要求较高的网络中,运行SNTP协议时需要启用验证功能。通过客户端和服务器端的身份验证,保证客户端只与通过验证的服务器进行时间同步,提高了网络安全性。
· 在NTP服务器和SNTP客户端上都需要开启验证功能。
· NTP服务器和SNTP客户端上必须配置相同的验证密钥(包括密钥ID及密钥值),并将密钥设为可信密钥。NTP服务器上验证功能的配置方法,请参见“1.8.1 配置客户端/服务器模式的NTP验证功能”。
· 在客户端需要将指定密钥与对应的NTP服务器关联,并保证服务端有权在本端使用该密钥ID进行验证。
· 如果客户端没有成功启用SNTP验证功能,不论服务器端是否开启验证功能,客户端均可以与服务器端同步。
(1) 进入系统视图。
system-view
(2) 开启SNTP身份验证功能。
sntp authentication enable
缺省情况下,SNTP身份验证功能处于关闭状态。
(3) 配置SNTP身份验证密钥。
sntp authentication-keyid keyid authentication-mode md5 } { cipher | simple } string [ acl ipv4-acl-number | ipv6 acl ipv6-acl-number ] *
缺省情况下,未配置SNTP身份验证密钥。
(4) 配置指定密钥为可信密钥。
sntp reliable authentication-keyid keyid
缺省情况下,未指定可信密钥。
(5) 将指定密钥与对应的NTP服务器关联。
(IPv4网络)
sntp unicast-server { server-name | ip-address } authentication-keyid keyid
(IPv6网络)
sntp ipv6 unicast-server { server-name | ipv6-address } authentication-keyid keyid
缺省情况下,未指定NTP服务器。
在完成上述配置后,在任意视图下执行display命令可以显示配置后SNTP的运行情况,通过查看显示信息验证配置的效果。
表2-1 SNTP显示和维护
操作 |
命令 |
显示SNTP服务维护的IPv6会话信息 |
display sntp ipv6 sessions |
显示SNTP服务维护的IPv4会话信息 |
display sntp sessions |
Switch对时间精度要求不高。为了实现Switch与AC的时间同步,要求:
· 在AC上设置本地时钟作为参考时钟,层数为2;
· Switch工作在SNTP客户端模式,指定AC为NTP服务器。
· Switch要求对NTP服务器进行验证,以保证时间同步的安全性。
图2-1 SNTP配置组网图
(1) 按照图2-1配置各接口的IP地址,并确保路由可达,具体配置过程略。
(2) 配置AC
# 开启NTP服务。
<AC> system-view
[AC] ntp-service enable
# 配置通过NTP协议获取时间。
[AC] clock protocol ntp
# 设置本地时钟作为参考时钟,层数为2。
[AC] ntp-service refclock-master 2
# 在AC上启动NTP验证功能。
[AC] ntp-service authentication enable
# 创建编号为10的NTP验证密钥,密钥值为aNiceKey,以明文形式输入。
[AC] ntp-service authentication-keyid 10 authentication-mode md5 simple aNiceKey
# 设置编号为10的密钥为可信密钥。
[AC] ntp-service reliable authentication-keyid 10
(3) 配置Switch
# 开启SNTP服务。
<Switch> system-view
[Switch] sntp enable
# 配置通过NTP协议获取时间。
[Switch] clock protocol ntp
# 在Switch上启动SNTP验证功能。
[Switch] sntp authentication enable
# 创建编号为10的SNTP验证密钥,密钥值为aNiceKey,以明文形式输入。
[Switch] sntp authentication-keyid 10 authentication-mode md5 simple aNiceKey
# 设置编号为10的密钥为可信密钥。
[Switch] sntp reliable authentication-keyid 10
# 设置AC为Switch的NTP服务器,并将该服务器与编号为10的密钥关联。
[Switch] sntp unicast-server 1.0.1.11 authentication-keyid 10
# 查看Switch的SNTP会话信息,可以看到Switch与AC建立了会话,并且处于已同步状态。
[Switch] display sntp sessions
SNTP server Stratum Version Last receive time
1.0.1.11 2 4 Tue, May 17 2011 9:11:20.833 (Synced)
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!