Configuring SLP for a NetWare Client

(Last modified: 30Sep2005)

This document (10098246) is provided subject to the disclaimer at the end of this document.

fact

Novell Clients

Novell Clients for Windows NT/2000/XP

Novell Clients for Windows 95/98

Novell Client v4.91 for Windows 2000/XP

Novell Client 4.9 for Windows NT/2000/XP

Novell Client 4.83 for Windows NT/2000/XP

Novell Client 4.82 for Windows XP

Novell Client 4.81 for Windows NT/2000

Novell Service Location Protocol (SLP)

Novell NetWare 6.5

Novell NetWare 6.0

Novell NetWare 5.1

formerly TID 10014466

note

INTRODUCTION

 This is one document in a series of documents that are designed is to provide network administrators with the settings and other configuration parameters associated with Service Location Protocol (SLP) and the configuration of User Agents, Server Agents, and Directory Agents. This document will be periodically updated as new information becomes available or settings change in newer versions. Other related documents include:

What is SLP, Service Location Protocol
Frequently Asked Questions about SLP
SLP Terms and Configuration Reference
Configuring a LAN/WAN Infrastructure for SLP
Configuring SLP for a NetWare Client
Configuring SLP for a NetWare Server
SLP Design and Implementation Guidelines

fix

GENERAL BEST PRACTICE RECOMMENDATIONS

 Specific SLP settings for the NetWare Client are given below, along with the different environment factors to consider. This section is dedicated to the best practices for NetWare Client settings.

 SLP Multicast Radius = an appropriate number to keep SLP multicast packets on the local network only.
 SLP Active Discovery = On
 Use DHCP for SLP = On (unless you have made the decision to NEVER assign DAs via DHCP)
 Give Up on Requests to SAs = 3 seconds (assumes local servers are less than a 1.5 sec Round Trip Time from workstation)
 SLP Cache Replies = 5 minutes (long enough to keep information cached during login and ZfD Policy/NAL app search)
 Wait Before Giving Up On DA = 5 seconds (assuming DA servers have less than a 2.5 sec Round Trip Time from workstation)

  It is recommended that NetWare Clients be configured to use either 1 or 2 DAs. It is not recommended to use more than 2 as the clients will simultaneously query each on the active discovered list. This can be done as listed below under the "METHODS FOR CONFIGURING A CLIENT'S DA LIST" section. The easiest way to do this is to configure your DHCP Server to hand this information out by subnet. Other customers have also successfully used a combination of a customized Client installation (NCIMAN) and/or ZENworks for Desktops NAL applications to control the registry key/value for the Static DA assignment. Most customer do not use the active discovery as a configuration change on a router could prevent user workstations from being able to find DAs and it may not be quickly discovered.

 A common best practice is to have the user workstations attempt to contact their discovered DAs first and then fall back to multicast for local servers if the DAs are not responding/down. This is accomplished by leaving "SLP Active Discovery" set to "On". If the Client has "discovered" at least one active DA, then all requests will be made to the DA first. It will only then multicast for the SLP Services if all of the active discovered DAs fail to respond by the "Wait Before Giving Up On DA" time. This will require that the infrastructure admins leave multicast routing enabled between the client workstations and the local servers for 224.0.1.22. It is recommended that multicast routing is DISABLED on WAN port interfaces to prevent the creation of multicast storms. The general idea is to have clients be able to multicast to find servers on their local LAN, but not have those requests cross any WAN links. This can also be influenced by setting the "SLP Multicast Radius" setting to the maximum number of router "hops" between the user workstations and servers. Every time any IP packet is forwarded through a router (not a switch), its TTL value is decremented by 1. The "SLP Multicast Radius" sets the initial SLP multicast packet TTL and so will expire the packet before crossing a WAN link if set appropriately.

USER AGENT INSTALLATION

With the Novell Clients, the existence of the User Agent (UA) and Server Agent (SA) is determined at the time of installation. They are both installed when one of the following options are selected from the "Choose the network procotol(s) for the client to use" (Windows NT) or "Select a protocol(s) option for the client to use" (Windows 95/98) menu during a Client installation:

1. "IP only"
2. "IP with IPX Compatibility"
3. "IP and IPX"

Only the option for "IPX" will NOT install the User Agent and Server Agent component.

USER AGENT CONFIGURATION

SLP must be available for it to function and should preferred for use before other Service Name resolving methods (i.e. NDS, SAP, etc...) by the Novell Client .  Otherwise changing most of the SLP configuration parameters will have no functional effect on a Workstation/UA since it is either not available or is not being used to resolve service names. To ensure this see the SLP General Troubleshooting list in the next section.

The following is a list of SLP Configuration Parameters and their purpose:

Service Location Tab:

Scope List
 Default State: Empty
 Valid Values: Any entry will be accepted, but should match the same Scope name used with the SAs/DAs you wish to communicate with.

Defines what SLP Scopes the UA will participate in. Will control what DAs and SAs the UA will communicate with for SLP Service queries (if the SA/DA is not in a scope specified at the UA, the UA will not send a request or accept a response from it). The exception to this is if there is NO Scope specified, then the UA will participate in the UNSCOPED Scope. See TID 2951567 "SLP Terms and Configuration Reference" for a complete definition of SLP Scope. Scope entries can be set in a precedence order by using the Up/Down arrows. Scopes can come from three different sources, Static, DHCP, and Dynamic. As with other SLP settings, Static Scopes have a higher preference than DHCP Scopes, and DHCP Scopes have a higher preference than Dynamic Scopes for locating services.

Static (checkbox in the Scope List window)
 Default State: Unmarked (Off)
 Valid Values: Marked/Unmarked (On/Off)

Marking this will prevent the Client from dynamically adding Scopes discovered from the known active DAs. The active DAs can be checked by executing the SLPINFO command, see the SLPINFO UTILITY section below for details on how to use this.  If the Static checkbox is not marked, then when the Client discovers a DA that participates in a Scope that was previously unknown to the Client, the Client will add the Scope to it's list in memory and can now query for SLP Services in that Scope.

Directory Agent List
 Default State: Empty
 Valid Values: Any IP address for a NetWare server running SLPDA.NLM

This parameter controls what DAs a Client is statically configured to communicate with. This is not necessarily a complete list of the DAs the Client is aware. You must use the SLPINFO with the /D command to be sure of what DAs the Client has discovered and their status (Active/Inactive). See METHODS FOR CONFIGURING A CLIENT'S DA LIST below for the complete information on how a Client can discover DAs.

Static (checkbox in the Directory Agent List window)
 Default State: Unmarked (Off)
 Valid Values: Marked/Unmarked (On/Off)

Marking this checkbox will cause the following from occurring:

1. Prevent the UA sending an initial DA multicast requesting a response from all DAs that can hear the request.
2. Ignore any DA that multicasts a DA Advertisement (DA_ADVERT). Normally the UA will add any DA that does a DA Advertisement (DAs Advertise when they are first loaded and also periodically based on the Heartbeat parameter).

Essentially marking this checkbox will prevent dynamic DA discovery and only use DAs discovered using the Static or DHCP method.

Active Discovery (checkbox in the Directory Agent List window)
 Default Value: Marked (On)
 Valid Values: Marked/Unmarked (On/Off)

Unmarking this checkbox requires that the UA contact a DA for an SLP Request (prevents the UA from multicasting the request to SAs). The combination of Static enabled and Active Discovery disabled will prevent the UA from multicasting entirely. Once this setting is disabled, you are required to put at least one entry in the Directory Agent List (otherwise the UA has no method for querying for SLP services).

Advanced Settings Tab:

Give Up on Requests to SAs
 Default Value: 15
 Valid Values: 1 - 60000 seconds (16.67 hours)

Timeout in seconds for an SLP Request to an SA. This parameter is not used to timeout requests to DAs (there is a separate setting for this).

SLP Cache Replies
 Default Value: 1 minute
 Valid Values: 1 - 60  minutes

Every time the UA receives an SLP Service reply from a DA/SA, it will be cached/saved at the UA for the amount of time specified in the SLP Cache Replies parameter. When SLP receives a request it will first check it's Cache before generating a network packet to a DA/SA. If the cached information can be used to answer the request, it will be. It is not recommended to change this setting higher than one minute under normal SLP operations for the following reasons:

 1. During normal SLP communication, duplicate requests should occur within one minute of the original request, making longer caching unnecessary.

 2. The higher the setting, the more memory will potentially be required to cache this information.

SLP Default Registration Lifetime
 Default Value: 10800 seconds (3 hours)
 Valid Values: 60 - 60000 seconds (1 minute to 16.67 hours)

This parameter determines the Registration Lifetime of an SLP Service when an SA registers an SLP Service to a DA. The Novell Clients not only include the UA capabilities, but also the SA capabilities (the same as a server), so it is possible for a Client workstation to be registering SLP services with a DA. However, the it is currently unusual for a Client workstation to be registering an SLP Service as an SA. Developers can write applications that register SLP Services from a Client workstation using the WINSOCK 2 interface. Examples of cases where a Client workstation would be registering an SLP service include:

1. An NT Domain Controller running NDS4NT and a local NDS replica.
2. A Client workstation running the Compatibility Mode client (CMD) where the workstation is advertising a SAP (i.e. 0x0640). CMD will convert the SAP to SLP and register it with any DAs the client has discovered.
3. Where a third-party application is using WINSOCK to intentionally register an SLP Service.

When the Registration Lifetime of an SLP Service expires, the DAs it is registered with will remove this entry from it's database. This is also used to determine when an SA (on a Workstation or a Server) needs to Re-register a service with it's DAs. For details about when an SA re-registers a service see the SLP Time Window information in TID 2951567.

SLP Maximum Transmission Unit
 Default Value: 1400 bytes
 Valid Values: 576 - 4096 bytes

Exactly the same as the TCP/IP MTU, which is the maximum size that an SLP packet can have. This setting is used to restrict the size of the SLP packets so that it does not exceed the capability of the infrastructure and prevent resource intensive packet fragmenting and reassembly.

SLP Multicast Radius
 Default Value: 32
 Valid Values: 1 - 32 hops

This parameter specifies the maximum number of subnets (number of routers plus 1) that SLP's multicasts can travel across. A value of 1 prevents mulitcasting from crossing any router. This is implemented in the Time To Live (TTL) setting of the UDP/TCP packet. NOTE: TTL is decremented by one of two conditions:

1. The packet crosses a router.
2. The packet is buffered in a router for more than 1 second.

Use Broadcast for SLP Multicast
 Default Value: Off
 Valid Values: On/Off

This parameter forces the SLP UA to use Broadcast (all bits turned on in the Host ID portion of the address) where it would have normally used Multicast. This has the following different behaviors from Multicast:

1. Broadcast will not cross a router, so this limits the packet to the originating subnet.
2. May cause additional bandwidth usage as the packet will now have to be repeated out every switch port (some switches are capable of tracking multicast registrations and would only forward a multicast packet out the switch ports that are registered for that multicast address).

Use DHCP for SLP
 Default Value: On
 Valid Values: On/Off

This parameter determines whether the SLP UA will attempt to locate a DHCP server that can provide SLP Scope and DA configuration information. Even if the workstation's IP address is statically configured, SLP can still receive an SLP Scope and DA configuration from a DHCP server. The DHCP requests for SLP information are only sent as part of the SLP UA/SA initialization. SLP information is requested using the DHCP INFORM request and is sent in addition to the initial BOOTP Request (if the client is configured to obtain it's IP address via DHCP/BOOTP). All SLP DHCP response information is combined and then SLP contacts each DA that has been configured by DHCP to determine the scopes supported by each DA. Administrators who plan to never use DHCP to administer SLP information should set this parameter to Off to reduce the minimal traffic the broadcast for a DHCP server will require.

Wait Before Giving Up On DA
Default Value: 5 seconds
Valid Values: 1 - 60000 seconds (16.67 hours)

Timeout in seconds for an SLP Request to a DAs. This parameter is not used to timeout requests to SAs(there is a separate setting for this).

Wait Before Registering on Passive DA
Default Value: 2 seconds
Valid Values: 1 - 60000 seconds (16.67 hours)

If an SA running on the workstation receives an unsolicited DA Advertisement (i.e. either the DA just started or the DA issued a heartbeat), the SA will need to register whatever services it offers. This parameter is used to specify a range that the SAs will attempt to register their services to prevent the SAs on a network from all attempting to register with the DA at the same time. As mentioned earlier, the Client workstation may have use SLP to advertise Services it provides. However this is currently unusual, but may change in the future as applications begin to take advantage of this new advertising method.

