An overview of Service Location Protocol (SLP)
(Last modified: 08Jul2005)
This document (10014788) is provided subject to the disclaimer at the end of this document.
goal
An overview of Service Location Protocol (SLP)
fact
Novell NetWare 5.0
Service Location Protocol (SLP)
fix
Service Location Protocol (SLP) uses multicast. Multicast targets a group of nodes, unlike broadcast which targets all nodes. The benefits of multicast is that it will send one packet and all the members of the multicast group will receive it. Only the intended recipients will read the packets. Multicast is not isolated to local segment. Routers will forward to whatever subnets have a member, unless multicast has been disabled on the router. However, routers must be configured to support IGMP (Internet Group Management Protocol) in order for multicast to work outside of the local subnet.
Multicast uses the following addresses:
- Ethernet address: 01 00 5E xx xx xx
- IP address: 224.x.x.x to 239.x.x.x
SLP uses 224.0.1.22 in IP and 01005E000116 in Ethernet. IP multicast address maps into Ethernet MAC address in hexadecimal.
When a multicast host comes up on a subnet, it sends out a multicast packet to the "all hosts" multicast address of 224.0.0.1. That packet tells the router that it is a member of a multicast group. The router then records that it has at least one node in that multicast group on that interface.
Multicast routers notify neighboring routers of what multicast groups it has. This way all routers learn about where to forward packets addressed to that multicast group.
Routers periodically poll each interface to see if multicast group members still exist.
Novell's IPX RIP and SAP is the main reason behind the plug-and-play nature of NetWare. When a Pure IP NetWare was designed, a name-to-address resolution on TCP/IP had to be provided. There are several ways to connect to an IP-based service:
a. Static configuration
b. DHCP - you can get addresses of NDS servers & name context, etc.
c. DNS - can use a DNS name wherever you put a server name or address
d. NDS
SLP provided the plug and play nature of SAP without its drawbacks.
SLP is optional but it is required for compatibility mode and it is required to be able to browse network neighborhood.
There are 2 mandatory elements of SLP and one optional element:
1. Service Agent (SA - mandatory)
Every NetWare 5.x and Netware 6 server has a SA. Applications running on the server or client that want to make themselves known to the network use the SA to do that. "Bindery.Novell" is the name of the SLP service for a NetWare server. this equates to a type 4 SAP. .
The SA does not broadcast its table of SLP services, but depends on the clients to requests for them. SAs do not communicate with other SAs to build a list of all services on the network. They only respond to requests that apply to services running on their host machine. 224.0.1.22 is the multicast address for SAs.
2. User Agent (UA - mandatory)
Every NetWare 5 server and client has a User Agent. When the client wants to find a particular service, it tells the UA to request that service. The request contains the type of the service and the name and/or wildcard pattern of the name. They can also request certain attributes of the service.
By default, the UA multicasts on the local segment. Any SAs on the local segment will respond with a unicast packet directly to the client if they have a service that matches the request. If the local router/s have multicast enabled, they will forward that request on to the rest of the network and responses will come back from SAs all over the network. With multicast enabled on the routers, this is all that is needed for a client to discover every server on the network, but on a large network, multicasting can result in a storm of replies.
Use command "SLPINFO" on the client to see the current SLP settings.
3. Directory Agent (DA - optional)
The Directory Agent serves as a repository of SLP services. It used the NDS as the database. SAs register their services with the DAs. They de-register their services when they are downed. SAs refresh the DAs with current service information once every hour. SAs put a lifetime value on each service (3 hours by default). DA uses that lifetime to expire each service.
When an SA or a UA starts up, it multicasts an SLP request for a DA using the address, 224.0.1.35. It sends its SLP service list to each responding DA. You can configure UA with DA address through DHCP or hard-code it.
The following are DHCP options:
78 - DA
79 - scope
63 - suboptions
12, 13 & 14 - CMD options
85 - preferred server
86 - preferred tree
87 - name context
If you configure a DNS name with multiple DA addresses, you can configure the SA with that DNS name and the SA will update the DA at each address. edit SYS:ETC\SLP.CFG on the SA to hard-code the DA.
When a UA sends a SLP request to a DA, the DA will respond either positively or negatively. Unlike SAs who only respond if that have the service being requested. The RFC did not define DA-to-DA synchronization. Since DAs use the NDS as the database, it can be replicated between multiple DAs.
DAs do not require a replica of the container. DA caches service info so it doesn't have to query the NDS every time. Each NDS partition is registered in the SLP rather than each server that holds a replica. This reduces the number of server entries.
Note: At the initial shipping version of NetWare 5, DAs without a replica only refresh the cache once a day. You can use NWAdmin to configure the time of day to refresh.
DA is optional. It is needed where IP multicast is not routed. You would have to "load SLPDA.NLM" on the server. The DA uses multicast address 224.0.1.35.
The default configuration when you load SLPDA.NLM for the DA is to create a OU=SLP_SCOPE with an UNSCOPED scope below it. Scopes provide a means to limit the number of services maintained by a DA. DAs are assigned to maintain certain scopes. SAs assign their services to a scope when sending their list to the DA. UAs specify a scope when making requests to the DA. UAs can get their scopes through DHCP.
You have to configure scopes with NWAdmin. Each scope has its own container..
note
At the initial shipping version of NetWare 5, the "unscoped" scope is supported.
Other references:
1. September 1998 AppNotes
document
Document Title: | An overview of Service Location Protocol (SLP) |
Document ID: | 10014788 |
Solution ID: | 4.0.31199594.2285033 |
Creation Date: | 20Aug1999 |
Modified Date: | 08Jul2005 |
Novell Product Class: | Connectivity Products Management Products NetWare |
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.