NTP(Network Time Protocol,网络时间协议)是一种用于网络设备时间同步化的应用层协议。它可以使网络设备对其服务器或时钟源做同步化,提供高精准度的时间校正(LAN上与标准时间差小于1毫秒,WAN上几十毫秒),且可使用加密确认的方式来防止攻击。NTP基于UDP传输协议实现,使用的UDP端口为123。
产品支持NTP的客户端与服务器功能,即设备既可以从时间服务器上同步时间,也能够作为时间服务器对其他设备进行时间同步。在作为服务器工作时设备仅支持单播Server模式。还支持对等体模式和广播模式。
设备将本地时钟作为参考时钟源,为网络中的其它设备提供时间同步服务。
NTP客户端
设备作为NTP客户端从网络中的NTP服务器同步时间。
主动对等体
定期向被动对等体发送同步报文,报文中的Mode字段设置为1。不考虑它的对等体是否可达以及对等体的层数。运行在这一模式下的主机可以向对方提供同步信息,也可以依照对方的时间信息同步本地时钟。
被动对等体
接收到主动对等体报文并做出响应,报文中的Mode字段设置为2。运行在被动对等体模式的主机可以向对方提供同步信息,也可以依照对方的时间信息同步本地时钟。
广播服务器
在广播模式下,服务器周期性向广播地址255.255.255.255发送时钟同步报文,报文中的Mode字段设置为5 。不管它的对等体是否可达或层数为多少。运行在广播模式的主机通常是网络内运行高速广播介质的时间服务器,向所有对等体提供同步信息,但不会修改本设备的时钟。
广播客户端
客户端侦听来自服务器的时钟同步报文。当接收到第一个时钟同步报文,客户端与服务器交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,即客户端先启用一个短暂的服务器/客户端模式与远程服务器交换消息,以获得客户端与服务器间的网络延迟。之后恢复广播模式,继续侦听时钟同步报文的到来,根据到来的时钟同步报文对本地时钟再次进行同步。
层数(stratum)
NTP使用“层数(stratum)”的概念来描述设备距离权威时钟源的“跳数(hops)”。一个层数为1的时间服务器应当有个直连的原子钟或电波钟;层数为2的时间服务器就从层数为1的服务器获取时间;层数为3的服务器就从层数为2的获取时间……如此递推。因此时钟层数数值更低的时钟源即被认为拥有更高的时钟精度。
硬件时钟
硬件时钟根据设备上的石英晶体振荡器频率工作,由设备的电池为其供电,设备关机后硬件时钟依然运行。在设备启动运行后,会从硬件时钟读取时间信息,作为设备的软件时间。
如图1-1所示,NTP通过客户端与服务器之间交互NTP报文来同步时间:
客户端每隔64秒向所有服务器发送时间同步请求报文。
客户端收到服务器响应报文后,对所有服务器的响应报文进行过滤和选择,最后和优选服务器的时间进行同步。
如图1-1所示,DEVICE B(下面简称B)作为NTP参考时钟源,DEVICE-A(下面简称A)作为NTP客户端从DEVICE-B同步时间,在某一时刻A的本地时钟为19:00:00,B的本地时钟为19:30:20:
(1)A发出NTP请求报文,报文离开A的本地时间(T0)为19:00:00,填充在Originate Timestamp字段。
(2)经过2秒的网络延时,B收到请求报文的本地时间(T1)为19:30:23,填充在Receive Timestamp字段。
(3)B处理NTP请求,1秒后响应NTP报文,报文离开B的本地时间(T2)为19:30:24,填充在Transmit Timestamp字段。
(4)经过2秒的网络延时,A接收到响应报文,响应报文到达A的本地时间(T3)为19:00:06。
时间同步的具体算法如下:
(4.1)A通过公式 ((T1-T0)+(T2-T3))/2计算出B和A的时间差为30分20秒。
(4.2)A通过公式(T3-T0)-(T2-T1)计算出A和B的报文往返的延时为4秒。
NTP工作模式
外部时钟参考模式:设备即充当服务器又充当客户端,如果收到来自其它客户端发出的时间同步请求,必须先从指定服务器同步时间,同步成功后才可以向其它客户端提供时间同步服务。
本地时钟参考模式:设备默认本地时钟即为可靠时钟源,直接向其它客户提供时间同步服务。
对等体模式
对等体模式运行在同步子网中层数较低处。这种模式下,主动对等体和被动对等体可以互相同步。此模式下,被动对等体需要通过ntp passive enable命令开启接收对等体模式的报文功能,最终实现同步时间的目的。
对等体模式下,层数高的对等体向层数低的对等体同步。
广播模式
在不能确定服务器或对等体IP地址,或者网络中需要时间同步的设备数量很多等情况下,可以通过广播模式实现时钟同步。
服务器端和客户端都需要配置相关命令。只能是客户端同步服务器的时间。
为防止对时间服务器的恶意破坏,提高时间同步的安全性,NTP提供了安全认证和访问控制功能。
安全认证
NTP使用了认证(Authentication)机制,检查时间同步信息是否是真正来自所宣称的服务器并检查信息的返回路径,以提供对抗干扰的保护机制。
NTP客户端和服务器配置相同的密钥。发送请求报文和响应报文时,设备根据指定的密钥和NTP报文内容采用MD5算法计算出报文的哈希值填充到报文的认证信息。接收设备根据认证信息判断是否报文发送端是否可信的设备或者报文是否被篡改。
NTP kiss-o-death(KoD)访问控制
NTP访问控制通过ACL提供了一种最小限度的安全措施。一般情况下,将丢弃拒绝服务的数据包,除了递增统计计数器之外没有其他操作。有时需要更主动的响应(例如明确请求客户端停止发送的服务器消息,并为系统操作员留下消息)。因此开源NTP提出一种KoD类型的报文,用于在服务端配置访问控制时能同时应答客户端特殊处理。
KoD报文类型与普通NTP报文格式一致,但是leap位被设置为非同步且层级设置为0,参考标识符字段设置为四字节ASCII码,如果limited设置了标志并且超出了速率限制,则代码为“RATE”。NTP客户端在收到代码为“RATE”的KoD报文后,会根据报文内的最小间隔值进行限速。
RFC 1305:Network Time Protocol (Version 3)
RFC 5905:Network Time Protocol (Version 4)
设备上不支持同时配置NTP和SNTP功能。
支持NTP的接口为三层以太网接口或者三层聚合接口。
为保证时间同步的准确性,尽量避免配置两个或者两个以上的时钟源,以免造成时钟震荡。
可通过命令ntp service disable关闭NTP服务器功能,使得设备只作为客户端,本命令与ntp master命令不能同时配置。
(可选)配置NTP安全认证
配置NTP基本功能
配置客户端/服务器模式的NTP功能
(可选)配置对等体模式的NTP功能
(可选)配置广播模式的NTP功能
(可选)配置NTP功能的相关参数选项
(可选)配置NTP访问控制
从可信参考时钟源同步时间:设备作为客户端,只从可信任的外部参考时钟源同步时间到本地时钟。
给可信设备提供时间同步服务:设备的本地时钟作为NTP参考时钟源,只对可信的设备提供时间同步服务。
客户端和服务器的认证密钥必须一致。
给可信设备提供时间同步服务,必须通过密钥ID指定可信认证密钥。只允许配置一个信任密钥,所指定的认证密钥必须和可信设备一致。
从可信参考时钟源同步时间,必须通过密钥ID指定可信认证密钥。每个可信参考时钟源分别对应一个认证密钥,认证密钥必须和可信参考时钟源的密钥一致。
缺省情况下,客户端不使用全局安全识别机制。如果未使用安全识别机制则不对通信进行加密处理。但是仅仅设置了全局安全标志,并不代表一定采用了加密方式完成服务器与客户端的通信,还必须完成其他全局密钥配置并设置服务器加密密钥才可能发起和服务器的加密通信。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置NTP全局安全认证机制。
ntp authenticate
配置NTP全局认证密钥。
ntp authentication-key authentication-key-id md5 authentication-key-string [ 0 | 7 ]
缺省情况下,NTP全局认证机制是关闭状态。
(可选)配置NTP全局信任密钥ID。
ntp trusted-key trusted-key-id
(可选)配置外部参考时钟源的认证密钥ID。
ntp server [ vrf vrf-name ] { ipv4-addr | ipv6-address | server-hostname | ip domain | ipv6 domain } [ key keyid | port port-number | prefer | source interface-type interface-number | version version ]*
缺省情况下,未配置外部参考时钟源的认证密钥ID。
配置NTP服务器时,至少指定一个外部参考时钟源,最多可配置20个不同的外部参考时钟源。
如果需要关联配置NTP密钥,在配置NTP服务器前,必须先配置NTP安全认证。设备作为客户端系统最多支持同时与20个NTP服务器交互,(在全局认证以及密钥相关设置完成后)可以为每一个服务器设置一个认证密钥,发起与服务器的加密通信。
与服务器的默认通信版本为NTP版本4,同时可以配置发送NTP报文的源接口,并只在发送接口上接收对应服务器的NTP报文。
将本地时钟设置为主时钟后(尤其是指定了较低的时钟层数值时),系统便不会与比其时钟层数数值更高的时钟源进行同步,因此可能将真正的有效时钟源覆盖。如果对同一网络中的多个设备都使用了该功能,则可能由于设备之间的时钟差异导致网络的时钟同步不稳定。
将本地时钟设置为主时钟前,如果系统从未与外部时钟源同步过,则有可能需要手动校准系统时钟以保证其不会有过大的偏差(关于如何手动校准系统时钟,请参考“基础配置命令手册”中的“基础管理”)。
缺省情况下,NTP处于客户端/服务器模式,设备从外部的可靠时钟源同步时间成功后,会作为时间同步服务器对外提供时间同步服务。若仅配置NTP仅作为客户端使用,则需要使用ntp service disable命令关闭NTP对外提供时间同步服务功能(置该命令后外部设备无法从设备同步到时间)。
配置客户端/服务器模式的NTP功能
(可选)配置对等体模式的NTP功能
(可选)配置广播模式的NTP功能
配置设备作为NTP客户端,从外部参考时钟源同步时间到本地时钟。时间同步成功后,设备可作为时间同步服务器,对外提供时间同步服务。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置NTP服务器。
ntp server [ vrf vrf-name ] { ipv4-address | ipv6-address | server-hostname | ip domain | ipv6 domain } [ key keyid | port port-number | prefer | source interface-type interface-number | version version ]*
缺省情况下,未配置NTP服务器。
通过配置对等体模式的NTP功能,设备A已经同步服务器的时间,设备B未同步到服务器时间的情况下,A主动对等设备B,则设备B会同步到时间;或者设备B主动对等设备A,则设备B也能够同步到时间。
配置对等体模式时,被动对等体需要执行ntp passive enable命令开启接受对等体模式报文。
客户端系统支持最多同时与20个对等体交互。
如果需要设置认证密钥,必须先配置NTP安全认证后才能够为每一个对等体设置一个认证密钥,发起与对等体的加密通信。
与对等方通信的NTP版本为版本4,同时可以配置发送NTP报文的源接口,并只在发送接口上接收对应对等方的NTP报文
主动对等体或者被动对等体设备的时钟至少要有一个是处于同步状态,否则它们均无法进行时间同步。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置NTP对等体模式。请至少选择其中一项进行配置。
配置NTP对等体模式。
ntp peer [ vrf vrf-name ] { ipv4-address | ipv6-address | peer-hostname | ip domain | ipv6 domain } [ key keyid | port port-number | prefer | source interface-type interface-number | version version ]*
缺省情况下,未配置NTP对等体模式。
配置NTP被动对等体。
ntp passive enable
缺省情况下,未配置NTP被动对等体模式。
通过配置广播模式的NTP功能,当开启广播服务器和广播客户端后,服务器将定期往255.255.255.255发送广播报文,广播客户端会接收广播报文并同步时间。
如果设备未开启广播客户端客户端模式,则不会进行时间同步。
报文发送周期是最大轮询时间,再加上算法选择,第一次同步的时间会较长些。
配置广播模式的NTP功能之前,广播服务器需要先配置时钟参考源,使得服务器的时钟处于同步状态,否则广播客户端无法从广播服务器端同步时间。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
配置广播模式的NTP功能。请至少选择其中一项进行配置。
配置NTP广播服务器。
ntp broadcast-server [ key key-id ] [ version version ]
缺省情况下,接口广播服务器处于关闭状态。
配置NTP广播客户端。
ntp broadcast-client
缺省情况下,接口广播客户端处于关闭状态。
进入特权模式。
enable
进入全局配置模式。
configure terminal
(可选)配置NTP同外部服务器同步时间间隔。
ntp interval synchronization-interval-time
缺省情况下,NTP同步间隔为64秒。
(可选)自动更新硬件时钟。
ntp update-calendar
缺省情况下,未配置定期更新硬件时钟功能。
(可选)配置NTP主时钟。
ntp master [ stratum ]
缺省情况下,NTP主时钟功能处于关闭状态。
stratum:指定本地时钟所处的层数,取值范围为1~15;若不指定该参数则缺省值为8。
(可选)关闭NTP对外提供时间同步服务功能。
ntp service disable
缺省情况下,NTP对外提供时间同步服务功能处于开启状态。
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
(可选)禁止接口接收NTP报文。
ntp disable
缺省情况下,接口接受NTP报文功能处于开启状态。
NTP服务的访问控制功能提供了一种最小限度的安全措施(更安全的方法是使用NTP身份验证机制)
如果未配置任何访问控制规则,则所有NTP服务访问都是允许的。若配置了访问控制规则,则只有符合访问控制规则的NTP服务才能进行访问。
目前系统暂未支持控制查询功能。
若NTP客户端的报文请求间隔低于服务端允许的报文请求间隔,NTP服务端将丢弃报文,并且需配置ntp access-group limited access-list-number | access-list-name [ kod ]命令方能生效。支持KoD功能的NTP作为客户端时,在收到KoD报文后会降速,不支持的版本不会降速,需注意设置ntp interval的间隔值不能触发KoD
通过ntp discard配置NTP允许的报文请求间隔,若NTP客户端的报文请求间隔低于服务端允许的报文请求间隔,NTP服务端将丢弃报文,需同时配置ntp access-group limited access-list-number | access-list-name [ kod ]。
进入特权模式。
enable
进入全局配置模式。
configure terminal
(可选)配置NTP的访问控制权限。
ntp access-group { limited | peer | serve | serve-only | query-only } { access-list-number | access-list-name } [ kod ]
缺省情况下,未配置任何NTP访问控制规则。
(可选)设置NTP允许访问的最小报文间隔。
ntp discard min-spacing discard-min-spacing-interval avg-spacing avg-spacing-interval
缺省情况下,NTP允许的最小报文请求间隔为2秒,平均报文请求间隔为8秒
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
NTP监视与维护
作用 |
命令 |
|---|---|
查看当前的NTP信息 |
show ntp status |
查看NTP收发包信息 |
show ntp packets |
查看NTP服务器信息 |
show ntp server |
查看NTP服务器列表 |
show ntp server |
查看NTP对等体列表 |
show ntp peer |
查看看NTP广播服务器列表 |
show ntp broadcast-server |
打开调试功能 |
debug ntp |
关闭调试功能 |
no debug ntp |
设备的本地时钟作为NTP参考时钟源,对外提供时间同步服务。
NTP本地时钟参考模式
配置DeviceB为NTP本地时钟参考时钟源。
DeviceC从DeviceB同步时间。
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceC上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceC> enble
DeviceC# configure terminal
DeviceC(config)# interface gigabitEthernet 0/1
DeviceC(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceC(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB为NTP服务器。
DeviceB(config)# ntp master
# DeviceC开启NTP功能。
DeviceC> enble
DeviceC# configure terminal
DeviceC(config)# ntp server 192.168.2.1
DeviceC(config)# ntp enable
# 通过ping命令验证DeviceB与DeviceC三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过clock set命令修改DeviceB的时间,。
DeviceB# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceC上通过show clock命令查看时间同步成功。
DeviceC# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceB的配置文件
hostname DeviceB
!
interface GigabitEthernet 0/1
ip address 192.168.2.1 255.255.255.0
ntp master
!
end
DeviceC的配置文件
hostname DeviceC
!
ntp server 192.168.2.1
!
interface GigabitEthernet 0/1
ip address 192.168.2.2 255.255.255.0
!
end
设备作为客户端,从外部参考时钟源同步时间到本地时钟。时间同步成功后,设备可作为时间同步服务器,对外提供时间同步服务。
NTP外部时钟参考组网图
配置DeviceB为NTP外部时钟参考时钟源。
配置DeviceA作为DeviceB的参考时钟源。
DeviceC从DeviceB同步时间。
# 配置DeviceA上的端口GigabitEthernet 0/1的IP地址为192.168.1.1/24。
DeviceA> enble
DeviceA# configure terminal
DeviceA(config)# interface gigabitEthernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24,端口GigabitEthernet 0/2的IP地址为192.168.1.2/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
DeviceB(config)# interface gigabitEthernet 0/2
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceC上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceC> enble
DeviceC# configure terminal
DeviceC(config)# interface gigabitEthernet 0/1
DeviceC(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceC(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceA作为DeviceB的参考时钟源。
DeviceA(config)# ntp master
# 配置DeviceB为NTP外部时钟参考时钟源。
DeviceB(config)# ntp server 192.168.1.1
# 配置DeviceC从DeviceB同步时间。
DeviceC(config)# ntp server 192.168.2.1
# 通过ping命令验证DeviceB与DeviceA三层可通。
DeviceB# ping 192.168.1.1
Sending 5, 100-byte ICMP Echoes to 192.168.1.1, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过ping命令验证DeviceB与DeviceC三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过show ntp status查看NTP配置信息。
DeviceB# sh ntp status
Clock is synchronized, stratum 9, reference is 192.168.1.1
nominal freq is 250.000 Hz, actual freq is 250.000 Hz, precision is 2**18
reference time is E3527947.D5254A29 (14:03:51.000 UTC Sun, Nov 8, 2020)
clock offset is -0.00012 sec, root delay is 0.00282 sec
root dispersion is 0.01153 msec, peer dispersion is 0.00025 msec
system poll interval is 64, last update was 43 sec ago
system time(GMT) is E3527973.740AB522 (14:04:35.000 GMT Sun, Nov 8, 2020)
# 通过clock set命令修改DeviceA的时间。
DeviceA# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceB上通过show clock命令查看时间同步成功。
DeviceB# show clock
11:00:01 UTC Fri, Feb 26, 2021
# 在DeviceC上通过show clock命令查看时间同步成功。
DeviceC# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceA的配置文件
hostname DeviceA
!
interface GigabitEthernet 0/1
ip address 192.168.1.1 255.255.255.0
ntp master
!
end
DeviceB的配置文件
hostname DeviceB
!
ntp server 192.168.1.1
!
interface GigabitEthernet 0/1
ip address 192.168.2.2 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 192.168.1.2 255.255.255.0
!
end
DeviceC的配置文件
hostname DeviceC
!
ntp server 192.168.2.1
!
interface GigabitEthernet 0/1
ip address 192.168.2.2 255.255.255.0
!
end
设备作为客户端,只从可信任的外部参考时钟源同步时间到本地时钟。设备的本地时钟作为NTP参考时钟源,只对可信的设备提供时间同步服务。
NTP安全认证组网图
配置DeviceA为DeviceB的参考时钟源,同时为DeviceB提供需要安全认证的NTP服务,认证密钥为“abcd”。
# 配置DeviceA上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceA> enble
DeviceA# configure terminal
DeviceA(config)# interface gigabitEthernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceA为DeviceB的参考时钟源,同时为DeviceB提供需要安全认证的NTP服务,认证密钥为“abcd”。
DeviceB(config)# ntp authenticate
DeviceB(config)# ntp authentication-key 1 md5 abcd
DeviceB(config)# ntp trusted-key 1
DeviceB(config)# ntp server 192.168.2.2
# 通过ping命令验证DeviceB与DeviceA三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过clock set命令修改DeviceA的时间。
DeviceA# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceB上通过show clock命令查看时间同步成功。
DeviceB# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceA的配置文件
hostname DeviceA
!
interface GigabitEthernet 0/1
ip address 192.168.2.2 255.255.255.0
ntp master
!
end
DeviceB的配置文件
hostname DeviceB
!
ntp authentication-key 1 md5 abcd
ntp authenticate
ntp trusted-key 1
ntp server 192.168.2.2
!
interface GigabitEthernet 0/1
ip address 192.168.2.1 255.255.255.0
!
end
为防止对时间服务器的恶意破坏,提高时间同步的安全性,配置访问控制功能。设备作为客户端,只从指定的外部参考时钟源同步时间到本地时钟。
NTP访问控制权限组网图
# 配置DeviceA上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceA> enble
DeviceA# configure terminal
DeviceA(config)# interface gigabitEthernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceA为DeviceB的参考时钟源。只允许192.168.2.2的设备对本地设备进行时间同步请求。
DeviceB(config)# ntp server 192.168.2.2
DeviceB(config)# access-list 1 permit host 192.168.2.2
DeviceB(config)# ntp access-group serve-only 1
# 配置DeviceA为NTP服务端,并限制客户端请求报文同步间隔并发送KoD报文。
DeviceA(config)# ip access-list standard limited1
DeviceA(config-std-nacl)# 10 permit any
DeviceA(config)# exit
DeviceA(config)# ntp access-group limited limited1 kod
DeviceA(config)# ntp discard min-spacing 5 avg-spacing 5
DeviceA(config)# ntp master
# 通过ping命令验证DeviceB与DeviceA三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过clock set命令修改DeviceA的时间。
DeviceA# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceB上通过show clock命令查看时间同步成功。
DeviceB# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceA的配置文件
hostname DeviceA
!
ip access-list standard limited1
10 permit any
!
interface GigabitEthernet 0/1
ip address 192.168.2.2 255.255.255.0
ntp master
ntp access-group limited limited1 kod
!
end
DeviceB的配置文件
hostname DeviceB
!
ip access-list standard 1
10 permit 192.168.2.2
!
ntp server 192.168.2.2
ntp access-group serve-only 1
!
interface GigabitEthernet 0/1
ip address 192.168.2.1 255.255.255.0
!
end
DeviceA作为广播服务器给Device-B提供时间同步服务。
NTP广播模式组网图
DeviceA作为本地时钟为NTP参考源,配置为NTP广播服务器。
DeviceB配置为NTP广播客户端,从DeviceA同步时间。
# 配置DeviceA上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceA> enble
DeviceA# configure terminal
DeviceA(config)# interface gigabitEthernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
# 配置DevcieA为本地时钟NTP参考时钟源。
DevcieA(config)# ntp master
# 配置DevcieA为NTP广播服务器。
DevcieA(config)# interface gigabitEthernet 0/1
DevcieA(config-if-GigabitEthernet 0/1)# ntp broadcast-server
# 配置DevcieB为NTP广播客户端。
DevcieB(config-if-GigabitEthernet 0/1)# ntp broadcast-client
# 通过ping命令验证DeviceB与DeviceA三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过clock set命令修改DeviceA的时间。
DeviceA# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceB上通过show clock命令查看时间同步成功。
DeviceB# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceA的配置文件
hostname DeviceA
!
interface GigabitEthernet 0/1
ntp broadcast-server
ip address 192.168.2.2 255.255.255.0
!
ntp master
!
end
DeviceB的配置文件
hostname DeviceB
!
interface GigabitEthernet 0/1
ntp broadcast-client
ip address 192.168.2.1 255.255.255.0
!
end
网络中存在时间服务器DeviceA,设备DeviceB需要从DeviceA中同步时间。因此配置DeviceA为被动对等体,配置DeviceB为主动对等体。
NTP对等体模式组网图
配置DeviceA为被动对等体。
配置DeviceB为主动对等体。
# 配置DeviceA上的端口GigabitEthernet 0/1的IP地址为192.168.2.2/24。
DeviceA> enble
DeviceA# configure terminal
DeviceA(config)# interface gigabitEthernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.168.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceB上的端口GigabitEthernet 0/1的IP地址为192.168.2.1/24。
DeviceB> enble
DeviceB# configure terminal
DeviceB(config)# interface gigabitEthernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 192.168.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置DeviceA为本地时钟为NTP参考时钟源,。
DeviceA(config)# ntp master
# 配置DeviceA为被动对等体。
DeviceA(config)# ntp passive enable
# 配置DeviceB为主动对等,用于同步DeviceA的时间。
DeviceB(config)# ntp peer 192.168.131.2
# 通过ping命令验证DeviceB与DeviceA三层可通。
DeviceB# ping 192.168.2.2
Sending 5, 100-byte ICMP Echoes to 192.168.2.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.
# 通过clock set命令修改DeviceA的时间。
DeviceA# clock set 11:00:00
Set system clock: 11:00:00 UTC Fri, Feb 26, 2021
# 在DeviceB上通过show clock命令查看时间同步成功。
DeviceB# show clock
11:00:01 UTC Fri, Feb 26, 2021
DeviceA的配置文件
hostname DeviceA
!
interface GigabitEthernet 0/1
ntp broadcast-server
ip address 192.168.2.2 255.255.255.0
!
ntp passive enable
ntp master
!
end
DeviceB的配置文件
hostname DeviceB
!
interface GigabitEthernet 0/1
ntp broadcast-client
ip address 192.168.2.1 255.255.255.0
!
ntp peer 192.168.2.2
!
end