Configuring SLP for a NetWare Server

(Last modified: 09Sep2005)

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

goal

Configuring SLP for a NetWare Server

fact

Formerly TID 2951564

fix

This is one document in a series of documents that are designed to provide network administrators with 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:

Frequently Asked Questions about SLP
Configuring a LAN/WAN Infrastructure for SLP
Configuring SLP for a NetWare Client
Configuring SLP for a NetWare Server
SLP Design and Implementation Guidelines
SLP Terms and Configuration Reference

DISPLAY COMMANDS:

DISPLAY SLP SERVICES
This command will display all SLP Services that are stored in the SLP Service database for any particular server. This command is frequently used to detect if SLP Services are missing from some or all servers at a site when SLP Clients at the same site are receiving error when trying to locate SLP Services. See Solution Document 10014396, SLP Terms and Configuration Reference  for a list of documented SLP Services.  It is recommended that there be no more than 10,000 services registered per scope.

DISPLAY SLP ATTRIBUTES [SLP Service Type] [restriction clause]
This command can be used to display the attributes of a particular SLP Service. This information is not formatted with any attribute names, the attributes are reported in the order that was defined for the NDS Object class and are separated by commas. A restriction clause will restrict which attribute information is given.

Examples:

DISPLAY SLP ATTRIBUTES service:ndap.novell: svcname-ws

 - This displays only the svcname-ws attribute of any ndap.novell SLP Services.

DISPLAY SLP ATTRIBUTES service:ndap.novell:

 - This displays all attributes for the ndap.novell SLP Services.

Valid service:bindery.novell attributes:

slp-version
reports the version of SLP.NLM in a slightly different format (NLM shows 1.04, attributes shows 1.4.0).

enabled-ws
Indicates whether the SLP Service is active (TRUE) or inactive (FALSE).

version-ws
DS.NLM version running on the server that registered the SLP Service.

svcid-ws
The assigned WINSOCK GUID. WINSOCK standards suggest that all WINSOCK services have a unique GUID.

svcaddr-ws
Lists the different addresses that the service can be contacted on. Each entry has a protocol code followed by the address (in hex).
For example, if the svcaddr-ws contains the following three entries:
2-2-17-979BE206020C0000000000000000
6-2-1000-0A9ED59800000000000104510000
2-1-6-979BE206020C0000000000000000

The 2-2-17 and 2-1-6 represent the protocol codes for TCP and UDP. the 979BE206020C represents the IP address in Hex (97=151, 9B=155, E2=226, 06=6, 020C=524, so the IP Address is 151.155.226.6 and the port is 524 which is one of the registered SLP ports for both TCP and UDP).

The 6-2-1000 represents the protocol code for IPX. The 0A9ED598 is the Internal IPX Network Address, 000000000001 is the Node, and 0451 is the socket for NCP.

svcname-ws
The SLP Service Name, which is the server name for this SLP Service (i.e. NDS1_FS)

Valid service:ndap.novell attributes:
svcname-ws
The SLP Service Name, which is the partition name.tree name for this SLP Service. For example, if the tree name is COMPANY_TREE and it has three partitions [Root], NYC.Company, and LA.Company, then you will see the following values when doing a DISPLAY SLP SERVICES (will see the information in the same format when doing a DISPLAY SLP ATTRIBUTES SERVICE:NDAP.NOVELL:):

Searching Network . . .
 service:ndap.novell:///COMPANY_TREE.
 service.ndap.novell:///NYC.Company.COMPANY_TREE
 service.ndap:novell///LA.Company.COMPANY_TREE

svcaddr-ws
Lists the different addresses that the service can be contacted on. Each entry has a protocol code followed by the address (in hex). For example, if the svcaddr-ws contains the following three entries:
2-2-17-979BE206020C0000000000000000
6-2-1000-0A9ED59800000000000104510000
2-1-6-979BE206020C0000000000000000

The 2-2-17 and 2-1-6 represent the protocol codes for TCP and UDP. the 979BE206020C represents the IP address in Hex (97=151, 9B=155, E2=226, 06=6, 020C=524, so the IP Address is 151.155.226.6 and the port is 524 which is one of the registered SLP ports for both TCP and UDP).

The 6-2-1000 represents the protocol code for IPX. The 0A9ED598 is the Internal IPX Network Address, 000000000001 is the Node, and 0451 is the socket for NCP.

svcid-ws
The assigned WINSOCK GUID. WINSOCK standards suggest that all WINSOCK services have a unique GUID.

version-ws
The DS.NLM version running on the server that registered the SLP Service.

nds version
The DS.NLM version running on the server that registered this SLP Service.

enabled-ws
Indicates whether the SLP Service is active (TRUE) or inactive (FALSE).

DISPLAY SLP DAs
This command will display all SLP DAs known to a server. Will display the DAs using the following format:

