网络模型大概是这个样子的
核心层两台设备的IP为3.3.20.2和3.3.20.3
服务器区交换机的IP为3.3.20.252和3.3.20.253
NTP服务器的IP地址为3.3.100.103
初始配置:
主核心交换机
Ntp logging
Ntp master 2
Ntp server 3.3.100.103
备核心交换机
Ntp logging
Ntp server 3.3.20.2
服务器区交换机
Ntp logging
Ntp server 3.3.20.2
ntp服务器使用windows 2003 自带win32time服务来作为ntp服务。
问题现象:
服务器区交换机能够从主核心交换机正常同步时钟,比如将主核心交换机的clock 更改,服务器区交换机也会进行更改;但是,主核心交换机不能够从ntp服务器上面同步时钟。
思路一:
使用show ntp associations detail查看ntp服务同步的状态,显示127.127.7.1 configured, our_master, sane, valid, stratum 1,为同步服务器,
3.3.100.103 configured, insane, invalid, stratum 1,不能同步。
判断核心交换机认为自己为主,因此不从3.3.100.103去同步。
解决方法:在主核心交换机上no ntp master,让其只从3.3.100.103上去同步时钟。
结果:问题依旧,3.3.100.103 configured, insane, invalid, stratum 1,不能同步;
思路二:
查看思科官方文档,说w32time使用的是SNTP服务,CISCO 的IOS使用的是NTP服务,需要在windows上面安装NTP服务;
原文:
Windows W32Time shows that it is an SNTP implementation inside (rather claiming itself NTP). Cisco IOS-NTP, which tries to sync with W32Time, gets its own root-dispersion value that it sends to the W32Time and this proves costly for Cisco IOS-NTP to synchronize. Because the root-dispersion value of Cisco IOS-NTP goes higher than 1000 ms, it unsynchronizes itself (clock-select procedure). Since the Cisco IOS based routers run the full RFC implementation of NTP they do not sync to an SNTP server. In this case the output of the show ntp associations detail command shows that the server is flagged as insane, invalid. The root dispersion value is in excess of 1000 ms, which causes the Cisco IOS NTP implementation to reject the association. Routers that run Cisco IOS can be unable to synchronize to an NTP server if it is a Windows system that runs the W32Time service. If the server is not synchronized, the routers are not able to transmit to and receive packets from the server.
In order to workaround this issue and sync a Cisco IOS based router, use an authoritative NTP server on the Internet, a UNIX box that runs NTPD or a GPS on certain platforms. As an alternative, you can choose not to run the W32Time service on the Windows system. Instead, you can use NTP 4.x. All versions of Windows 2000 and later can serve as an NTP server. Other machines on the network can then use the NTP server to synchronize their time.
来自 <http://www.cisco.com/c/en/us/support/docs/ip/network-time-protocol-ntp/108076-ntp-troubleshoot.html>
解决方法:下载NTP 4.6,安装;
在安装目录下,找到ntp.conf文件,修改配置
server 127.127.1.0
# local clock 本地主机的时钟也看作外部时钟源来处理,分配的地址是127.127.1.0
fudge 127.127.1.0 stratum 10
#设置本地时钟源的层次为10,这样如果NTPD服务从本地时钟源获取时间的话,NTPD对外宣布的时间层次为11
#如果将其设置为0,对外宣称是1,核心交换机配置ntp master 3的话,是不是优先从NTP服务器同步?
#明天验证!
Driftfile "c:/program files\ntp\etc\ntp.drift"
之后,重启ntp服务
配置正确后,进入bin目录下,ntpd -p有正常结果显示
ps:我开始没有配置正确,报错no association id‘s returned;
结果:核心交换机可以从ntp服务器同步时钟。
其他知识:
CISCO 4506E交换机有电池时钟,命令是calendar set XX:XX:XX
stratum代表NTP时钟的层级:
最高层NTP服务器:指0级NTP服务器,向下一级(Stratum-1)提供时间同步服务。
中间层NTP服务器:指1级、2级等从上一级NTP服务器获取时间,为下一级提供时间同步服务。
NTP客户端:指从上一级NTP服务器获取时间,不提供时间同步服务。
一台主机可以从多个NTP Server上获得时间信息;一个NTP Server也可以向多个主机提供时间信息,同一级别的主机间可以相互提供时间信息。NTP协议最多支持15级客户端。
NTP协议占用端口123,使用UDP(User Datagram Protocol)协议通信。