筆者單位有一專用局域網,安全級別要求較高,與外部網絡沒有物理連接,網內客戶機對時間要求嚴格,必須為北京時間,因此采用了專門的衛星校時。然而,從網絡建成使用,已有半年時間,客戶機偶爾出現2秒以上誤差。網絡拓撲如圖1所示。
校時服務器通過專用軟件與北斗衛星解碼器RS-232接口同步時間;主域控制器通過DOS命令nettime與校時服務器校時,開始設置是每小時同步一次,客戶機有時間誤差;后期改為每30分鐘同步一次,客戶機還是有時間誤差;再后來改為每5分鐘同步一次,還是有時間誤差??磥?,時間誤差的根源不除,就不能從根本上解決問題。
圖1 網絡拓撲圖
到處查找資料,了解域控制器的校時方式,嘗試了各種辦法,終于找到了這一看似小問題的根源。如圖1中實線,是我們手動設置的校時方式,校時間隔時間可自由設定,比較直觀。計算機網絡采用域管理模式,客戶機默認會自動跟域控制器同步時間,對于這個問題,我們沒有理會,然而,問題正是出在這里。在主域控制器上,運行”w32tm/monitor/compute
rs:127.0.0.1”,找到了問題根源,主域控制器默認跟備域控制器同步時間,如圖1中虛線所示,結果就是主域控制器跟備域控制器形成了校時環路,造成了不斷出現時間誤差。通過查看Windows系統日志,確實存在多次非計劃校時,驗證了以上結論。
計算機里自帶”Windows Time”服務,完成默認校時功能。停用主域控制器”Windows Time”服務,打破校時環路,問題解決。在備域控制器及客戶機上,也可停用”Windows Time”服務,這樣網絡中只用一種校時方式,每小時同步一次,時間很準確。