Jak wymusić korzystanie z protokołu TCP zamiast protokołu UDP podczas uwierzytelniania Kerberos w systemie Windows

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 244474 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Streszczenie

Pakiet uwierzytelniania Kerberos systemu Windows jest domyślnym pakietem uwierzytelniania w systemach Windows Server 2003, Windows Server 2008 i Windows Vista. Współistnieje on z z protokołem uwierzytelniania typu wezwanie/odpowiedź NTLM i jest używany w sytuacjach, gdy zarówno klient, jak i serwer mogą negocjować uwierzytelnianie Kerberos. Zgodnie z dokumentem Request for Comments (RFC) 1510 klient powinien wysłać datagram UDP (User Datagram Protocol) do portu 88 na adres IP usługi KDS (Key Distribution Center) po nawiązaniu kontaktu klienta z usługą KDC. W odpowiedzi usługa KDC powinna wysłać datagram z odpowiedzią do portu wysyłania na adres IP nadawcy. Zgodnie z dokumentem RFC protokół UDP musi być też pierwszym protokołem wypróbowywanym do nawiązania połączenia.

Zwiń tę tabelęRozwiń tę tabelę
UwagaObecnie dokument RFC 1510 został zastąpiony przez dokument RFC 4120. Zgodnie z dokumentem RFC 4120 usługa KDC musi akceptować żądania TCP i powinna nasłuchiwać takich żądań na porcie 88 (numer w formacie dziesiętnym). W przypadku uwierzytelniania Kerberos systemy Windows Server 2008 i Windows Vista będą najpierw wypróbowywały protokół TCP, ponieważ domyślna wartość parametru MaxPacketSize wynosi obecnie 0. Aby zmienić to zachowanie, można jednak użyć wartości rejestru MaxPacketSize.

Ograniczenie rozmiaru pakietu UDP może powodować wyświetlenie następującego komunikatu podczas logowania do domeny:
Błąd dziennika zdarzeń 5719
Źródło: NETLOGON

Brak dostępnego kontrolera domeny systemu Windows NT lub Windows 2000 dla domeny Domena. Wystąpił następujący błąd:

Nie ma aktualnie dostępnych serwerów logowania do obsługi żądania logowania.
Ponadto narzędzie Netdiag może wyświetlić następujące komunikaty o błędzie:
Komunikat o błędzie 1
Test listy kontrolerów domeny . . . . . . . . . . . : Niepowodzenie [OSTRZEŻENIE] Nie można wywołać funkcji DsBind dla adresu NAZWAKONTROLERADOMENY.domena.com (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]
Komunikat o błędzie 2
Test protokołu Kerberos. . . . . . . . . . . : Niepowodzenie [KRYTYCZNY] Protokół Kerberos nie ma biletu dla serwera MEMBERSERVER$.]
Informacje świadczące o tym problemie znajdują się w dzienniku zdarzeń systemu Windows XP we wpisach SPNegotiate 40960 i Kerberos 10.

Więcej informacji

Aby automatycznie rozwiązać ten problem, przejdź do sekcji Automatyczne rozwiązywanie problemu. Aby samodzielnie rozwiązać ten problem, przejdź do sekcji Samodzielne rozwiązywanie problemu.

Automatyczne rozwiązywanie problemu

Aby automatycznie rozwiązać ten problem, należy kliknąć przycisk lub łącze Fix it. Następnie należy kliknąć przycisk Uruchom w oknie dialogowym Pobieranie pliku i wykonać kroki kreatora rozwiązywania problemu.


Rozwiąż ten problem
Microsoft Fix it 50563


Uwagi
  • Ten kreator może być dostępny tylko w języku angielskim. Jednak ta poprawka automatyczna działa również w innych wersjach językowych systemu Windows.
  • Jeśli używany komputer nie jest tym, którego dotyczy problem, można zapisać to rozwiązanie w postaci poprawki automatycznej na dysku flash lub CD i uruchomić je na odpowiednim komputerze.

Teraz przejdź do sekcji Czy problem został rozwiązany?



Samodzielne rozwiązywanie problemu

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 wykonywać podane czynności. Aby zapewnić dodatkową ochronę, przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu w przypadku wystąpienia problemu będzie można przywrócić rejestr. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej i przywracania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
322756 Jak wykonywać kopię zapasową rejestru i przywracać go w systemie Windows


