[OpenAFS-devel] SMBDeviceEnabled/Loopback Adapter fix

James Peterson jimpeter@us.ibm.com
Fri, 5 Oct 2001 18:04:49 -0700


A Windows 2000 Client problem related to the SMBDeviceEnabled registry
entry and the Group Policy Objec problem was reported a while ago:
> OpenAFS 1.1.1a on windows xp rtm build 2600 seems to work fine (not using
> integrated login, using ms2mit and aklog for obtaining tokens) with this
reg
> key removed and finds gpo objects correctly.  With the reg key in place
it
> does not find gpo objects.

The AFS cache manager on Windows acts as an SMB Server receiving SMB
messages from Windows SMB client. The cache manager advertises itself as a
NetBIOS server.  This added NetBIOS server (in addition to the one that
Windows provided by default) works with NT NetBIOS client but does not work
with the W2K NetBIOS client.   (See
http://support.microsoft.com/support/kb/articles/Q265/8/61.asp for the
description of the problem.)  A work-around we found for this problem is to
set SMBDeviceEnabled = 0 in the registry, and this is what the current Open
AFS client does.   However, this breaks the Group Policy Objects access.

To avoid the GPO problem, we need to avoid setting SMBDeviceEnabled to 0.
The solution is to use Microsoft's Windows loopback adapter as documented
in their support knowledge base.  Below we are attaching the instructions
to install the loopback adapter manually.   This is a rather lengthy
procedure and we are investigating how to automate in the AFS client
installation program.

The following steps describe how to configure your Windows 2000 AFS client
to use the Microsoft Loopback Adapter:

Step 0: Install Windows 2000 AFS client.

Step 1: Remove SMBDeviceEnabled, or set it to 1
     :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters
     :"SmbDeviceEnabled"=dword:00000000

Step 2: Install a Microsoft Loopback Adapter (if it has not been installed
previously)
: Click Start, point to Settings, click Control Panel, and then
double-click Add/Remove Hardware.
: Click Next, click Add/Troubleshoot a device, and then click Next.
: Click Add a new device, and then click Next.
: Click No, I want to select hardware from a list, and then click Next.
: Click Network adapters, click Next, click Microsoft under Manufacturers,
and then click Next.
: Click Next, and then click Finish.

Step 3: Obtain the TCP/IP Address and the Local Area Connection Number
: At a command prompt, type ipconfig /all, and then press ENTER.
: Make a note of the local area connection (LAN) number (for example, 2)
and the TCP/IP address of the Microsoft Loopback adapter.

Step 4: Unbind the Server Service on the Microsoft Loopback Adapter
: Click Start, point to Settings, and then click Network and Dial-up
Connections.
: Click on the icon for the Local Area Connection Number you found in Step
4.
: Click on Propterties and clear the File and Printer Sharing for Microsoft
Networks check box, and then click OK.

Step 5: Add the host name in %SystemRoot%\System32\Drivers\Etc\hosts file
By using a text editor, you can create and change the Hosts file because it
is a simple text file. An example of the Hosts format is provided in the
file named Hosts in the Windows 2000 %SystemRoot%
\System32\Drivers\Etc\hosts. Edit the Hosts file (created when you install
TCP/IP) to include the AFS cache manager's NetBIOS name (working as a DNS
name here) and the IP addresses for the Loopback adapter. For example:
169.254.25.129 ComputerName-afs    #host name for Loopback adapter

(See:
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp?url=/WINDOWS2000/techinfo/reskit/en-us/prork/prcc_tcp_lesj.asp
 for more information on editing the hosts file.)

Step 6: Test the Loopback Adapter
When you have completed the above steps you should be able to map drive by
using the Loopback adapter IP address or its Domain name.  For example:
     NET USE * \\169.254.25.129\all
     NET USE * \\ComputerName-afs\all

Step 7: Reboot the machine.  After the reboot, the AFS client will start
using the Loopback Adapter by default.

James Peterson
"Integrity is the base of excellence."