Freigeben über


So wird's gemacht: Erzwingen der Verwendung von TCP anstelle von UDP in Windows

In diesem Artikel wird beschrieben, wie Sie erzwingen, dass Kerberos TCP anstelle von UDP verwendet.

Ursprüngliche KB-Nummer: 244474

Übersicht

Das Windows Kerberos-Authentifizierungspaket ist das Standardauthentifizierungspaket in Windows Server 2003, windows Server 2008 und windows Vista. Sie koexistiert mit dem NTLM-Abfrage-/Antwortprotokoll und wird in Instanzen verwendet, in denen sowohl ein Client als auch ein Server Kerberos aushandeln kann. Request for Comments (RFC) 1510 gibt an, dass der Client ein USER Datagram Protocol (UDP)-Datagramm an Port 88 an die IP-Adresse des Key Distribution Centers (KDC) senden soll, wenn ein Client mit dem KDC kontaktt. Der KDC sollte mit einem Antwortdatendiagramm auf den sendenden Port an der IP-Adresse des Absenders antworten. Der RFC gibt außerdem an, dass UDP das erste Protokoll sein muss, das versucht wird.

Notiz

RFC 4120 veraltet RFC 1510. RFC 4120 gibt an, dass ein KDC TCP-Anforderungen akzeptieren muss und auf solche Anforderungen an Port 88 (Dezimalzahl) lauschen soll. Standardmäßig versucht Windows Server 2008 und Windows Vista tcp zuerst für Kerberos, da die Standardeinstellung "MaxPacketSize" jetzt 0 ist. Sie können den Registrierungswert MaxPacketSize weiterhin verwenden, um dieses Verhalten außer Kraft zu setzen.

Eine Einschränkung der UDP-Paketgröße kann die folgende Fehlermeldung bei der Domänenanmeldung verursachen:

Ereignisprotokollfehler 5719
Quelle NETLOGON

Für Domänendomänen ist kein Windows NT- oder Windows 2000-Domänencontroller verfügbar. Der folgende Fehler ist aufgetreten:

Derzeit sind keine Anmeldeserver verfügbar, um die Anmeldeanforderung zu warten.

Darüber hinaus kann das Netdiag-Tool die folgenden Fehlermeldungen anzeigen:

  • Fehlermeldung 1

    DC-Listentest . . . . . . . . . . . : Fehler [WARNUNG] DsBind COMPUTERNAMEDC.domain.com kann nicht aufgerufen werden (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Fehlermeldung 2

    Kerberos-Test. . . . . . . . . . . : Fehler [FATAL] Kerberos verfügt nicht über ein Ticket für MEMBERSERVER$.] Die Windows XP-Ereignisprotokolle, die Symptome dieses Problems sind, sind SPNegotiate 40960 und Kerberos 10.

Weitere Informationen

Wichtig

Dieser Abschnitt, diese Methode bzw. diese Aufgabe enthält eine Beschreibung der Schritte zum Bearbeiten der Registrierung. Durch die falsche Bearbeitung der Registrierung können schwerwiegende Probleme verursacht werden. Daher müssen Sie sicherstellen, dass Sie diese Schritte sorgfältig ausführen. Für weiteren Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter: Sichern und Wiederherstellen der Registrierung Windows.

Wenn Sie UDP für Kerberos verwenden, reagiert der Clientcomputer möglicherweise nicht mehr (hängend), wenn Sie die folgende Meldung erhalten: Laden Ihrer persönlichen Einstellungen.

Standardmäßig beträgt die maximale Größe von Datagrammpaketen, für die Windows Server 2003 UDP verwendet, 1.465 Byte. Für Windows XP und für Windows 2000 beträgt dieser Maximalwert 2.000 Bytes. Tcp (Transmission Control Protocol) wird für jedes Datagrampacket verwendet, das größer als dieses Maximum ist. Die maximale Größe von Datagrammpaketen, für die UDP verwendet wird, kann durch Ändern eines Registrierungsschlüssels und Werts geändert werden.

Standardmäßig verwendet Kerberos verbindungslose UDP-Datagrammpakete. Abhängig von einer Vielzahl von Faktoren, einschließlich SID-Verlauf (Security Identifier) und Gruppenmitgliedschaft, weisen einige Konten größere Kerberos-Authentifizierungspaketgrößen auf. Abhängig von der Hardwarekonfiguration des virtuellen privaten Netzwerks (VPN) müssen diese größeren Pakete fragmentiert werden, wenn sie über ein VPN gehen. Das Problem wird durch Fragmentierung dieser großen UDP-Kerberos-Pakete verursacht. Da UDP ein verbindungsloses Protokoll ist, werden fragmentierte UDP-Pakete gelöscht, wenn sie am Ziel außerhalb der Reihenfolge ankommen.

Wenn Sie MaxPacketSize in einen Wert von 1 ändern, erzwingen Sie, dass der Client TCP zum Senden von Kerberos-Datenverkehr über den VPN-Tunnel verwendet. Da TCP verbindungsorientiert ist, handelt es sich um ein zuverlässigeres Transportmittel über den VPN-Tunnel. Selbst wenn die Pakete verworfen werden, fordert der Server das fehlende Datenpaket erneut an.

Sie können MaxPacketSize in 1 ändern, um zu erzwingen, dass der Kerberos-Datenverkehr über TCP verwendet wird. Gehen Sie dazu wie folgt vor:

  1. Starten Sie den Registrierungs-Editor.

  2. Suchen Und klicken Sie dann auf den Registrierungsunterschlüssel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters.

    Notiz

    Wenn der Parameterschlüssel nicht vorhanden ist, erstellen Sie ihn jetzt.

  3. Zeigen Sie im Menü Bearbeiten auf Neu, und klicken Sie anschließend auf DWORD-Wert.

  4. Geben Sie MaxPacketSize ein, und drücken Sie dann die EINGABETASTE.

  5. Doppelklicken Sie auf "MaxPacketSize", geben Sie "1 " in das Datenfeld "Wert" ein, klicken Sie, um die Option "Dezimal" auszuwählen, und klicken Sie dann auf "OK".

  6. Beenden Sie den Registrierungs-Editor.

  7. Starten Sie den Computer neu.

Dies ist der Lösungsansatz für Windows 2000, XP und Server 2003. Windows Vista und neuer verwenden einen Standardwert von "0" für MaxPacketSize, der auch die Verwendung von UDP für den Kerberos-Client deaktiviert.

Die folgende Vorlage ist eine administrative Vorlage, die in Gruppenrichtlinien importiert werden kann, damit der MaxPacketSize-Wert für alle Unternehmenscomputer festgelegt werden kann, auf denen Windows Server 2003, Windows XP oder Windows 2000 ausgeführt wird. Wenn Sie die Einstellungen von MaxPacketSize im Gruppenrichtlinienobjekt-Editor anzeigen möchten, klicken Sie im Menü "Ansicht" auf "Richtlinien nur anzeigen", sodass "Nur Richtlinien anzeigen" nicht ausgewählt ist. Diese Vorlage ändert Registrierungsschlüssel außerhalb des Abschnitts "Richtlinien". Der Gruppenrichtlinienobjekt-Editor zeigt diese Registrierungseinstellungen standardmäßig nicht an.