RFC 2610 PROPOSED STANDARD DHCP · SERVICE LOCATION · CONFIGURATION

DHCP Options for SLP: DHCP Options for Service Location Protocol

Two DHCP options that tell SLP agents where their Directory Agents are and which scopes to use.

On rfc-editor.org ↗
PUBLISHED
June 1999
AUTHORS
C. Perkins, E. Guttman
STREAM
IETF
DIRECTORY AGENT OPTION CODE
78
SERVICE SCOPE OPTION CODE
79
MINIMUM DA OPTION LENGTH
5
SCOPE LIST ENCODING
UTF-8, comma delimited
DOI
10.17487/RFC2610

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         C. Perkins
Request for Comments: 2610                                    E. Guttman
Category: Standards Track                               Sun Microsystems
                                                               June 1999


               DHCP Options for Service Location Protocol

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

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.

1. Introduction

   The Dynamic Host Configuration Protocol [2] provides a framework for
   passing configuration information to hosts on a TCP/IP network.
   Entities using the Service Location Protocol, Version 2 [3] and
   Service Location Protocol, Version 1 [4] need to obtain the address
   of Directory Agents and Scope configuration.  The Service Location
   Protocol (SLP) provides a default configuration for Scopes and
   Directory Agents may be discovered using multicast or broadcast.  It
   is useful in a larger deployment to be able to configure SLP Agents
   using DHCP, so as to centralize the administration and to deploy SLP
   in networks where multicast routing is not available.

   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 [1].

2. Introduction

   The DHCP options described below are used to configure Agents using
   the Service Location Protocol, Version 2 [3] and Version 1 [4].

   The SLP Directory Agent option is used to configure User Agents and
   Service Agents with the location of Directory Agents in the network.

   The SLP Scope Option takes precedence over both default and static
   scope configuration of SLP agents.

3. SLP Directory Agent Option

   This option specifies the location of one or more SLP Directory
   Agents.

    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 = 78   |    Length     |   Mandatory   |      a1       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      a2       |       a3      |       a4      |      ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The SLP Directory Agent Option specifies a list of IP addresses for
   Directory Agents.  Directory Agents MUST be listed in order of
   preference, if there is an order of preference.

   The Length value must include one for the 'Mandatory' byte and
   include four for each Directory Agent address which follows.  Thus,
   the Length minus one of the option MUST always be divisible by 4 and
   has a minimum value of 5.

   The address of the Directory Agent is given in network byte order.

   The 'Mandatory' byte in the Directory Agent option may be set to
   either 0 or 1.  If it is set to 1, the SLP User Agent or Service
   Agent so configured MUST NOT employ either active or passive
   multicast discovery of Directory Agents.

   Note that for backward compatibility with some deployed software the
   Mandatory byte MUST NOT be set to any byte value for which the high
   order bit (0x80) is set.

   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
   Directory Agent Option is configured with.  See the notes below.

   The SLPv2 specification [3] defines how to use this option.

4. SLP Service Scope Option

   The scope list is a comma delimited list which indicates the scopes
   that a SLP Agent is configured to use.

    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 = 79   |     Length    |   Mandatory   | <Scope List>...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The Length indicates the number of bytes which follow.  Since the
   Scope-List String is encoded using UTF-8 [5] characters, it may be
   the cast that the Length is not the same as the number of characters
   in the Scope-List String.  The Length value must include one for the
   'Mandatory' byte.

   The 'Mandatory' byte determines whether SLP Agents override their
   static configuration for scopes with the <Scope List> string provided
   by the option.  This allows DHCP administrators to implement a policy
   of assigning a set of scopes to Agents for service provision.  If the
   Mandatory byte is 0, static configuration takes precedence over the
   DHCP provided scope list.  If the Mandatory byte is 1, the <Scope
   List> provided in this option MUST be used by the SLP Agent.

   The Scope List String syntax and usage are defined in the SLPv2
   specification [3].

4.1. Zero Length Scope-List String Configuration

   A SLP Service Scope Option which indicates a Length of 1 (in other
   words, omitting the <Scope List> string entirely) validly configures
   the SLP User Agent to use "User Selectable Scopes."

   The SLP Agent will use the aggregated list of scopes of all known
   DAs.  If no DAs are known, the UA will use SA discovery to determine
   the list of scopes on the network, as defined in  [3].

   Note that this configuration is tantamount to removing all
   centralized control of the scope configuration of 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

   If a malicious host is able to insert fraudulent information in
   DHCPOFFER packets sent to a prospective SLP Agent then the SLP Agent
   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.

   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.

References

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

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

   [3] E. Guttman, C. Perkins, J. Veizades, and M. Day, "Service
       Location Protocol version 2", Work in Progress.

   [4] Veizades, J., Guttman, E., Perkins, C. and S. Kaplan, "Service
       Location Protocol", RFC 2165, July 1997.

   [5] Yergeau, F., "UTF-8, a transformation format of unicode and ISO
       10646", RFC 2279, October 1998.

