Subject: RE: Some minor and a few major nits on draft-ietf-dhc-subnet-opti

From: Nathan Lane <[email-masked]>
Date: Tue, 13 Apr 1999 10:21:05 -0400 (EDT)

Sorry I'm in so late on this.  I propose a more significant change.  If we
have to encode clients with an IP network preference, we open up a
significant amount of work by the configurator of said devices.  I suggest
adding a "flags" field in this option that would indicate a policy
preference, significantly expanding its usefulness for me while preserving
the core functionality of this draft.

i.e.:
	  The format of the option is:

	        Code   Len Flags       IP Address
	       +-----+-----+-----+-----+-----+-----+-----+
	       | TBD |  4  | F1 |A1  | A2  | A3  | A4  |
	       +-----+-----+-----+-----+-----+-----+-----+

I can only think of three flags right now:

0	Next field indicates IP network preference, four octets
1	Desire RFC-1918 private class address, IP network preference may be
indicated as 0.0.0.0
2	Desire public address, IP network preference may be 0.0.0.0

The flags section would make this option useful to me.  Otherwise it simply
adds a non-trivial amount of work for our installers and makes a device
configured such inappopriate for mobile use.  With my changes, the client
can request 

I also really don't like the client requirements section stating that a
device must ignore the DHCPOFFER.  Section 2 should add "if after X time
period the DHCP client does not receive a DHCPOFFER containing this option,
it MUST stop sending DHCPDISCOVER's with the option set [and unset the
option to accept a regular DHCPOFFER]".  The addition in "[]" is a possible
addition.  The point is I don't want to see open interpretations of this
where the device goes into a DHCPDISCOVER spin loop at rapid-fire intervals.

-Nathan Lane
Senior Network Engineer
Wal-Mart Stores, Inc.
(501) 277-5786

