How to force Kerberos to use TCP instead of UDP in Windows Server 2003, in Windows XP, and in Windows 2000 (244474)
The information in this article applies to:
- Microsoft Windows Server 2003, Standard Edition
- Microsoft Windows Server 2003, Enterprise Edition
- Microsoft Windows Server 2003, Datacenter Edition
- Microsoft Windows XP Professional
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Professional
- Microsoft Windows 2000 Datacenter Server
This article was previously published under Q244474 Important This article contains information about modifying the registry.
Before you modify the registry, make sure to back it up and make sure that you
understand how to restore the registry if a problem occurs. For information
about how to back up, restore, and edit the registry, click the following
article number to view the article in the Microsoft Knowledge Base: 256986 Description of the Microsoft Windows Registry SUMMARY The Windows Kerberos authentication package is the default
authentication package in Microsoft Windows Server 2003, in Microsoft Windows
XP, and in Microsoft Windows 2000.
It coexists with the NTLM challenge/response
protocol and is used in instances where both a client and a server can
negotiate Kerberos. Request for Comments (RFC) 1510 states that the client
should send a User Datagram Protocol (UDP) datagram to port 88 at the IP
address of the Key Distribution Center (KDC) when a client contacts the KDC.
The KDC should respond with a reply datagram to the sending port at the
sender's IP address. The RFC also states that UDP must be the first protocol
that is tried. A limitation on the UDP packet size may cause the
following error message at domain logon:
Event Log Error
5719 Source NETLOGON
No Windows NT or Windows 2000 Domain
Controller is available for domain Domain. The
following error occurred:
There are currently no logon servers
available to service the logon request. Additionally, the Netdiag
tool may display the following error messages: DC list test . . . . . . . . .
. . : Failed [WARNING] Cannot call DsBind to COMPUTERNAMEDC.domain.com
(159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND] Kerberos test. . . . . . . . .
. . : Failed [FATAL] Kerberos does not have a ticket for
MEMBERSERVER$.] MORE INFORMATIONWarning If you use Registry Editor incorrectly, you may cause serious
problems that may require you to reinstall your operating system. Microsoft
cannot guarantee that you can solve problems that result from using Registry
Editor incorrectly. Use Registry Editor at your own risk. Important If you use UDP for Kerberos, your client computer may stop
responding (hang) when you receive the following message:
Loading your personal settings. By default,
the maximum size of datagram packets for which Windows Server 2003 uses UDP is
1,465 bytes. For Windows XP and for Windows 2000, this maximum is 2,000 bytes.
Transmission Control Protocol (TCP) is used for any datagrampacket that is
larger than this maximum. The maximum size of datagram packets for which UDP is
used can be changed by modifying a registry key and value. By
default, Kerberos uses connectionless UDP datagram packets. Depending on a
variety of factors including security identifier (SID) history and group
membership, some accounts will have larger Kerberos authentication packet
sizes. Depending on the virtual private network (VPN) hardware configuration,
these larger packets have to be fragmented when going through a VPN. The
problem is caused by fragmentation of these large UDP Kerberos packets. Because
UDP is a connectionless protocol, fragmented UDP packets will be dropped if
they arrive at the destination out of order. If you change
MaxPacketSize to a value of 1, you force the client to use TCP to send Kerberos
traffic through the VPN tunnel. Because TCP is connection oriented, it is a
more reliable means of transport across the VPN tunnel. Even if the packets are
dropped, the server will re-request the missing data packet. You
can change MaxPacketSize to 1 to force the clients to use Kerberos traffic over
TCP. To do this, follow these steps:
- Start Registry Editor.
- Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\
Kerberos\Parameters Note If the Parameters key does not exist, create it
now. - On the Edit menu, point to
New, and then click DWORD Value.
- Type MaxPacketSize, and then press
ENTER.
- Double-click MaxPacketSize, type
1
in the Value data box, click
to select the Decimal option, and then click OK.
- Quit Registry Editor.
- Restart your computer.
The following template is an administrative template that can be
imported into Group Policy to let the MaxPacketSize value be set for all
enterprise computers that are running Windows Server 2003, Windows XP, or
Windows 2000. To view the MaxPacketSize settings in Group Policy Object Editor,
click Show Policies Only on the View menu so
that Show Policies Only is not selected.
This template modifies registry keys outside the Policies section. By default,
Group Policy Object Editor does not display these registry settings.
CLASS MACHINE
CATEGORY !!KRB_PARAMS
KEYNAME "SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters"
POLICY !!SET_MAXPACKETSIZE
EXPLAIN !!MAXPACKETSIZE_HELP
PART !!MAXPACKETSIZE NUMERIC REQUIRED
VALUENAME "MaxPacketSize"
MIN 1 MAX 2000 DEFAULT 2000
END PART
PART !!MAXPACKETSIZE_TIP TEXT
END PART
END POLICY
POLICY !!LOGLEVEL
EXPLAIN !!LOGLEVEL_HELP
VALUENAME "LogLevel"
END POLICY
END CATEGORY
[strings]
KRB_PARAMS="Kerberos Parameters"
SET_MAXPACKETSIZE="Set MaxPacketSize"
MAXPACKETSIZE_HELP="The Windows 2000 Kerberos Authentication package is
the default in Windows 2000. It coexists with challenge/response (NTLM)
and is used in instances in which both a client and server can negotiate
Kerberos. Request for Comments (RFC) 1510 states that when a client
contacts the Key Distribution Center (KDC), it should send a User
Datagram Protocol (UDP) datagram to port 88 at the KDC's IP address.
The KDC should respond with a reply datagram to the sending port at the
sender's IP address.\n\nWindows 2000, by default, uses UDP when the data
can be fit in packets under 2,000 bytes. Any data above this value uses
TCP to carry the packets. The value of 2,000 bytes is configurable via
this policy."
MAXPACKETSIZE="Bytes: "
MAXPACKETSIZE_TIP="Range is from 1 to 2000. Use 1 to force Kerberos to
use TCP."
LOGLEVEL="Kerberos Event Logging"
LOGLEVEL_HELP="Windows 2000
offers the capability of tracing detailed
Kerberos events through the event log mechanism. You can use this
information when you troubleshoot Kerberos.
All Kerberos errors are logged to the System log."
For additional information, click the following
article number to view the article in the Microsoft Knowledge Base: 320903
Clients cannot log on by using
Kerberos over TCP
Modification Type: | Minor | Last Reviewed: | 3/16/2005 |
---|
Keywords: | kbenv kbinfo KB244474 kbAudEndUser |
---|
|