.

METHODS FOR CONFIGURING A CLIENT'S DA LIST:

All Novell Clients (for both Windows 95, 98, and NT) can be configured for a "Directory Agent List". These entries can be either DNS names and IP addresses (assuming DNS is properly configured). The three methods are Static, DHCP, and Dynamic.

STATIC METHOD
The Novell clients can be statically configured for a "Directory Agent List". This can be done during installation using an UNATTEND.TXT file and NCIMAN.EXE. It can also be changed after installation through the Novell Client Properties GUI on the Service Location tab. If you are specifying the scope name, enter the scope name in the "Scope List" field. When entering the scope name use only the common name and not the fully qualified domain name (FQDN). For example if your scope is named FRED then just type FRED in the scope list

DHCP METHOD
If DHCP is enabled on the network then SLP information can be pushed to the Novell Client from a DHCP Server. The Client can still be using a Static IP address and receive DHCP-configured SLP information. The control for this is the "Use DHCP for SLP" Advanced Setting for the Client. If this is "ON" the Novell Client will attempt to locate a DHCP server to get the SLP configuration from, even if the IP address has been statically assigned to the workstation. The necessary DHCP tags are listed in TID 2951567.

DYNAMIC METHOD
On the Service Location tab of the Novell Client Properties page, there is a "Static" checkbox to the right and bottom of the "Directory Agent List" window. If this is NOT marked, then the Novell Client will search for active DAs during UA/SA initialization by multicasting to 224.0.1.35 and will accept any unsolicited DA Advertisements. Any server running SLPDA who can hear this initialization request will respond.

NOTE: It is possible to enable all three DA discover methods concurrently. If this is the case, it will first attempt to use the Statically assigned DA first, any DHCP assigned DAs second, and any Dynamically discovered DAs third.

TROUBLESHOOTING SLP AT THE CLIENT:

Requirements for SLP to work correctly at the Novell Client.

1. TCP/IP must be installed and correctly configured (valid IP address, subnet mask, default gateway, etc..)

2. For the Windows 95/98 Client, WINSOCK version 2.0 must be installed and active (not an issue for NT 4.0). The WINSOCK.DLL in the WINDOWS directory should be dated 3/15/1999 with an exact size of 21,504 bytes. For details about why this is required and how the Novell Client installs WINSOCK 2.0, see TID 2948322.

3. A current Novell Client must have been installed with TCP/IP support (must be at least the 3.0 Client for Windows 95/98 or the 4.50 Client for Windows NT to have this functionality). See the USER AGENT INSTALLATION section earlier in this document on what Protocol installation options.

4. The Preferred Protocol should be configured for IP. For Windows NT this setting is under Control Panel/Network/Services/Novell Client for Windows NT/Protocol Preferences/Preferred Network Protocol. For Windows 9X this setting is under Control Panel/Network/Configuration/Novell NetWare Client/Protocol Preferences/Protocol order.

5. The Client SLP Service Name Provider must be enabled and be before other potentially valid resolution methods (otherwise it will find the server/service using that method). This can be configured on Windows NT under Control Panel/Network/Services/Novell Client for Windows NT/Protocol Preferences/Protocol component settings This can be configured on Windows 9X under Control Panel/Network/Configuration/Novell NetWare Client/Protocol Preferences/Name Resolution Order.