IP Address Status Scope Source
121.232.121.232 Active 'UNSCOPED DA' NDS
232.121.232.121 Inactive Company_Site DISCOVERED BY MULTICAST

Field Comments:

IP Address - Will always display the IP address and never the host name (though one can be given in the SLP.CFG). This is because a single host name may have multiple IP addresses.

Status - Can be Active or Inactive. The DA will be marked inactive when it is initially discovered. The DA will be marked active after it has been pinged successfully. A DA will timeout and marked inactive if it fails to respond to requests.

Scope - The scope the DA is registered in. See TID 2951567 for more information on Scopes.

Source - Is the Discovery method used to find the DA. RFC2165 defines three methods: MULTICAST, DHCP, and Static (SLP.CFG). The Novell implementation supports these methods and adds a fourth method to locate a DA via NDS.

TROUBLESHOOTING COMMANDS:

SET SLP DEBUG = 0
This concatenated binary setting controls multiple options for what information is displayed on the SLP DEBUG screen (or to the SLP Log file if the SLP OPEN [filename.log] command is active). The following are the binary flags that can be ON/OFF (set = ON, unset = OFF):

COMM
hex 0x01 (decimal 1 ; binary 00000001)
Displays Transmit/Receive UA Functions (i.e. SLP Service Request, Type Request, or Attribute Request) and SLP Service Register/Deregister. Will normally have a "tx" or an "rx" in front of any lines in the Debug screen or Log file.

TRAN
hex 0x02 (decimal 2 ; binary 00000010)
Displays TCP communications information/detail including TCP data transmissions, TCP packs, TCP communication failure (no Ack), building TCP connections, tearing down TCP connections, etc...

API
hex 0x04 (decimal 4 ; binary 00000100)
Display any API Requests and Replies (includes return data). This includes API requested issued by DS components.

SA_DA
hex 0x08 (decimal 8 ; binary 00001000)
Displays Registers/Deregisters sent to the DA on this server from any SAs. If SLPDA is not loaded on this server, this debug option will not display any information.

ERROR
hex 0x10 (decimal 16 ; binary 00010000)
Will display most error conditions that the UA, SA, and DAs experience. This would include a "Route Not Found" for UDP communications or an "Unable to Allocate Memory" condition.

SA
hex 0x20 (decimal 32 ; binary 00100000)
Displays Registers/Deregisters sent from the SA on this server to any Active DAs. This does not show remote SAs registering to a DA on this server.

UA_DA
hex 0x40 (decimal 64 ; binary 01000000)
Shows any UA Request and Replies being received/sent to/from the DA on this server. These UA Request include Service Requests, Attribute Request, and Type Requests.

The SET SLP DEBUG commands reads any value in decimal. So if you wanted to turn on multiple debug triggers, you would need to add up the different trigger values in decimal and then SET SLP DEBUG to the total value. For example, if you wanted to enable the Debug options for  SA_DA, ERROR, and UA_DA you would need to set SLP DEBUG = 88. You can simply add up the numbers that are associated with the options you want enabled (i.e. 8 + 16 + 64). The value 88 has a binary value of (01011000) so the 2nd, 4th,  and 5th binary flags are enabled.

SLP OPEN <Filename.Log>
This command will redirect all information reported on the SLP DEBUG to the specified filename. If the SLP DEBUG is set to 0 (disabled), then no information will be placed in the Log file. The Log file cannot be accessed until the SLP CLOSE command is issued to release the lock on the file.

SLP CLOSE
This command will stop the logging of information from the SLP DEBUG screen. This command must be issued before the Log file can be accessed. This command does not require a filename, since there can only be one log file in use by the SLP OPEN command.

SLP CONFIGURATION COMMANDS:

SLP BROADCAST = OFF (Default)
Valid Values: ON, OFF
This setting changes MULTICAST requests into broadcast requests. The disadvantage to this are that broadcasts is not routed, so the DA would have to be on the same broadcast domain as the SA with the SLP BROADCAST = ON setting to be discovered.

SET SLP CLOSE IDLE TCP CONNECTIONS TIME = 300 seconds (Default)
Valid Values: From 0 to 86400 seconds
This parameter specifies the number of seconds before idle TCP connections should be torn down/destroyed.

SLP DA DISCOVERY OPTIONS = 15 (Default)
Valid Values: From 0 to 15
This concatenated binary setting controls multiple options for how DAs are discovered. The following are the binary flags that can be ON/OFF (set = ON, unset = OFF):
0x01 (binary 0001) - Dynamic Discovery
0x02 (binary 0010) - DHCP Discovery
0x04 (binary 0100) - Static Discovery
0x08 (binary 1000) - Disable Dynamic Discovery IF Static or DHCP configured DA is valid

For example, if you wanted to set DHCP Discovery, Static Discovery, and Disable Dynamic if Static/DHCP configured DA is valid you would need to set SLP DA DISCOVERY OPTIONS = 14. You can simply add up the numbers that are associated with the options you want enabled (i.e. 2 + 4 + 8). The value 14 has a binary value of 1110 so the last 3 binary flags are enabled when they are checked against a bit-wise AND operation against 15 (binary 1111).

