draft-ietf-dhc-slp-04.txt   draft-ietf-dhc-slp-05.txt 
Internet Engineering Task Force C. Perkins Internet Engineering Task Force C. Perkins
INTERNET DRAFT E. Guttman INTERNET DRAFT E. Guttman
Sun Microsystems Sun Microsystems
09 October 1998 14 October 1998
DHCP Options for Service Location Protocol DHCP Options for Service Location Protocol
draft-ietf-dhc-slp-04.txt draft-ietf-dhc-slp-05.txt
Status of This Memo Status of This Memo
This document is a submission by the Dynamic Host Configuration This document is a submission by the Dynamic Host Configuration
Working Group of the Internet Engineering Task Force (IETF). Working Group of the Internet Engineering Task Force (IETF).
Comments should be submitted to the dhcp-v4@bucknell.edu mailing Comments should be submitted to the dhcp-v4@bucknell.edu mailing
list. list.
Distribution of this memo is unlimited. Distribution of this memo is unlimited.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
The Dynamic Host Configuration Protocol provides a framework for The Dynamic Host Configuration Protocol provides a framework for
passing configuration information to hosts on a TCP/IP network. passing configuration information to hosts on a TCP/IP network.
Entities using the Service Location Protocol need to find out the Entities using the Service Location Protocol need to find out the
address of Directory Agents in order to transact messages. Another address of Directory Agents in order to transact messages. Another
option provides an assignment of scope for configuration of SLP User option provides an assignment of scope for configuration of SLP User
and Service Agents. and Service Agents.
1. Introduction 1. Introduction
The Dynamic Host Configuration Protocol [3] provides a framework The Dynamic Host Configuration Protocol [4] provides a framework
for passing configuration information to hosts on a TCP/IP network. for passing configuration information to hosts on a TCP/IP network.
Entities using the Service Location Protocol, Version 2 [4] need to Entities using the Service Location Protocol, Version 2 [6] need to
obtain the address of Directory Agents and Scope configuration. The obtain the address of Directory Agents and Scope configuration. The
Service Location Protocol (SLP) provides a default configuration Service Location Protocol (SLP) provides a default configuration
for Scopes and Directory Agents may be discovered using multicast for Scopes and Directory Agents may be discovered using multicast
or broadcast. It is useful in a larger deployment to be able or broadcast. It is useful in a larger deployment to be able
to configure SLP Agents using DHCP, so as to centralize the to configure SLP Agents using DHCP, so as to centralize the
administration and to deploy SLP in networks where multicast routing administration and to deploy SLP in networks where multicast routing
is not available. is not available.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [1]. document are to be interpreted as described in [2].
2. Introduction 2. Introduction
The DHCP options described below are used to configure Agents using The DHCP options described below are used to configure Agents using
the Service Location Protocol, Version 2. the Service Location Protocol, Version 2 [6].
The SLP Directory Agent option is used to configure User Agents and The SLP Directory Agent option is used to configure User Agents and
Service Agents with the location of Directory Agents in the network. Service Agents with the location of Directory Agents in the network.
These Directory Agents are assumed to support all of the scopes
supplied by the SLP Scope Option.
If the SLP Scope Option is absent, the scope string "default" is The SLP Scope Option takes precedence over both default and static
used instead. If there is a scope string configured using local scope configuration of SLP agents.
configuration on the host that is used if no SLP Scope Option has
been sent. DHCP configuration takes precedence over the local
configuration of SLP scope lists. SLP Agents (be they Directory
Agents, User Agents or Service Agents) which use the SLP Directory
Agent Option MUST be configured with a scope.
3. SLP Directory Agent Option 3. SLP Directory Agent Option
This option specifies the location of one or more SLP Directory This option specifies the location of one or more SLP Directory
Agents. Agents.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code = 78 | Length | a1 | a2 | | Code = 78 | Length | a1 | a2 |
skipping to change at page 2, line 16 skipping to change at page 2, line 13
preference, if there is an order of preference. preference, if there is an order of preference.
The address of the Directory Agent is given in network byte order. The address of the Directory Agent is given in network byte order.
The length of the option MUST always be divisible by 4 and has a The length of the option MUST always be divisible by 4 and has a
minimum length of 4. minimum length of 4.
The Directory Agents listed in this option MUST be configured with The Directory Agents listed in this option MUST be configured with
the a non-empty subset of the scope list that the Agent receiving the the a non-empty subset of the scope list that the Agent receiving the
Directory Agent Option is configured with. See the notes below. Directory Agent Option is configured with. See the notes below.
SLPv2 Service Agents which are configured using the SLP Directory The SLPv2 specification [6] defines how to use this option.
Agent Option MUST send a SrvRqst to the DAs in the DHCPOFFER. This
SLPv2 SrvRqst sets the Scope List to the value configured by the SLP
Scope Option if one was sent or "DEFAULT" otherwise. The service
type for the request is "service:directory-agent" and the predicate
is omitted. The reply will include the DA's attributes, scope list.
The SA MUST register all service with the DA which it advertises
which are advertised in one or more of the scopes in the DA's scope
list. The SA MUST register no faster than the "min-lifetime" and not
slower than the "max-lifetime" attributes of the DA. These attributes
are obtained in the DAAdvert solicited by the SA after it receives
the SLP Directory Agent Option DHCPOFFER.
SLPv2 User Agents which are configured using the SLP Directory Agent
Option MUST send their requests to the DAs listed, using the entire
list of scopes they are configured with.
4. SLP Service Scope Option 4. SLP Service Scope Option
The scope list is a comma delimited list which indicates the scopes The scope list is a comma delimited list which indicates the scopes
that a SLP Agent is configured to use. that a SLP Agent is configured to use.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code = 79 | Length | <Typed Scope List> String ... | Code = 79 | Length | <Scope List> String ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Length indicates the number of bytes which follow. Since the The Length indicates the number of bytes which follow. Since the
Scope-List String is encoded using UTF8 characters, it may be the Scope-List String is encoded using UTF8 characters, it may be the
cast that the Length is not the same as the number of characters in cast that the Length is not the same as the number of characters in
the Scope-List String. the Scope-List String.
The minimum length is 0, and the maximum length is 256. This imposes The minimum length is 0, and the maximum length is 256. This imposes
a limit on the size of the Scope-List String which can be delivered a limit on the size of the Scope-List String which can be delivered
which does not exist in SLP. DHCP administrators will therefore have which does not exist in SLP. DHCP administrators will therefore have
to be careful to not configure very long scope names or very long to be careful to not configure very long scope names or very long
lists of scopes for any Agents in their network. lists of scopes for any Agents in their network.
The Typed Scope List includes a list of scopes for the SLP Agent. The Scope List String syntax and usage are defined in the SLPv2
The list may be a list of scopes, such as "north,south,east,west". specification [6].
The list may also include items which are 'typed scopes.' These
items indicate that SAs MUST advertise particular service types in
a scope other than that given in the scope list. UAs MUST issue
requests for services of these types in the scopes listed, or some
subset of the scopes. DAs ignore typed scopes in the SLP Service
Scope Option.
For example, "default,(service:printer:lpr=Math Department)"
indicates that SAs advertise all services in scope default except
for lpr printers, which are advertised in the Math Department scope.
UAs will request all services using the "default" scope, except lpr
printers, which are advertised in the "Math Department" scope. DAs
will simply be configured in the scope "default" since they ignore
the typed scope argument.
The grammar for the typed scope list is:
ts-list = ts-item / ts-item `,' ts-list
ts-item = scope-list / `(' srv-type `=' scope-list `)'
srv-type = ALPHA *srv-safe [ `.' 1*srv-safe ]
srv-safe = ALPHA / DIGIT / `+' / `-'
scope-list = scope-item / scope-item "," scope-list
scope-item = 1*safe-scope
safe-scope = ; Any character except rsvd-scope.
; Reserved characters must be escaped.
rsvd-scope = `(' / `)' / `,' / `\' / `!' / `<' / `=' / `>' / `~'
CTL / `;' / `*' / `+'
escaped = `$\backslash$' HEXDIGIT HEXDIGIT
This grammar follows ABNF rules [2]. Reserved characters used in
scope names must be escaped. Reserved characters in <srv-type> names
are not allowed. Note that <srv-type> names may include a Naming
Authority extension.
4.1. Zero Length Scope-List String Configuration 4.1. Zero Length Scope-List String Configuration
A SLP Service Scope Option which indicates a Length of 0 configures A SLP Service Scope Option which indicates a Length of 0 configures
the SLP Agent to use "User Selectable Scopes". the SLP Agent to use "User Selectable Scopes".
If this is done, the SLP Agent MUST NOT be configured using the SLP The SLP Agent will use the aggregated list of scopes of all known
Directory Agent Option. DAs. If no DAs are known, the UA will use SA discovery to determine
the list of scopes on the network, as defined in [6].
Instead, the SLP Agent will discover scopes using Directory Agent
discovery (or Service Agent Discovery) as defined in [4].
The SLP Agent will then use the aggregation of all scopes it
discovers on the network to configure its own scope list.
Note that this configuration is tantamount to removing all Note that this configuration is tantamount to removing all
centralized control of the configuration hosts on the network. This centralized control of the scope configuration of hosts on the
makes it possible for every User Agent to see every service. This network. This makes it possible for every User Agent to see every
may not be desirable as users may not be able to or desire to decide service. This may not be desirable as users may not be able to or
which services are appropriate for them. desire to decide which services are appropriate for them.
5. Security Considerations 5. Security Considerations
If a malicious host is able to insert fraudulent information in If a malicious host is able to insert fraudulent information in
DHCPOFFER packets sent to a prospective SLP Agent then the SLP Agent DHCPOFFER packets sent to a prospective SLP Agent then the SLP Agent
will be unable to obtain service, or may unwittingly be directed to will be unable to obtain service, or may unwittingly be directed to
use the incorrect services. use the incorrect services.
Many opportunities for denial of service exist. A service agent Many opportunities for denial of service exist. A service agent
could find that it might rely on fraudulent or otherwise malicious could find that it might rely on fraudulent or otherwise malicious
skipping to change at page 5, line 7 skipping to change at page 4, line 7
the regular SLP framework from functioning by directing clients to the regular SLP framework from functioning by directing clients to
not use multicast, to use nonexistent directory agents and so on. not use multicast, to use nonexistent directory agents and so on.
These difficulties are inherited from the much larger and more These difficulties are inherited from the much larger and more
serious problem, viz. securing or authenticating any information serious problem, viz. securing or authenticating any information
whatsoever from a DHCP server (or client!) is not possible in common whatsoever from a DHCP server (or client!) is not possible in common
DHCP deployments. DHCP deployments.
References References
[1] S. Bradner. Key Words for Use in RFCs to Indicate Requirement [1] T. Berners-Lee, R. Fielding, and L. Masinter. Uniform Resource
Identifiers (URI): Generic Syntax. RFC 2396, August 1998.
[2] S. Bradner. Key words for use in RFCs to Indicate Requirement
Levels. RFC 2119, March 1997. Levels. RFC 2119, March 1997.
[2] D. Crocker and P. Overell. Augmented BNF for Syntax [3] B. Carpenter and Y. Rekhter. Renumbering needs work. RFC 1900,
Specifications: ABNF. RFC 2234, November 1997. February 1996.
[3] R. Droms. Dynamic Host Configuration Protocol. RFC 2131, March [4] R. Droms. Dynamic Host Configuration Protocol. RFC 2131, March
1997. 1997.
[4] E. Guttman, C. Perkins, J. Veizades, and M. Day. Service [5] E. Guttman, C. Perkins, and J. Kempf. Service Templates and
Location Protocol version 2. draft-ietf-svrloc-protocol-v2-04.txt, service: Schemes. draft-ietf-svrloc-service-scheme-11.txt,
March 1998. (work in progress). October 1998. (work in progress).
[6] E. Guttman, C. Perkins, J. Veizades, and M. Day. Service
Location Protocol version 2. draft-ietf-svrloc-protocol-v2-09.txT,
October 1998. (work in progress).
[7] J. Veizades, E. Guttman, C. Perkins, and S. Kaplan. Service
Location Protocol. RFC 2165, July 1997.
[8] F. Yergeau. UTF-8, a transformation format of unicode and ISO
10646. RFC 2279, October 1998.
[9] D. Crocker and P. Overell. Augmented BNF for Syntax
Specifications: ABNF. RFC 2234, November 1997.
Author's Address Author's Address
Questions about this memo can be directed to: Questions about this memo can be directed to:
Charles E. Perkins Erik Guttman Charles E. Perkins Erik Guttman
Technology Development Group Technology Development Group Technology Development Group Technology Development Group
Mail Stop MPK15-214 Mail Stop UFRA02 Mail Stop MPK15-214 Mail Stop UFRA02
Sun Microsystems, Inc. Sun Microsystems, Inc. Sun Microsystems, Inc. Sun Microsystems, Inc..
15 Network Circle Bahnstr. 2 15 Network Circle Bahnstr. 2
Menlo Park, CA 94025 74915 Waibstadt, Germany Menlo Park, CA 94025 74915 Waibstadt, Germany
phone: +1 650-786-6464 phone: +49 7263 911 701 phone: +1 650-786-6464 phone: +49 7263 911 701
fax: +1 650-786-6445 or: +1 650 786 5992 fax: +1 650-786-6445 or: +1 650 786 5992
email: Charles.Perkins@Sun.Com Erik.Guttman@Sun.Com email: Charles.Perkins@Sun.Com Erik.Guttman@Sun.Com
Web: http://www.svrloc.org/~charliep Web: http://www.svrloc.org/~charliep
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/