NTP概念简介
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
手动设置网络设备的时区与时钟:
时钟设置:
clock set hh:mm:ss day month year
例:
clock set 12:30:00 May 1 2009
时区设置:
clock timezone zone hours-offset [minutes-offset] //本命令在全局下打
例:
clock timezone GMT +8
show clock //查看时钟
注意:在使用NTP同步时,只能同步时钟,不能同步时区信息
1)设定NTP时钟服务器
R1:
ntp master //本命令用来将设备设置为NTP服务器
还可以在配置时指定时钟源的级别,如果没指定,默认是8
ntp master 1 //将设备设为一级时钟源
查看状态:
show ntp status
....Clock is synchronized, stratum 1, reference is .LOCL.
stratum代表时钟源的级别,低级别的可以跟高级别的同步,高级别的不能与低级别的同步
还可以在NTP服务器上指定一个更新源地址,服务器将以这个地址为源地址与客户端通信。
R1:
ntp source loopback 0 //将R1的环回口设为更新源
2)设定NTP客户端
可以将其它设备设为客户端,NTP客户端会跟着NTP服务器同步,以上图为例,将R2设为客户端。
R2:
ntp server 12.1.1.1 //在客户端要说明服务器的地址
ntp server 12.1.1.1 source lo0 //也可以指定更新源
show ntp status
...Clock is synchronized, stratum 2, reference is 12.1.1.1
show ntp associations //查看关联
3)跟次级时钟源同步:
还可以让路由器的系统时钟与其对等体的时钟同步(或对对等体的时钟进行同步)。 如上图所示,可以让R3跟着R2同步。
R3:
ntp peer 10.1.1.2
ntp peer 10.1.1.2 source lo0 //还可以指定更新源
例:
路由器R1被设置为NTP主时钟,路由器R2被配置成通过NTP服务器R1进行时钟同步,路由器R3则被配置成路由器R2的对等体,与R2的时钟同步。
R1#clock set xx:xx:xx:xx
R1(config)# int e0/0
R1(config-if)#ip add 10.1.1.1 255.255.255.0
R1(config)# ntp master 1
R2(config)#ntp server 10.1.1.1
R2(config)# int e0/0
R2(config-if)#ip add 10.1.1.2 255.255.255.0
R3(config)#ntp peer 10.1.1.2
两个设备间互相使用peer命令,可以互相同步。
4)广播更新
NTP还可以在本地链路上以广播传递时钟信息
例:
R1:
ntp master
int e0/0
ntp broadcast
R3:
int e0/0
ntp broadcast client
ntp broadcast: //是一个接口命令,用于指定一特定接口来发送N T P广播包。
ntp broadcast client: //是一个接口命令,使路由器通过特定接口来接收N T P广播包。
5)NTP认证: 单向认证
R1:(NTP Master)
ntp authentication-key 1 md5 wolf
ntp authenticate
ntp master 6
R2:
ntp authentication-key 1 md5 wolf
ntp authenticate
ntp trusted-key 1 //这一命令在客户端做,在服务器有多个KEY的情况下,指定信任哪一个KEY
ntp server 12.1.1.2 key 1 //指定发送自已哪个KEY去和对方比较
注意:NTP的认证其实只是一个单向认证,客户端会对服务器发过来的包做认证,而服务器是不会对客户端的包做认证
6)硬件时钟
高档的路由器/交换机上提供了硬件时钟,称为calendar,与clock相互独立,在系统重启时软件clock会自动使用calendar的值。可以用命令calendar set设置硬件时钟的值,用命令clock read-calendar将系统时钟设置为calendar的值,也可以用命令clock update-calendar将当前系统时钟值写入calendar中。
calendar set //设置硬件时钟的值
clock read-calendar //将calendar设置为系统时钟的值
ntp update-calendar //将当前系统时钟值写入calendar中
clock calendar-valid //将硬件时钟源作为权威时钟源(此命令不是必须的。)
show calendar
在客户端,用命令ntp update-calendar 可以让NTP协议定时更新calendar的值。如果更改了时钟源的时间,需要数分钟才能同步到客户端,更新calendar需要更长的时间。常用的调试命令有:show ntp status 和 show ntp associations等。
注意:NTP的会聚(convergence)可能需要长达半个小时,这意味着在修改NTP主系统时钟之后,再过半个小时其它的时钟才进行同步。这是因为NTP将时钟的改变视为时钟系统的不稳定。NTP需在等待系统稳定后才会进行同步和传递时钟的改变