> -----Original Message-----
> From:	Ted Lemon [SMTP:[email-masked]]
> Sent:	Monday, April 12, 1999 7:05 PM
> To:	Multiple recipients of list
> Subject:	Some minor and a few major nits on
> draft-ietf-dhc-subnet-option-01.txt
> 
>  Network Working Group                                         G. Waters
>  INTERNET-DRAFT                                          Nortel Networks
>                                                               March 1999
> 
> 
> 
> 
> 
>                     The Subnet Selection Option for DHCP
> 
> 
>                    <draft-ietf-dhc-subnet-option-01.txt>
>                       Tuesday, March 23, 1999, 4:35 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."
> 
>    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
> 
>    This memo defines a new DHCP option for selecting the subnet on which
>    to allocate an address. This option would override a DHCP server's
> <<<   normal methods of selecting which subnet on which to allocate an
> >>>   normal methods of selecting the subnet on which to allocate an
>    address for a client.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  Waters                Expires: Mar 1999 + 6 months             [Page 1]
> 
>  Internet Draft          Subnet Selection Option              March 1999
> 
> 
>    Table of Contents
> 
>    1. Introduction......................................................2
>    2. Subnet Selection Option...........................................3
>    3. Intellectual Property.............................................4
>    4. Acknowledgements..................................................4
>    5. Security Considerations...........................................4
>    6. References........................................................4
>    7. Editor's Addresses................................................5
>    8. Full Copyright Statement..........................................5
> 
> 
> 
>  1. Introduction
> 
>    This memo was produced by the DHCP Working Group and defines a new
> <<<   DHCP option that specifies the subnet on which a DHCP server should
> >>>   DHCP option that specifies the subnet that a DHCP server should
>    use when selecting an address.  This option takes precedence over
>    other methods that the DHCP server may use to determine the subnet on
>    which to select an address. Two existing methods of determining the
>    subnet on which to select an address are:
> 
>    o To use the subnet address of the giaddr field in the DHCP packet,
>      or if the giaddr field is zero;
> 
>    o To use the subnet address of the local interface on which the
>      packet was received by the DHCP server.
> 
>    Methods other than the two described above may exist.
> 
> <<<   The subnet selection option is useful, but not limited to, the class
> >>>   The subnet selection option is useful for, but not limited to, the
> class
>    of devices that have a packet-handling plane (e.g.: switching, routing
>    functionality) and a control plane (e.g.: device management and
>    control functionality). The control plane is network connected and
>    there is a DHCP server connected to that network. The packet-handling
>    plane may or may not be network connected, however, in either case
>    there is no network connected DHCP server available to this plane. The
>    control plane is not network connected to the packet-handling plane,
>    although the two planes may communicate using some method (e.g.: an
>    internal data bus).
> 
> <<<   For the networks to which the packet-handling plane is connected,
> <<<   there is a requirement to allocate addresses for devices connected
> to
> <<<   those networks.
> >>>   There is a requirement to allocate addresses for devices
> >>>   connected to the networks to which the packet-handling plane
> >>>   is connected.
> 
>    Since there is no network connectivity between the DHCP server and the
>    packet-handling plane, the control plane must allocate addresses using
>    the DHCP on behalf of the packet-handling plane. Because the control
> <<<   plane is requesting the addresses, the DHCP server would normally
> have
> <<<   the undesired result of allocating the address on the subnet on
> which
> <<<   the control plane is connected.
> >>>   plane is requesting the addresses, the DHCP server would normally
> >>>   allocate the address on the subnet on which the control plane is
> >>>   connected, which would be incorrect.
> 
> 
> 
>  Waters                Expires: Mar 1999 + 6 months             [Page 2]
> 
>  Internet Draft          Subnet Selection Option              March 1999
> 
> 
>    If the option specified by this memo is included in the
>    DHCPDISCOVER/DHCPREQUEST message then the server should allocate an
>    address on the subnet or network segment that is specified by this
>    option. The option would specify an address of one of the packet-
>    handling plane's subnets.
> >>> (the above should be "an address on" or "the address of.")
> 
>    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 [RFC2119].
> 
> 
>  2. Subnet Selection Option
> 
>    The subnet selection option is a DHCP option. The option contains a
>    single IP address that is the address of a subnet. The value for the
>    subnet address is determined by taking any IP address on the subnet
>    and ANDing that address with the subnet mask (i.e.: the network and
>    subnet bits are left alone and the remaining (address) bits are set to
>    zero). When this option is present, the DHCP server MUST use either
>    the:
> 
>    o The subnet specified in the option, or;
> >>>
>    o A subnet on the same network segment as the subnet specified in the
>      option;
> 
>    on which to allocate an address.
> 
>    The format of the option is:
> 
>         Code   Len        IP Address
>        +-----+-----+-----+-----+-----+-----+
>        | TBD |  4  | A1  | A2  | A3  | A4  |
>        +-----+-----+-----+-----+-----+-----+
> 
> 
> <<<   In order to ensure backwards compatibility of clients that do
> support
> <<<   this option when communicating with DHCP servers that do not support
> <<<   this option, the DHCP client SHOULD check that an allocated address
> in
> <<<   on the requested subnet or network segment. The client SHOULD NOT
> <<<   respond to a DHCPOFFER or DHCPACK of an address that is not on the
> <<<   respond to a DHCPOFFER for an address that is not on the
> <<<   requested subnet or network segment.
> >>> (You can't really do this, because the server may choose to
> >>> allocate an IP address on a different subnet that's on the same
> >>> network segment, and the client doesn't know the network topology
> >>> and so can't distinguish this from the behaviour of a
> >>> non-conforming server.   If you want this to work, you probably
> >>> need something like the following.)
> 
> >>> Servers supporting this option MUST return the option to any
> >>> client that sends it, regardless of whether or not the client
> >>> requests it in a parameter request list.   Clients using this
> >>> option must discard DHCPOFFER packets that do not contain it.
> 
> >>> (you also probably should just nuke the entire next paragraph, or
> >>> else you're going to find yourself in a Monty Python Spanish
> >>> Inquisition skit.)
> 
> <<<   This option does not require any change to other operations or
> >>>   This option does not require changes to operations or
>    features of the DHCP server other than to select the subnet on which
>    to allocate an address. For example, the handling of DHCPDISCOVER for
>    an unknown subnet may continue to operate unchanged.
> 
>    When this option is present and the server supports this option, the
>    server MUST NOT offer an address that is not on the requested subnet
>    or network segment.
> 
> 
> 
> 
>  Waters                Expires: Mar 1999 + 6 months             [Page 3]
> 
>  Internet Draft          Subnet Selection Option              March 1999
> 
> 
> <<<   Existing methods for determining where to send a reply to a DHCP
> <<<   client are not changed when this option is present in a request.
> >>>   The DHCP server MUST use the same algorithm for choosing the
> >>>   IP address to which to send a reply whether or not this option
> >>>   is present in a request.
> 
>  3. Intellectual Property
> 
>    The IETF takes no position regarding the validity or scope of any
>    intellectual property or other rights that might be claimed to pertain
>    to the implementation or use of the technology described in this
>    document or the extent to which any license under such rights might or
>    might not be available; neither does it represent that it has made any
>    effort to identify any such rights.  Information on the IETF's
>    procedures with respect to rights in standards-track and standards-
>    related documentation can be found in BCP-11.
> 
>    Copies of claims of rights made available for publication and any
>    assurances of licenses to be made available, or the result of an
>    attempt made to obtain a general license or permission for the use of
>    such proprietary rights by implementers or users of this specification
>    can be obtained from the IETF Secretariat.
> 
>    The IETF invites any interested party to bring to its attention any
>    copyrights, patents or patent applications, or other proprietary
>    rights which may cover technology that may be required to practice
>    this standard.  Please address the information to the IETF Executive
>    Director.
> 
> 
>  4. Acknowledgements
> 
>    This document is the result of work undertaken the by DHCP working
>    group. Thanks to Tim Aston and Ralph Droms for reviewing this memo.
> 
> 
>  5. Security Considerations
> 
>    DHCP currently provides no authentication or security mechanisms.
>    Potential exposures to attack are discussed is section 7 of the
>    protocol specification [RFC2131].
> 
> 
>  6. 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.
> 
> 
> 
>  Waters                Expires: Mar 1999 + 6 months             [Page 4]
> 
>  Internet Draft          Subnet Selection Option              March 1999
> 
> 
>  7. Editor's Addresses
> 
>    Glenn Waters
>    Nortel Networks
>    310-875 Carling Avenue,
>    Ottawa, Ontario K1S 5P1
>    Canada
> 
>    Phone:  +1 613-798-4925
>    Email:  [email-masked]
> 
> 
>  8. Full Copyright Statement
> 
>    Copyright (C) The Internet Society (1999).  All Rights Reserved.
> 
>    This document and translations of it may be copied and furnished to
>    others, and derivative works that comment on or otherwise explain it
>    or assist in its implementation may be prepared, copied, published and
>    distributed, in whole or in part, without restriction of any kind,
>    provided that the above copyright notice and this paragraph are
>    included on all such copies and derivative works.  However, this
>    document itself may not be modified in any way, such as by removing
>    the copyright notice or references to the Internet Society or other
>    Internet organizations, except as needed for the purpose of developing
>    Internet standards in which case the procedures for copyrights defined
>    in the Internet Standards process must be followed, or as required to
>    translate it into languages other than English.
> 
>    The limited permissions granted above are perpetual and will not be
>    revoked by the Internet Society or its successors or assigns.
> 
>    This document and the information contained herein is provided on an
>    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
>    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
>    NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN
>    WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
>    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  Waters                Expires: Mar 1999 + 6 months             [Page 5]
>

---

From: Ted Lemon <[email-masked]>
Date: Tue, 13 Apr 1999 11:48:31 -0400 (EDT)

I think you've misapprehended the purpose of the subnet specification
option.  It's not intended for use by regular clients, like your
laptop running Win98.  It's also not intended to choose which subnet
to use on a network segment on which more than one subnet is running.
It's intended so that something like a relay agent that has no IP
address of its own on the network segment to which the client is
attached can send a DHCP request on behalf of that client and specify
the network segment to which that client is attached.  Essentially,
it's intended to function just like giaddr, except that the server
doesn't send the response back to the address specified in the subnet
specification option.

WRT client subnet selection, it sounds like you're looking to
configure the client with a hint to the server about what subnet to
choose.   This is probably more correctly addressed by the user class
identifier option (draft-ietf-dhc-userclass-??.txt).   Unfortunately,
Microsoft doesn't yet implement the user class option, AFAIK, so this
is somewhat academic for a large class of potential clients.   :'(

			       _MelloN_