近日,本人想在局域網內經過普通的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: