home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2563.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  17.9 KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           R. Troll
  8. Request for Comments: 2563                                 @Home Network
  9. Category: Standards Track                                       May 1999
  10.  
  11.  
  12.   DHCP Option to Disable Stateless Auto-Configuration in IPv4 Clients
  13.  
  14. Status of this Memo
  15.  
  16.    This document specifies an Internet standards track protocol for the
  17.    Internet community, and requests discussion and suggestions for
  18.    improvements.  Please refer to the current edition of the "Internet
  19.    Official Protocol Standards" (STD 1) for the standardization state
  20.    and status of this protocol.  Distribution of this memo is unlimited.
  21.  
  22. Copyright Notice
  23.  
  24.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  25.  
  26. Abstract
  27.  
  28.    Operating Systems are now attempting to support ad-hoc networks of
  29.    two or more systems, while keeping user configuration at a minimum.
  30.    To accommodate this, in the absence of a central configuration
  31.    mechanism (DHCP), some OS's are automatically choosing a link-local
  32.    IP address which will allow them to communicate only with other hosts
  33.    on the same link.  This address will not allow the OS to communicate
  34.    with anything beyond a router.  However, some sites depend on the
  35.    fact that a host with no DHCP response will have no IP address.  This
  36.    document describes a mechanism by which DHCP servers are able to tell
  37.    clients that they do not have an IP address to offer, and that the
  38.    client should not generate an IP address it's own.
  39.  
  40. 1.  Introduction
  41.  
  42.    With computers becoming a larger part of everyday life, operating
  43.    systems must be able to support a larger range of operating
  44.    environments.  One aspect of this support is the selection of an IP
  45.    address.  The Dynamic Host Configuration Protocol [DHCP] provides a
  46.    superb method by which site administrators may supply IP addresses
  47.    (and other network parameters) to network devices.  However, some
  48.    operating environments are not centrally maintained, and operating
  49.    systems must now be able to handle this quickly and easily.
  50.  
  51.    IPv6 accounts for this, and allows an IPv6 stack to assign itself a
  52.    global address in the absence of any other mechanism for
  53.    configuration [IPv6SAC].  However, Operating System designers can't
  54.    wait for IPv6 support everywhere.  They need to be able to assume
  55.  
  56.  
  57.  
  58. Troll                       Standards Track                     [Page 1]
  59.  
  60. RFC 2563             DHCP Auto-Configuration Option             May 1999
  61.  
  62.  
  63.    they will have IPv4 addresses, so that they may communicate with one
  64.    another even in the smallest networks.
  65.  
  66.    This document looks at three types of network nodes, and how IPv4
  67.    address auto-configuration may be disabled on a per-subnet (or even
  68.    per-node) basis.  The three types of network nodes are:
  69.  
  70.    * A node for which the site administrator will hand out configuration
  71.      information,
  72.  
  73.    * A node on a network segment for which there is no site
  74.      administrator, and
  75.  
  76.    * A node on a network segment that has a central site administrator,
  77.      and that administrator chooses not to hand out any configuration
  78.      information to the node.
  79.  
  80.    The difference between the second and third cases is the clients
  81.    behavior.
  82.  
  83.    In one case, the node may assign itself an IP address, and have full
  84.    connectivity with other nodes on the local wire.  In the last case,
  85.    the node is not told what to do, and while it may assign itself a
  86.    network address in the same way as case #2, this may not be what the
  87.    central administrator wants.
  88.  
  89.    The first scenario is handled by the current DHCP standard.  However,
  90.    the current DHCP specification [DHCP] says servers must silently
  91.    ignore requests from hosts they do not know.  Because of this, DHCP
  92.    clients are unable to determine whether they are on a subnet with no
  93.    administration, or with administration that is choosing not to hand
  94.    out addresses.
  95.  
  96.    This document describes a method by which DHCP clients will be able
  97.    to determine whether or not the network is being centrally
  98.    administrated, allowing it to intelligently determine whether or not
  99.    it should assign itself a "link-local" address.
  100.  
  101. 1.1.  Conventions Used in the Document
  102.  
  103.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  104.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  105.    document are to be interpreted as described in [KEYWORDS].
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Troll                       Standards Track                     [Page 2]
  115.  
  116. RFC 2563             DHCP Auto-Configuration Option             May 1999
  117.  
  118.  
  119. 1.2.  Terminology
  120.  
  121.    DHCP client    A DHCP client is an Internet host using DHCP to obtain
  122.                   configuration parameters such as a network address.
  123.  
  124.    DHCP server    A DHCP server is an Internet host that returns
  125.                   configuration parameters to DHCP clients.
  126.  
  127. 2.  The Auto-Configure Option
  128.  
  129.    This option code is used to ask whether, and be notified if, auto-
  130.    configuration should be disabled on the local subnet.  The auto-
  131.    configure option is an 8-bit number.
  132.  
  133.         Code   Len   Value
  134.        +-----+-----+-----+
  135.        | 116 |  1  |  a  |
  136.        +-----+-----+-----+
  137.  
  138.    The code for this option is 116, and its length is 1.
  139.  
  140.    This code, along with the IP address assignment, will allow a DHCP
  141.    client to determine whether or not it should generate a link-local IP
  142.    address.
  143.  
  144. 2.1.  Auto-Configure Values
  145.  
  146.    The auto-configure option uses the following values:
  147.  
  148.             DoNotAutoConfigure     0
  149.             AutoConfigure          1
  150.  
  151.    When a server responds with the value "AutoConfigure", the client MAY
  152.    generate a link-local IP address if appropriate.  However, if the
  153.    server responds with "DoNotAutoConfigure", the client MUST NOT
  154.    generate a link-local IP address, possibly leaving it with no IP
  155.    address.
  156.  
  157. 2.2.  DHCP Client Behavior
  158.  
  159.    Clients that have auto-configuration capabilities MUST add the Auto-
  160.    Configure option to the list of options included in its initial
  161.    DHCPDISCOVER message.  ([DHCP] Section 4.4.1)  At this time, the
  162.    option's value should be set to "AutoConfigure".
  163.  
  164.    When a DHCPOFFER is received, it is handled as described in [DHCP],
  165.    section 4.4.1, with one exception.  If the 'yiaddr' field is
  166.    0x00000000, the Auto-Configure option must be consulted.  If this
  167.  
  168.  
  169.  
  170. Troll                       Standards Track                     [Page 3]
  171.  
  172. RFC 2563             DHCP Auto-Configuration Option             May 1999
  173.  
  174.  
  175.    option is set to "AutoConfigure", then the DHCPOFFER MUST be ignored,
  176.    and the DHCP client MAY generate a link-local IP address.  However,
  177.    if this option is set to "DoNotAutoConfigure", then the DHCPOFFER
  178.    MUST be ignored, and the client MUST NOT generate a link-local IP
  179.    address.
  180.  
  181.    If a DHCP client receives any DHCPOFFER which contains a 'yiaddr' of
  182.    0x00000000, and the Auto-Configure flag says "DoNotAutoConfigure", in
  183.    the absence of a DHCPOFFER with a valid 'yiaddr', the DHCP client
  184.    MUST NOT generate a link-local IP address.  The amount of time a DHCP
  185.    client waits to collect any other DHCPOFFERs is implementation
  186.    dependant.
  187.  
  188.    DHCPOFFERs with a 'yiaddr' of 0x00000000 will only be sent by DHCP
  189.    servers supporting the Auto-Configure option when the DHCPDISCOVER
  190.    contained the Auto-Configure option.  Since the DHCPDISCOVER will
  191.    only contain the Auto-Configure option when a DHCP client knows how
  192.    to handle it, there will be no inter-operability problems.
  193.  
  194.    If the DHCP server does have an address to offer, the message states
  195.    are the same as those described in [DHCP], section 3.
  196.  
  197.    The following depicts the difference in responses for non-registered
  198.    DHCP clients that support the "Auto-Configure" option on networks
  199.    that have DHCP servers that support auto-configuration and networks
  200.    with DHCP servers that do not.
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Troll                       Standards Track                     [Page 4]
  227.  
  228. RFC 2563             DHCP Auto-Configuration Option             May 1999
  229.  
  230.  
  231.                         Network         Client          Network
  232.                   (no auto-configure)               (auto-configure)
  233.  
  234.                           v               v               v
  235.                           |               |               |
  236.                           |     Begins initialization     |
  237.                           |               |               |
  238.                           | _____________/|\____________  |
  239.                           |/DHCPDISCOVER  | DHCPDISCOVER \|
  240.                           |               |               |
  241.                       Determines          |          Determines
  242.                      configuration        |         configuration
  243.                           |               |               |
  244.                           |               |  ____________/|
  245.                           |               | /DHCPOFFER    |
  246.                           |               |/              |
  247.                           |               |               |
  248.                           |       Collects replies        |
  249.                           |               |               |
  250.                           |     Selects configuration     |
  251.                           |               |               |
  252.                           |--AutoConfigs--|- NO IP ADDR --|
  253.                           .               .               .
  254.                           .               .               .
  255.                           |               |               |
  256.                           |      Graceful shutdown        |
  257.                           |               |               |
  258.                           |               |               |
  259.                           v               v               v
  260.  
  261.  
  262. 2.3.  DHCP Server Behavior
  263.  
  264.    When a DHCP server receives a DHCPDISCOVER, it MUST be processed as
  265.    described in [DHCP], section 4.3.1.  However, if no address is chosen
  266.    for the host, a few additional steps MUST be taken.
  267.  
  268.    If the DHCPDISCOVER does not contain the Auto-Configure option, it is
  269.    not answered.
  270.  
  271.    If the DHCPDISCOVER contains the Auto-Configure option, and the site
  272.    administrator has specified that Auto-Configuration should be
  273.    disabled on the subnet the DHCPDISCOVER is originating from, or for
  274.    the client originating the request, then a DHCPOFFER MUST be sent to
  275.    the DHCP client.  This offer MUST be for the address 0x00000000, and
  276.    the Auto-Configure option MUST be set to "DoNotAutoConfigure".
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Troll                       Standards Track                     [Page 5]
  283.  
  284. RFC 2563             DHCP Auto-Configuration Option             May 1999
  285.  
  286.  
  287.    If the site administrator allows auto-configuration on the
  288.    originating subnet, the DHCPDISCOVER is not answered as before.
  289.  
  290. 2.4.  Mixed Environments
  291.  
  292.    Environments containing a mixture of clients and servers that do and
  293.    do not support the Auto-Configure option will not be a problem.
  294.    Every DHCP transaction is between a Server and a Client, and the
  295.    possible mixed scenarios between these two are listed below.
  296.  
  297. 2.4.1.  Client Supports, Server Does Not
  298.  
  299.    If a DHCP client sends a request that contains the Auto-Configure
  300.    tag, a DHCP server that does not know what this tag is will respond
  301.    normally.  According to [DHCP] Section 4.3.1, the server MUST NOT
  302.    return a value for that parameter.
  303.  
  304.    In this case, the server will either respond with a valid DHCPOFFER,
  305.    or it will not respond at all.  In both cases, a DHCP client that
  306.    supports this option will never care what the state of the option is,
  307.    and may auto-configure.
  308.  
  309. 2.4.2.  Servers Supports, Client Does Not
  310.  
  311.    If the Auto-Configure option is not present in the DHCPDISCOVER, the
  312.    server will do nothing about it.  The client will auto-configure if
  313.    it doesn't receive a response and believes that's what it should do.
  314.  
  315.    This scenario SHOULD not occur, as any stacks that implement an
  316.    auto-configuration mechanism MUST implement this option as well.
  317.  
  318. 2.5.  Interaction With Other DHCP Messages
  319.  
  320.    As this option only affects the initial IP address selection, it does
  321.    not apply to subsequent DHCP messages.  If the DHCP client received a
  322.    lease from a DHCP server, future DHCP messages (RENEW, INFORM, ACK,
  323.    etc.) have no need to fall over into an auto- configuration state.
  324.  
  325.    If the DHCP client's lease expires, the client falls back into the
  326.    INIT state, and the initial DHCPDISCOVER is sent as before.
  327.  
  328. 2.5.1.  DHCPRELEASE Messages
  329.  
  330.    DHCPRELEASEs occur exactly as described in [DHCP], section 4.4.6.
  331.    When a DHCP client is done with a lease, it MAY notify the server
  332.    that it is finished.  For this to occur, the DHCP client already
  333.    received a DHCP lease, and the state of Auto-Configuration on the
  334.    local wire does not matter.
  335.  
  336.  
  337.  
  338. Troll                       Standards Track                     [Page 6]
  339.  
  340. RFC 2563             DHCP Auto-Configuration Option             May 1999
  341.  
  342.  
  343. 2.5.2.  DHCPDECLINE Messages
  344.  
  345.    A DHCPDECLINE is sent by the DHCP client when it determines the
  346.    network address it is attempting to use is already in use.  As a
  347.    network address has been tested, it must have been offered by the
  348.    DHCP Server, and the state of Auto-Configuration on the local wire
  349.    does not matter.
  350.  
  351. 2.5.3.  DHCPINFORM Messages
  352.  
  353.    DHCPINFORMs should be handled as described in [DHCP], section 4.4.3.
  354.    No changes are necessary.
  355.  
  356. 2.6.  Message Option
  357.  
  358.    If the DHCP server would like to tell a client why it is not allowed
  359.    to auto-configure, it MAY add the Message option to the response.
  360.    This option is defined in [DHCPOPT], Section 9.9.
  361.  
  362.    If the DHCP client receives a response with the Message option set,
  363.    it MUST provide this information to the administrator of the DHCP
  364.    client.  How this information is provided is implementation
  365.    dependant.
  366.  
  367. 3.  Security Considerations
  368.  
  369.    DHCP per se currently provides no authentication or security
  370.    mechanisms.  Potential exposures to attack are discussed in section 7
  371.    of the DHCP protocol specification [DHCP].
  372.  
  373.    This mechanism does add one other potential attack.  Malicious users
  374.    on a subnet may respond to all DHCP requests with responses telling
  375.    DHCP clients that they should NOT auto-configure on the local wire.
  376.    On a network where Auto-Configuration is required, this will cause
  377.    all DHCP clients to not choose an address.
  378.  
  379. 4.  Acknowledgments
  380.  
  381.    This idea started at a joint Common Solutions Group / Microsoft
  382.    meeting at Microsoft in May, 1998.  The IP stacks in Win98 and NT5
  383.    assign themselves an IP address (in a specific subnet) in the absence
  384.    of a responding DHCP server, and this is causing headaches for many
  385.    sites that actually rely on machines not getting IP addresses when
  386.    the DHCP servers do not know them.
  387.  
  388.    Walter Wong proposed a solution that would allow the DHCP servers to
  389.    tell clients not to do this.  His initial solution would not work
  390.    without slight modifications to DHCP itself.  This document describes
  391.  
  392.  
  393.  
  394. Troll                       Standards Track                     [Page 7]
  395.  
  396. RFC 2563             DHCP Auto-Configuration Option             May 1999
  397.  
  398.  
  399.    those modifications.
  400.  
  401. 5.  IANA Considerations
  402.  
  403.    The IANA has assigned option number 116 for this option.
  404.  
  405. 6.  References
  406.  
  407.    [DHCP]     Droms, R., "Dynamic Host Configuration Protocol", RFC
  408.               2131, March 1997.
  409.  
  410.    [DHCPOPT]  Alexander, S. and  R. Droms, "DHCP  Options  and  BOOTP
  411.               Vendor Extension", RFC 2132, March 1997.
  412.  
  413.    [IPv6SAC]  Thomson, S. and T. Narten, "IPv6 Stateless Address
  414.               Autoconfiguration", RFC 2462, December 1998.
  415.  
  416.    [KEYWORDS] Bradner, S., "Key  words  for  use  in  RFCs  to  Indicate
  417.               Requirement Levels", BCP 14, RFC 2119, March 1997.
  418.  
  419. 7.  Author's Address
  420.  
  421.    Ryan Troll
  422.    @Home Network
  423.    425 Broadway
  424.    Redwood City, CA 94063
  425.  
  426.    Phone: (650) 556-6031
  427.    EMail: rtroll@corp.home.net
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Troll                       Standards Track                     [Page 8]
  451.  
  452. RFC 2563             DHCP Auto-Configuration Option             May 1999
  453.  
  454.  
  455. 8.  Full Copyright Statement
  456.  
  457.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  458.  
  459.    This document and translations of it may be copied and furnished to
  460.    others, and derivative works that comment on or otherwise explain it
  461.    or assist in its implementation may be prepared, copied, published
  462.    and distributed, in whole or in part, without restriction of any
  463.    kind, provided that the above copyright notice and this paragraph are
  464.    included on all such copies and derivative works.  However, this
  465.    document itself may not be modified in any way, such as by removing
  466.    the copyright notice or references to the Internet Society or other
  467.    Internet organizations, except as needed for the purpose of
  468.    developing Internet standards in which case the procedures for
  469.    copyrights defined in the Internet Standards process must be
  470.    followed, or as required to translate it into languages other than
  471.    English.
  472.  
  473.    The limited permissions granted above are perpetual and will not be
  474.    revoked by the Internet Society or its successors or assigns.
  475.  
  476.    This document and the information contained herein is provided on an
  477.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  478.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  479.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  480.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  481.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  482.  
  483. Acknowledgement
  484.  
  485.    Funding for the RFC Editor function is currently provided by the
  486.    Internet Society.
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Troll                       Standards Track                     [Page 9]
  507.  
  508.