Authors' Addresses

   Charles E. Perkins
   Technology Development Group
   Mail Stop MPK15-214
   Sun Microsystems, Inc.
   15 Network Circle
   Menlo Park, CA  94025

   Phone: +1 650-786-6464
   Fax:   +1 650-786-6445
   EMail: Charles.Perkins@Sun.Com
   Web: http://www.svrloc.org/~charliep


   Erik Guttman
   Technology Development Group
   Mail Stop UFRA02
   Sun Microsystems, Inc.
   Bahnstr. 2
   74915 Waibstadt, Germany

   Phone: +49 7263 911 701
     or:  +1 650 786 5992
   EMail: Erik.Guttman@Sun.Com

Full Copyright Statement

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMSLP agents normally find Directory Agents by multicast or broadcast and use default scopes, which is hard to administer centrally and does not work where multicast routing is unavailable.
MECHANISMOption 78 gives a list of Directory Agent addresses in order of preference, and option 79 gives a comma-delimited scope list, each with a Mandatory byte that controls how strongly it applies.
THE CATCHAdministrators can configure SLP agents centrally through DHCP, with the caveat that DHCP information itself generally cannot be authenticated.

§1Why Configure SLP with DHCP

The Service Location Protocol (SLP), in versions 1 and 2, lets programs find network services. SLP agents need the addresses of Directory Agents (DAs) and a scope configuration. SLP has defaults for scopes, and DAs can be found by multicast or broadcast.

The RFC argues that in a larger deployment it is useful to configure SLP agents through DHCP. That centralizes administration and lets SLP be deployed in networks where multicast routing is not available. It defines two DHCP options for the job, which configure agents using both SLP version 2 and version 1.

Instead of every computer shouting to find the service directory, the network just tells it when it joins.

§2The Two Options

The SLP Directory Agent option (code 78) tells User Agents and Service Agents where the Directory Agents are. The SLP Service Scope option (code 79) assigns scopes. The scope option takes precedence over both default and static scope configuration of SLP agents.

Both options carry a Mandatory byte right after the length. It decides how firmly the option binds the agent, as the next sections describe.

There are two notes on the sheet: one with the directory's address, one with the groups you belong to.

§3SLP Directory Agent Option

Option 78 holds a list of IPv4 addresses of Directory Agents, in network byte order. They MUST be listed in order of preference if there is one. The Length counts one byte for Mandatory plus four for each address, so Length minus one MUST be divisible by 4 and the minimum Length is 5.

The Mandatory byte is 0 or 1. If it is 1, the agent MUST NOT use active or passive multicast discovery of Directory Agents. For backward compatibility with some deployed software, the byte MUST NOT have the high-order bit (0x80) set.

The listed DAs MUST be configured with a non-empty subset of the scope list that the receiving agent is configured with. How to use the option is defined in the SLPv2 specification.

It is a list of directory addresses, best one first. A flag can say "do not go looking anywhere else."

SLP DIRECTORY AGENT OPTION (RFC 2610)
SLP Directory Agent option
FieldNameSizeValueDescription
CODECode1 byte78Option code, 78.
LENGTHLength1 byteOne for Mandatory plus four per address; minimum 5.
MANDATORYMandatory1 byte0 or 1; if 1, no multicast discovery of DAs.
A1a11 byteFirst byte of the first DA address; more addresses may follow.

§4SLP Service Scope Option

Option 79 carries a comma-delimited scope list, encoded in UTF-8. Because UTF-8 characters can take more than one byte, Length may differ from the number of characters. Length includes one byte for Mandatory.

The Mandatory byte decides whether the DHCP scope list overrides the agent's static configuration. If it is 0, static configuration takes precedence. If it is 1, the scope list in the option MUST be used. This lets DHCP administrators enforce a policy of which scopes agents provide services in. The syntax and usage of the Scope List string are defined in the SLPv2 specification.

Empty scope list

A Length of 1, with no scope string at all, validly configures the User Agent to use "User Selectable Scopes." The agent then uses the combined scope lists of all known DAs, or, if none are known, uses SA discovery to learn the scopes on the network. The RFC warns this is tantamount to removing all centralized control of scopes, so every User Agent can see every service, which may not be desirable.

The note lists which groups you belong to. A flag decides whether this note beats what was already written on your computer.

§5Security Considerations

If a malicious host can insert false information into DHCPOFFER packets sent to an SLP agent, the agent may be unable to get service or may be steered to the wrong services. The RFC lists many chances for denial of service: a service agent may rely on fraudulent Directory Agents, and DHCPOFFERs could tell clients not to use multicast or to use nonexistent Directory Agents.

The RFC says these difficulties come from a larger problem: in common DHCP deployments, securing or authenticating any information from a DHCP server (or client) is not possible.

If someone sneaks a fake note onto the sheet, you might be sent to the wrong place. The network cannot yet tell real notes from fake ones.

§6References