Udostępnij za pośrednictwem


Jak wymusić użycie protokołu Kerberos zamiast protokołu UDP w systemie Windows

W tym artykule opisano, jak wymusić użycie protokołu Kerberos do używania protokołu TCP zamiast protokołu UDP.

Oryginalny numer KB: 244474

Podsumowanie

Pakiet uwierzytelniania Kerberos systemu Windows jest domyślnym pakietem uwierzytelniania w systemie Windows Server 2003, w systemie Windows Server 2008 i w systemie Windows Vista. Współistnieje z protokołem wyzwania/odpowiedzi NTLM i jest używany w wystąpieniach, w których zarówno klient, jak i serwer mogą negocjować protokół Kerberos. Żądanie komentarzy (RFC) 1510 stwierdza, że klient powinien wysłać datagram protokołu UDP (User Datagram Protocol) do portu 88 pod adresem IP centrum dystrybucji kluczy (KDC), gdy klient kontaktuje się z centrum dystrybucji kluczy. Centrum dystrybucji kluczy powinno odpowiadać za pomocą datagramu odpowiedzi na port wysyłający na adres IP nadawcy. RFC stwierdza również, że UDP musi być pierwszym protokołem, który jest wypróbowany.

Uwaga

RFC 4120 jest teraz przestarzały RFC 1510. RFC 4120 określa, że centrum dystrybucji kluczy musi akceptować żądania TCP i powinien nasłuchiwać takich żądań na porcie 88 (dziesiętnym). Domyślnie systemy Windows Server 2008 i Windows Vista spróbują najpierw użyć protokołu TCP dla protokołu Kerberos, ponieważ wartość domyślna MaxPacketSize wynosi teraz 0. Nadal możesz użyć wartości rejestru MaxPacketSize, aby zastąpić to zachowanie.

Ograniczenie rozmiaru pakietu UDP może spowodować następujący komunikat o błędzie podczas logowania do domeny:

Błąd dziennika zdarzeń 5719
Źródłowa NETLOGON

Dla domeny domeny nie jest dostępny kontroler domeny systemu Windows NT lub Windows 2000. Wystąpił następujący błąd:

Obecnie nie ma dostępnych serwerów logowania do obsługi żądania logowania.

Ponadto narzędzie Netdiag może wyświetlać następujące komunikaty o błędach:

  • Komunikat o błędzie 1

    Test listy kontrolerów domeny . . . . . . . . . . . : Nie można wywołać COMPUTERNAMEDC.domain.com metody DsBind [WARNING] (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Komunikat o błędzie 2

    Test protokołu Kerberos. . . . . . . . . . . : Nie powiodło się [FATAL] Kerberos nie ma biletu dla ELEMENTU MEMBERSERVER$.] Dzienniki zdarzeń systemu Windows XP, które są objawami tego problemu, to SPNegotiate 40960 i Kerberos 10.

Więcej informacji

Ważne

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonać poniższe kroki. Aby zapewnić dodatkową ochronę, utwórz kopię zapasową rejestru przed przystąpieniem do jego modyfikacji. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

Jeśli używasz protokołu UDP dla protokołu Kerberos, komputer kliencki może przestać odpowiadać (zawieszać się) po otrzymaniu następującego komunikatu: Ładowanie ustawień osobistych.

Domyślnie maksymalny rozmiar pakietów datagramu, dla których system Windows Server 2003 używa protokołu UDP, wynosi 1465 bajtów. W przypadku systemu Windows XP i windows 2000 ta wartość maksymalna to 2000 bajtów. Protokół TCP (Transmission Control Protocol) jest używany dla każdego zestawu datagrampacket, który jest większy niż ten maksymalny. Maksymalny rozmiar pakietów datagramu, dla których jest używany protokół UDP, można zmienić, modyfikując klucz rejestru i wartość.

Domyślnie protokół Kerberos używa bez połączenia pakietów datagramu UDP. W zależności od różnych czynników, w tym historii identyfikatora zabezpieczeń (SID) i członkostwa w grupie, niektóre konta będą miały większe rozmiary pakietów uwierzytelniania Kerberos. W zależności od konfiguracji sprzętowej wirtualnej sieci prywatnej (VPN) te większe pakiety muszą być fragmentowane podczas przechodzenia przez sieć VPN. Problem jest spowodowany fragmentacją tych dużych pakietów protokołu Kerberos protokołu UDP. Ponieważ UDP jest protokołem bez połączenia, pofragmentowane pakiety UDP zostaną porzucone, jeśli dotrze do miejsca docelowego poza kolejnością.

Jeśli zmienisz wartość MaxPacketSize na wartość 1, wymusisz użycie protokołu TCP do wysyłania ruchu Kerberos przez tunel VPN. Ponieważ protokół TCP jest zorientowany na połączenie, jest to bardziej niezawodny środek transportu w tunelu VPN. Nawet jeśli pakiety zostaną porzucone, serwer ponownie zażąda brakującego pakietu danych.

Możesz zmienić wartość MaxPacketSize na 1, aby wymusić na klientach używanie ruchu Kerberos za pośrednictwem protokołu TCP. W tym celu wykonaj następujące kroki:

  1. Uruchom Edytor rejestru.

  2. Znajdź, a następnie kliknij podklucz rejestru: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters.

    Uwaga

    Jeśli klucz Parameters nie istnieje, utwórz go teraz.

  3. W menu Edycja wskaż polecenie Nowy, a następnie kliknij pozycję Wartość DWORD.

  4. Wpisz MaxPacketSize, a następnie naciśnij ENTER.

  5. Kliknij dwukrotnie pozycję MaxPacketSize, wpisz 1 w polu Dane wartości, kliknij, aby wybrać opcję Dziesiętna, a następnie kliknij przycisk OK.

  6. Zamknij Edytor rejestru.

  7. Ponownie uruchom komputer.

Jest to rozwiązanie dla systemów Windows 2000, XP i Server 2003. System Windows Vista i nowsze używają wartości domyślnej "0" dla maxPacketSize, która wyłącza również korzystanie z protokołu UDP dla klienta Kerberos.

Poniższy szablon to szablon administracyjny, który można zaimportować do zasad grupy, aby umożliwić ustawienie wartości MaxPacketSize dla wszystkich komputerów korporacyjnych z systemem Windows Server 2003, Windows XP lub Windows 2000. Aby wyświetlić ustawienia MaxPacketSize w Edytorze obiektów zasad grupy, kliknij polecenie Pokaż zasady tylko w menu Widok , aby nie wybrać opcji Pokaż tylko zasady. Ten szablon modyfikuje klucze rejestru poza sekcją Zasady. Domyślnie Edytor obiektów zasad grupy nie wyświetla tych ustawień rejestru.