Ważne Użycie protokołu UDP do uwierzytelniania Kerberos może spowodować, że komputer kliencki przestanie odpowiadać (zawiesi się) po otrzymaniu następującego komunikatu:
Trwa ładowanie ustawień osobistych.
Maksymalny rozmiar pakietów datagramów, dla których system Windows Server 2003 korzysta z protokołu UDP, wynosi domyślnie 1465 bajtów. W przypadku systemów Windows XP i Windows 2000 wartość maksymalna wynosi 2000 bajtów. Protokół TCP (Transmission Control Protocol) jest używany w przypadku każdego pakietu datagramów, którego rozmiar przekracza tę wartość maksymalną. Maksymalny rozmiar pakietów datagramów, dla których jest używany protokół UDP, można zmienić, modyfikując klucz i wartość rejestru.

Domyślnie protokół Kerberos wykorzystuje bezpołączeniowe pakiety datagramów UDP. W zależności od wielu czynników, w tym historii identyfikatorów zabezpieczeń (SID) i członkostwa w grupach, niektóre konta będą obsługiwać większe rozmiary pakietów uwierzytelniania Kerberos. W zależności od konfiguracji sprzętowej wirtualnej sieci prywatnej (VPN) w czasie transmisji przez sieć VPN te większe pakiety muszą być fragmentowane. Omawiany problem jest spowodowany fragmentacją tych większych pakietów UDP uwierzytelniania Kerberos. W związku z tym, że UDP jest protokołem bezpołączeniowym, pofragmentowane pakiety UDP będą pomijane, jeśli dotrą do celu w niewłaściwej kolejności.

Zmiana wartości parametru MaxPacketSize na 1 spowoduje wymuszenie na kliencie korzystania z protokołu TCP do przesyłania ruchu Kerberos za pośrednictwem tunelu VPN. W związku z tym, że protokół TCP jest protokołem połączeniowym, stanowi bardziej niezawodny środek transportu przez tunel VPN. Nawet w przypadku pominięcia pakietów serwer będzie generował ponowne żądania przesłania brakujących pakietów danych.


Aby wymusić na klientach korzystanie z protokołu TCP do obsługi ruchu Kerberos, można zmienić wartość parametru MaxPacketSize na 1. W tym celu wykonaj następujące czynności:
  1. Uruchom Edytor rejestru.
  2. Zlokalizuj, a następnie kliknij następujący podklucz rejestru:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\ Kerberos\Parameters
    Uwaga Jeśli klucz Parameters nie istnieje, należy go utworzyć.
  3. W menu Edycja wskaż polecenie Nowy, a następnie kliknij polecenie Wartość DWORD.
  4. Wpisz nazwę MaxPacketSize, a następnie naciśnij klawisz ENTER.
  5. Kliknij dwukrotnie pozycję MaxPacketSize, wpisz 1 w polu Dane wartości, kliknij, aby zaznaczyć opcję Dziesiętny, a następnie kliknij przycisk OK.
  6. Zamknij Edytor rejestru.
  7. Uruchom ponownie komputer.

    To rozwiązanie dotyczy systemów Microsoft Windows 2000, XP oraz Server 2003. W przypadku systemu Windows Vista i nowszych należy używać domyślnej wartości „0” parametru MaxPacketSize, która powoduje również wyłączenie obsługi protokołu UDP dla klienta protokołu Kerberos.

Czy problem został rozwiązany?

  • Sprawdź, czy problem został rozwiązany. Jeśli problem został rozwiązany, to koniec pracy z tą sekcją. Jeśli problem nie został rozwiązany, można skontaktować się z pomocą techniczną.
  • Prosimy o opinię. Aby przekazać opinię lub zgłosić jakiekolwiek problemy dotyczące tego rozwiązania, można zostawić komentarz w blogu Fix it for me (Automatyczne rozwiązywanie problemu) lub wysłać wiadomość e-mail.
Poniższy szablon jest szablonem administracyjnym, który można importować do zasad grupy, aby umożliwić ustawianie wartości parametru MaxPacketSize dla wszystkich komputerów przedsiębiorstwa, na których jest uruchomiony system Windows Server 2003, Windows XP lub Windows 2000. Aby wyświetlić ustawienia parametru MaxPacketSize w Edytorze obiektów zasad grupy, kliknij pozycję Pokaż tylko zasady w menu Widok, tak aby nie była zaznaczona. Ten szablon modyfikuje klucze rejestru poza sekcją zasad. Domyślnie w Edytorze obiektów zasad grupy te ustawienia rejestru nie są wyświetlane. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
320903 Klienci nie mogą zalogować się przy użyciu protokołu Kerberos przez TCP

Właściwości

Numer ID artykułu: 244474 - Ostatnia weryfikacja: 11 września 2011 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • 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 Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Ultimate
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
Słowa kluczowe: 
kbenv kbinfo kbfixme kbmsifixme KB244474

Przekaż opinię

 

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