近日,本人想在局域网内经过普通的windows 7 PC搭建一台NTP服务器,可看似简单的配置却给我捣腾了了半天。初期,参考了互联网的上相关的配置文档,可网络设备就是死活不一样步NTP服务器的时间。实在没办法,只有经过来抓包分析了,通过一番研究后,终于找到问题,现将这个文档与你们分享:windows
经过windows系统为局域网搭建NTP服务器,为局域网内网络设备提供时间服务,通过测试,使用于windows xp、windows 200三、windows 7。服务器
一、启用 NTPServer。为此,请按照下列步骤操做:网络
a. 单击“开始”,单击“运行”,键入“regedit”,而后单击“肯定”进入注册表;ide
b. 找到并单击下面的注册表子项:测试
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32TimeTime/Providers/NtpServerserver
c. 在右窗格中,右键单击“Enabled”,而后单击“修改”;事件
d. 在“编辑 DWORD 值”的“数值数据”框中键入“1”,而后单击“肯定”;ci
二、若是使用NTP Server,建议关闭NTP Clinet,找到并单击下面的注册表子项:文档
a.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControl/SetServices/W32TimeTime/Providers/NtpClinet同步
b. 在右窗格中,右键单击“Enabled”,而后单击“修改”;
c. 在“编辑 DWORD 值”的“数值数据”框中键入“0”,而后单击“肯定”;
三、强制主机将自身宣布为可靠的事件源,从而使用内置的CMOS时钟
a、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
b. 在右窗格中,右键单击“AnnounceFlags”,而后单击“修改”;
c. 在“编辑 DWORD 值”的“数值数据”框中键入“5”,而后单击“肯定”;
四、按照以上步骤设置完成后,经测试windows系统的客户端均能正常同步NTP服务器的时间,经过抓包能够看到:
(10.160.13.252为windows xp客户端,10.160.13.73为NTP服务器)
client--server:
server—client:
五、但此时网络设备(如cisco、h3c交换机……)仍然不能正常同步NTP服务器时间,始终显示unsynchronized,经过抓包能够看到:
从网络设备(NTP客户端)到到NTP服务端的数据包里面,NTP协议中字段为:Reference ID:unidentified reference source
(10.160.13.237为网络设备)
client--server:
server—client:
六、通过一番捣腾后,发现修改注册表能解决以上问题:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\LocalClockDispersion值修改成0
此时能够看到client—server的数据包中,NTP协议的字段Reference ID携带了NTP服务器的IP地址,为下图:(即此时网络设备能够正同步NTP服务时间)
Reference ID:10.160.13.73(NTP服务器IP地址)
client —server:
server—client: