This content may be out of date. See details in a posting to openafs-info mailing list. Please edit this page and add status details to this paragraph as appropriate.

A circa-2008 version of this content is available as HTMLHelp from TommieGannert's site.

Configuration Reference Guide

Introduction

Once you have installed ?OpenAFS for Windows onto your computer, there are two programs you will be concerned with: the AFS Client (Credentials Manager), and the AFS Client Configuration program. Many of the options in ?OpenAFS can be set from both programs. This is a source of confusion, which this guide will try to sort out.

Because this is a reference, the programs will be described in order, screen by screen. At the end, files and Windows Registry keys will be described.

Credentials Manager

This program is located in C:\Program Files\OpenAFS\Client\Program\afscreds.exe (default location). It is used for managing end-user tasks. This includes obtaining tickets and setting up per-user drive mappings.

Command Line Options

If you intend to run afscreds.exe from a command line, the following options may be of interest to you. NB: The flags are case-insensitive, and can begin with either - (� la Unix) or / (old Windows style).

-A
Auto Initialize. Starts the AFS service if it is stopped. Tries to obtain tokens when the Credentials Manager is started.
-E
Exit. Terminate another, already running, instance of Credentials Manager. Then exit this instance.
-I
Install in Startup. Make the Credentials Manager start when the user logs in.
-M
Renew Drive Mappings. Unmaps all drive mappings and then remaps them when the Credentials Manager is started.
-N
Net Change Detect. Tells the Credentials Manager to ask the user for new tokens if a network interface changes its IP address.
-Q
Quiet. Do not notify the user if the AFS service is not started when the Credentials Manager is begin started.
-S
Show Tokens. Open the tokens window on start.
-U
Uninstall. Remove Credentials Manager from Startup. The Credentials Manager will no longer start automatically when the user logs in.
-X
Remap All. Remap all drives, including global drives.
-Z
Unmap All. Unmaps all per-user drives.

Tokens

The Tokens Tab displays brief information about your AFS tokens. It shows your current cell, and when the tokens expire. It lets you obtain (or renew) tokens (kauth/kinit in Unix) and make it sound an alarm if they will be expiring any time soon. If you have sensitive information in AFS, you can discard (kdestroy) tokens when away.

?OpenAFS and roaming profiles are a problematic issue. Windows does not notify ?OpenAFS when it is done putting the profile back into AFS. This means ?OpenAFS has no way to safely discard tokens when you log out, given you are using roaming profiles. When using a local profile, the tokens are discarded when you logout. See also the WindowsTroubleshootingGuide on this matter.

The Credentials Manager can make use of MIT Kerberos for Windows, if installed. This lets you use ?KerberosV tickets directly in the AFS Credentials Manager. Thus, there is no longer a need to have a third party Credentials Manager running. This window also shows what version of ?OpenAFS you are currently running.

Drive Letters

A fundamental entity in the Microsoft Windows operating systems is the drive. A drive is identified by one letter and a colon. Masking a network file system as a drive is called "mapping a drive."

Mapping a drive in ?OpenAFS requires you to know three things. You will have to know what drive you want to map, what AFS path to map from, and what to call the mapping. The first two should be obivous. If you are used to Unix, however, note that the AFS Path is written using backslash, not slash. You also have the option to automatically reconnect the drive on login.

The Description field is not as obvious. It is an identifier for the mapping, and is called a submount. It is not a free text description. The same restrictions apply to the description as to any name of a Windows share. See the WindowsTroubleshootingGuide for more information on submounts.

Advanced

If you are an administrator, you will want to use this tab eventually. You can check the status of the AFS service, start it if needed and configure global parameters. Pressing "Configure AFS Client" brings up the "AFS Client Configuration" program, which is described in a later section.

You should always start the AFS service when the computer starts up. Otherwise, you will have to start the service manually. This is equivalent to using the "Services" tab of Windows Administration Tools". This applies to all users.

The "Always show the AFS Client icon in the taskbar" option sets whether the Credentials Manager should be started on each login or not.

System Tray

A padlock is the icon for AFS Credentials Manager. It is locked when you have valid tokens, and has a small red cross when you do not.

Clicking it brings the Credentials Manager up. Right-clicking opens a three-item menu. "Remove Icon..." will ask if you want to stop the AFS service or not. The Credentials Manager will then exit.

Client Configuration

This program is located in C:\Program Files\OpenAFS\Common\afs_config.exe (default location). The configuration utility can perform most operations of the Credentials Manager, and more. In fact, the Client Configuration is not able to obtain tokens, but everything else can be updated with it.

When installed, ?OpenAFS also installs this program as a Control Panel applet, called "AFS Client Configuration". No matter what you call it, the functionality is the same.

General

The General Tab of the AFS Client Configuration provide roughly the same functionality as the Advanced Tab of the Credentials Manager. The Cell Name identifies the default authentication cell. The root.afs volume of this cell is used to identify which cells to present at the root. Your default cell must have AFSDB-records in DNS, or/and be listed in CellServDB (see AFS Cells below). At the bottom, you will find the same Start / Stop Service as in the Credentials Manager.

The three other options are:

  • Obtain AFS tokens when logging into Windows enables the Integrated Logon feature.
  • Provide an AFS Light Gateway gives you access to the ?OpenAFS submounts from other computers.
  • Show the AFS Client icon in the taskbar will start the Credentials Manager if it is not already running.

Drive Letters

Mapping drives and creating submounts work the same way as for the Credentials Manager. Please refer to the section above.

Preferences

Since AFS can mirror both files and volume information on several servers, there must be a way to determine which server to contact. In ?OpenAFS for Windows, this is specified using the Server Preferences screen. Normally, you will never need to manually change the preferences of the servers. However, if you are doing load balance testing or if you are stress-testing a server, you may want to set preferences here.

You can also import the rankings from a file. The file is a text file with one line per server. Whitespaces separate the server name from the ranking number. Note that the servers are imported to the active list (File Server or Volume Location Server).

AFS Cells

Before ?OpenAFS was able to handle AFSDB-records in DNS, the CellServDB file contained the explicit mappings between cells and servers. The AFS Cells Tab shows the cells currently in the CellServDB. You add a cell and list its associated servers. Most large sites copy the CellServDB directly from the network, to keep it in sync.

Advanced

Finally, the Advanced Tab. This is where you configure the heart of ?OpenAFS for Windows. Most of these settings already have a best-practice value. Be warned that changing these settings can cause ?OpenAFS to be slow, or to stop working at all.

In the Cache Configuration section, there are four options:

  • Cache Size determines the maximum disk cache size. The disk cache is a file, and it will always have the chosen size. I.e. it will not shrink if possible. The defualt is 20 MB. If you are editing large files, you may want to increase the cache size. Note that ?OpenAFS for Windows does not have a persistent cache. This means the cache will be flushed each time the ?OpenAFS service stops. The Unix versions of ?OpenAFS does have a persistent cache.
  • Cache Path holds the path to the file acting as disk cache. The default is C:\AFSCache.
  • Chunk Size is the smallest transfer unit. The cache works by caching chunks of files, not necessarily entire files. It should be set to a size which is fast to transfer over the network, yet large enough to avoid lots and lots of transfers. The default is 32 kB. It must be an even power of two.
  • Status Cache describes file meta information caching. 1000 entries is the default.

Logon Settings

Change the behavior of the Integrated Logon feature. The login retry interval sets how long (in seconds) ?OpenAFS will try to obtain initial tokens. Fail Logins Silently controls whether you will get a message box telling the reason for the failure.

Setting "Fail Logins Silently" to "No" also affects the function of the retry interval. When the interval has passed, you will be asked whether to start the timer over or not. If you choose to start over, another retry interval will be used to try and obtain the tokens.

Diagnostic

Due to the complexity of ?OpenAFS, the error and trace logging facilites have evolved into a detailed tracer of execution. The buffer is a ring, and the default size is 5000 kB. You can read this buffer using the osidebug program.

"Trap On Panic" is used during development. It is only useful if the AFS service crashes. If set to "Yes" (default), a crashed service will start the system debugger. (Actually, it sends an IRQ 3.) Note that the option is ignored if the system does not have a debugger installed.

"Report Session Startups" will let the AFS service send an event to the Windows Event Log each time a new SMB/CIFS session is started. Default is "No".

Global Drives

In a highly networked environment, it is not uncommon to read login scripts from the network. This, of course, requires the scripts to be accessible by login time. Since the per-user drive mappings are executed after the scripts are executed, the global drive mappings can be used. These affect all users, and can only be modified by an Administrator.

Binding

