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需在等待系统稳定后才会进行同步和传递时钟的改变