Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
              Interpreting Client Options for the Dynamic Host Configuration
                                         Protocol
          
          
                          <draft-ietf-dhc-client-options-00.txt>
          
                        Saved: Thursday, October 14, 1999, 2:24 PM
          
          
          Status of this Memo
          
            This document is an Internet-Draft and is in full conformance with
            all provisions of Section 10 of RFC2026.
          
            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."
          
            The list of current Internet-Drafts can be accessed at
            http://www.ietf.org/ietf/1id-abstracts.txt
          
            The list of Internet-Draft Shadow Directories can be accessed at
            http://www.ietf.org/shadow.html.
          
            To learn the current status of any Internet-Draft, please check
            the "1id-abstracts.txt" listing contained in the Internet-Drafts
            Shadow Directories on ds.internic.net (US East Coast),
            nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
            munnari.oz.au (Pacific Rim).
          
          
          Copyright Notice
          
            Copyright (C) The Internet Society (1999).  All Rights Reserved.
          
          
          Abstract
          
            During the summer of 1999, a grand debate raged over the correct
            interpretation of several DHCP client options as described in [RFC
            2132], as well as the need for one option whose proposing
            Internet-Draft expired.
          
            As a result of that debate, the authors gained some insights into
            the intended (or unintended!) interpretation of certain options
            defined in [RFC 2132,] particularly the Vendor Class Identifier
            (option 60) and Vendor Encapsulated Options (option 43.)
          
            These insights are presented in this informational Internet-Draft,
            whose reason for being is to act as an aid to implementers of the
            DHC protocol, and to future editors of the underlying RFCs and
            selected, current Internet-Drafts.  This memo is not being
            proposed as a standards-track document, but rather as an aid to
            clarify existing and future RFCs.
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 1]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
          Table of Contents
          
            1. Introduction..................................................2
            2. Overview......................................................2
            3. Cases.........................................................3
            3.1. Vendor Classing.............................................3
            3.1.1. Classification Scheme.....................................3
            3.1.2. Mode of Operation.........................................4
            3.2. User Classing...............................................5
            3.3 Client Identifiers...........................................6
            3.4 Option Default Values........................................6
            3.4.1 IP Stack Options...........................................7
            3.4.2 Other Options..............................................7
            3.5 Who Wins in a Conflict?......................................7
            4. Discussion....................................................8
            4.1 Vendor Classing..............................................8
            4.2 User Classing...............................................22
            4.3 Client Identifiers..........................................22
            4.4 Option Default Values.......................................22
            4.5 Who Wins in a Conflict?.....................................22
            5. Acknowledgements.............................................22
            6. Security Considerations......................................22
            7. References...................................................23
            8. Editors' Addresses...........................................23
            9. Full Copyright Statement.....................................23
          
          
          
          1. Introduction
          
            This memo was produced by the DHCP Working Group and attempts to
            identify and clarify a few specific cases where the use of client
            options is not rigorously specified by the Dynamic Host
            Configuration Protocol.
          
            This memo does not cover every DHCP/BOOTP client option nor every
            element of a DHCP/BOOTP request/response packet.
          
            This memo is based on the Internet standards-track DHC protocol as
            defined by documents [RFC2131 and RFC2132].
          
            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
            document [RFC2119].
          
          
          2. Overview
          
            DHCP is widely used by many different vendors of computer and
            networking hardware and software to provide a straightforward
            means of supplying IP address and networking configuration data to
            individual client hosts from DHCP servers.  The Requests for
            Comments (RFCs) that specify the protocol and the configuration
            elements that may be specified by a DHCP message exchange have
            grown significantly as the protocol has become more widely
            deployed until we find ourselves in the situation we experience
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 2]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            today with nearly 100 options the network administrator can use to
            perform semi-automatic configuration of client hosts.  The
            proliferation of options has led to a small number of cases where
            the interaction among options is not rigorously specified, causing
            confusion or interoperability failures.  This RFC attempts to
            identify some of these cases and clarify the expected behavior of
            both client and server.
          
            In this memo, the specific cases to be studied will be first
            identified and, hopefully, clarified, then some of the discussion
            that lead to the author's contentions about the correct use of the
            client options will be presented to show the rationale for
            inclusion.
          
            At the time of writing, the authors do not know the eventual form
            of the investigation that led to the production of this memo.
            Three alternatives exist:  (1) publication as an "informational"
            RFC, (2) publication as a "best computing practices" (BCP) memo,
            or (3) justification for revision of the basic DHCP RFCs.  None of
            these is preferred by the authors over any other.  Presumably the
            DHC Working Group will review and decide the best course for the
            memo.
          
          
          3. Cases
          
          3.1. Vendor Classing
          
            Vendor classing is provided through the use of options 60 (Vendor
            Class Identifier) and 43 (Vendor Encapsulated Options), in
            conjunction with option 55 (Parameter Request List.)
          
          3.1.1. Classification Scheme
          
            Vendor classing attempts to address the question of "How do I
            classify a client such that the client receives appropriate
            configuration data for their specific situation?"  While every
            deployment of DHCP will have its own unique characteristics,
            consider a large organization with geographically-dispersed
            locations where clients requiring DHC services may be in different
            organizational entities, with different user processing functions,
            and of different generations and types.  It is likely that the
            client population can be viewed a number of different ways, such
            as:
          
               1. Geographical ("Where is the client located?")
          
               2. Organizational ("In which department is the client
                  located?")
          
               3. Functional ("What job does the user perform?")
          
               4. Regulatory ("What statutory constraints affect the user?")
          
               5. Networking ("How is the client connected to other hosts?")
          
               6. Environmental ("What software is the client using?")
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 3]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
               7. Platform ("What hardware is the client using?")
          
            Some organizations may have fewer, others more, than these
            different views.  Each view, especially the latter three given
            above, may be further subdivided:  for example, Environment might
            have as many as four dimensions (operating system, TCP/IP network
            stack, DHCP client, and principal application software) while
            Platform most likely always has two (system manufacturer's model,
            network interface vendor's model.)  RFCs 2131 and 2132 do not
            specifically address how many views a network administrator could
            or should take of the environment under their purview, but the
            underlying intent seems to be that all necessary and sufficient
            information to permit informed configuration of client hosts ought
            to be available for exchange and use by the clients and servers.
          
            Where does the Vendor Class fit in the hierarchy of client views?
            While it could legitimately be argued that any "vendor-supplied"
            component of the client (either hardware or software) is a
            candidate, one of the editors believes the proper fit is aligned
            with either the TCP/IP stack or DHCP client based on the following
            argument:
          
            Network interfaces numbered in conformance with IEEE standards
            contain a manufacturer's code as part of the interface's hardware
            address, which is already carried in the 'chaddr' field of a BOOTP
            packet.  Assuming that Mike Henry's proposal for a Globally Unique
            Identifier tied to specific host systems is accepted by systems
            manufacturers there will be a way to completely identify [newer]
            systems unambiguously.  Having covered the two primary views of
            the hardware platform, the remaining "vendor-supplied" components
            are software (or, possibly, embedded firmware such as a writeable
            control store or flash PROM.)  It will be argued in the next
            section that application software is a user, not vendor,
            characteristic.  As the underlying operating system software is
            much less important for determining client networking behavior
            than the choice of the TCP/IP stack or DHCP client, the editors
            propose discounting operating system as a factor.
          
            In some cases LAA devices, where the vendor's MAC address is
            replaced with a Locally-Assigned Address from the range 400000
            (assigned by the IEEE for local addressing), it may be necessary
            to override the Globally Unique Identifier that Mike Henry is
            proposing.  In some environments LAAs are a requirement for in
            order to effectively manage BOOTP devices.  However, when talking
            DHCP, we should REQUIRE the use of the Client Identifier in lieu
            of the LAA, so the conflict may not be as great.  (Should we also
            require that the Client Identifier be configurable by an
            administrator?)
          
          3.1.2. Mode of Operation
          
            The basic mode of operation for vendor classing is that during the
            discovery phase the client broadcasts a DHCPDISCOVER message
            containing Vendor Class Information (option 60) which the server
            optionally uses to select an IP address and other configuration
            information to offer to the client in a DHCPOFFER message.  Note
            the word "optionally."  RFC2132 stops short of mandating any
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 4]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            specific kind of server behavior on receipt of this option.  This
            is not quite an oversight by the RFC editor:  the editor had to
            consider the possibility that any specific server might not be
            configured to recognize a particular Vendor Class Identifier.  As
            that case is an implementation issue under control of the network
            administrator, not the editor, any server response MUST be
            optional.
          
            Let's continue by assuming that the server has been configured to
            recognize the Vendor Class Identifier sent by the client, and has
            stored some specific data to be used to configure any client
            belonging to that class.  What does the server do?  There are
            essentially three approaches:  use the Vendor Encapsulated Options
            string (option 43) to return data to the client, return data in
            one of the options specified in the "Host Requirements" RFC [must
            supply RFC number here û ed.], or return data in some other
            option.
          
            Which approach is correct?  Actually, all of them are!  The one
            chosen by a specific client-server pairing is a matter that SHOULD
            be specified by the vendor who declares the need for vendor-
            specific options data.  While no hard and fast rules apply,
            generally, if the data to be returned is covered by the Host
            Requirements, it SHOULD be returned in the proper option.  If not
            covered by Host Requirements, but is covered by another, existing
            option, that option should be used.  The Vendor Encapsulated
            Options string should be used for data that fits within the
            limitations of a BOOTP/DHCP option field (0-255 octets) that
            doesn't also fit any other existing option.  Note that except for
            options necessitated by the Host Requirements, the option number
            of the correct option(s) MUST be included in the Parameter Request
            List (option 55) or the server has no obligation to return it to
            the client.
          
            What about longer aggregations of configuration data than will fit
            in a single option?  The editors are not prepared to offer a
            general solution to this problem but will suggest that it may be
            possible to use existing protocol facilities, such as 'file' or
            'sname' to accomplish transfer of larger amounts of configuration
            data.  Clearly, this is an area for more study.
          
          3.2. User Classing
          
            User classing is provided through the use of option NN (User Class
            Identifier) in conjunction with option 55.  While it basically
            performs a similar function to vendor classing, it differs in one
            major respect:  there is no User Encapsulated Options data
            specified for DHCP.
          
            The history of User Classing is a bit murky.  First proposed (if
            our memory is correct!) by Glenn Stump, the Internet-Draft of this
            option was allowed to expire, then it was resurrected to the
            objections of some members of the Working Group, and has again
            fallen into limbo.  The editors believe it continues to have value
            and should be reinstated.  An example will hopefully illustrate:
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 5]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            Suppose your organization operates a large call center, large
            enough to warrant its own tandem switch which contains an adjunct
            processor that includes DNS service for client workstations
            matching client telephone sets.  Further, suppose that in order to
            perform database lookup of customer data based on incoming
            Automatic Number Identification data and answer incoming calls
            with 400 milliseconds, there is an insufficient time budget to
            perform certain functions such as dynamic DNS update or even
            dynamic assignment of IP addresses for newly-activated clients.
            This entire group of clients are a natural grouping whose user
            characteristics differ considerably from all others within your
            organization.  At the very minimum, they should be associated with
            the adjunct DNS server rather than your organization's primary DNS
            servers.  Perhaps they are to be given a unique Domain Name.
          
            The editors are neutral as to whether or not the User Class
            Identifier option should have a corresponding User Encapsulated
            Options String option, similar to option 43, but do believe that
            the User Class Identifier should be part of the DHCP options
            universe.
          
          3.3 Client Identifiers
          
            The DHCP Client Identifier (option 63) is specified in RFC2131 as
            the primary key for locating IP address leases by both client and
            server, yet considerable misunderstanding remains about this
            option.  Specific issues concern the uniqueness of the Client
            Identifier and how the uniqueness influences selection of an IP
            address lease to offer a client.
          
            An early design decision for DHCP was to require the Client
            Identifier to be unique only within a network segment.  This
            design choice permits roaming by mobile clients among a group of
            disjoint subnets, and is a major convenience for implementers of
            DHCP.  Enlarging the scope of uniqueness for the Client Identifier
            would "break" many existing installations, so is considered to be
            "out-of-bounds" for future discussion.
          
            As mentioned in section 3.1, Mike Henry of Intel Corporation
            proposed a Globally Unique Identifier to the DHC Working group for
            those instances where a unique identifier with scope greater than
            a network segment is required.
          
            Also, as mentioned in section 3.1.1, the editors believe that
            providing an administrator the ability to configure the Client
            Identifier may be a desirable feature for clients, especially if
            the Globally Unique Identifier (tied to non-accessible hardware
            identification) is available, and User Classing is not.  This
            would permit finer control of DHCP-supplied client configurations
            by permitting more precise identification of the group to which a
            particular client belongs.
          
          3.4 Option Default Values
          
            What happens when either the client does not request an option
            essential to its operation, or the server is not configured to
            provide that data (through oversight or administrative error)?
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 6]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            Are there reasonable default values that can be recommended for
            specific options?  While some values may be suggested [or
            required] by Host Requirements and other RFCs, the editors believe
            than a generally-accepted set of defaults that may be assumed by a
            client or server deserves some additional study.
          
          3.4.1 IP Stack Options
          
            The editors know of very few DHCP clients that actually request
            "path-mtu-discovery", but the host requirements RFCs state a
            "reasonable" default for this value.  Here there is a conflict
            between the virtues of brevity, that is, supplying clients with
            the smallest set of options necessary to begin functioning as a
            host on the network, and the desirability of requiring minimal
            assumed values by clients.  The editors have encountered several
            clients that were badly implemented, calling for every option (all
            254!) in a Parameter Request List because they made no attempt to
            understand or resolve the Host Requirements.
          
            A related question is whether a DHCP server SHOULD send options it
            knows to be required for successful operation (e.g., Router
            Address) even if the client does not request them?  The editors
            know that many servers do send a minimal list of options, but is
            there any need for agreement as to what constitutes a minimum set?
          
          3.4.2 Other Options
          
            Aside for options whose presence is required by various RFCs
            (e.g., DHCP Message Type) is there any need to identify a minimal
            set of other options to provide a client?  Is there any need to
            codify default values for options not mandated by the RFCs?
          
          3.5 Who Wins in a Conflict?
          
            In many of the Internet protocols, there are well-established
            rules for settling conflicts that may arise in operation, for
            example, the "lowest bid wins" rule often applies for durations or
            lifetimes.  When considering DHCP client options, can a consistent
            and defensible set of guidelines or rules be established to
            determine whether the client or server "wins" when a conflict
            arises?
          
            Taking the example of lease duration, the server is required only
            to offer a lease to a client that is of satisfactory duration to
            the serverù if the client wants a longer lease, it merely chooses
            not to request assignment of the offered lease.  The assumption is
            that the client can choose among competing offers, selecting the
            one it prefers.  Is there any need to recommend client behavior if
            it should not like any of the offered leases.
          
            The editors believe it is important to recommend client behavior
            upon non-acceptance of an IP lease.  Some sites have defined this
            behavior for their clients, especially in reference to IPv4
            autoconfiguration (not-enforceable until the clients actually
            honor the new DHCP "do not autoconfigure" option), but is a
            general policy appropriate?
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 7]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            The editors suggest the following client behavior:  If a client is
            offered a lease without acceptable parameters, but still allows
            IP-level connectivity to function, the client MUST accept the.  If
            the client does not get a lease or if it is told not to configure
            the IP stack, the client MAY continue trying at the standard
            exponential backoff intervals as specified in RFC 2131.
          
            For many administrators it is crucial that clients accept valid
            leases offered to them:  Failure to do so may result in a non-
            functioning client.  The editors are undecided if it is a good or
            poor idea to permit clients to suggest values for options such as
            the DNS Server, but we are in agreement that if a client were to
            refuse all offered leases because a critical parameter didn't
            satisfy the client's notion of what it was willing to accept, then
            chaos would reign in the network.
          
          4. Discussion
          
          4.1 Vendor Classing
          
            The following discussion took place on the ISC dhcp-server mailing
            list during June, July and August of 1999, and has been edited
            considerably to preserve the context of each comment while
            eliminating unnecessary remarks:
          
            [Bahman Sistany]
          
            I have been looking for any "published" vendor-specific options by
            vendors and I cannot find any.  Does anyone know of a situation
            where these options are being used (i.e., requested by a DHCP
            client and their values returned by a DHCP server?)
          
            The ISC dhcpd ignores any unrecognized options such as Vendor
            Specific Options as the protocol suggests it can do.  But if the
            server were to return values for these options it would need to
            know about them in advance.  That's what I mean by "published"
            above.
          
            [Mike Henry]
          
            The PXE specification from Intel addresses this area.  At
            http://developer.intel.com/ial/wfm/tools/index.htm you can find
            specifications (including a generally useful set of vendor-
            specific options), source code and binaries for the NT and Linux
            environments to provide proxies for DHCP services not capable of
            parsing Option 60, and the same for a boot service (daemon) to
            allow a heterogeneous set of bootservers for the booting client to
            choose from.
          
            [unknown]
          
            Sun JavaStations, the Solaris 7 boot system (I think), the Solaris
            8 boot system (definitely), Sun workstation network boot ROMS....
            You're probably seeing a pattern here.  I think vendors other than
            Sun are using vendor encapsulated options, but I don't know of any
            off the top of my head.
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 8]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            [Nathan Lane]
          
            Unfortunately, there is a great lack of understanding in the
            industry what these options are for.  I know of one thin client
            vendor that packs in the parameter request list ALL 127 site-
            specific options (128 through 254) then parses each one to see if
            their magic cookie is in the data of each option. Just off the top
            of my head, it looks to me like a vendor should send in the
            parameter request list option 60, vendor class identifier and then
            the server should respond with the information in option 43 (data
            which is totally opaque to the server.)  Is this everyone else's
            understanding of how it should operate?
          
            [Ted Lemon]
          
            It's mine, anyway.
          
            [Stuart Stevens]
          
            It is my understanding that Windows 2000 will support 3 vendor
            options (1-3) and the Windows 2000 DHCP server is already
            programmed for these vendor options.  I am not aware of these
            options being published.
          
            I thought that option 43 is more appropriate for the parameter
            request list.
          
            [Ted Lemon]
          
            The client should send option 60 and request option 43 in the
            parameter request list.
          
            [unknown]
          
            The ISC DHCP server needs to know about them before the first
            client requests one, but since you can define them in the
            configuration file, it's not the case that the server needs to
            have them compiled in or anything like that.
          
            [Nathan Lane]
          
            [Client] behavior, at least to me, seems well-defined in RFCs
            2131, 2132 and 1497.  Our "site specific" option space, 128
            through 254, is being polluted by vendors who don't understand or
            won't use vendor specific codes.
          
            [Barr Hibbs]
          
            I've seen the "request all" behavior from both Linux and thin
            clients, and I wonder why they are so clueless...
          
            I'm not sure how the association between vendor class identifier
            (60) and vendor encapsulated options (43) can be inferred -- I see
            lots of clients send me option 43, but they almost never request
            it!
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months            [Page 9]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            I've also had thin client vendors tell me that I should "capture"
            the data sent in option 43 and return it to them when requested!
          
            This may be an area where the RFCs need to be reworded.
          
            [Dave Gotwisner]
          
            The only problem with using option 43 (or options 128-254) for the
            vendor specific options, as I understand it, is that option 43 is
            of the same format as the rest of the option space (i.e., a series
            of option numbers, followed by lengths and data) and there is no
            definition that states what vendors use what codes.  If the DHCP
            server is not smart enough to send different option 43's (or any
            other option) based upon a vendor or client ID (note, this would
            typically need to be a wild-carded selection, since otherwise you
            hit the same problems of the old bootptab format -- proliferation
            of entries because of MAC values).  ISC MAY be smart enough to be
            configured this way.  Microsoft's DHCP server is not, at least
            without having to do a lot of work to get around their UI.
          
            As someone else said, Microsoft 2000 is using vendor options 1, 2,
            and 3.  Assuming this is correct, how do you deal with someone
            else who is also defining their device to look for these options
            (for completely different purposes), especially when both are
            deployed in the corporate environment?
          
            RFC 2132 says that options 128 to 254 are reserved for site
            specific options.  Vendors can read this two ways.  I read it one
            way,  Nathan, another.  Is the site specificity specifically for
            the end user to use, or is it for manufacturers to provide
            optional capabilities (outside of RFC 2132) which a site may use
            if they want those capabilities?  If I want to guarantee that I
            don't step on another vendor's custom option, the only way I can
            do it is to submit a set of options (via RFC) and go through the
            review process.  This may be the best way, but the under option
            128 space is filling up, and I don't think it is appropriate for
            each vendor to reserve blocks of a very limited space for their
            stuff (just look at some of the options already reserved (10, 14,
            16, 68, 75, and 76 all come to mind)).  Novell submitted their own
            set of options in RFC 2241 using 85 and 86.
          
            We are a vendor.  We make network terminals and Windows-based
            terminals.  We have several different product lines, all of which
            want a different set of data for configuration.  Our customer base
            has stated that they want to use DHCP to be able to configure the
            devices for ease of use.  Many have also demanded plug and play
            capability -- you connect the device to your network and turn it
            on, everything that you need for running the device the way the
            customer wants autoconfigures itself from the network.
          
            Some of our products hard code the set of options (in 128-254)
            that they use, and once the terminal comes up, you can configure
            it.  If our choice of defaults is acceptable (i.e., doesn't
            conflict with other devices in the customer's environment) no
            other configuration need be done with respect to the DHCP set of
            options.
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 10]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            Our other products use string tags (TAG = value) with a custom tag
            prefix, which we put anywhere in the 128-254 option space.  This
            allows the administrator to chose what options he/she wants to
            support and to guarantee that there isn't a conflict with other
            devices in the environment from the DHCP server side.
            Unfortunately, this approach forced us to request (via option 43)
            all options in 128-254.
          
            Neither is a good solution.  Unfortunately, there is no way to
            really protect against two devices (from two different vendors)
            from wanting the same option number for different purposes,
            whether they are through option 60 (in encapsulated form) or in
            128-254.
          
            DHCP servers which are smart enough (or configurable enough) to
            provide different data based upon Vendor ID, Client ID, or some
            other tag would do a great deal to reduce the problem, but not all
            DHCP server vendors do this.
          
            Of course, servers which only support the minimum record size and
            fail to support Option Overload further exacerbate the problem.
          
            Also, clients which support option 18 (Extensions Path) would also
            help, especially if the format of this option lent itself to
            editing the file.  Unfortunately, many clients fail to support it
            without going outside the client.
          
            [David Corlette]
          
            Excellent points all, but it seems to me that there are lots of
            ways around the problems stated.  For instance, why not pick a
            single option, register it so no other vendor "steps" on it, and
            then have that option contain the address of a server that can
            distribute  configuration information for your terminals?  As I
            understand it, this is similar to the TFTP server option;  indeed,
            you could probably  use that one if need be.
          
            As for the configuration server, you could quite quickly write one
            up, as all it really needs to do is be a FTP or TFTP server, maybe
            with some custom code to detect what type of terminal is
            requesting.   Release the server as source code;  it can run on
            the same machine as  the DHCP server, and you could provide
            precompiled binaries for the  major platforms.
          
            This is how many other terminals and machines autoconfigure, why
            not  yours?  I'm sure there are other ways to deal with the issue,
            all of  which avoid the overuse/misuse of the ill-defined vendor
            option  codes.  I mention the above only as an example of how
            simple it would  be to limit your use of option codes to a single,
            already defined  one.
          
            [Brian Murrell]
          
            You have to tell the server [which clients] are what kind [of
            devices].  This is how Merit RADIUS deals with the same problem in
            the "vendor-defined attribute" space.  You tell it that a device
            is (say) a Livingston Portmaster and it uses the Livingston
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 11]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            attribute space.  You tell it that a device is an Ascend TNT and
            it uses the Ascend attribute space.  This is quite manageable for
            things like NAS.  Doing the same in a DHCP environment does get a
            whole lot uglier, I will admit.  Perhaps the use of Client
            Identifiers will help this situation out.  Perhaps vendors should
            be identifying themselves in the Client Identifier and that can be
            keyed (via wild cards, perhaps) to a vendor option space.
          
            How about clients that do the same thing [support only the minimum
            packet size]?
          
            [Ted Lemon]
          
            The option codes in [option 43] are reserved for the vendor's use.
            Every DHCP server of which I am aware, with one possible
            exception, is capable of returning different values based on the
            value in option 60 that the vendor sends.
          
            [Dave Gotwisner]
          
            If you can tailor option 43 based upon what option 60 sends, you
          
            should also be able to tailor what other options get sent, since
            you may want to use a different Boot File (option 13), swap server
            (option 16), extensions path (option 18), maximum record size
            (option 57), etc.  Likewise, you should be able to send different
            128-254 based upon option 60.  Option 43 is limited in that it
            can't span the standard space + sname + file space's, individual
            options can span them.
          
            [Ted Lemon]
          
            This isn't a practical limitation, as long as you negotiate for a
            large DHCP packet using the Maximum Message Size option.   You
            aren't hoping to stuff your complete terminal configuration into a
            DHCP packet, I hope!
          
            [Dave Gotwisner]
          
            My issue is that [one vendor] uses vendor option 1, [a second]
            uses vendor option 1, [a third] uses vendor option 1.  Without a
            smart server capable of triggering based upon option 60 (or
            equivalent), a site that uses all three products may get incorrect
            behavior on two of them, maybe even disastrous behavior making the
            device unusable.
          
            [Ted Lemon]
          
            The protocol specifically states that option one in the vendor
            option data is different for every vendor.
          
            [Barr Hibbs]
          
            Some of the problems [we've experienced with client
            implementations include;]
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 12]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            1. Clients would send five or six options in the 128-254 range in
               discover packets, and if we didn't return those in an ack
               packet, they would immediately cycle back to discover, without
               issuing a release, effectively abandoning the lease.  Of
               course, they were offered the same lease again, and so we
               cycled endlessly, never committing a lease to the client....
          
            2. If we didn't return options 58 and 59 (T1 and T2 values) they
               dropped into INIT-REBOOT state every 60 seconds and sent a new
               request packet.
          
            3. Clients expected the TFTP server option to contain the address
               of the Winterm server.  Curious, but not really a problem, just
               a misinformed use of the option.
          
            4. lients complained when we didn't return hostname, even though
               it wasn't in the parameter request list.  [The vendor] never
               budged on this one, completely ignoring the RFCs, including
               host requirements.
          
            5. [One vendor] insisted that RFC2131 wasn't compliant with
               RFC1541 and refused to acknowledge that 2131 superseded 1541.
          
            [Nathan Lane]
          
            [One vendor] wouldn't use the "swap-server" option because they
            felt it was reserved for use by Sun Microsystems.  They wouldn't
            use the "rootpath" option because it didn't exactly specify the
            swap path file (wouldn't conventional use be to append rootpath
            with "client-name.swapfile" or something like what Sun used to do
            with that option?)
          
            [Mike Henry]
          
            Interesting -- the fuzziness in this area (option 60 and option
            43) is surprising, but in retrospect it certainly explains a bit
            of our confusion about guidance received in this area that didn't
            seem to match our reading of the specification.  But then, we
            weren't very confident of our reading in the first place because
            the spec did not seem to be completely clear.
          
            My reading of the text for option 43 (see below) is that the
            client is expected to use option 43 to send information about
            itself to the DHCP server and the DHCP server is expected use
            option 43 to send configuration information to the client that is
            specific to the client's vendor class.  In both cases, the
            information in option 43 is specific to the vendor class indicated
            in option 60.  Is this interpretation incorrect?  Are there DHCP
            servers that actually parse incoming option 43?
          
            The general direction we have been given is to embed client-
            specific information in the Vendor Class Identifier (option 60).
            This clearly can be made to work, but embedding a number of
            attributes in option 60 leads to creation of ad hoc formats for
            what amount to encapsulated options.  Setting aside for a moment
            current DHCP service implementation, it seems like it would be
            more logical to put this "subclass" information into option 43 and
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 13]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            leave option 60 to define the general class.  This seems to be
            what option 43 text is saying.  Am I misinterpreting the option 43
            text?
          
            Finally, taking the option 60 and option 43 text together, my
            impression is that the DHCP service is supposed to know what to do
            with option 60, but option 43 is opaque, to be interpreted by
            vendor specific code.  Does this imply that DHCP services should
            have some means of plugging in vendor specific code to interpret
            option 43 and, presumably, generate the option 43 response to the
            client?  Also, it seems to imply that the DHCP service should hand
            off processing to the vendor supplied code if the DHCP service
            sees an option 60!
          
            [Bahman Sistany]
          
            As far as I can tell, you are almost right.  Here's my
            correction(s).  Someone else will correct me if I misunderstand
            Vendor specific options as well.  The client wants a specific
            vendor's options, say, vendor1.  Here is part of what he'll send
            the server:
          
               option code, length, value
          
               60           7       vendor1
          
               55           1       43
          
            So this means I am [requesting vendor-specific options] for
            vendor1.  The server should have something like the following in
            its config file:
          
               vendor1 data1
          
               vendor2 data2
          
               ...
          
            When the server receives the request, it will send data1 in
            encapsulated form using option 43:
          
               option code, length,     value
          
               43           len(data1)  data1
          
            Note that like you said data1 is opaque as far as the server is
            concerned and the client who asked for [the option data] should be
            able to interpret [the option] on its own.  The server doesn't
            really care about this part though.
          
            Here's a question on something related:  My understanding is that
            the client can ask for specific options using option 55 (parameter
            request).  The server doesn't have to supply those though.  Also
            the server can send arbitrary options (not requested by the
            client) and the client can pick and choose among them or not use
            any of them at all.  Is this right?
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 14]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            [Mike Henry]
          
            Thanks, but I am afraid you only addressed the well-known half of
            the question.  There is no doubt the DHCP service returns
            information to the client in encapsulated options in Option 43.
            However, the part I am really interested in is whether real "live"
            DHCP services have the ability to make use of encapsulated options
            within Option 43 that the client sends to the DHCP service.  RFC
            2132 seems to clearly say this is expected use of Option 43, but I
            am not aware of a DHCP service actually capable of providing this
            functionality.
          
            Here is the 2132 text:
          
               "This option is used by clients and servers to exchange vendor-
               specific information.  The information is an opaque object of n
               octets, presumably interpreted by vendor-specific code on the
               clients and servers."
          
            [Bahman Sistany]
          
            You are right in interpreting the protocol (I reread it again and
            compared it to RADIUS which in a very limited sense is a similar
            protocol).  However, I have not heard of any DHCP servers that
            would actually use vs. info sent by the client (they ignore it [as
            permitted by the RFC.])  If a server has to use this info, then
            like you said it would have to load some [vendor-specific] code
            based on the value of option 60.
          
            [Barr Hibbs]
          
            Am I correct that what Mike and Bahman are asserting is that a
            DHCP server should not only accept option 43 from a client but
            should also do "something" with the received data?  Does that
            "something" specifically include, in your understanding, returning
            the encapsulated data, verbatim, to the client if the client
            requests that option 43 be returned by its inclusion in the
            parameter request list?
          
            While that is certainly possible, I wonder if that is the "right
            thing" to do because of the Pandora's box that it opens:  I've
            already had problems, as Nathan has, with thin-client vendors who
            think that a DHCP server should be an external data store for a
            client.  If your view of a server's role is to receive, store, and
            replay encapsulated data using option 43, then I don't know how we
            could prevent similar interpretations of a server's role for most
            other options.
          
            I also wonder how you might resolve potential configuration and
            usage problems:  suppose a server is configured with a specific
            set of vendor-encapsulated options for a specific vendor-class
            identifier and the client sends additional or different
            encapsulated options to the server as part of the protocol
            exchange -- what does the server do?
          
            Finally, I wonder what was intended by the RFC text that Mike
            quotes, as it does seem to imply that a server ought to be able to
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 15]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            take some action based on the receipt of vendor encapsulated
            options.
          
            [Kevin Bracey]
          
            As I understand it, the logic looks like this:  The client MAY
            send option 60, vendor class. If it does, it may also send option
            43, vendor specific options.
          
            If the server gets option 60, and recognizes the vendor class:
          
            1. Process the vendor specific options in a vendor-specific way
               (specific to the vendor class of the client).  This may affect
               what is returned. For example, you might have a vendor specific
               option for a device to specify its memory size, which might
               lead the server to return a different boot file.
          
            2. Return any standard options suitable for that vendor class.
          
            3. Put any vendor-specific options for the client in option 43.
          
            Option 43 can mean anything the client wants, in either direction
            -- what it means depends on the vendor class.  The suboptions
            could be totally different in the two directions, although that
            would probably be a bad design decision.
          
            The behavior you describe of "storing" option 43 would be one
            permissible use of it, as "vendor-specific" allows anything.  It
            would take more than a [server configuration] tweak to achieve
            that though, and it would have to be a particular behavior invoked
            only for certain known vendor classes.
          
            [Barr Hibbs]
          
            This gets to the heart of the issue that Mike Henry raised!
          
            ...just what does "Process the ... options ..." actually mean to
            you (and anyone else who wishes to comment)?  If you are
            suggesting that an arbitrary server must somehow not only be
            configured to identify the vendor class but also perform some
            vendor-specific processing on the encapsulated options which may
            have been sent by the client, just how does the vendor/ user/
            administrator "know" what processing to perform? Do you imagine
            that a vendor would develop "plug-ins" for popular DHCP servers?
            Would DHCP servers be required to publish an API to permit plug-
            ins?  Do you expect that IETF would codify the interface in an
            RFC?  This gets nasty "real quick now!"
          
            ...I have no problem at all with option 43 containing opaque
            values, which is the current state of RFC 2132, for the server to
            return from its configuration to a client when requested, but if
            you are suggesting that the server somehow accepts one set for
            some purpose then returns another set, I really would have to see
            a convincing argument to support that....  I think it would be an
            implementation nightmare with very, very few benefits to offset
            the monumental headaches.
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 16]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            ...my specific objection to storing, then replaying, any option
            (not just 43) is that such behavior turns the DHCP server from an
            information provider to a limited file server or database system,
            neither of which is an appropriate use for a service which is
            intended only to provide the networking configuration for
            acceptable clients.  My servers support over 118,000 clients:  if
            I had to store up to 255 bytes of data for 254 options for all of
            my clients, then the additional storage requirement for my servers
            could be as great as 7.6 Gbytes!  This is because I don't believe
            you could prevent nearly every option from being used this way:
            after all, why couldn't a client "suggest" which name servers or
            routers it prefers to use?
          
            This is a great deal more than merely tweaking [the server
            configuration] -- it is, I believe, a complete change in the way
            some of us believe a DHCP service should operate.  If a client
            really needs a file service to save data between reboots, then it
            should do so with some server intended to be a data repository,
            not try to piggy-back onto DHCP, which really is not intended for
            that purpose.  I also can't imagine how any DHCP server could
            effectively implement per-vendor processing of options where the
            server actually manipulates what is supposed to be opaque data
            (option 43).
          
            [Nathan Lane]
          
            I can see this need [to process vendor-specific options in a
            vendor-specific way.]  I think there must be a better or different
            way.
          
            Yes, the DHCP server does indeed know how to process vendor class
            options on a vendor by vendor basis and will pick a vendor
            specific option 43 to send only to that vendor's product.  It does
            NOT get as complicated as you mention, though, in my opinion.  The
            server designer and implementer must actually communicate with the
            developer implementing the device and get the specifications and
            requirements from the vendor.  No more can a device implementer
            envision that DHCP only provides an IP address.  It is the host
            configuration protocol, so it reasons that one should use it to
            configure as much as possible in the device that relates to its
            network configuration and connectivity.  It sure does make a
            server implementer's job much more complex, but I think it is a
            reasonable step to take.  The device implementer's desires are for
            "plug and play network".  I feel DHCP's job is to facilitate that
            idea.
          
            I feel it is absolutely not the DHCP server's responsibility to
            actually touch or process any data within option 43 and, according
            to my interpretation of the RFCs, the client has no business even
            sending an option 43.
          
            [It should] not be necessary [that a vendor develop "plug-ins" for
            popular DHCP servers.]  A vendor class would become a fairly
            overloaded field, but I think it is appropriate in this example. I
            see the configuration like this (pseudo code):
          
                 if [ vendor-class-identifier = "SUN-JAVASTATION-8MB" ]
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 17]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
                 then send option-43
          
                    "sun-specific-data-for-an-8MB-javastation"
          
                 else
          
                    if  ....
          
                    endif
          
                 endif
          
               # resume normal option processing to build the
               # rest of the response packet.
          
            Yes, this would require most servers out there right now to be
            modified and a scripting like language possibly be established.
          
            It is not the IETF's job to specify any DHCP vendor's API or
            interface [to a DHCP server to permit "plug-ins."]  Perhaps the
            IETF should specify how a DHCP server should make the information
            available to an externalized process (I'm not using externalized
            to mean a callout;  just generically) or script language.  I
            believe the ISC server's direction is to make some kind of
            embedded language available for just this type of thing.  It is
            nearing a requirement in my environment that servers do implement
            some kind of regular expression pattern matching on DHCP input
            packets and intelligently decide, via external policy lookups,
            what should be done with the device.  It is much more than just
            "to give an IP or not to give an IP."
          
            I really do not see option 43 as a bi-directional communications
            channel.  It is one way only.
          
            No, I don't support [storing, then replaying any option] either. A
            DHCP server is not a little 255 byte or so data store the client
            can use to stash that information.  However, if I have a vendor
            class of "SUN-JAVASTATION," I DO want to be able to send a pre-
            configured option 43 to the client.
          
            Again, no way.  I [also] couldn't support a client suggesting what
            it wanted [for every option] -- that would be mighty presumptuous
            of it!
          
            I don't see the server as actually manipulating the opaque data.
            I see the server intelligently choosing which set of opaque data
            to send to which set of vendor classes.
          
            I strongly think it is time to clarify the clarifications in
            regards to vendor encapsulated options and their behavior.  I
            think we should take this to DHC and start working up a draft.  I
            have a good base for one that is an internal document I'm
            completing describing our internal requirements for a DHCP client.
          
            [Nicolas Williams]
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 18]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            DHCP's original purpose was to allow clients to obtain a
            reasonably small set of configuration information needed to
            connect to a network and where the clients know nothing more than
            a simple Client Identifier which can be as simple as the vendor
            provided hardware address of the vendor provided network
            interface.
          
            This "small set of configuration information" means network
            address and routing configuration + name service configuration +
            [optionally] boot file server and path.  The client can go from
            there.
          
            It would be best if DHCP continued to do nothing more than that.
          
            If any software on the client needs to be configured beyond the
            above, then a different protocol should then be used to retrieve
            the information from a configuration server;  this is much easier
            to do when a client has become a full-fledged node in a network
            and there's no excuse for a client not to be able to do this today
            via DHCP.
          
            What's missing is an open protocol and data format standard for
            storing, administering and obtaining post-DHCP configuration
            information.  Some platforms offer their own system to do this,
            usually based on a proprietary name service system;  I'm thinking
            of NetInfo (for NextStep/OpenStep/MacOS), NIS/NIS+ (Sun et. al.),
            Active Directory (Microsoft, Cisco), even flat files (for poor
            administrators).
          
            [It] is reasonable [not to expect the server as actually
            manipulating opaque data,] but there will always be people for
            whom it's not enough.
          
            [Barr Hibbs]
          
            The pseudo-code fragment from Nathan's note is a pretty concise
            statement of how I believe that options 60 and 43 should interact.
            Given that, I imagine that it is a vendor's responsibility to
            offer network administrators something like the following:
          
            "PDQ tiny-stations (tm) identify themselves to a DHCP server by
            sending a vendor class identifier (option 60) that specifically
            names the tiny-station sending the request.  Series 100's send the
            string 'pdq-tiny-station-100' while series 250's send the string
            'pdq-tiny-station-250.'  If your tiny-station series 100 contains
            the optional writeable control store (model 103) your DHCP server
            should return the hex value '30:cf:12:59:72:21' as a vendor
            encapsulated option 43...."
          
            Then it would be the responsibility of the network administration
            to ensure that, like most other bits and pieces of configuration
            data, the precise vendor encapsulated option (if any) for a
            specific vendor class identifier is included in the server
            configuration.
          
            I also agree that the vendor class identifier could be used in
            similar ways with other options, for example:
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 19]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            if [ vendor-class-identifier = "SONY Playstation SE"
          
            then
          
            send interface-mtu 768
          
            endif
          
            I believe that is a consistent use of the class identifier as
            well.
          
            I think we are actually closing on the essential points here.
          
            I'll have to defer to Ralph about original purposes, but I do
            generally concur that DHCP is not really intended to do anything
            other than configure the networking software in a host computer.
            Whatever the protocol options may have grown to include, the
            process for getting there is well understood and very public, so
            unless there is a compelling need such as inability to
            interoperate or insufficient options to communicate required
            information, we pretty much have to live with what we've got.
          
            I'm all for (1) configuring the networking software, (2)
            identifying servers which can provide extended system
            configuration, and (3) identifying services location servers which
            can locate applications or generally useful services for a host
            computer.  I think (2) and (3) are consistent with my
            understanding of the purposes of DHCP.  I'm not so keen on
            providing application-specific configuration data or locating
            individual application-specific configuration servers, but only
            because I can imagine these growing in number almost without
            limit.  A lot of this discussion really should be moved to the
            dhcpv4 mailing list, as most implementers follow that list.
          
            I generally support the more general configuration of client
            software beyond network configuration, although I would add the
            restriction that some other source of this configuration
            *referral* data other than the DHCP server be used. What I mean by
            that is that instead of the DHCP server having an option for each
            of the dozens or thousands of applications which might like to
            receive configuration data from a server, that it might be a
            better choice to devise something akin to the Service Location
            protocol to provide the address of individual configuration
            servers -- all the DHCP server would do is to identify the
            "application configuration locator" server.
          
            The proper forum for this is the DHC Working Group of IETF --
            possibly a BOF session at the next working groups meeting to
            determine if there is interest, then either the formation of a new
            working group or incorporation of this work item into an existing
            group's charter.
          
            [Dave Gotwisner]
          
            Nathan is dead on with [his contention that DHCP should be able to
            be used to configure as much as possible in the client,] although
            it isn't just the implementers who desire plug and play. Many of
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 20]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            our customers are requiring that DHCP be used in many different
            methods to configure our devices so the user/ administrator does
            not have to configure them once deployed. They want to turn on the
            power and let DHCP provided all useful information to configure
            the device.  Unfortunately, with the UDP packet length, this can't
            really happen on complex devices, but an appropriate sub-set can
            be used.  Other methods are better for plug and play configuration
            in some ways and worse in some ways (SNMP comes to mind).  With
            plug-and-play of complex devices being configured through option
            43, you run into two fundamental problems.  First, the UDP maximum
            record size (option 57 may allow an increase in size, but not
            significantly).  Second, option 43 is limited to 255 bytes in
            length, and if you encapsulate several strings (such as network
            pathnames) you will exceed this length for option 43.
          
            My only other objection to option 43 (and option 18, for that
            matter) is that it is a bear to create an opaque option containing
            a heterogeneous set of option types.  It makes perfect sense to
            send it as encapsulated data, but the tools should be smarter in
            how to deal with it, maybe as (expanding on Nathan's pseudo-code
            below):
          
                 if [ vendor-class-identifier = "SUN-JAVASTATION-8MB" ]
          
            then send option-43 {
          
            send vendor-option-1
          
            { IP = 10.2.1.2,10.2.1.3 },
          
            send vendor-option-2 { STR = "string-data"},
          
            send vendor-option-3 { STR = "more-string-data" },
          
            send vendor-option-30 { BOOL = True };
          
            };
          
                 else
          
                    ....
          
            endif
          
            This may be harder to parse, but it would make it a lot easier to
            configure by a user.
          
            I understand that option 43 should be [used for responses] as
            illustrated above.  What I don't understand is why you can't also
            send different other options in this case also
          
            send option-48 (X font server)
          
            send option-49 (XDMCP addresses)
          
            or other options as well, since you might want a different set of
            fonts loaded (for example) based upon which manufacturer's X
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 21]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            terminal you are booting.  Although the RFC says that an 43 should
            be given based upon option 60, it does not say that other options
            can't be given as well.
          
            There are some options which a client can suggest (requested IP,
            requested lease time, max record size, host name (only because the
            server can also provide one), and option overload).  I don't know
            why a device which has no knowledge of it's global environment can
            request DNS, routers, etc.
          
            [Nathan Lane]
          
            I should have put that (sending options other than 43) in my
            example since Kevin specifically mentioned a different bootfile.
          
            Do you think we should take this over to DHC and get something
            going on it?  We all have access to the same RFCs...I just wonder
            why people have such a broad interpretation of how they should be
            used.
          
            [C. J. Consodine]
          
            Any "intelligent" complication should be in the code TFTP'd to the
            client, not in that executed by the DHCP server.  Option 60 should
            contain a UPC or other SKU or SKU class identifier.  The logic
            then is to add on additional options found via option 60,
            subordinate to those options that would have been sent without it.
            One needs but a single pass through the rule base.  The
            alternative is to add in CGI, Java or DLL like madness.
          
          
          5. Acknowledgements
          
            This document is the result of work undertaken the by DHCP working
            group.  The authors would like to particularly acknowledge the
            development team from Carnegie-Mellon University whose work
            creating a private MIB for their DHCP server inspired the
            development of this proposal. In particular, many thanks to Ryan
            Troll who provided a great deal of useful feedback during the
            development of this MIB.
          
          
          6. Security Considerations
          
            Security considerations are not applicable, as this memo does not
            specify the interoperation of network equipment or systems, merely
            seeking to codify some elements of behavior not well specified by
            the underlying protocol.
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 22]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
          7. References
          
            [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
                 Requirement Levels", RFC 2119, BCP 14, March 1997.
          
            [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC
                 2131, March 1997.
          
            [RFC2132] Alexander, S.  and Droms, R., "DHCP Options and BOOTP
                 Vendor Extensions", RFC 2132, March 1997.
          
          
          8. Editors' Addresses
          
            Richard Barr Hibbs
            Pacific Bell
            666 Folsom Street, Room 1225
            San Francisco, CA 94107-1384
            USA
          
            Phone:  +1 415-545-1576
            Fax:    +1 415-543-3539
            Email:  rbhibbs@pacbell.com
          
            Nathan Lane
            Wal-Mart Stores, Inc.
            702 SW 8th Street
            Bentonville, AR  72716-8025
            USA
          
            Phone:  +1 501-277-5786
            Fax:    +1 501-273-6879
            Email:  nathan@terminus.com
          
          
          9. 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.
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 23]


          Network Working Group                      R. B. Hibbs, Pacific*Bell
          Internet-Draft                              N. Lane, Wal-Mart Stores
          Category: Informational                                     Oct 1999
          
            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.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Hibbs & Lane       Expires: Oct 1999 + 6 months           [Page 24]