Before ?OpenAFS for Windows began to use the WindowsLoopBackAdapter, it used physical network interfaces to bind to. In certain situations, the default choice may be a bad one. For instance, when the network interface connects directly to the Internet, this would be a bad idea. With the Loop Back Adapter, this is no longer an issue.

Miscellaneous

These settings are hardly ever changed. They control system specific settings.

  • Probe Interval determines how often to check file servers. AFS is designed through the principle of callbacks. The file servers are obliged to notify each client if a subscribed file changes. This setup is not guaranteed to work if the servers lose the subscription list. Therefore, the client probes the servers regularly. Note: currently this setting is not permanently stored in the Windows Registry. It is only induced in a running AFS Client Service.
  • Background Threads controls how many AFS network threads will be running. One thread is able to handle one request from an AFS server at any time. Default is four threads.
  • Service Threads controls how many SMB/CIFS threads will be running. If your computer is a single user machine, not doing any video or audio editing, a low number should suffice. It is possible that a higher number will get better performance for many parallel file accesses. Default is two threads.
  • System Name is the value of "@sys". It should never be changed. Default is currently "i386_nt40" for Windows NT/2000/XP/2003.
  • Mount Directory is really "Mount Root". It is used when resolving symlinks. Microsoft Windows does not know about symbolic links, so the AFS Client Service must convert them. If a symlink target begins with the Mount Directory string, it will be transformed into an absolute path of the form \\AFS\ALL\.... Default is /afs. There is generally no need to modify this value.
  • Root Volume is the name of the root volume of the default cell. Default is root.afs, and is the recommended AFS root volume name.

Settings Without a User Interface

Currently, some options have not yet been given a proper user interface. These can be changed directly in the Windows Registry using regedit.

Netbios Name

As the AFS service publishes its services as SMB/CIFS shares, there must be a name of this service. The NetbiosName (type expanding string) value of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters can change this. The default is "AFS". Change this to "%COMPUTERNAME%-AFS" to revert to the old behavior.

Encryption of Network Traffic

Historically, AFS did not support encrypted network traffic. This has changed in recent years. The support is off by default in order to be compatible with old servers. You enable and disable encryption through the value SecurityLevel (type DWORD) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters. Set to 1 to enable and 0 to disable.

Freelance Client Support

This option can be set during installation. After installation, a registry entry must be edited. It can be found in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters and is called FreelanceClient (type DWORD). Set it to 1 to enable Freelance Mode. See the Troubleshooting Guide for more information on Freelance Mode. Default is zero (disabled).

Freelance Root Setup

To be able to use Freelance Mode, the AFS Client Service needs to know which cells should be visible. This is equivalent to mounting root.cell volumes in root.afs. If there are no volumes described when the AFS Client Service first starts, the default cell is inserted into the list (including a forced R/W volume).

To change the list, you need to edit the values under HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\Freelance. The values must be named with consecutive integers, starting from zero. Each value describes one volume to be mounted. The syntax is

    mountpoint#cell:volume.\n
    mountpoint%cell:volume.\n

Note the trailing dot and newline (ASCII 10) characters. The first line (with a hash) describes a normal volume, the second (with a percent sign) describes a R/W volume. R/W volume mountpoints usually begin with a dot. For instance, the keyed values

    0 = openafs.org#openafs.org:root.cell.\n
    1 = .openafs.org%openafs.org:root.cell.\n

will make two volumes available, one normal and one forced R/W.

Hiding Dot-Files

On Unix, a dot-file is a file which begins with the dot character. It is semantically similar to the Hidden attribute used in Windows. This feature is enabled by default and marks all dot-files with the Hidden attribute. The value HideDotFiles (type DWORD) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters can disable it (by giving it the value 0).

Hiding the \\AFS\all Share

The share all is exported by default, and is defined as the root volume of the default cell. If you do not want this share to be defined, you can set AllSubmount (type DWORD) to 0, in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters.

Tweaking the SMB Connections

Four values in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters affect the SMB connections:

  • MaxMpxRequests (type DWORD) is the maximum number of multiplexed SMB requests that can be made. Default is 50.
  • MaxVCPerServer (type DWORD) is the maximum number of SMB virtual circuits. Default is 100.
  • NoFindLanaByName (type DWORD) disables the attempt to identity the network adapter to use by looking for an adapter with a display name of "AFS", if set to 1. Default is 0.
  • SMBAuthType (type DWORD) defines the type of SMB authentication which must be present in order for the Windows SMB client to connect to the AFS Client Service's SMB server. The values are
    • No authentication required (0)
    • NTLM authentication required (1)
    • Extended (GSS SPNEGO) authentication required (2, default)

