NTP網絡時間服務器讓所有主控制域時鍾同步起來
NTP網絡時間服務器讓所有主控制域時鍾同步起來
京准電子科技官微——ahjzsz
重要說明:本文包含有關如何修改注冊表的信息。修改注冊表之前,一定要先進行備份,並且一定要知道在發生問題時如何還原注冊表。有關如何備份、還原和修改注冊表的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
簡介
Windows 包含 W32Time,它是 Kerberos 身份驗證協議所需的時間服務工具。Windows 時間服務的目的是確保組織中運行 Microsoft Windows 2000 或更高版本的所有計算機都使用同一個時間。
為確保合理地使用公共時間,Windows 時間服務使用層級關系來控制授權,並且不允許出現循環。默認情況下,基於 Windows 的計算機使用下面的層級: • 所有客戶端桌面計算機都提名身份驗證域控制器作為其入站時間伙伴。
• 所有成員服務器都遵循與客戶端桌面計算機相同的過程。
• 域中的所有域控制器都提名主域控制器 (PDC) 操作主機作為其入站時間伙伴。
• 所有 PDC 操作主機都遵循域的層級來選擇其入站時間伙伴。
在此層級中,位於林根的 PDC 操作主機成為組織的權威時間服務器。我們極力建議您將權威時間服務器配置為從硬件源收集時間。當您將權威時間服務器配置為與 Internet 時間源同步時,不會有任何身份驗證。我們還建議您降低服務器和獨立客戶端的時間校准設置。這些建議可以為您的域提供更准確的時間和更高的安全性。
配置 Windows 時間服務以使用內部硬件時鍾
警告:如果使用注冊表編輯器或其他方法錯誤地修改了注冊表,可能導致嚴重問題。這些問題可能需要重新安裝操作系統才能解決。Microsoft 不能保證您可以解決這些問題。修改注冊表需要您自擔風險。
要將 PDC 主機配置為不使用外部時間源,請更改 PDC 主機上的公告標志。PDC 主機是存放域的林根 PDC 主機角色的服務器。這種配置會強制 PDC 主機將它自身宣布為可靠的時間源,從而使用內置的互補金屬氧化物半導體 (CMOS) 時鍾。要將 PDC 主機配置為使用內部硬件時鍾,請按照下列步驟操作:1. 單擊“開始”,單擊“運行”,鍵入 regedit,然后單擊“確定”。
2. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
3. 在右窗格中,右鍵單擊“AnnounceFlags”,然后單擊“修改”。
4. 在“編輯 DWORD 值”的“數值數據”框中鍵入 A,然后單擊“確定”。
5. 退出注冊表編輯器。
6. 在命令提示符處,鍵入以下命令以重新啟動 Windows 時間服務,然后按 Enter:
net stop w32time && net start w32time
注意:決不能將 PDC 主機配置為與它自身同步。如果 PDC 主機配置為與它自身同步,應用程序日志中將記錄以下事件:
時間提供程序 NtpClient 不能訪問,或當前正在從 192.168.1.1 (ntp.m|0x0|192.168.1.1:123->192.168.1.1:123) 接收無效的時間數據。
在嘗試聯系它 8 次以后,沒有收到來自手動對等端 192.168.1.1 的響應。此對等端將不再被作為時間源,同時 NtpClient 將嘗試發現一個新的對等端以與其同步。
時間提供程序 NtpClient 被配置為從一個或多個時間源獲得時間,但是當前這些源沒有一個是可以訪問的。在 960 分鍾內,不會進行聯系時間源的嘗試。NtpClient 沒有一個能夠提供准確時間的時間源。
如果 PDC 主機在沒有使用外部時間源的情況下運行,應用程序日志中會記錄以下事件:
時間提供程序 NtpClient:此機器配置為用域層級確定它的時間源,但它已經是林的根目錄域的 PDC 模擬器,因此在域層級沒有機器在它上面以用作時間源。建議您在根域上配置一個可靠的時間服務,或者手動配置 PDC 與外部時間源同步。否則,此機器將作為域層級中的權威時間源。如果沒有為此計算機配置或使用外部時間源,您可以選擇禁用 NtpClient。
這段文本是為了提醒您使用外部時間源;您可以忽略它。
配置 Windows 時間服務以使用外部時間源
要將內部時間服務器配置為與外部時間源同步,請按照下列步驟操作:1. 將服務器類型更改為 NTP。為此,請按照下列步驟操作: a. 單擊“開始”,單擊“運行”,鍵入 regedit,然后單擊“確定”。
b. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
c. 在右窗格中,右鍵單擊“Type”,然后單擊“修改”。
d. 在“編輯值”的“數值數據”框中鍵入 NTP,然后單擊“確定”。
2. 將 AnnounceFlags 設置為 5。為此,請按照下列步驟操作: a. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
b. 在右窗格中,右鍵單擊“AnnounceFlags”,然后單擊“修改”。
c. 在“編輯 DWORD 值”的“數值數據”框中鍵入 5,然后單擊“確定”。
3. 啟用 NTPServer。為此,請按照下列步驟操作: a. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
b. 在右窗格中,右鍵單擊“Enabled”,然后單擊“修改”。
c. 在“編輯 DWORD 值”的“數值數據”框中鍵入 1,然后單擊“確定”。
4. 指定時間源。為此,請按照下列步驟操作: a. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
b. 在右窗格中,右鍵單擊“NtpServer”,然后單擊“修改”。
c. 在“編輯值”的“數值數據”框中鍵入 Peers,然后單擊“確定”。
注意:Peers 是一個占位符,應替換為您的計算機從中獲取時間戳的對等端列表(以空格分隔)。列出的每個 DNS 名稱都必須是唯一的。必須在每個 DNS 名稱后面附加 ,0x1。如果不在每個 DNS 名稱后面附加 ,0x1,則在步驟 5 中所做的更改將不會生效。
5. 選擇輪詢間隔。為此,請按照下列步驟操作: a. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
b. 在右窗格中,右鍵單擊“SpecialPollInterval”,然后單擊“修改”。
c. 在“編輯 DWORD 值”的“數值數據”框中鍵入 TimeInSeconds,然后單擊“確定”。
注意:TimeInSeconds 是一個占位符,應替換為您希望各次輪詢之間的間隔秒數。建議值為 900(十進制)。該值將時間服務器配置為每隔 15 分鍾輪詢一次。
6. 配置時間校准設置。為此,請按照下列步驟操作: a. 找到並單擊下面的注冊表子項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
b. 在右窗格中,右鍵單擊“MaxPosPhaseCorrection”,然后單擊“修改”。
c. 在“編輯 DWORD 值”的“基數”框中單擊以選擇“十進制”。
d. 在“編輯 DWORD 值”的“數值數據”框中鍵入 TimeInSeconds,然后單擊“確定”。
注意:TimeInSeconds 是一個占位符,應替換為適當的值,如 1 小時 (3600) 或 30 分鍾 (1800)。您選擇的值將因輪詢間隔、網絡狀況和外部時間源而異。
e. 找到並單擊下面的注冊表子項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
f. 在右窗格中,右鍵單擊“MaxNegPhaseCorrection”,然后單擊“修改”。
g. 在“編輯 DWORD 值”的“基數”框中單擊以選擇“十進制”。
h. 在“編輯 DWORD 值”的“數值數據”框中鍵入 TimeInSeconds,然后單擊“確定”。
注意:TimeInSeconds 是一個占位符,應替換為適當的值,如 1 小時 (3600) 或 30 分鍾 (1800)。您選擇的值將因輪詢間隔、網絡狀況和外部時間源而異。
7. 退出注冊表編輯器。
8. 在命令提示符處,鍵入以下命令以重新啟動 Windows 時間服務,然后按 Enter:
net stop w32time && net start w32time
疑難解答
要使 Windows 時間服務能夠正常運行,網絡基礎結構必須正常運行。影響 Windows 時間服務的最常見問題包括以下這些:• TCP/IP 連接存在問題,如出現死網關。
• 名稱解析服務未正確運行。
• 網絡出現高延遲,尤其是在通過高延遲的廣域網 (WAN) 鏈接進行同步時。
• Windows 時間服務嘗試與不准確的時間源同步。
建議您使用 Netdiag.exe 實用工具解決與網絡有關的問題。Netdiag.exe 是 Windows Server 2003 支持工具包的一部分。請參見工具的“幫助”,獲取您可以與 Netdiag.exe 一起使用的命令行參數的完整列表。如果問題仍未得到解決,您可以打開 Windows 時間服務調試日志。由於調試日志可能包含非常詳細的信息,建議您在打開 Windows 時間服務調試日志后與 Microsoft 產品支持服務聯系。
要獲取 Microsoft 產品支持服務電話號碼和支持費用信息的完整列表,請訪問下面的 Microsoft 網站:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS
注意:特殊情況下,如果 Microsoft 支持專業人員確定某個特定的更新能夠解決您的問題,可免收通常情況下收取的電話支持服務費用。對於特定更新無法解決的其他支持問題和事項,將照常收取支持費用。
更多信息
NTP 支持多個不同的數據包類型。通常,NTP 客戶端和簡單網絡時間協議 (SNTP) 客戶端會將客戶端模式請求數據包發送給 NTP 服務器。NTP 服務器用服務器模式數據包進行響應。要配置 W32time 服務以將對稱活動模式數據包(不是客戶端模式數據包)發送給 NTP 服務器,請在命令提示符處鍵入以下命令:
w32tm /config /manualpeerlist:<server>,0x4 /syncfromflags:MANUAL
注意:使用 0x8 標志強制 W32time 發送普通的客戶端請求而不是對稱模式活動數據包。NTP 服務器會照常答復這些普通的客戶端請求。
可靠的時間源配置
被配置為可靠時間源的計算機會被標識為 Windows 時間服務的根。Windows 時間服務的根是域的權威服務器,通常被配置為從外部 NTP 服務器或硬件設備檢索時間。您可以將一台時間服務器配置為可靠的時間源,以優化在整個域層級中傳輸時間的方式。如果將某個域控制器配置為可靠的時間源,Net Logon 服務將在該域控制器登錄到網絡時將其宣布為可靠的時間源。當其他域控制器查找要與之同步的時間源時,它們將首先選擇可靠的時間源(如果有)。
手動指定的同步
在使用手動指定的同步時,您可以指定計算機從中獲得時間的單個對等端或一個對等端列表。如果計算機不是域的成員,必須手動將其配置為與指定的時間源同步。默認情況下,屬於域成員的計算機會被配置為從域層級同步。手動指定的同步對域的林根或未加入域的計算機非常有用。當您手動指定外部 NTP 服務器與域的權威計算機同步時,您就提供了可靠的時間。但是,為了向域提供高准確性和安全性,建議您將域的權威計算機配置為與硬件時鍾同步。
如果沒有硬件時間源,W32time 會被配置為 NTP 類型。您必須重新配置 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 這兩個注冊表項。根據時間源、網絡狀況和安全要求的不同,建議將該值設置為 15 分鍾或更低。該要求也適用於被配置為時間同步子網中的林根時間源的任何可靠的時間源。有關這兩個注冊表項的更多信息,請參見本文中的“Windows 時間服務注冊表項”一節。
注意:除非為手動指定的時間源編寫特定的時間提供程序,否則它們不會經過身份驗證,因此這些時間源很容易受到攻擊。另外,如果計算機與手動指定的源同步,而不是與它的身份驗證域控制器同步,則這兩台計算機可能不同步。這種情況會導致 Kerberos 身份驗證失敗,還會導致其他需要網絡身份驗證的操作(如打印或文件共享)失敗。只要將林根配置為與一個外部源同步,則林中的所有其他計算機就會彼此同步。這種配置會使得重播攻擊很難發生。
所有可用的同步機制
“所有可用的同步機制”選項是最適合網絡用戶的同步方法。這種方法可實現與域層級的同步,並且根據具體的配置,它還可以在域層級不可用時提供備用的時間源。如果客戶端無法與域層級同步時間,時間源將自動切換為“NtpServer”設置指定的時間源。這種同步方法最有可能為客戶端提供准確的時間。
Windows 時間服務注冊表項
以下注冊表項位於 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\ 下:注冊表項 MaxPosPhaseCorrection
路徑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 該項指定服務可進行的最大正時間校准量(以秒為單位)。如果服務確定某個更改幅度大於所需的幅度,它將記錄一個事件。(0xFFFFFFFF 是一種特殊情況,它表示總是校准時間。)域成員的默認值是 0xFFFFFFFF。獨立客戶端和服務器的默認值是 54,000,即 15 小時。
注冊表項 MaxNegPhaseCorrection
路徑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 該項指定服務可進行的最大負時間校准量(以秒為單位)。如果服務確定某個更改幅度大於所需的幅度,它將轉而記錄一個事件。(-1 是一種特殊情況,它表示總是校准時間。)域成員的默認值是 0xFFFFFFFF。獨立客戶端和服務器的默認值是 54,000,即 15 小時。
注冊表項 MaxPollInterval
路徑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 該項指定系統輪詢間隔所允許的最大間隔(單位是對數表示的秒)。盡管系統必須根據預定的間隔進行輪詢,但是提供程序可以根據請求拒絕生成示例。域成員的默認值是 10。獨立客戶端和服務器的默認值是 15。
注冊表項 SpecialPollInterval
路徑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
注意: 該項指定手動對等端的特殊輪詢間隔(以秒為單位)。當啟用 SpecialInterval 0x1 標志時,W32Time 將使用此輪詢間隔而非操作系統確定的輪詢間隔。域成員的默認值是 3,600。獨立客戶端和服務器的默認值是 604,800。
注冊表項 MaxAllowedPhaseOffset
路徑 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 該項指定 W32Time 嘗試使用時鍾速率調整計算機時鍾的最大偏移量(以秒為單位)。當偏移量大於該速率時,W32Time 將直接設置計算機時鍾。域成員的默認值是 300。獨立客戶端和服務器的默認值是 1。