內容引用自網路... http://www.360doc.com/content/11/0801/21/3804236_137256145.shtml


========================================================================


AD時間同步原理分析


對於加入域環境的用戶端是與在父系網域中的權威伺服器進行時間同步的。預設的同步時間的方法就是使用域層次,用戶端會使用其所連接域中的域控來同步時間,而域控會反過來從整個林中的權威時間源來同步時間。如果在森林的根域中沒有指定某個域控為權威時間源,那麼擁有PDC角色域控會擔當這個權威時間伺服器。這台PDC會使用自己內部的時鐘來為整個林的域控提供時間。


1. 如何保證所有網域控制站和層次結構的PDC同步時間?如何保證所有成員伺服器(用戶端)與驗證伺服器同步時間。


由於PDC是林中默認的時間源,因此我們必須確保這個DC是永遠線上的。如果我們發現PDC負載過高的話,那麼就應該使用林中另外一台域控做為權威的時間源。


在森林根中的權威時間源獲取時間的方式有兩種。第一種就是從內網中所安裝的硬體時鐘設備上去獲取時間。第二種就是從外部的時間伺服器去獲取時間。需要注意的是,如果我們沒有配置權威時間伺服器是從內部獲取時間還是從外部獲取時間,那麼PDC就會使用其自己的內部時鐘,也就是整個森林可靠的時間源了。


在與外部時間源進行同步時,我們是使用NTP協議來進行同步的,但NTP 協議使用的是UDP 123這個埠,因此我們一定要確保這個埠的入站和出站流量,以確保windows時間服務的正常工作。


也就是說,我們首先要保證預設情況下這個PDC這個時間源要是正確的,那麼用戶端與服務端就會自動進行同步了。否則就無法靠域的層級結構來同步整個域的時間了。


2. 所有與伺服器、PDC伺服器時間各不相同。該如何檢查?


如果想使用默認的PDC來作為權威的時間源,建議是這樣的


1) 首先確保PDC時間源才準確性,通常建議PDC使用外部的權威時間源(這樣可以減少時間偏差和我們管理工作量)。


我們先通過下面的命令來檢查,PDC現在的所使用時間源的狀態:


w32tm /query /configuration


2) 如果我們想要指定外部權威時間伺服器作為源,我們可以使用,下面這個命令:


w32tm /config [/computer:目的電腦] [/update] [/manualpeerlist:peers] [/syncfromflags:flag] [/reliable: (yes|No)]


例如:


 w32tm /config /update /manualperrlist:time.windows.com,time.nist.gov,time-nw.nist.lov /syncfromflags:manual /reliable:Yes


使用這個命令我們就把PDC設置成了使用time.windows.com, time.nist.gov, time-nw.nist.lov這三個作為時間源,並且是森林中的權威時間伺服器。我們可以通過上面的方法,來對我們覺得有必要的所有服務進行配置。


3) 如果用戶端中的windows時間服務有問題的話,我們可以通過下面的方法來重置這個服務(恢復到預設狀態)。


1、打開命令列


2、鍵入net stop w32time來停止這服務


3、鍵入w32tm /unregister 來刪除現在的w32時間服務配置


4、鍵入w32tm /register 來導入預設的時間配置


5、鍵入 net start w32time 來開啟這個服務。


4) 如果上面所述的方法還是不能解決我們的問題,我可以使用下面的方法來啟用用戶端上的windows時間服務日誌檔來進行排錯。


1.啟動登錄編輯程式。


2.找到並按一下下麵的註冊表項:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config


3.在 編輯 功能表上按一下 新值,然後添加以下註冊表值:


• 值名稱: FileLogSize


資料類型: DWORD


值數據: 10000000


• 值名稱: FileLogName


資料類型: 字串


值數據: C:\Windows\Temp\w32time.log


• 值名稱: FileLogEntries


資料類型: 字串


值: 300


4. 在有問題的用戶端上運行這個命令w32tm /config /update


5. 收集這個日誌檔,與PDC 和 任意兩台有問題DC的時間服務配置資訊(w32tm /query /configuration)


還有一些相關的問題,請參考如下問答:


1、網域控制站和PDC之間同步時間這個是理論上。但是它們之間同步是否有一個確定的標準或機制?如果沒有他們之間時間同步我是否可以通過一些日誌或檔證明他們的同步。


首先,Windows時間服務是設計用來同步網路上電腦的時鐘的。網路時鐘同步的過程,也叫做時間收斂,這個過程發生於當每個電腦通過網路訪問來自一個更可靠時間伺服器時。時間收斂這個過程,涉及一個權威伺服器把當前的時間以NTP包的形式發送給每個用戶端電腦。而在這個包中所提供的資訊表示了是否需要調整用戶端電腦當前的時鐘時間,這樣就可以與更準確的伺服器進行同步了。


作為時間收斂過程的一部分,域成員會試圖與其在相同域內的域控進行同步時間。如果該電腦就是域控,那麼它會試圖與更權威的域控進行同步。


關於我們是否可以驗證他們之間是否同步的問題,其實也就是監測的問題:要監測某個特定域中或電腦上的時間服務時,我們可以使用 /monitor 參數。該命令的基本語法如下:


 w32tm /monitor [/domain: 功能變數名稱] [/computers: 電腦1,電腦2,電腦3,…] [/threads: N]


這裡,功能變數名稱是指要監測的域的DNS名,和由DNS名或IP位址指定的電腦名。如果我們沒有指定某個域或電腦,那麼就會使用目前我們所登錄的這個域。我們要確保電腦名之間用逗號隔開,並且沒有空格。 /thread參數指定了同時分析的電腦數量。默認的值是3;而允許的範圍值在1至50之間。


2、成員伺服器和用戶端與它們驗證伺服器間同步。每台DC 的時間不一樣,經過檢查是它們是通過各自的硬體時鐘同步的。針對這類型問題是如何引起的?怎樣進一步去確認?


針對這個問題,就像我們之前說的那樣,預設情況下DC是會去找PDC去同步時間的,至於為什麼會變成通過各自的硬體時鐘去同步,這有很多種多可能的原因,如協力廠商程式的干預等等。但如果Windows time service工作是正常的話,那麼我們也就沒必要去找其中的原因了,只有當與我們的預期不符時,我們需要知道它到底在幹什麼的時候,我們可以通過啟用在我上一次回復中的Debug log來看時間服務到底在幹什麼。


3、關於無法運行命令w32tm /query,及其w32tm /register 的問題


如果無法運行這個命令是因為這個命令是windows vista 和 windows server 2008時引入的。那麼我們可以換一種辦法來查看這個狀態,我們可以查看這個註冊表項:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\


• Nosync表示用戶端沒有同步時間(就是所謂的硬體時鐘)


• NTP表示用戶端從外部時間源同步時間,並且NTPServer欄位定義了這個時間源


• NT5DS表示用戶端配置了使用域架構作為自己的時間同步


• AllSync表示用戶端會從任何可靠的時間源處同步時間,包括域結構和外部時間源的。


就該註冊表項而言,在DC上預設值是NT5DS,在獨立的用戶端或伺服器上是NTP。


w32tm /register 這個命令不需要指定某個時間源,因為這個命令的用意是,把時間服務註冊一下並向註冊表添加默認的值。而這個預設值會牽涉到許多的註冊表項,因此可以通過下面的這篇文檔來進一步瞭解。

arrow
arrow

    格雷 發表在 痞客邦 留言(0) 人氣()