Heavily loaded clients may need to increase the first two values.

Running the default authentication type, GSS SPNEGO, requires you to have the cifs/HOST$@REALM principal in your ?KerberosV KDC. If you Windows client computer is called adam.openafs.org, the principal should (probably) be cifs/ADAM$@OPENAFS.ORG. This works like the host principal, and must share the secret key with the host principal. Note: The name of the virtual SMB share is AFS if you use the WindowsLoopBackAdapter. But you must not have the principal cifs/afs principal in any realm you login to.

If the CIFS principal is missing, the client will revert to using NTLM authentication.

Also, you can explicitly set the Client Side Caching Policy of a SMB share by populating HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\CSCPolicy\ with values. The values (type string) are keyed by the submount (Windows share) name. Valid policy values are:

  • disable Which totally disables Windows Client Side Caching.
  • programs Disables the cache for files that are opened for reading.
  • documents All files will be cached.
  • manual Selected files will be cached.

Note that CSC is something Windows can do with all CIFS shares. The setting is used for responding to Windows requests about the policy. AFS itself has its own caching which is not involved in CSC. Read more in Windows Clustering.

Connection Timeouts

In HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters, two values control when connections are considered dead.

  • ConnDeadTimeout (type DWORD) Default is 60 seconds.
  • HardDeadTimeout (type DWORD) Default is 120 seconds, and it must be at least twice the ConnDeadTimeout value.

Tweaking RPC Traffic

In HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters, two values control how RX transfers data.

  • RxNoJumbo (type DWORD) If enabled, does not send or indicate that we are able to send or receive RX jumbograms. Default is 0, which means jumbograms are used.
  • RxMaxMTU (type DWORD) If set to anything other than -1, uses that value as the maximum MTU supported by the RX interface. In order to enable ?OpenAFS to operate across the Cisco IPSec VPN client, this value must be set to 1264 or smaller. Default is -1, the maximum.

Enabling Debug Trace Events

Normally, the TraceOption (type DWORD) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters is 0, meaning no traces will be sent to the Application Event Log. Setting it to 1 enables trace output.

Restricting the Number of Utilized CPUs

For most part, the ?OpenAFS client can use as many processors as available. However, using multiple processors on a Hyperthreaded Pentium 4 system can cause the ?OpenAFS service to crash. If you have such a system, you should set MaxCPUs (type DWORD) (in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters) to 1. The default is undefined, and means all processors may be used.

Moving the CellServDB File

The registry setting CellServDBDir (type string) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider specifies the base directory of the CellServDB file. Note that the filename CellServDB is appended to this path. The default is C:\Program Files\OpenAFS\Client.

Moving the Integrated Logon Support File

?OpenAFS installs very few files outside its directory in Program Files. The Integrated Logon DLL, afslogon.dll, is an exception. It is installed in %WINDIR%\SYSTEM32 by default.

To change this location you must update the registry value AuthentProviderPath (type string) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider to point to the new location.

Allowing More Time For the Service To Start

When the AFS Client Service starts, it has to read files, the registry, DNS information, and connect to servers. All of this may take quite some time. On slow computers, the default retry policy can be too short.

In this case, the LoginRetryInterval (type DWORD) and LoginSleepInterval (type DWORD) values in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider can be increased. If the ?OpenAFS client service has not started yet, the network provider will wait for a maximum of LoginRetryInterval seconds while retrying every LoginSleepInterval seconds to check if the service is up. This setting is domain-specific; see below.

Running a Logon Script

You may set LogonScript (type string or expandable string) of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider to any runnable script or program. Default is to not run any program. This setting is also domain-specific; see below.

Integrated Logon Usage

Utilization of the Integrated Logon feature can be set on a per-domain basis. The value is called LogonOptions (type DWORD) and can be found in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider. Setting this to "0" disables Integrated Logon, and a "1" enables it. Default is enabled. If you set this to "2", you enable the ?OpenAFS High Security mode, and setting it to "3" enables both High Security Mode and Integrated Logon.