NOTE: The order can be changed on the Novell Client for Windows 9X, but the Novell Client for Windows NT only allows disabling/enabling of a Name Provider (can't change the order).

6. The UA must be able to communicate with either a SA or a DA. The client can only discover SAs using the "dynamic" method. It uses multi-cast to send out SLP requests to an SA for all initial requests (multicast address 224.0.1.22). The client can discover DAs using static, DHCP, or dynamic methods. See "METHODS FOR CONFIGURING A CLIENT'S DA LIST" below for more information about how to provide Novell Clients with a DA name/address.

Once these conditions are met, the UA will attempt to locate SLP services by either multicasting to SAs or unicasting to discovered DAs (depending on how the Client workstation has been configured).

SLPINFO UTILITY

Novell has provided a SLPINFO program that will generate helpful information about the workstations SLP configuration. The file is named SLPINFO.EXE for the Novell Client for Windows NT and is stored in the WINNT\SYSTEM32\NETWARE directory. The file is named SLPINFO.BAT for the Novell Client for Windows 95/98 and is stored in the NOVELL\CLIENT32 directory.

The Novell Client for Windows NT SLPINFO.EXE has the following command line switches:

/D - Displays the DA List including the address, source, state, local interface, and scope.

/C - Displays the SLP Operation Parameters the same as the /O switch.

/O - Displays the SLP Operation Parameters
    Static Scopes - Default is NO
    Static Directory Agents - Default is NO
    Active Discovery - Default is YES
    Use Broadcast for SLP Multicast - Default is NO
    Use DHCP for SLP - Default is YES
    SLP Maximum Transmission Unit - Default is 1400 bytes
    SLP Multicast Radius - Default is 32 hops

/T - Displays the SLP Timers
    Give Up on Requests to SAs - Default is 15 seconds
    Close Idle TCP Connections - Default is 5 minutes
    Cache SLP Replies - Default is 1 minutes
    SLP Default Registration Lifetime - Default is 10800 seconds
    Wait Before Giving Up on DA - Default is 5 seconds
    Wait Before Registering on Passive DA - Default is 1-2 seconds

/S - Displays the actively used Scopes and their Source

/I - Displays the Local Interface information that should display the following information:
    Operation State - Default is UP
    Operating Mode - Default is MCAST
    Last I/O - Gives HH:MM:SS a/pm   MM/DD/YYYY of last SLP communication
    Total Packets - Out: 9999    In: 9999
    Total Bytes - Out: 9999   In: 9999
    Last Addr Out - 111.222.333.444
    Last Addr In - 111.222.333.444

/All - Issues the SLPINFO.EXE /O/T/S/D/I command.1

/Help - Gives the following help screen:

SLPINFO: Displays diagnostic information for the Service Location Protocol driver

SYNTAX: SLPINFO [options]

[Options]:   /D      -  Displays information about known Directory Agents
                 /C      -  Displays configured parameter settings
                 /O      -  Same as /C
                 /T      -  Displays configured timer values
                 /S      - Displays known SLP scopes
                 /I       -  Displays local interface information
                 /A      -  Displays All options listed above
                 /All     -  Displays All options listed above
                 /H      -  Displays this help screen
                 /Help -  Displays this help screen

EXAMPLES:     SLPINFO /D /S    - displays Directory Agents and scopes
                        SLPINFO /ot         - displays operational parameters and timers

The Novell Client for Windows 95/98 SLPINFO.BAT issues the following default command:

LOAD SRVLOC /B/O/T/S/D/I

/B - Displays the Service Location Diagnostics Banner

/O - Displays the SLP Operation Parameters
    Static Scopes - Default is NO
    Static Directory Agents - Default is NO
    Active Discovery - Default is YES
    Use Broadcast for SLP Multicast - Default is NO
    Use DHCP for SLP - Default is YES
    SLP Maximum Transmission Unit - Default is 1400 bytes
    SLP Multicast Radius - Default is 32 hops

/T - Displays the SLP Timers
    Give Up on Requests to SAs - Default is 15 seconds
    Close Idle TCP Connections - Default is 5 minutes
    Cache SLP Replies - Default is 1 minutes
    SLP Default Registration Lifetime - Default is 10800 seconds
    Wait Before Giving Up on DA - Default is 5 seconds
    Wait Before Registering on Passive DA - Default is 1-2 seconds

/S - Displays the actively used Scopes and their Source

/D - Displays the DA List including the address, source, state, and local interface

/I - Assumed to be the Local Interface information that should display the following information:
    Operation State - Default is UP
    Operating Mode - Default is MCAST
    Last I/O - Gives HH:MM:SS a/pm   MM/DD/YYYY of last SLP communication
    Total Packets - Out: 9999    In: 9999
    Total Bytes - Out: 9999   In: 9999
    Last Addr Out - 111.222.333.444
    Last Addr In - 111.222.333.444

At this time, the command line switch produces no visible output, appears to not be implemented in the 3.10 Client.

.

document

Document Title: Configuring SLP for a NetWare Client
Document ID: 10098246
Solution ID: NOVL102719
Creation Date: 08Jul2005
Modified Date: 30Sep2005
Novell Product Class:Netware Client

disclaimer

The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.