如何強制 Kerberos 在 Windows 使用 TCP,而不使用 UDP

文章翻譯 文章翻譯
文章編號: 244474 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

Windows Kerberos 驗證封裝是 Windows Server 2003、Windows Server 2008 和 Windows Vista 中的預設驗證封裝,與 NTLM 挑戰/回應通訊協定共存,並且可用於用戶端和伺服器都可以交涉 Kerberos 的情況中。「要求建議」(RFC) 1510 指出,當用戶端連絡「金鑰發佈中心」(KDC) 時,用戶端應該傳送「使用者資料包通訊協定」(UDP) 資料包到 KDC 所在 IP 位址的連接埠 88。KDC 應該以回覆資料包回應位於寄件者 IP 位址的傳送連接埠。此外,RFC 也指出 UDP 必須是第一個嘗試的通訊協定。

摺疊此表格展開此表格
注意RFC 4120 已經將 RFC 1510 淘汰。RFC 4120 指定 KDC 必須接受 TCP 要求,且必須在連接埠 88 (十進位) 接聽這類要求。根據預設,Windows Server 2008 和 Windows Vista 會嘗試先為 Kerberos 使用 TCP,因為 MaxPacketSize 目前的預設值是 0。您還是可以使用 MaxPacketSize 登錄值以覆寫該行為。

在登入網域時,UDP 封包大小的限制可能會造成下列錯誤訊息:
事件記錄錯誤 5719
來源 NETLOGON

沒有 Windows NT 或 Windows 2000 網域控制站給網域 Domain 使用。發生下列錯誤:

目前無可用的登入伺服器來服務登入請求。
此外,Netdiag 工具可能也會顯示下列錯誤訊息:
錯誤訊息 1
DC list test.. . . . . . . . . . : Failed [WARNING] Cannot call DsBind to COMPUTERNAMEDC.domain.com (159.140.176.32). (DC 清單測試。失敗 [警告] 無法呼叫 DsBind 到 COMPUTERNAMEDC.domain.com (159.140.176.32))[ERROR_DOMAIN_CONTROLLER_NOT_FOUND]
錯誤訊息 2
Kerberos test.. . . . . . . . . . : Failed [FATAL] Kerberos does not have a ticket for MEMBERSERVER$.] (Kerberos 測試。失敗 [嚴重錯誤] Kerberos 沒有 MEMBERSERVER$.] 的票證)
SPNegotiate 40960 和 Kerberos 10 是 Windows XP 事件記錄檔,也就是這個問題的徵狀 。

其他相關資訊

如果要我們為您修正此問題,請前往<為我修正此問題>一節。如果您要自行修正此問題,請前往<讓我自行修正此問題>一節。

為我修正此問題

如果要自動修正此問題,請按一下 [修正此問題] 按鈕或連結。按一下 [檔案下載] 對話方塊中的 [執行],並依照 Fix it 精靈中的步驟執行。


修正此問題
Microsoft Fix it 50563


注意事項
  • 此精靈可能只提供英文版本。不過,自動修正程式也適用於 Windows 的其他語言版本。
  • 如果您不是正在使用發生問題的電腦,則可將 Fix it 解決方案儲存至快閃磁碟機或 CD,然後在發生問題的電腦上加以執行。

然後請前往<這樣是否已修正問題?>一節。



讓我自行修正此問題

重要 這個章節、方法或工作包含的步驟會告訴您要如何修改登錄。然而,如果登錄修改錯誤,可能會發生嚴重的問題。因此,請確定小心執行下列步驟。為加強保護,修改登錄之前,請務必將它備份起來。如果發生問題,您就可以還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 如何在 Windows XP 中備份及還原登錄


重要 如果 Kerberos 使用的是 UDP,當您收到下列訊息時,用戶端電腦可能會停止回應 (擱置):
正在載入您的個人設定。
根據預設,Windows Server 2003 所使用的最大 UDP 資料封包大小為 1,465 個位元組,而 Windows XP 和 Windows 2000 所使用的最大大小為 2,000 個位元組。任何大於這個封包大小的資料封包都可以使用「傳輸控制通訊協定」(TCP)。只要修改登錄機碼和登錄值,就能變更所使用 UDP 資料封包的最大大小。

根據預設,Kerberos 會使用不需連線的 UDP 資料封包。視安全性識別元 (SID) 記錄和群組成員資格等不同因素而定,某些帳戶會有較大的 Kerberos 驗證封包大小。根據虛擬私人網路 (VPN) 的硬體設定,這些較大的封包必須在通過 VPN 時進行分段處理。這個問題就是這些大型 UDP Kerberos 封包的分段處理所造成的。由於 UDP 是不需連線的通訊協定,因此,如果分段的 UDP 封包抵達目的地的順序錯誤,封包就會被丟棄。

如果您將 MaxPacketSize 的值變更為 1,即可強制用戶端使用 TCP 透過 VPN 通道傳送 Kerberos 傳輸。由於 TCP 屬於連線導向,因此,透過 VPN 通道傳輸資料較為可靠。即使封包被丟棄,伺服器也會重新要求遺失的資料封包。


您可以將 MaxPacketSize 的值變更為 1,以強制用戶端透過 TCP 使用 Kerberos 傳輸。如果要執行這項操作,請依照下列步驟執行:
  1. 啟動 [登錄編輯程式]。
  2. 找出下列登錄子機碼並按一下:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\ Kerberos\Parameters
    注意 如果 [Parameters] 機碼不存在,請立即建立此機碼。
  3. [編輯] 功能表上,指向 [新增],然後按一下 [DWORD 值]
  4. 輸入 MaxPacketSize,然後按下 ENTER。
  5. 按兩下 [MaxPacketSize],在 [數值資料] 方塊中輸入 1,按一下以選取 [十進位],然後按一下 [確定]。
  6. 結束 [登錄編輯程式]。
  7. 重新啟動您的電腦。

    這是 Microsoft Windows 2000、XP 和 Server 2003 的解決方法。Windows Vista 和更新版本使用的 MaxPacketSize 的預設值是「0」,這項設定也會使 Kerberos 用戶端關閉對 UDP 的使用。

這樣是否已修正問題?

  • 檢查該問題是否已修正。如果問題已修正,您便已完成本節。如果問題尚未修正,則請連絡技術支援服務
  • 我們非常感謝您提供意見反應。如果要提供意見反應,或報告此解決方案的任何問題,請在「為我修正此問題」部落格 中留下您的意見,或者傳送電子郵件給我們。
下列是可以匯入「群組原則」,使所有執行 Windows Server 2003、Windows XP 或 Windows 2000 的企業電腦都可以設定 MaxPacketSize 值的系統管理範本。如果要在 [群組原則物件編輯器] 中檢視 MaxPacketSize 設定,請按一下 [檢視] 功能表上的 [只顯示原則] 以取消選取 [只顯示原則] 選項。這個範本會修改 Policy 區段以外的登錄機碼。根據預設,[群組原則物件編輯器] 不會顯示這些登錄設定。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
320903 Clients Cannot Log On by Using Kerberos over TCP

屬性

文章編號: 244474 - 上次校閱: 2011年5月17日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Windows Vista 商用入門版
  • Windows Vista 商用進階版
  • Windows Vista 家用入門版
  • Windows Vista 家用進階版
  • Windows Vista 旗艦版
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
關鍵字:?
kbenv kbinfo kbfixme kbmsifixme KB244474
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com