Internet Engineering Task Force                               C. Perkins
INTERNET DRAFT                                          Sun Microsystems
                                                          13 March  1998


               DHCP Options for Service Location Protocol
                       draft-ietf-dhc-slp-03.txt


Status of This Memo

   This document is a submission by the Dynamic Host Configuration
   Working Group of the Internet Engineering Task Force (IETF).
   Comments should be submitted to the dhcp-v4@bucknell.edu mailing
   list.

   Distribution of this memo is unlimited.

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents 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.''

   To learn the current status of any Internet-Draft, please check
   the ``1id-abstracts.txt'' listing contained in the Internet-Drafts
   Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (North
   Europe), ftp.nis.garr.it (South Europe), munnari.oz.au (Pacific Rim),
   ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).


Abstract

   The Dynamic Host Configuration Protocol provides a framework for
   passing configuration information to hosts on a TCP/IP network.
   Entities using the Service Location Protocol need to find out the
   address of Directory Agents in order to transact messages.  Another
   option provides an assignment of scope for configuration of SLP User
   and Service Agents.












Perkins                Expires 13 September 1998                [Page i]


Internet Draft     DHCP Options for Service Location      13 March  1998


1. Introduction

   The Dynamic Host Configuration Protocol [4] provides a framework
   for passing configuration information to hosts on a TCP/IP network.
   Entities using the Service Location Protocol [7] need to find out the
   address of Directory Agents in order to transact messages and obtain
   the correct scope to be used in messages which are exchanged using
   the Service Location Protocol.

   The scope MUST be encoded using the UTF8 character encoding [8]
   and have the values referred by the MIBEnum value.  Note that
   each character may require two or more octets of data for its
   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",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [2].


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



Perkins                Expires 13 September 1998                [Page 1]


Internet Draft     DHCP Options for Service Location      13 March  1998


                                 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)

   Assuming the DHCP client with two service types "netman" and
   "proxystuff" did not make any scope restriction, a corresponding
   typed-scope-list in a DHCPREQUEST could be,

        (netman=),(proxystuff=)

   asking for scopes for those service types.


3. Directory Agent Option

   This option requests or specifies a Directory Agent (DA), along with
   zero or more scopes supported by that directory agent.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |    Length     |D|F|M|S|        reserved       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          DA Length            |DA address (variable length) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Typed Scope List (variable length) ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Perkins                Expires 13 September 1998                [Page 2]


Internet Draft     DHCP Options for Service Location      13 March  1998


      Code     78

      Length   (variable) The length of the option in bytes.

      D        If the 'D' bit is set, the Directory Agent field and the
               DA Length fields are present.

      F        If the 'F' bit is set, the Directory Agent is indicated
               by including its variable length host name or Fully
               Qualified Domain Name (FQDN) instead of its IP address.

      M        If the 'M' bit is set, the Directory Agent address is
               the only one that may be used, and multicast methods for
               discovering Directory Agents MUST NOT be used.

      S        If the 'S' bit is set, the scope is present.

      rsv      reserved; ignored upon reception; MUST be sent as zero

      DA Length The length (in octets) of the Directory Agent field.

      Directory Agent
               The Fully Qualified Domain Name (FQDN), host name, or IP
               address of the Directory Agent.

      Typed Scope List
               The characters denoting the scope (see Section reftsl).

   In order to simplify administration of the configuration of Directory
   Agents for Service Location Protocol clients, the Directory Agent
   can be indicated by presenting its FQDN or host name instead of its
   IP address.  This allows renumbering to proceed more smoothly [3].
   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
   DHCP message.  Each such option may have the same or different scope.

   The client may request any Directory Agent with a particular scope,
   by including the Directory Agent option in a DHCP Request message
   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
   by the overall length of the option.  This string is NOT null
   terminated.



Perkins                Expires 13 September 1998                [Page 3]


Internet Draft     DHCP Options for Service Location      13 March  1998


   The format of the Typed Scope List field is described in section 2.

   Option 78 MUST include one or more scopes if a DA address 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

   This option indicates one or more that should be used by a Service
   Agent (SA) [7], when responding to Service Request messages as
   specified by the Service Location Protocol.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |    Length     |   Typed-Scope-List ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Code     79

      Length   (variable) The length of the option in bytes.

      scope    the characters denoting the scope.

   The Typed-Scope-List is described in Section 2.  The DHCP client
   (i.e., user agent or service agent) which receives this option will
   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
   particular service types.


5. Security Considerations

   If a malicious host is able to insert fraudulent information in
   DHCPOFFER packets sent to a prospective client of the Service
   Location Protocol, then the client will be unable to obtain service,
   or may unwittingly be directed to use the incorrect services.

   Many opportunities for denial of service exist.  A service agent
   could find that it might rely on fraudulent or otherwise malicious
   directory agents to advertise its services.  DHCPOFFERs could prevent
   the regular SLP framework from functioning by directing clients to
   not use multicast, to use nonexistent directory agents and so on.



Perkins                Expires 13 September 1998                [Page 4]


Internet Draft     DHCP Options for Service Location      13 March  1998


   These difficulties are inherited from the much larger and more
   serious problem, viz.  securing or authenticating any information
   whatsoever from a DHCP server (or client!)  is not possible in common
   DHCP deployments.


6. Acknowledgements

   Thanks to Erik Guttman for his helpful suggestions in the creation
   ane revision of this draft.










































Perkins                Expires 13 September 1998                [Page 5]


Internet Draft     DHCP Options for Service Location      13 March  1998


References

   [1] T. Berners-Lee, L. Masinter, and M. McCahill.  Uniform Resource
       Locators (URL).  RFC 1738, December 1994.

   [2] S. Bradner.  Key words for use in RFCs to Indicate Requirement
       Levels.  RFC 2119, March 1997.

   [3] B. Carpenter and Y. Rekhter.  Renumbering needs work.  RFC 1900,
       February 1996.

   [4] R. Droms.  Dynamic Host Configuration Protocol.  RFC 2131, March
       1997.

   [5] E. Guttman, C. Perkins, and J. Kempf.  Service Templates and
       service:  Schemes.  draft-ietf-svrloc-service-scheme-05.txt,
       November 1997.  (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

   Questions about this memo can be directed to:

        Charles E. Perkins
        Technology Development Group
        Mail Stop MPK15-214
        Room 2682
        Sun Microsystems, Inc.
        15 Network Circle
        Menlo Park, CA  94025
        ph#    1-650-786-6464
        fax#   1-650-786-6445
        email: charles.perkins@Sun.COM
                charles.perkins@Eng.sun.com
                cperkins@Eng.sun.com
        Web: http://www.svrloc.org/~charliep






Perkins                Expires 13 September 1998                [Page 6]