draft-ietf-dhc-slp-03.txt   draft-ietf-dhc-slp-04.txt 
Internet Engineering Task Force C. Perkins Internet Engineering Task Force C. Perkins
INTERNET DRAFT Sun Microsystems INTERNET DRAFT E. Guttman
13 March 1998 Sun Microsystems
09 October 1998
DHCP Options for Service Location Protocol DHCP Options for Service Location Protocol
draft-ietf-dhc-slp-03.txt draft-ietf-dhc-slp-04.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.
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at and may be updated, replaced, or obsoleted by other documents at
any time. It is inappropriate to use Internet-Drafts as reference any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as ``work in progress.'' material or to cite them other than as ``work in progress.''
To learn the current status of any Internet-Draft, please check To view the entire list of current Internet-Drafts, please check
the ``1id-abstracts.txt'' listing contained in the Internet-Drafts the ``1id-abstracts.txt'' listing contained in the Internet-Drafts
Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (North Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
Europe), ftp.nis.garr.it (South Europe), munnari.oz.au (Pacific Rim), Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).
Abstract Abstract
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 [4] provides a framework The Dynamic Host Configuration Protocol [3] 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 [7] need to find out the Entities using the Service Location Protocol, Version 2 [4] need to
address of Directory Agents in order to transact messages and obtain obtain the address of Directory Agents and Scope configuration. The
the correct scope to be used in messages which are exchanged using Service Location Protocol (SLP) provides a default configuration
the Service Location Protocol. for Scopes and Directory Agents may be discovered using multicast
or broadcast. It is useful in a larger deployment to be able
The scope MUST be encoded using the UTF8 character encoding [8] to configure SLP Agents using DHCP, so as to centralize the
and have the values referred by the MIBEnum value. Note that administration and to deploy SLP in networks where multicast routing
each character may require two or more octets of data for its is not available.
representation.
Note that each option listed below MAY be included multiple times in
the same DHCPOFFER or DHCPREQUEST. If so, then the options SHOULD be
included in order of decreasing preference.
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 [2]. document are to be interpreted as described in [1].
2. Typed Scope Lists
In Service Location Protocol, multiple service types can be hosted on
the same network node. However, DHCP typically configures computers
based on their IP address. It is possible that different service
types on the same computer would be administered from different
scopes. Thus, options 78 and 79 have additional syntax to allow this
more detailed style of service configuration.
In particular, the list of scopes contained in the options is
syntactically separated into lists pertaining to each service type.
Grammatically, a typed-scope-list in a DHCPOFFER is structured as
follows:
typed-scope-list = one or more maybe-typed-scope-items,
separated by commas
maybe-typed-scope-item = typed-scope-item, or scope-list
typed-scope-item = '(' service-type '=' scope-list ')'
scope-list = one or more scope-items, comma-separated
A typed-scope-list in a DHCPREQUEST is structured as follows:
typed-scope-list = one or more maybe-typed-scope-items,
separated by commas
maybe-typed-scope-item = typed-scope-item, or
maybe-empty-scope-list
typed-scope-item = '(' service-type '=' maybe-empty-scope-list ')'
maybe-empty-scope-list = zero or more scope-items, comma-separated
A service type has the format defined in [5], and a scope-item has
the format defined in [6] for "strval". Basically, a scope-item is
a character string that has alphanumeric characters not including
control characters or `(',`)',`,', \',`!',`<',`=',`>', or `~' Service
schemes are special cases of schemes as defined for general URLs [1].
The typed-scope-list MAY contain both untyped-scope-lists and
typed-scope-lists. Each scope-item in each untyped-scope-list
applies to every service type on the node.
As an example, the scope-list ``A,B,C'' denotes scopes A, B and C
for all service types on the client. In a DHCPREQUEST, this scope
string would indicate that the client wishes a directory agent which
supports ANY of these three scopes. In a DHCPOFFER, the scope
indicates that the directory agent supports ALL of the three scopes.
Suppose instead that service types "netman" and "proxystuff" are
residing on a DHCP client. Then, the typed-scope-list in a DHCPOFFER
could be,
(netman=mgmt),(proxystuff=math-dept,labs) 2. Introduction
Assuming the DHCP client with two service types "netman" and The DHCP options described below are used to configure Agents using
"proxystuff" did not make any scope restriction, a corresponding the Service Location Protocol, Version 2.
typed-scope-list in a DHCPREQUEST could be,
(netman=),(proxystuff=) The SLP Directory Agent option is used to configure User Agents and
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.
asking for scopes for those service types. If the SLP Scope Option is absent, the scope string "default" is
used instead. If there is a scope string configured using local
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. Directory Agent Option 3. SLP Directory Agent Option
This option requests or specifies a Directory Agent (DA), along with This option specifies the location of one or more SLP Directory
zero or more scopes supported by that directory agent. 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 | Length |D|F|M|S| reserved | | Code = 78 | Length | a1 | a2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DA Length |DA address (variable length) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Typed Scope List (variable length) ... | a3 | a4 | a1 | ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Code 78 The SLP Directory Agent Option specifies a list of IP addresses
for Directory Agents. Directory Agents MUST be listed in order of
Length (variable) The length of the option in bytes. preference, if there is an order of preference.
D If the 'D' bit is set, the Directory Agent field and the The address of the Directory Agent is given in network byte order.
DA Length fields are present. The length of the option MUST always be divisible by 4 and has a
minimum length of 4.
F If the 'F' bit is set, the Directory Agent is indicated The Directory Agents listed in this option MUST be configured with
by including its variable length host name or Fully the a non-empty subset of the scope list that the Agent receiving the
Qualified Domain Name (FQDN) instead of its IP address. Directory Agent Option is configured with. See the notes below.
M If the 'M' bit is set, the Directory Agent address is SLPv2 Service Agents which are configured using the SLP Directory
the only one that may be used, and multicast methods for Agent Option MUST send a SrvRqst to the DAs in the DHCPOFFER. This
discovering Directory Agents MUST NOT be used. 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.
S If the 'S' bit is set, the scope is present. 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.
rsv reserved; ignored upon reception; MUST be sent as zero 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.
DA Length The length (in octets) of the Directory Agent field. 4. SLP Service Scope Option
Directory Agent The scope list is a comma delimited list which indicates the scopes
The Fully Qualified Domain Name (FQDN), host name, or IP that a SLP Agent is configured to use.
address of the Directory Agent.
Typed Scope List 0 1 2 3
The characters denoting the scope (see Section reftsl). 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 ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In order to simplify administration of the configuration of Directory The Length indicates the number of bytes which follow. Since the
Agents for Service Location Protocol clients, the Directory Agent Scope-List String is encoded using UTF8 characters, it may be the
can be indicated by presenting its FQDN or host name instead of its cast that the Length is not the same as the number of characters in
IP address. This allows renumbering to proceed more smoothly [3]. the Scope-List String.
When the FQDN or host name is used, the server sets the 'F' bit. The
host name can be distinguished from the FQDN by the presence of a '.'
character. In any case, the DA length field is set to be the length
of the Directory Agent field. When the 'F' bit is not set, the DA
Length MUST be 4.
Note that more than one Directory Agent option may be present in a The minimum length is 0, and the maximum length is 256. This imposes
DHCP message. Each such option may have the same or different scope. 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
to be careful to not configure very long scope names or very long
lists of scopes for any Agents in their network.
The client may request any Directory Agent with a particular scope, The Typed Scope List includes a list of scopes for the SLP Agent.
by including the Directory Agent option in a DHCP Request message The list may be a list of scopes, such as "north,south,east,west".
with no Directory Agent address included (the 'D' bit set to zero),
and the characters denoting the scope.
The length of the Typed Scope List is only indicated implicitly The list may also include items which are 'typed scopes.' These
by the overall length of the option. This string is NOT null items indicate that SAs MUST advertise particular service types in
terminated. 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.
The format of the Typed Scope List field is described in section 2. 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.
Option 78 MUST include one or more scopes if a DA address is The grammar for the typed scope list is:
returned. Using option 78, it is not possible for different service
types on the same node to be configured with different directory
agents. In other words, all service types on the same node will be
configured with the same directory agent.
4. Service Scope Option 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 option indicates one or more that should be used by a Service This grammar follows ABNF rules [2]. Reserved characters used in
Agent (SA) [7], when responding to Service Request messages as scope names must be escaped. Reserved characters in <srv-type> names
specified by the Service Location Protocol. are not allowed. Note that <srv-type> names may include a Naming
Authority extension.
0 1 2 3 4.1. Zero Length Scope-List String Configuration
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 | Length | Typed-Scope-List ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Code 79 A SLP Service Scope Option which indicates a Length of 0 configures
the SLP Agent to use "User Selectable Scopes".
Length (variable) The length of the option in bytes. If this is done, the SLP Agent MUST NOT be configured using the SLP
Directory Agent Option.
scope the characters denoting the scope. Instead, the SLP Agent will discover scopes using Directory Agent
discovery (or Service Agent Discovery) as defined in [4].
The Typed-Scope-List is described in Section 2. The DHCP client The SLP Agent will then use the aggregation of all scopes it
(i.e., user agent or service agent) which receives this option will discovers on the network to configure its own scope list.
use the indicated scope for in all SLP requests and registrations.
The scope string must be UTF8 character encoded. This string is not
null terminated.
DHCP clients MAY use Option 79 to request scopes for one or more Note that this configuration is tantamount to removing all
particular service types. centralized control of the configuration hosts on the network. This
makes it possible for every User Agent to see every service. This
may not be desirable as users may not be able to or 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 client of the Service DHCPOFFER packets sent to a prospective SLP Agent then the SLP Agent
Location Protocol, then the client will be unable to obtain service, will be unable to obtain service, or may unwittingly be directed to
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
directory agents to advertise its services. DHCPOFFERs could prevent directory agents to advertise its services. DHCPOFFERs could prevent
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.
6. Acknowledgements
Thanks to Erik Guttman for his helpful suggestions in the creation
ane revision of this draft.
References References
[1] T. Berners-Lee, L. Masinter, and M. McCahill. Uniform Resource [1] S. Bradner. Key Words for Use in RFCs to Indicate Requirement
Locators (URL). RFC 1738, December 1994.
[2] S. Bradner. Key words for use in RFCs to Indicate Requirement
Levels. RFC 2119, March 1997. Levels. RFC 2119, March 1997.
[3] B. Carpenter and Y. Rekhter. Renumbering needs work. RFC 1900, [2] D. Crocker and P. Overell. Augmented BNF for Syntax
February 1996. Specifications: ABNF. RFC 2234, November 1997.
[4] R. Droms. Dynamic Host Configuration Protocol. RFC 2131, March [3] R. Droms. Dynamic Host Configuration Protocol. RFC 2131, March
1997. 1997.
[5] E. Guttman, C. Perkins, and J. Kempf. Service Templates and [4] E. Guttman, C. Perkins, J. Veizades, and M. Day. Service
service: Schemes. draft-ietf-svrloc-service-scheme-05.txt, Location Protocol version 2. draft-ietf-svrloc-protocol-v2-04.txt,
November 1997. (work in progress). March 1998. (work in progress).
[6] E. Guttman, C. Perkins, J. Veizades, and M. Day. Service
Location Protocol version 2. March 1998. (work in progress).
draft-ietf-svrloc-protocol-v2-04.txt,
[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, January 1998.
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 Charles E. Perkins Erik Guttman
Technology Development Group Technology Development Group Technology Development Group
Mail Stop MPK15-214 Mail Stop MPK15-214 Mail Stop UFRA02
Room 2682 Sun Microsystems, Inc. Sun Microsystems, Inc.
Sun Microsystems, Inc. 15 Network Circle Bahnstr. 2
15 Network Circle Menlo Park, CA 94025 74915 Waibstadt, Germany
Menlo Park, CA 94025 phone: +1 650-786-6464 phone: +49 7263 911 701
ph# 1-650-786-6464 fax: +1 650-786-6445 or: +1 650 786 5992
fax# 1-650-786-6445 email: Charles.Perkins@Sun.Com Erik.Guttman@Sun.Com
email: charles.perkins@Sun.COM
charles.perkins@Eng.sun.com
cperkins@Eng.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/