Internet DRAFT - draft-guttman-svrloc-as
draft-guttman-svrloc-as
Internet Engineering Task Force Erik Guttman
INTERNET DRAFT
Category: Standards Track
December 18, 2001
Expires in six months
Applicability Statement for
Service Location Protocol, Version 2
draft-guttman-svrloc-as-00.txt
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Comments on this document should be sent to the SLP discussion list,
srvloc-discuss@lists.sourceforge.net.
Internet-Drafts are draft documents of the Internet Engineering Task
valid for a maximum of six months and may be updated, replaced, or
obsoleted by other documents at any time. It is inappropriate to use
Internet-Drafts as reference material or to cite them other than as
"work in progress." See http://www.ietf.org/ietf/1id-abstracts.txt.
Find shadow directories at http://www.ietf.org/shadow.html.
Copyright (C) The Internet Society (2001). All Rights Reserved.
Abstract
The Service Location Protocol provides a scalable framework for the
discovery and selection of network services. Using this protocol,
computers using the Internet need little or no static configuration
of network services for network based applications. This document
describes the domain for which the protocol applies, in short
networks under a common administration, compatibility issues among
different versions of the protocol and provides an overview to the
various IETF documents which concern the use of SLP.
1. Introduction
The Service Location Protocol has been published in three successive
versions. Service Location Protocol, Version 1 (SLPv1) [RFC2165]
contained excessive functionality, unclear language and errors.
Service Location Protocol, Version 2 (SLPv2) [RFC2608] broke binary
comptibility with this version of the protocol while retaining the
basic mechanisms and data elements. SLPv2 was designed have limited
compatibility with SLPv1 through the use of DAs which support both
protocols.
Significant implementation and deployment experience has informed the
current effort to revise SLPv2 so as to remove features which have
Guttman, E. Expires: 19 June 2002 [Page 1]
Internet Draft SLPv2 Revision December 2001
not been found essential or easy to understand.
2. Domain of Applicability
SLP is intended to function within networks under cooperative
administrative control. Such networks permit a policy to be
implemented regarding security, multicast routing and organization of
services and clients into groups which are not be feasible on the
scale of the Internet as a whole.
SLP has been designed to serve enterprise networks with shared
services, and it may not necessarily scale for wide-area service
discovery throughout the global Internet, or in networks where there
are hundreds of thousands of clients or tens of thousands of
services.
3. Backwards Compatibility
The Service Location Protocol has been published in two preceding
versions as a proposed standard: SLPv1 [RFC 2165] and SLPv2 [RFC
2608].
SLPv1 contained certain errors and features which deployment
experience and interoperability testing showed required significant
revision. SLPv2 breaks binary compatibility with SLPv1. The basic
protocol operations are very similar. DAs have been successfully
produced which support both SLPv1 and SLPv2, provided that certain
features of SLPv1 are not used.
The current revision of SLPv2 retains binary compatibility, but does
deprecate some features. This has been done carefully to retain
investment in SLPv2 agents even while transitioning to SLPv2bis.
- Preserve investment in existing SLPv2 SAs and DAs
SLPv2 SAs and DAs implement a superset of the features of
SLPv2bis. There is therefore no reason to upgrade existing,
deployed SLPv2 DAs and SAs in order to interoperate with newly
deployed SLPv2bis agents.
- SLPv2bis reduces requirements on SAs
Many features of SLP have not proven essential for service
discovery. An important use of SLP is in embedded servers for
which the minimum feature set is critical given limited server
resources.
- SLPv2 UAs are compatible with SLPv2bis SAs if properly used
SLPv2 UAs implement a superset of functions supported by SLPv2bis
SAs. As long as UAs restrict their queries to those supported by
SLPv2bis, the UA can obtain the same answer from both SLPv2 and
SLPv2bis SAs.
Guttman, E. Expires: 19 June 2002 [Page 2]
Internet Draft SLPv2 Revision December 2001
3.1 Incompatibility Matrix
Incompatibility SLPv1 SLPv2 SLPv2bis
--------------- ---------------- ---------------- ------------------
1) Unscoped Agents treat un- Treat unscoped As SLPv2
SLPv1 scoped as match- requests as
Requests ing all scopes. having 'DEFAULT'
scope. Recon-
figure SLPv1 UAs
if possible!
2) Unscoped Accept registra- SLPv2 DAs accept As SLPv2
SLPv1 DAs tions and re- only registra-
quests from all tions with >0
scopes. DA scopes. Re-
configure SLPv1
SAs if possible!
3) Language Tags may be only Tags may be 2 or As SLPv2
Tag Length 2 bytes long. more characters.
If >2 characters
SLPv1 UAs will
be unable to
discover those
services.
4) Service Service types Abstract types As SLPv2
Types may only be of are allowed, as
the form 'service:x:y'.
'service:x' or These cannot be
'x'. ??? returned to
SLPv1 UAs.
5) Message SLPv1 header. SLPv2 header. Exactly as SLPv2.
Header Not compatible.
6) Monolingual If not set, No monolingual As SLPv2.
bit complicated bit support
rules apply exists in SLPV2.
toward ignoring
language tag
matching for
queries.
7) Character Character SLPv2 supports As SLPv2.
Encoding encoding is the UTF-8 char-
explicit in the acter set only.
SLPv1 header.
8) URL auth- Indicates a URL This flag is not The flag is not
Guttman, E. Expires: 19 June 2002 [Page 3]
Internet Draft SLPv2 Revision December 2001
enticator auth block supported. 0 or supported. Auth
flag follows. more auth blocks blocks are not
supported. supported at all.
9) Attribute Indicates an The flag is not The flag is not
Authentica- attribute auth- supported. 0 or supported. Attr
tor flag enticator block more auth blocks auth blocks are
follows. may follow not supported.
attributes.
10) Dialect Reserved. Set SLPv2 has no Exactly as SLPv2.
field to 0. dialect field.
11) Multicast This flag is not This flag indi- As SLPv2.
Flag present in SLPv1 cates rules to
follow in the
case of an error
or zero results
(do not reply).
12) Fresh Flag When this flag When this flag FRESH flag must be
is present in a is present in a set, overwriting
SrvAck, DA tells SrvReg, the reg- existing regs with
the SA a SrvReg istration over- the same URL (in
is new, not wri- writes existing the same language).
ting over an ex- registrations If not set, the
isting entry. with the same result is the
URL. When ab- INVALID_UPDATE
sent, reg adds error.
incrementally to
existing regs.
13) Use of XID XID in unsol- XID is set to 0 As SLPv2.
icited DAAdverts for unsolicited
are used to in- DAAdverts.
dicate DA reboot Otherwise XIDs
state. are nonzero.
Incompatibility SLPv1 SLPv2 SLPv2bis
--------------- ---------------- ---------------- ------------------
14) Messsage SLPv1 defines SLPv2 redefines Exactly as SLPv2.
Formats formats for all message
framing of formats.
messages.
15) Error Codes Defines 0-7 Adds 9-15 No longer send 5-7
as these concern
SLP authentication
Guttman, E. Expires: 19 June 2002 [Page 4]
Internet Draft SLPv2 Revision December 2001
16) Authentica- Algorithms are All algorithms No algorithms are
tion blocks defined for redefined for defined for cal-
calculation of calculation of culation of
digests. digests. digests.
17) Search SLPv1 defines a SLPv2 redefines SLPv2bis uses only
filters search filter search filter: a proper subset of
format, combin- use LDAPv3 fil- LDAPv3 search fil-
ing service type ters, without ters (which simp-
scope and filter extensible lifies SA implem-
matching rules. entation).
18) Scope as an SLPv1 defines SLPv2 defines As SLPv2.
Attribute scope as an scope separately
attribute of a as a modifier to
service. SLPv2 messages.
19) Reserved SLPv1 reserves SLPv2 does not As SLPv2.
strings SCOPE, SERVICE, reserve any
LOCAL, REMOTE, words.
TRUE and FALSE
20) Required SLPv1 requires UA send SrvRqst, As SLPv2 but
messages all messages. receive SrvRply AttrRqst/AttrRply
and DAAdvert. is a SHOULD (as
SA send SrvReg, most applications
SrvRply and SA- of SLP require
Advert, receive attributes).
SrvRqst, DA-
Advert & SrvAck.
DAs: no options.
21) Authentic- Use protected Use SLP SPIs, a Do not use SLP
tion scope config- separate field authentication.
uration. in messages. Omit SLP SPIs!
22) Multicast Use global Use one Admin As SLPv2.
group scope group(s), relative address
some never except for SLPv2
defined! for IPv6.
23) Wildcards Attribute re- As SLPv1. SLPv2bis does not
in attri- quests allow support wildcards
bute lists wildcards to be in tag lists of
the tag list. AttrRqst messages.
24) Attribute AttrRqst allows As SLPv1. SLPv2bis does not
Request by request for all support AttrRqst
service attributes of by service type.
type services of a Only AttrRqst by
given service service URL is
Guttman, E. Expires: 19 June 2002 [Page 5]
Internet Draft SLPv2 Revision December 2001
type. supported.
25) Scope Priority order Priority order A new, simplified,
configura- is given, but is given, but priority order is
tion rules not clear. very complex defined. Relies
because of RFC on fixes to RFC
2610 'MANDATORY' 2610.
flag, which is
not clear.
26) Elide Initial and As SLPv1. All strings are
spaces final spaces matched as is.
in strings are String matches
elided in all fail if messages
string fields. include extra
spaces.
27) Language SLPv1 presents SLPv2 states SLPv2bis states
Tag match only an ISO subtags MAY the entire tag
636 tag. be ignored. must match (with
case insensitive
matching).
3.2 Requirements for SLPv2 UAs to interoperate with SLPv2bis
In order to guarantee interoperability into the future, SLPv2bis UAs
will use a new API which do not expose features which have been
deprecated in SLPv2.
SLPv2 UAs have to restrict their use of certain feature which are
exposed, or they will only get results if there is a DA which
supports those features present in the network, or SAs with full
SLPv2 support.
These features include:
1. Do not use language tags with subtags unless that is really
desired. Note that English "en" does not match British English
"en-BR". Use 'en' if possible to represent English.
2. Send Attribute Requests by URL only (not by service type).
3. Do not include wildcards in tag lists in Attribute Requests.
4. Send only 'simple' search filters (no logical OR or NOT, only a
single comparison term or a conjoined list of comparison
terms.)
5. Do not be lazy about preceding and trailing white space. Only
Guttman, E. Expires: 19 June 2002 [Page 6]
Internet Draft SLPv2 Revision December 2001
include it in requests if it should be there.
6. Do not expect Authentication Blocks or SLP SPI strings.
In addition SLPv2 SAs MUST restrict themselves in the following ways:
1. Always set FRESH bit on registration.
2. Do not use language tags with subtags unless that is really
desired. Note that English 'en' does not match British English
"en-BR". Use 'en' if possible to represent English.
3. Do not send tag lists in SrvDereg messages.
4. Do not be lazy about preceding and trailing white space. Only
include it in attribute lists, for example, if it should be
there.
5. Do not send Authentication Blocks or SLP SPI strings.
3.3 Subtleties and Gotchas
The following topics need to be considered:
- Apps may require complex search filters. Describe options.
- New DAs MUST support old features. Specify them.
4. Other Documents Concerning SLP
Several IETFT working groups have defined ways to use SLP to
discover services. [AAA] [TRIP] [RFC3105] [RFC3049] [IPS]
External standards organizations and consortia are also specifying
how to use SLP. [SALUTATION] [IEEE] [DMTF]
The following RFCs augment the base SLPv2bis protocol
[RFC2608bis]:
[RFC2609] "Service Templates and service: schemes" - Standards
Track
Defines the Service: URL scheme and how to define and use
service templates. Service templates allow interoperability
through the use of common registered descriptions of services.
[RFC2610] "DHCP Options for Service Location" - Standards Track
DHCP option 78 configures SLP agents with DA addresses. Option
79 configures a SLP agent with a scope list. Note that this
document has been revised for republication, correcting some
errors found in the current document. [RFC2610bis]
[RFC2614] "An API for Service Location" - Informational
Guttman, E. Expires: 19 June 2002 [Page 7]
Internet Draft SLPv2 Revision December 2001
This document describes an abstract, C and Java API to expose
the functions of SLP to applications in a well known, protable
manner. This document will be revised to accomodate change in
SLPv2. The Java portion of the document will be published
externally as part of a JSR [JSR].
[RFC2926] "Conversion of LDAP Schema to and from SLP Templates" -
Informational
This document describes conversion of schema to templates or
the reverse.
[RFC3059] "Attribute List Extension for the Service Location
Protocol" - Standards Track
This extension allows a UA to obtain the list of attributes
associated with a service advertisement in a SrvRply message.
This saves an extra round trip (AttrRqst/AttrRply) and elimates
a potential race condition where a service is discovered but
its attributes change or it is deregistered before its
attributes can be obtained.
[RFC3089] "Notification and Subscription for SLP" - Experimental
This mechanism allows scalable dynamic discovery of services,
through the use of multicast announcements in the form of
SrvReg messages, if there are subscribers.
[RFC3111] "SLPv2 Modifications for IPv6" - Standards Track
This document describes the few change in SLPv2 which are
required to support the protocol over IPv6.
[VENDOR]
This document updates SLPv2, describing the vendor extension
mechanisms. These provide an open ended set of practices which
will not generate name collisions in the future (so they are
safe). At the same time, this approach will not lead to
interoperability, so it is discouraged.
5. Security Considerations
This document describes the relation between different versions of
SLP. Where security features of the protocol have changed, this
has been noted. The most important
6. Acknowledgements
The author wishes to thank the contributions through the years of
the SVRLOC WG and the SRVLOC discussion list. I am grateful to my
employers who have supported this work: FTP Software, Peer Logic,
Oracle and Sun Microsystems.
Guttman, E. Expires: 19 June 2002 [Page 8]
Internet Draft SLPv2 Revision December 2001
References
[DIAMETER]
[DMTF]
[IANA] http://www.iana.org/numbers.html
[IEEE]
[IPS]
[IPTEL]
[JSR]
[mSLP]
[RFC 2165] Veizades, et. al, "Service Location Protocol", RFC 2165, July
1997.
[RFC 2608] E. Guttman, et. al, "Service Location Protocol version 2",
RFC 2608, June 1999.
[RFC2608bis] Guttman, E, Kempf, J., "Service Location Protocol, Version
2", draft-guttman-svrloc-rfc2608bis-01.txt, December 2001, a
work in progress.
[RFC 2609] Guttman, E., Perkins, C. and J. Kempf, "Service Templates and
service: Schemes", RFC 2609, June 1999.
[RFC 2610] Perkins, C., Guttman, E., "DHCP Options for Service
Location", RFC 2610, June 1999.
[RFC 2610bis] Guttman, E., "DHCP Options for Service Location", draft-
guttman-svrloc-rfc2610bis-01.txt, September 2001. A work in
progress.
[RFC2614] Kempf, J., Guttman, E., "An API for Service Location", RFC
2614, June 1999.
[RFC2926] Kempf, J., et. al. "Conversion of LDAP Schema to and from SLP
Templates", RFC 2926, September 2000.
[RFC3049] Naugle, J., et. al., "TN3270E Service Location and Session
Balancing", RFC 3049, January 2001.
[RFC3059] Guttman, E., "Attribute List Extension for the Service
Location Protocol", RFC 3059, February 2001.
[RFC3089] Kempf, J., Goldschmidt, J., "Notification and Subscription for
Guttman, E. Expires: 19 June 2002 [Page 9]
Internet Draft SLPv2 Revision December 2001
SLP", RFC 3082, March 2001.
[RFC3105] Kempf, J., Montenegro, G., "Finding an RSIP Server with SLP",
RFC 3105, October 2001.
[RFC3111] Guttman, E., "SLPv2 Modifications for IPv6", RFC 3111, May
2001.
[SALUTATION]
[VENDOR] Guttman, E., "Vendor Extensions for SLPv2", draft-guttman-
svrloc-vendor-ext-07.txt, a work in progress.
Author's Contact Information
Erik Guttman
Sun Microsystems
Eichhoelzelstr. 7
74915 Waibstadt Germany
erik.guttman@sun.com
Guttman, E. Expires: 19 June 2002 [Page 10]