NetBIOS Connections from a Multihomed Computer

ID: Q166159


The information in this article applies to:
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT Server version 4.0


SYMPTOMS

When you connect from a multihomed computer running Windows NT to another computer, the local source IP address used may not be optimal. If the multihomed system is attached to two different (disjoint) networks, and the target system is on only one of the networks, there may be a delay in establishing the connection.

This behavior only occurs on NetBIOS over TCP/IP sessions (such as file and print sharing); therefore, this information does not apply to Windows Sockets applications such as Web browsers.

For additional information on how an outbound network interface card (NIC) is chosen for windows sockets applications, please see the following article in the Microsoft Knowledge base:

ARTICLE-ID: Q175396
TITLE : Windows Socket Connection from a Multi-Homed Computer


CAUSE

The Windows NT 4.0 (and earlier) redirector used the following logic to establish a NetBIOS session:

  • Place a call to the destination name on all bound transports, in the order they are bound.


  • Wait for the "primary" (first-bound) transport to complete, and if it was successful in reaching the target, set up a session on it and disconnect (cancel) the other calls.


In the case of a computer that is multihomed on two connected (by a router) networks, if the target system is on only one of those networks, there are two paths to the target system. In this case, the call succeeds on both paths, and the "primary" transport (for example, the local source IP address associated with that binding of NetBT) is the chosen one. The other call is cancelled. This means that the less optimal path (through the router) may win out over the more optimal (direct) path. In this case, packets sent from the multihomed computer are internally routed to the directly connected subnet (because the route table shows a direct route to it), but packets sent in response from the target system traverse the router. This scenario can be confusing to troubleshoot.


RESOLUTION

A Windows NT redirector has been produced that allows a new configurable behavior, accepting the first transport to complete a call, and immediately canceling the calls on the others. A new version of NetBT that supports better handling of multiple calls and cancels is also available.

To take advantage of this improvement, a registry parameter must be added as follows:

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters


   Value Name: IgnoreBindingOrder
   Value type: REG_DWORD
   Default: 0

   Setting this value to "1" causes the redirector to accept the first
   transport to complete a call, rather than waiting for success or failure
   on the "primary" transport. 


STATUS

Microsoft has confirmed this to be a problem in Windows NT version 4.0. This problem was corrected in the latest Microsoft Windows NT 4.0 U.S. Service Pack. For information on obtaining the service pack, query on the following word in the Microsoft Knowledge Base (without the spaces):

S E R V P A C K


MORE INFORMATION

This problem and hotfix do not apply to Windows Sockets-based connections. When a Windows Sockets application places a call from a multi-homed host the best local source address is chosen automatically (using the route table), unless the application specifies otherwise by choosing a local IP address to use in the bind() call.

Keywords : kbnetwork kbbug4.00 kbfix4.00 nttcp kbfix4.00.sp2 NTSrvWkst
Version : 4.0
Platform : winnt
Issue type : kbbug


Last Reviewed: February 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.