SET SLP DA EVENT TIMEOUT = 15 (Default)
Valid Values: From 0 to 120 seconds
How many seconds to wait before timing out a request to a DA. For an Active DA, this request will be retried as configured on the SET SLP RETRY COUNT and has the following basic nested loop logic:

FOR I = 0 to SLP RETRY COUNT
 Attempt SLP Request
 WHILE (CURRENT_TIME - INITIAL REQUEST_TIME) < SLP DA EVENT TIMEOUT
   Wait for Response
 END WHILE
END FOR

SET SLP DA HEART BEAT TIME = 10800 (3 hours)
Valid Values: From 0 to 65535 seconds (0 to 18.2 Hours)
This determines how often an SLP DA will send out an unsolicited "DA_ADVERT" MULTICAST to the SA's (using the SA's MULTICAST address) on the network. When an SA receives this MULTICAST DA Advertisement who had not previously discovered this DA will add it to their list and mark it active after pinging it successfully (will attempt to ping immediately after discovery). This parameter was designed to allow newly loaded SAs to discover existing DAs (although the SA would be able to discover the DA if dynamic discovery is enabled). This parameter can be disabled by setting it to 0 (not implemented until Service Pack 3), which will effectively prevent this DA from being discovered using the Dynamic method since the DA will no longer respond to SA MULTICAST requesting a DA.

SET SLP MULTICAST RADIUS = 32 (Default)
Valid Values: From 0 to 32 hops
This determines how many IP hops a MULTICAST packet is allowed to travel. For TCP/IP packets, this is called the Time To Live (TTL) counter. Every time the packet crosses an IP router (or is buffered in an IP router for longer than 1 second) the TTL counter will decrement by one. Once a TTL counter reaches 0, the routers will discard the packet and refuse to forward it on to interfaces that have the requested MULTICAST address registered.

SET SLP MTU SIZE = 1450 bytes (Default)
Valid Values: From 0 to 24682 bytes
The Maximum Transmission Unit size that an SLP packet will be allowed (i.e. the SLP packet, including it's header, cannot be larger than this parameter).

SET SLP RETRY COUNT = 3 (Default)
Valid Values: From 1 to 128 retries
This parameter control how many times an SLP Service Request, Type Request, or Attribute Request will be retried before the request is failed. See the logic in the SLP DA EVENT TIMEOUT parameter for how this is applied.

SET SLP REDISCOVER INACTIVE DIRECTORY AGENTS = 60 (Default)
Valid Values: From 0 to 86400 seconds (24 hours)
This parameter determines how often to try and re-contact a DA after the SLP DA EVENT TIMEOUT has occurred with no response from the DA. This parameter is tracked per DA. After each failed attempt to recontract the DA, it will add the value of the SLP REDISCOVER INACTIVE DIRECTORY AGENTS parameter again. There is a maximum number of retries for each Inactive DA. This is supposed to try 15 times. The following is an illustration of how this would work:

1. Service request to DA fails.
2. The SLP REDISCOVER INACTIVE DIRECTORY AGENTS is set to 60, so the DA entry is marked inactive and the DA is scheduled to be contacted in the next 60 seconds.
3. The attempt to rediscover the DA occurs approximately 60 seconds later and no response is received within the SLP DA EVENT TIMEOUT period.
4. The Rediscover Inactive DAs value for the particular Inactive DA is increased by 60 (so now it is 120 seconds).
5. The next attempt to contact the DA occurs approximately 120 seconds later and no response is received within the timeout period.
6. The Rediscover Inactive DAs value for the particular Inactive DA is increased by 60 (so now it is 180 seconds).

This process repeats until the Rediscover Inactive DAs value is approximately 15 times it's original value (900 seconds). At this point the DA remains Inactive and no future attempts to rediscover the Inactive DA will be attempted.

SET SLP SA DEFAULT LIFETIME = 3600 (Default)
Valid Values: From 129 to 65535 seconds
This parameter determines the Registration Lifetime of 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 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.

SET SLP SCOPE LIST = [blank by default which indicates the UNSCOPED Scope]
Valid Values: Any string less than 184 characters in length
This parameter informs the SA what scopes it participates in. Will be used to determine which DAs the SA will need to register and deregister services with.

SET SLP TCP = OFF
Valid Values: ON, OFF
This parameter determines whether the TCP protocol is preferred for SLP communication over UDP.  Novell recommends that this setting be set to off.  Off is the default setting.
.

document

Document Title: Configuring SLP for a NetWare Server
Document ID: 10027163
Solution ID: 1.0.57483234.2554258
Creation Date: 23Feb2000
Modified Date: 09Sep2005
Novell Product Class:NetWare
Novell eDirectory

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.