High Security mode is a deprecated techinque to let several users logon to the same computer at once. Since ?OpenAFS now supports authenticated SMB connections, there is really no need for this mode. If you still want to use this mode, you should disable SMB Authentication. See "Tweaking the SMB Connections" on this matter.

Integrated Logon Silence

In the Client Configuration, you may choose whether the Intergrated Logon should warn when you cannot logon, or if it should not. Since this setting is domain-specific, here is the background. The FailLoginsSilently (type DWORD) in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider can be set to 1 to ignore any failures. Default is to warn (i.e. a value of zero).

Disable Automatic Use of ?KerberosV

If you have MIT Kerberos for Windows installed, and you do not want to let AFS Credentials Manager use it, you can disable it by setting EnableKFW (type DWORD) in SOFTWARE\OpenAFS\Client. This can be done in either of HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER.

Changing the Default Authentication Cell

In some rare cases, you may want to authenticate to one cell, but keep using another cell as your home. You can do this by entering the authentication cell each time you obtain new tokens. If you intend to do it regularly, you can change it in the registry.

The value Authentication Cell (type string) in HKEY_CURRENT_USER\SOFTWARE\OpenAFS\Client can be set to another cell name than the default cell.

Changing the Parameters of AFS Credentials Manager

When the AFS Credentials Manager starts, it recreates the Start Menu and Startup shortcuts to enforce the parameters given during installation. These parameters are stored as AfscredsShortcutParams in SOFTWARE\OpenAFS\Client. It can be set for both HKEY_LOCAL_MACHINE and for HKEY_CURRENT_USER. Default is -A -M -N -Q. See above for an explanation of these parameters.

Per Domain Options

?OpenAFS for Windows is now able to support domain-specific settings. Four of the settings in the previous section can be adjusted on a domain basis:

  • Allowing More Time For the Service To Start
  • Running a Logon Script
  • Integrated Logon Usage
  • Integrated Logon Silence

This is a new feature of ?OpenAFS 1.3.6, and is not yet supported by the configuration user interface. While being a usable feature, we choose to document, so that you can still use it. A new configuration interface is hopefully on its way.

All values that can be domain-specific are located under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider. Domains which want to have specific settings can create the subkey Domain\_domain_\ and store the values there. The domain name is the logon domain, as specified in the Windows Login screen. A special domain, called LOCALHOST, is a placeholder for the local computer. Any other Active Directory or Kerberos realm should use its realm name for the key.

Resolution of Domain Specific Values

As a consequence of this scheme, there must also be set rules for resolving which value to use. Let us use the following example in the discussion:

...\NetworkProvider\  LogonOption = 1
    Domain\             LogonOption = 0
        OPENAFS.ORG\     LogonOption = 1
        MIT.EDU\
        LOCALHOST\      LogonOption = 0

If the specific domain key does not exist, then the Domain key will be ignored. All the configuration information in this case will come from the standard NetworkProvider key.

If the specific domain key exists, then the value will be looked up in the specific domain key, domains key and the NP key successively until the value is found. The first instance of the value found this way will be the effective for the login session. If no such instance can be found, the default will be used. in other words, a value in a more specific key supercedes a value in a less specific key.

Back to our example. Logging in to domain OPENAFS.ORG clearly enables the Integrated Logon. Logging on the local computer disables it. Logging in to MIT.EDU will also disable Integrated Logon, because the domain key exists, but misses a value. This resolves to using the value of Domain\LogonOption. However, logging in to KTH.SE would enable Integrated Logon. It is not listed as a domain, and thus the NetworkProvider\LogonOption is used. In order to retain backward-compatibility, there are two exceptions to this resolution order.

Exceptions To the Resolution Rule

Historically, the 'FailLoginsSilently' value was in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters key and not in the NetworkProvider key. Therefore, for backward compatibility, the value in the Parameters key will supercede all instances of this value in other keys. In the absence of this value in the Parameters key, normal scope rules apply.

The second exception is for the LogonScript value. If a LogonScript is not specified in the specific domain key nor in the Domain key, the value in the NetworkProvider key will only be checked if the effective LogonOptions specify a high security integrated login. If a logon script is specified in the specific domain key or the domains key, it will be used regardless of the high security setting. Please be aware of this when setting this value.

Windows Registry Keys of ?OpenAFS

During the preparation of this release of ?OpenAFS, a lot of changes have been made to the way configuration is stored. The work is still not finished; the list of registry keys currently used can be found here.