02-NTP配置
本章节下载: 02-NTP配置 (591.55 KB)
![]()
· 设备上不能同时配置NTP和SNTP功能。
· 支持NTP的接口均为三层接口,包括三层以太网接口、VLAN接口和Tunnel接口等。
在大型的网络中,如果依靠管理员手工配置来修改网络中各台设备的系统时间,不但工作量巨大,而且也不能保证时间的精确性。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所示。
表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对等体、广播服务器和组播服务器。
为了提高时间同步的安全性,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客户端或主动对等体时支持VPN多实例,实现设备与位于MPLS L3VPN中的NTP服务器或NTP被动对等体进行时间同步。
如下图所示,私网VPN 1和VPN 2中的用户通过PE(Provider Edge,服务提供商网络边缘)设备接入MPLS骨干网,各VPN之间的业务相互隔离。配置PE设备工作在NTP客户端或NTP主动对等体模式,并指定NTP服务器或NTP被动对等体所属的VPN后,可以实现PE设备与各VPN中的设备进行时间同步。MPLS L3VPN、VPN实例和PE的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。
图1-4 NTP支持VPN多实例组网应用图

![]()
目前只有单播方式(客户端/服务器模式和对等体模式)的NTP时间同步支持VPN多实例,广播模式和组播模式的时间同步暂时不支持VPN多实例。
与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对等体模式时,不建议主动对等体和被动对等体同时作为不同时钟源的NTP客户端(对应的NTP工作模式包括NTP客户端/服务器模式、NTP广播模式、NTP组播模式)。
· 缺省情况下,设备使用缺省MDC(Multitenant Device Context,多租户设备环境)通过NTP协议获取系统时间。用户可以通过clock protocol命令配置设备获取时间的方式。有关clock protocol命令的详细介绍,请参见“基础配置命令参考”中的“设备管理”。
· 只支持在一个MDC上配置NTP功能。
表1-2 NTP配置任务简介
|
配置任务 |
说明 |
详细配置 |
|
|
开启NTP服务 |
必选 |
||
|
配置与网络中的其他设备进行时间同步 |
配置NTP工作模式 |
“配置NTP工作模式”和“配置本地时钟作为参考时钟”两个配置任务中至少选择其一,其他配置任务请根据实际需要进行选择 |
|
|
配置NTP服务的访问控制权限 |
|||
|
配置NTP验证功能 |
|||
|
配置NTP可选参数 |
|||
|
配置本地时钟作为参考时钟 |
|||
![]()
建议用户不要在聚合成员口上进行NTP相关配置。
NTP服务与SNTP服务互斥,同一时刻只能开启其中一个服务。
表1-3 开启NTP客户端
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启NTP服务 |
ntp-service enable |
缺省情况下,没有开启NTP服务 |
当设备采用客户端/服务器模式时,需要在客户端上指定服务器的地址。
配置NTP客户端/服务器模式时,需要注意:
· 服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则客户端不会将自己的时间与服务器的时间同步。
· 当服务器端的时钟层数大于或等于客户端的时钟层数时,客户端将不会与其同步。
· 可以通过多次执行ntp-service unicast-server命令和ntp-service ipv6 unicast-server命令为设备指定多个服务器。
表1-4 配置NTP客户端
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
为设备指定NTP服务器 |
ntp-service unicast-server { server-name | ip-address } [ vpn-instance vpn-instance-name ] [ authentication-keyid keyid | priority | source interface-type interface-number | version number ] * |
缺省情况下,没有为设备指定NTP服务器 |
|
为设备指定IPv6 NTP服务器 |
ntp-service ipv6 unicast-server { server-name | ipv6-address } [ vpn-instance vpn-instance-name ] [ authentication-keyid keyid | priority | source interface-type interface-number ] * |
当设备采用对等体模式时,需要在主动对等体上指定被动对等体的地址。
配置NTP对等体模式时,需要注意:
· 被动对等体上需要执行ntp-service enable命令来开启NTP服务,否则被动对等体不会处理来自主动对等体的NTP报文。
· 主动对等体和被动对等体的时钟至少要有一个处于同步状态,否则它们的时间都将无法同步。
· 可以通过多次执行ntp-service unicast-peer命令或ntp-service ipv6 unicast-peer命令为设备指定多个被动对等体。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
指定设备的被动对等体 |
ntp-service unicast-peer { peer-name | ip-address } [ vpn-instance vpn-instance-name ] [ authentication-keyid keyid | priority | source interface-type interface-number | version number ] * |
缺省情况下,没有为设备指定被动对等体 |
|
指定设备的IPv6被动对等体 |
ntp-service ipv6 unicast-peer { peer-name | ipv6-address } [ vpn-instance vpn-instance-name ] [ authentication-keyid keyid | priority | source interface-type interface-number ] * |
广播服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则广播客户端不会将自己的时间与广播服务器的时间同步。
当设备采用广播模式时,广播服务器端和广播客户端上都需要进行配置。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
进入要接收NTP广播报文的接口 |
|
配置设备工作在NTP广播客户端模式 |
ntp-service broadcast-client |
缺省情况下,设备没有工作在NTP广播客户端模式 执行本命令后,设备将通过当前接口接收NTP广播报文 |
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
进入要发送NTP广播报文的接口 |
|
配置设备工作在NTP广播服务器模式 |
ntp-service broadcast-server [ authentication-keyid keyid | version number ] * |
缺省情况下,设备没有工作在NTP广播服务器模式 执行本命令后,设备将通过当前接口周期性发送NTP广播报文 |
组播服务器需要通过与其他设备同步或配置本地时钟作为参考时钟等方式,使得自己的时钟处于同步状态,否则组播客户端不会将自己的时间与组播服务器的时间同步。
设备采用组播模式时,在组播服务器端和组播客户端上都需要进行配置。
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
进入要接收NTP组播报文的接口 |
|
配置设备工作在NTP组播客户端模式 |
ntp-service multicast-client [ ip-address ] |
缺省情况下,设备没有工作在组播客户端模式 配置设备工作在NTP组播客户端模式时,IP组播地址建议配置的范围为224.0.1.0~224.0.1.255,对于其他组播地址不能保证该功能的正常使用。 执行本命令后,设备将通过当前接口接收NTP组播报文 |
|
配置设备工作在IPv6 NTP组播客户端模式 |
ntp-service ipv6 multicast-client ipv6-multicast-address |
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
进入要发送NTP组播报文的接口 |
|
配置设备工作在NTP组播服务器模式 |
ntp-service multicast-server [ ip-address ] [ authentication-keyid keyid | ttl ttl-number | version number ] * |
缺省情况下,设备没有工作在组播服务器模式 配置设备工作在NTP组播服务器模式时,IP组播地址建议配置的范围为224.0.1.0~224.0.1.255,对于其他组播地址不能保证该功能的正常使用。 执行本命令后,设备将通过当前接口周期性发送NTP组播报文 |
|
配置设备工作在IPv6 NTP组播服务器模式 |
ntp-service ipv6 multicast-server ipv6-multicast-address [ authentication-keyid keyid | ttl ttl-number ] * |
在配置对本地设备NTP服务的访问控制权限之前,需要创建并配置与访问权限关联的ACL。ACL的配置方法请参见“ACL和QoS配置指导”中的“ACL”。
表1-10 配置NTP服务的访问控制权限
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置对端设备对本地设备NTP服务的访问控制权限 |
ntp-service { peer | query | server | synchronization } acl acl-number |
缺省情况下,对端设备对本地设备NTP服务的访问控制权限为peer(完全访问权限) |
|
配置对端设备对本地设备IPv6 NTP服务的访问控制权限 |
ntp-service ipv6 { peer | query | server | synchronization } acl acl-number |
配置客户端/服务器模式的NTP验证功能时,需要在客户端和服务器上都使能NTP验证功能、配置验证密钥、将验证密钥设为可信密钥,并在客户端上将可信密钥与NTP服务器关联。服务器端和客户端上配置的密钥ID和密钥值必须保持一致,否则会导致NTP验证失败。
表1-11 配置客户端的NTP验证
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能NTP身份验证功能 |
ntp-service authentication enable |
缺省情况下,NTP身份验证功能处于关闭状态 |
|
配置NTP身份验证密钥 |
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } value |
缺省情况下,没有配置NTP身份验证密钥 |
|
配置指定密钥为可信密钥 |
ntp-service reliable authentication-keyid keyid |
缺省情况下,没有指定可信密钥 |
|
将指定密钥与对应的NTP服务器关联 |
ntp-service unicast-server { server-name | ip-address } [ vpn-instance vpn-instance-name ] authentication-keyid keyid |
- |
|
将指定密钥与对应的IPv6 NTP服务器关联 |
ntp-service ipv6 unicast-server { server-name | ipv6-address } [ vpn-instance vpn-instance-name ] authentication-keyid keyid |
表1-12 配置服务器端的NTP验证
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能NTP身份验证功能 |
ntp-service authentication enable |
缺省情况下,NTP身份验证功能处于关闭状态 |
|
配置NTP身份验证密钥 |
ntp-service authentication-keyid keyid authentication-mode md5 { cipher | simple } value |
缺省情况下,没有配置NTP身份验证密钥 |
|
配置指定密钥为可信密钥 |
ntp-service reliable authentication-keyid keyid |
缺省情况下,没有指定可信密钥 |
客户端和服务器上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见表1-13。其中,表格中的“-”表示不管此项是否配置。
|
客户端 |
服务器 |
结果 |
|||
|
是否使能身份验证功能 |
是否与服务器关联密钥 |
||||