This topic illustrates how to configure the provider for SLPv2.
Most SMI-S servers install and enable SLP as part of the installation process. Depending on the vendor, this might be implemented through the native OpenPegasus implementation, OpenSLP 1.x or OpenSLP 2.x. The only fully supported implementation for the storage service is OpenSLP 2.0.
In general, SLP is implemented by using the OpenSLP open source project. This consists of an SLP API (often called SLP.dll) and a daemon, or Windows servce, called slpd. The slpd is required by all OpenSLP implementations, but is not configured by default. At this time, OpenSLP v2.0.0 is the preferred implementation.
OpenSLP installs with the providers as a Windows service. Therefore, you can locate it by opening the Windows services snap-in by running the services.msc snap-in. You can also find this through the Administrative Tools start menu group, and via Server Manager.
If OpenSLP is installed, you will see an entry for Service Location Protocol. If you don’t have OpenSLP, you will need to contact your storage vendor.
To determine the OpenSLP version, follow these steps.
- Run the services.msc snap-in.
- Locate the Service Location Protocol service.
- Double-click the Service Location Protocol service to display its Properties dialog.
- Take note of the path to the executable. (Do not close the dialog yet.)
- Open a command prompt and change directories to the path to the executable from the previous step.
- Type in the following command: slpd -v
- You should see output similar to the following:
C:\Tools\SLP>slpd -v slpd version: 2.0.0 compile options: debugging: disabled predicates: enabled slpv1 compatability: enabled slpv2 security: disabled
- As previously stated, 2.0.0 is the supported version. If the version is not 2.0.0, download and install OpenSLP.
If you install a version other than the one that came from your storage vendor, you should also update the slp.dll file to the latest version with the following steps.
- Locate the file named slp.dll
- Stop the SMI-S server.
- Rename slp.dll to something else - such as slp.dll.old
- Copy the new slp.dll file to the same location.
- Restart the SMI-S server once you've fully configures SLP.
Once you have the desired version of SLP installed, ensure the service is set to Automatic and (re)start it. You may also wish to set the recovery options to restart the service if it fails using the services.msc snap-in.
slpd –install auto net start slpd
Configuration of SLPD is optional in many cases, especially where you have few SMI-S servers and they are on the same subnet as the system running the storage service. All configuration options are set through the file C:\Windows\slp.conf. This file may not exist in the C:\Windows directory. Locate the copy that is usually located in the same directory as slpd and copy it to C:\Windows.
There are a few configuration parameters that are interesting. For Windows, the configuration file is %systemroot%\slp.conf. Entries are key value pairs and are documented in RFC 2614.
To use Discovery Agents (DA), one of the daemons on each subnet should be started as a DA - and it also functions as a Service Agent (SA) for the local SMI-S server. Locate the entry below and change it from false to true.
To point an SMI-S server to one or more specific DAs including ones on different subnets. (Use IPv4 addresses only – using machine names can cause OpenSLP to fail.)
net.slp.DAAddresses=<IP addresses of DAs)
If your SMI-S system is multi-homed (has more than one network adapter), limit the advertisements to just the subnet(s) you need. This will improve performance of the storage service’s search process.
net.slp.interfaces=<relevant IPv4 addresses on this machine>
For installations with a large number of services advertising through SLP, you can setup scopes to limit the responses to only requests that have a matching scope (see below for storage service configuration).
net.slp.useScopes=<list of scopes>
Scopes are simple strings like "Storage "or "Accounting". More than one scope can be specified in which case the request can match any of the supported scopes. The default scope is DEFAULT. There are also various trace options in the configuration file in the section marked Tracing and Logging. Be careful as some of the options will result in a very large trace file (c:\windows\slpd.log). When you change any parameters, you need to restart both slpd and the agent. Oherwise, the agent may not register with the expected parameters. To do this:
- Stop the SMI-S provider.
- Restart slpd.
- Restart the SMI-S provider
If your provider is using OpenPegasus, there are two important options that need to be set. You will need to open a command prompt using the local system Administrator account; not just a prompt with administrative privileges.
Navigate to the folder that contains the cimconfig.exe utility (under Pegasus\bin) and enter these commands.
cimconfig -p -s slp=true cimconfig -p -s registerExternalOpenSLP=true
net stop cimserver net start cimserver
There is a common tool (slptool) that allows querying for SLP agents. It should be located in the same directory as slpd.exe, but you can use any version of this tool.
slptool findsrvs service:wbem
This should list all the service agents on the subnet. You might see two or more per server - for example, one service running HTTP at port 5988 and one running HTTPS at 5989.