Internet Engineering Task Force C. Perkins INTERNET DRAFT E. Guttman Sun Microsystems13 March09 October 1998 DHCP Options for Service Location Protocoldraft-ietf-dhc-slp-03.txtdraft-ietf-dhc-slp-04.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 useInternet-DraftsInternet- Drafts as reference material or to cite them other than as ``work in progress.'' Tolearnview thecurrent statusentire list ofany Internet-Draft,current Internet-Drafts, please check the ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net(North(Northern Europe), ftp.nis.garr.it(South(Southern Europe), munnari.oz.au (Pacific Rim),ds.internic.netftp.ietf.org (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. 1. Introduction The Dynamic Host Configuration Protocol[4][3] provides a framework for passing configuration information to hosts on a TCP/IP network. Entities using the Service LocationProtocol [7]Protocol, Version 2 [4] need tofind outobtain the address of Directory Agentsin order to transact messagesandobtain the correct scope to be used in messages which are exchanged using theScope configuration. The Service LocationProtocol. The scope MUST be encoded using the UTF8 character encoding [8]Protocol (SLP) provides a default configuration for Scopes andhave the values referred by the MIBEnum value. Note that each characterDirectory Agents mayrequire two or more octets of data for its representation. Note that each option listed below MAYbeincluded multiple times in the same DHCPOFFERdiscovered using multicast orDHCPREQUEST. If so, then the options SHOULDbroadcast. It is useful in a larger deployment to beincludedable to configure SLP Agents using DHCP, so as to centralize the administration and to deploy SLP inorder of decreasing preference.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[2].[1]. 2.Typed Scope Lists InIntroduction The DHCP options described below are used to configure Agents using the Service Location Protocol,multiple service types can be hosted on the same network node. However, DHCP typically configures computers based on their IP address. ItVersion 2. The SLP Directory Agent option ispossible that different service types on the same computer would be administered from different scopes. Thus, options 78 and 79 have additional syntaxused toallow this more detailed style of service configuration. In particular,configure User Agents and Service Agents with thelistlocation ofscopes containedDirectory Agents in theoptions is syntactically separated into lists pertainingnetwork. These Directory Agents are assumed toeach 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, separatedsupport all of the scopes supplied bycommas 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 hastheformat defined in [5], and a scope-item hasSLP Scope Option. If theformat defined in [6] for "strval". Basically, a scope-itemSLP Scope Option is absent, the scope string "default" is used instead. If there is acharacterscope stringthat 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 typesconfigured using local configuration on theclient. In a DHCPREQUEST, this scope string would indicatehost that is used if no SLP Scope Option has been sent. DHCP configuration takes precedence over theclient wishes a directory agent which supports ANYlocal configuration ofthese three scopes. In a DHCPOFFER, theSLP scopeindicates 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) Assuminglists. SLP Agents (be they Directory Agents, User Agents or Service Agents) which use theDHCP clientSLP Directory Agent Option MUST be configured withtwo service types "netman" and "proxystuff" did not make any scope restriction,acorresponding typed-scope-list in a DHCPREQUEST could be, (netman=),(proxystuff=) asking for scopes for those service types.scope. 3. SLP Directory Agent Option This optionrequests orspecifiesa Directory Agent (DA), along with zerothe location of one or morescopes supported by that directory agent.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|D|F|M|S| reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+a1 | a2 |DA Length |DA address (variable length) ...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Typed Scope List (variable length)a3 | a4 | a1 | ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Code 78 Length (variable)Thelength 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, theSLP Directory Agentis indicated by including its variable length host name or Fully Qualified Domain Name (FQDN) insteadOption specifies a list ofitsIPaddress. M If the 'M' bitaddresses for Directory Agents. Directory Agents MUST be listed in order of preference, if there isset,an order of preference. The address of the Directory Agentaddressis given in network byte order. The length of theonly one that mayoption MUST always beused,divisible by 4 andmulticast methods for discoveringhas a minimum length of 4. The Directory Agents listed in this option MUSTNOTbeused. S Ifconfigured with the'S' bit is set,a non-empty subset of the scopeis present. rsv reserved; ignored upon reception; MUST be sent as zero DA Length The length (in octets) oflist that theDirectoryAgentfield.receiving the Directory AgentThe Fully Qualified Domain Name (FQDN), host name, or IP address ofOption is configured with. See theDirectory Agent. Typed Scope List The characters denoting the scope (see Section reftsl). In order to simplify administration of the configuration of Directory Agents fornotes below. SLPv2 ServiceLocation Protocol clients,Agents which are configured using the SLP Directory Agentcan be indicated by presenting its FQDN or host name instead of its IP address. This allows renumberingOption MUST send a SrvRqst toproceed more smoothly [3]. WhentheFQDN or host name is used,DAs in theserverDHCPOFFER. This SLPv2 SrvRqst sets the'F' bit. The host name can be distinguished fromScope List to theFQDNvalue configured by thepresence of a '.' character. In any case,SLP Scope Option if one was sent or "DEFAULT" otherwise. The service type for theDA length fieldrequest isset to be the length of the Directory Agent field. When"service:directory-agent" and the'F' bitpredicate isnot set,omitted. The reply will include theDA LengthDA's attributes, scope list. The SA MUSTbe 4. Note that more than one Directory Agent option may be present in a DHCP message. Each such option may haveregister all service with thesameDA which it advertises which are advertised in one ordifferent scope. The client may request any Directory Agent with a particular scope, by includingmore of theDirectory Agent optionscopes ina DHCP Request message withthe DA's scope list. The SA MUST register noDirectory Agent address included (the 'D' bit set to zero), andfaster than thecharacters denoting"min-lifetime" and not slower than thescope. The length"max-lifetime" attributes of theTyped Scope List is only indicated implicitlyDA. These attributes are obtained in the DAAdvert solicited by theoverall length ofSA after it receives theoption. This string is NOT null terminated. The format ofSLP Directory Agent Option DHCPOFFER. SLPv2 User Agents which are configured using theTyped Scope List field is described in section 2.SLP Directory Agent Option78MUSTinclude one or more scopes if a DA address is returned. Using option 78, it is not possible for different service types on the same nodesend their requests tobe configured with different directory agents. In other words, all service types onthesame node will be configured withDAs listed, using thesame directory agent.entire list of scopes they are configured with. 4. SLP Service Scope OptionThis optionThe scope list is a comma delimited list which indicatesone or morethe scopes thatshould be used byaServiceSLP Agent(SA) [7], when respondingis configured toService Request messages as specified by the Service Location Protocol.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 |Typed-Scope-List<Typed Scope List> String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Code 79The Length(variable)indicates the number of bytes which follow. Since 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 the Scope-List String. 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 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 Typed Scope List includes a list of scopes for the SLP Agent. The list may be a list of scopes, such as "north,south,east,west". 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 theoption"Math Department" scope. DAs will simply be configured inbytes.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 charactersdenotingin <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 A SLP Service Scope Option which indicates a Length of 0 configures thescope. The Typed-Scope-ListSLP Agent to use "User Selectable Scopes". If this isdescribeddone, the SLP Agent MUST NOT be configured using the SLP Directory Agent Option. Instead, the SLP Agent will discover scopes using Directory Agent discovery (or Service Agent Discovery) as defined inSection 2.[4]. TheDHCP client (i.e., user agent or service agent) which receives this optionSLP Agent will then use theindicated scope for inaggregation of allSLP requests and registrations. Thescopes it discovers on the network to configure its own scopestring must be UTF8 character encoded. This stringlist. Note that this configuration isnot null terminated. DHCP clients MAY use Option 79tantamount torequest scopesremoving all centralized control of the configuration hosts on the network. This makes it possible foroneevery User Agent to see every service. This may not be desirable as users may not be able to ormore particular service types.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 prospectiveclient of the Service Location Protocol,SLP Agent then theclientSLP 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.6. Acknowledgements Thanks to Erik Guttman for his helpful suggestions in the creation ane revision of this draft.References [1]T. Berners-Lee, L. Masinter, and M. McCahill. Uniform Resource Locators (URL). RFC 1738, December 1994. [2]S. Bradner. KeywordsWords foruseUse in RFCs to Indicate Requirement Levels. RFC 2119, March 1997.[3] B. Carpenter[2] D. Crocker andY. Rekhter. Renumbering needs work.P. Overell. Augmented BNF for Syntax Specifications: ABNF. RFC1900, February 1996. [4]2234, November 1997. [3] 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][4] E. Guttman, C. Perkins, J. Veizades, and M. Day. Service Location Protocol version 2. draft-ietf-svrloc-protocol-v2-04.txt, 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 Erik Guttman Technology Development Group Technology Development Group Mail Stop MPK15-214Room 2682Mail Stop UFRA02 Sun Microsystems, Inc. Sun Microsystems, Inc. 15 Network Circle Bahnstr. 2 Menlo Park, CA 94025ph# 1-650-786-6464 fax# 1-650-786-644574915 Waibstadt, Germany phone: +1 650-786-6464 phone: +49 7263 911 701 fax: +1 650-786-6445 or: +1 650 786 5992 email:charles.perkins@Sun.COM charles.perkins@Eng.sun.com cperkins@Eng.sun.comCharles.Perkins@Sun.Com Erik.Guttman@Sun.Com Web: http://www.svrloc.org/~charliep