etc/protocols - sync with NetBSD-8
[minix.git] / external / bsd / dhcp / dist / doc / References.txt
blob28727260849320693b76182f5a9a84b86c0a9735
4 ISC-DHCP-REFERENCES                                           D. Hankins
5                                                             T. Mrugalski
6                                                                      ISC
7                                                         January 04, 2012
10                      ISC DHCP References Collection
12 Abstract
14    This document describes a collection of reference material to which
15    ISC DHCP has been implemented as well as a more complete listing of
16    references for DHCP and DHCPv6 protocols.
18 Copyright Notice
20    Copyright (c) 2006-2007,2009,2011 by Internet Systems Consortium,
21    Inc. ("ISC")
23    Permission to use, copy, modify, and distribute this software for any
24    purpose with or without fee is hereby granted, provided that the
25    above copyright notice and this permission notice appear in all
26    copies.
28    THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
29    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
30    MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY
31    SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
32    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
33    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
34    OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
55 Hankins & Mrugalski                                             [Page 1]
57                      ISC DHCP References Collection         January 2012
60 Table of Contents
62    1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
64    2.  Definition: Reference Implementation . . . . . . . . . . . . .  3
66    3.  Low Layer References . . . . . . . . . . . . . . . . . . . . .  4
67      3.1.  Ethernet Protocol References . . . . . . . . . . . . . . .  6
68      3.2.  Token Ring Protocol References . . . . . . . . . . . . . .  6
69      3.3.  FDDI Protocol References . . . . . . . . . . . . . . . . .  6
70      3.4.  Internet Protocol Version 4 References . . . . . . . . . .  6
71      3.5.  Unicast Datagram Protocol References . . . . . . . . . . .  6
73    4.  BOOTP Protocol References  . . . . . . . . . . . . . . . . . .  6
75    5.  DHCPv4 Protocol References . . . . . . . . . . . . . . . . . .  7
76      5.1.  DHCPv4 Protocol  . . . . . . . . . . . . . . . . . . . . .  7
77        5.1.1.  Core Protocol References . . . . . . . . . . . . . . .  7
78      5.2.  DHCPv4 Option References . . . . . . . . . . . . . . . . .  7
79        5.2.1.  Relay Agent Information Option Options . . . . . . . .  9
80        5.2.2.  Dynamic DNS Updates References . . . . . . . . . . . .  9
81        5.2.3.  Experimental: Failover References  . . . . . . . . . .  9
82      5.3.  DHCP Procedures  . . . . . . . . . . . . . . . . . . . . . 10
84    6.  DHCPv6 Protocol References . . . . . . . . . . . . . . . . . . 10
85      6.1.  DHCPv6 Protocol References . . . . . . . . . . . . . . . . 10
86      6.2.  DHCPv6 Options References  . . . . . . . . . . . . . . . . 11
88    7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
89      7.1.  Published DHCPv4 References  . . . . . . . . . . . . . . . 12
90      7.2.  Published Common (DHCPv4/DHCPv6) References  . . . . . . . 17
91      7.3.  Published DHCPv6 References  . . . . . . . . . . . . . . . 18
93    Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
111 Hankins & Mrugalski                                             [Page 2]
113                      ISC DHCP References Collection         January 2012
116 1.  Introduction
118    As a little historical anecdote, ISC DHCP once packaged all the
119    relevant RFCs and standards documents along with the software
120    package.  Until one day when a voice was heard from one of the many
121    fine institutions that build and distribute this software... they
122    took issue with the IETF's copyright on the RFC's.  It seems the
123    IETF's copyrights don't allow modification of RFC's (except for
124    translation purposes).
126    Our main purpose in providing the RFCs is to aid in documentation,
127    but since RFCs are now available widely from many points of
128    distribution on the Internet, there is no real need to provide the
129    documents themselves.  So, this document has been created in their
130    stead, to list the various IETF RFCs one might want to read, and to
131    comment on how well (or poorly) we have managed to implement them.
134 2.  Definition: Reference Implementation
136    ISC DHCP, much like its other cousins in ISC software, is self-
137    described as a 'Reference Implementation.'  There has been a great
138    deal of confusion about this term.  Some people seem to think that
139    this term applies to any software that once passed a piece of
140    reference material on its way to market (but may do quite a lot of
141    things that aren't described in any reference, or may choose to
142    ignore the reference it saw entirely).  Other folks get confused by
143    the word 'reference' and understand that to mean that there is some
144    special status applied to the software - that the software itself is
145    the reference by which all other software is measured.  Something
146    along the lines of being "The DHCP Protocol's Reference Clock," it is
147    supposed.
149    The truth is actually quite a lot simpler.  Reference implementations
150    are software packages which were written to behave precisely as
151    appears in reference material.  They are written "to match
152    reference."
154    If the software has a behaviour that manifests itself externally
155    (whether it be something as simple as the 'wire format' or something
156    higher level, such as a complicated behaviour that arises from
157    multiple message exchanges), that behaviour must be found in a
158    reference document.
160    Anything else is a bug, the only question is whether the bug is in
161    reference or software (failing to implement the reference).
163    This means:
167 Hankins & Mrugalski                                             [Page 3]
169                      ISC DHCP References Collection         January 2012
172    o  To produce new externally-visible behaviour, one must first
173       provide a reference.
175    o  Before changing externally visible behaviour to work around simple
176       incompatibilities in any other implementation, one must first
177       provide a reference.
179    That is the lofty goal, at any rate.  It's well understood that,
180    especially because the ISC DHCP Software package has not always been
181    held to this standard (but not entirely due to it), there are many
182    non-referenced behaviours within ISC DHCP.
184    The primary goal of reference implementation is to prove the
185    reference material.  If the reference material is good, then you
186    should be able to sit down and write a program that implements the
187    reference, to the word, and come to an implementation that is
188    distinguishable from others in the details, but not in the facts of
189    operating the protocol.  This means that there is no need for
190    'special knowledge' to work around arcane problems that were left
191    undocumented.  No secret handshakes need to be learned to be imparted
192    with the necessary "real documentation".
194    Also, by accepting only reference as the guidebook for ISC DHCP's
195    software implementation, anyone who can make an impact on the color
196    texture or form of that reference has a (somewhat indirect) voice in
197    ISC DHCP's software design.  As the IETF RFC's have been selected as
198    the source of reference, that means everyone on the Internet with the
199    will to participate has a say.
202 3.  Low Layer References
204    It may surprise you to realize that ISC DHCP implements 802.1
205    'Ethernet' framing, Token Ring, and FDDI.  In order to bridge the gap
206    there between these physical and DHCP layers, it must also implement
207    IP and UDP framing.
209    The reason for this stems from Unix systems' handling of BSD sockets
210    (the general way one might engage in transmission of UDP packets) on
211    unconfigured interfaces, or even the handling of broadcast addressing
212    on configured interfaces.
214    There are a few things that DHCP servers, relays, and clients all
215    need to do in order to speak the DHCP protocol in strict compliance
216    with [RFC2131].
218    1.  Transmit a UDP packet from IP:0.0.0.0 Ethernet:Self, destined to
219        IP:255.255.255.255 LinkLayer:Broadcast on an unconfigured (no IP
223 Hankins & Mrugalski                                             [Page 4]
225                      ISC DHCP References Collection         January 2012
228        address yet) interface.
230    2.  Receive a UDP packet from IP:remote-system LinkLayer:remote-
231        system, destined to IP:255.255.255.255 LinkLayer:Broadcast, again
232        on an unconfigured interface.
234    3.  Transmit a UDP packet from IP:Self, Ethernet:Self, destined to
235        IP:remote-system LinkLayer:remote-system, without transmitting a
236        single ARP.
238    4.  And of course the simple case, a regular IP unicast that is
239        routed via the usual means (so it may be direct to a local
240        system, with ARP providing the glue, or it may be to a remote
241        system via one or more routers as normal).  In this case, the
242        interfaces are always configured.
244    The above isn't as simple as it sounds on a regular BSD socket.  Many
245    unix implementations will transmit broadcasts not to 255.255.255.255,
246    but to x.y.z.255 (where x.y.z is the system's local subnet).  Such
247    packets are not received by several known DHCP client implementations
248    - and it's not their fault, [RFC2131] very explicitly demands that
249    these packets' IP destination addresses be set to 255.255.255.255.
251    Receiving packets sent to 255.255.255.255 isn't a problem on most
252    modern unixes...so long as the interface is configured.  When there
253    is no IPv4 address on the interface, things become much more murky.
255    So, for this convoluted and unfortunate state of affairs in the unix
256    systems of the day ISC DHCP was manufactured, in order to do what it
257    needs not only to implement the reference but to interoperate with
258    other implementations, the software must create some form of raw
259    socket to operate on.
261    What it actually does is create, for each interface detected on the
262    system, a Berkeley Packet Filter socket (or equivalent), and program
263    it with a filter that brings in only DHCP packets.  A "fallback" UDP
264    Berkeley socket is generally also created, a single one no matter how
265    many interfaces.  Should the software need to transmit a contrived
266    packet to the local network the packet is formed piece by piece and
267    transmitted via the BPF socket.  Hence the need to implement many
268    forms of Link Layer framing and above.  The software gets away with
269    not having to implement IP routing tables as well by simply utilizing
270    the aforementioned 'fallback' UDP socket when unicasting between two
271    configured systems is needed.
273    Modern unixes have opened up some facilities that diminish how much
274    of this sort of nefarious kludgery is necessary, but have not found
275    the state of affairs absolutely resolved.  In particular, one might
279 Hankins & Mrugalski                                             [Page 5]
281                      ISC DHCP References Collection         January 2012
284    now unicast without ARP by inserting an entry into the ARP cache
285    prior to transmitting.  Unconfigured interfaces remain the sticking
286    point, however...on virtually no modern unixes is it possible to
287    receive broadcast packets unless a local IPv4 address has been
288    configured, unless it is done with raw sockets.
290 3.1.  Ethernet Protocol References
292    ISC DHCP Implements Ethernet Version 2 ("DIX"), which is a variant of
293    IEEE 802.2.  No good reference of this framing is known to exist at
294    this time, but it is vaguely described in [RFC0894] see the section
295    titled "Packet format"), and the following URL is also thought to be
296    useful.
298    http://en.wikipedia.org/wiki/DIX_Ethernet
300 3.2.  Token Ring Protocol References
302    IEEE 802.5 defines the Token Ring framing format used by ISC DHCP.
304 3.3.  FDDI Protocol References
306    [RFC1188] is the most helpful reference ISC DHCP has used to form
307    FDDI packets.
309 3.4.  Internet Protocol Version 4 References
311    RFC760 [RFC0760] fundamentally defines the bare IPv4 protocol which
312    ISC DHCP implements.
314 3.5.  Unicast Datagram Protocol References
316    RFC768 [RFC0768] defines the User Datagram Protocol that ultimately
317    carries the DHCP or BOOTP protocol.  The destination DHCP server port
318    is 67, the client port is 68.  Source ports are irrelevant.
321 4.  BOOTP Protocol References
323    The DHCP Protocol is strange among protocols in that it is grafted
324    over the top of another protocol - BOOTP (but we don't call it "DHCP
325    over BOOTP" like we do, say "TCP over IP").  BOOTP and DHCP share UDP
326    packet formats - DHCP is merely a conventional use of both BOOTP
327    header fields and the trailing 'options' space.
329    The ISC DHCP server supports BOOTP clients conforming to RFC951
330    [RFC0951] and RFC1542 [RFC1542].
335 Hankins & Mrugalski                                             [Page 6]
337                      ISC DHCP References Collection         January 2012
340 5.  DHCPv4 Protocol References
342 5.1.  DHCPv4 Protocol
344    "The DHCP[v4] Protocol" is not defined in a single document.  The
345    following collection of references of what ISC DHCP terms "The DHCPv4
346    Protocol".
348 5.1.1.  Core Protocol References
350    RFC2131 [RFC2131] defines the protocol format and procedures.  ISC
351    DHCP is not known to diverge from this document in any way.  There
352    are, however, a few points on which different implementations have
353    arisen out of vagueries in the document.  DHCP Clients exist which,
354    at one time, present themselves as using a Client Identifier Option
355    which is equal to the client's hardware address.  Later, the client
356    transmits DHCP packets with no Client Identifier Option present -
357    essentially identifying themselves using the hardware address.  Some
358    DHCP Servers have been developed which identify this client as a
359    single client.  ISC has interpreted RFC2131 to indicate that these
360    clients must be treated as two separate entities (and hence two,
361    separate addresses).  Client behaviour (Embedded Windows products)
362    has developed that relies on the former implementation, and hence is
363    incompatible with the latter.  Also, RFC2131 demands explicitly that
364    some header fields be zeroed upon certain message types.  The ISC
365    DHCP Server instead copies many of these fields from the packet
366    received from the client or relay, which may not be zero.  It is not
367    known if there is a good reason for this that has not been
368    documented.
370    RFC2132 [RFC2132] defines the initial set of DHCP Options and
371    provides a great deal of guidance on how to go about formatting and
372    processing options.  The document unfortunately waffles to a great
373    extent about the NULL termination of DHCP Options, and some DHCP
374    Clients (Windows 95) have been implemented that rely upon DHCP
375    Options containing text strings to be NULL-terminated (or else they
376    crash).  So, ISC DHCP detects if clients null-terminate the host-name
377    option and, if so, null terminates any text options it transmits to
378    the client.  It also removes NULL termination from any known text
379    option it receives prior to any other processing.
381 5.2.  DHCPv4 Option References
383    RFC2241 [RFC2241] defines options for Novell Directory Services.
385    RFC2242 [RFC2242] defines an encapsulated option space for NWIP
386    configuration.
391 Hankins & Mrugalski                                             [Page 7]
393                      ISC DHCP References Collection         January 2012
396    RFC2485 [RFC2485] defines the Open Group's UAP option.
398    RFC2610 [RFC2610] defines options for the Service Location Protocol
399    (SLP).
401    RFC2937 [RFC2937] defines the Name Service Search Option (not to be
402    confused with the domain-search option).  The Name Service Search
403    Option allows eg nsswitch.conf to be reconfigured via dhcp.  The ISC
404    DHCP server implements this option, and the ISC DHCP client is
405    compatible...but does not by default install this option's value.
406    One would need to make their relevant dhclient-script process this
407    option in a way that is suitable for the system.
409    RFC3004 [RFC3004] defines the User-Class option.  Note carefully that
410    ISC DHCP currently does not implement to this reference, but has
411    (inexplicably) selected an incompatible format: a plain text string.
413    RFC3011 [RFC3011] defines the Subnet-Selection plain DHCPv4 option.
414    Do not confuse this option with the relay agent "link selection" sub-
415    option, although their behaviour is similar.
417    RFC3396 [RFC3396] documents both how long options may be encoded in
418    DHCPv4 packets, and also how multiple instances of the same option
419    code within a DHCPv4 packet will be decoded by receivers.
421    RFC3397 [RFC3397] documents the Domain-Search Option, which allows
422    the configuration of the /etc/resolv.conf 'search' parameter in a way
423    that is RFC1035 [RFC1035] wire format compatible (in fact, it uses
424    the RFC1035 wire format).  ISC DHCP has both client and server
425    support, and supports RFC1035 name compression.
427    RFC3679 [RFC3679] documents a number of options that were documented
428    earlier in history, but were not made use of.
430    RFC3925 [RFC3925] documents a pair of Enterprise-ID delimited option
431    spaces for vendors to use in order to inform servers of their "vendor
432    class" (sort of like 'uname' or 'who and what am I'), and a means to
433    deliver vendor-specific and vendor-documented option codes and
434    values.
436    RFC3942 [RFC3942] redefined the 'site local' option space.
438    [RFC4280] defines two BCMS server options for each protocol family.
440    RFC4388 [RFC4388] defined the DHCPv4 LEASEQUERY message type and a
441    number of suitable response messages, for the purpose of sharing
442    information about DHCP served addresses and clients.
447 Hankins & Mrugalski                                             [Page 8]
449                      ISC DHCP References Collection         January 2012
452 5.2.1.  Relay Agent Information Option Options
454    RFC3046 [RFC3046] defines the Relay Agent Information Option and
455    provides a number of sub-option definitions.
457    RFC3256 [RFC3256] defines the DOCSIS Device Class sub-option.
459    RFC3527 [RFC3527] defines the Link Selection sub-option.
461 5.2.2.  Dynamic DNS Updates References
463    The collection of documents that describe the standards-based method
464    to update dns names of DHCP clients starts most easily with RFC4703
465    [RFC4703] to define the overall architecture, travels through RFCs
466    4702 [RFC4702] and 4704 [RFC4704] to describe the DHCPv4 and DHCPv6
467    FQDN options (to carry the client name), and ends up at RFC4701
468    [RFC4701] which describes the DHCID RR used in DNS to perform a kind
469    of atomic locking.
471    ISC DHCP adopted early versions of these documents, and has not yet
472    synchronized with the final standards versions.
474    For RFCs 4702 and 4704, the 'N' bit is not yet supported.  The result
475    is that it is always set zero, and is ignored if set.
477    For RFC4701, which is used to match client identities with names in
478    the DNS as part of name conflict resolution.  Note that ISC DHCP's
479    implementation of DHCIDs vary wildly from this specification.  First,
480    ISC DHCP uses a TXT record in which the contents are stored in
481    hexadecimal.  Second, there is a flaw in the selection of the
482    'Identifier Type', which results in a completely different value
483    being selected than was defined in an older revision of this
484    document...also this field is one byte prior to hexadecimal encoding
485    rather than two.  Third, ISC DHCP does not use a digest type code.
486    Rather, all values for such TXT records are reached via an MD5 sum.
487    In short, nothing is compatible, but the principle of the TXT record
488    is the same as the standard DHCID record.  However, for DHCPv6 FQDN,
489    we do use DHCID type code '2', as no other value really makes sense
490    in our context.
492 5.2.3.  Experimental: Failover References
494    The Failover Protocol defines means by which two DHCP Servers can
495    share all the relevant information about leases granted to DHCP
496    clients on given networks, so that one of the two servers may fail
497    and be survived by a server that can act responsibly.
499    Unfortunately it has been quite some years (2003) since the last time
503 Hankins & Mrugalski                                             [Page 9]
505                      ISC DHCP References Collection         January 2012
508    this document was edited, and the authors no longer show any interest
509    in fielding comments or improving the document.
511    The status of this protocol is very unsure, but ISC's implementation
512    of it has proven stable and suitable for use in sizable production
513    environments.
515    draft-ietf-dhc-failover-12.txt [draft-failover] describes the
516    Failover Protocol.  In addition to what is described in this
517    document, ISC DHCP has elected to make some experimental changes that
518    may be revoked in a future version of ISC DHCP (if the draft authors
519    do not adopt the new behaviour).  Specifically, ISC DHCP's POOLREQ
520    behaviour differs substantially from what is documented in the draft,
521    and the server also implements a form of 'MAC Address Affinity' which
522    is not described in the failover document.  The full nature of these
523    changes have been described on the IETF DHC WG mailing list (which
524    has archives), and also in ISC DHCP's manual pages.  Also note that
525    although this document references a RECOVER-WAIT state, it does not
526    document a protocol number assignment for this state.  As a
527    consequence, ISC DHCP has elected to use the value 254.
529    An optimization described in the failover protocol draft is included
530    since 4.2.0a1.  It permits a DHCP server operating in communications-
531    interrupted state to 'rewind' a lease to the state most recently
532    transmitted to its peer, greatly increasing a server's endurance in
533    communications-interrupted.  This is supported using a new 'rewind
534    state' record on the dhcpd.leases entry for each lease.
536    [RFC3074] describes the Load Balancing Algorithm (LBA) that ISC DHCP
537    uses in concert with the Failover protocol.  Note that versions 3.0.*
538    are known to misimplement the hash algorithm (it will only use the
539    low 4 bits of every byte of the hash bucket array).
541 5.3.  DHCP Procedures
543    [RFC2939] explains how to go about obtaining a new DHCP Option code
544    assignment.
547 6.  DHCPv6 Protocol References
549 6.1.  DHCPv6 Protocol References
551    For now there is only one document that specifies the base of the
552    DHCPv6 protocol (there have been no updates yet), [RFC3315].
554    Support for DHCPv6 was first added in version 4.0.0.  The server and
555    client support only IA_NA.  While the server does support multiple
559 Hankins & Mrugalski                                            [Page 10]
561                      ISC DHCP References Collection         January 2012
564    IA_NAs within one packet from the client, our client only supports
565    sending one.  There is no relay support.
567    DHCPv6 introduces some new and uncomfortable ideas to the common
568    software library.
570    1.  Options sometimes may appear multiple times.  The common library
571        used to treat all appearance of multiple options as specified in
572        RFC2131 - to be concatenated.  DHCPv6 options may sometimes
573        appear multiple times (such as with IA_NA or IAADDR), but often
574        must not.  As of 4.2.1-P1, multiple IA_NA, IA_PD or IA_TA are not
575        supported.
577    2.  The same option space appears in DHCPv6 packets multiple times.
578        If the packet was got via a relay, then the client's packet is
579        stored to an option within the relay's packet...if there were two
580        relays, this recurses.  At each of these steps, the root "DHCPv6
581        option space" is used.  Further, a client packet may contain an
582        IA_NA, which may contain an IAADDR - but really, in an abstract
583        sense, this is again re-encapsulation of the DHCPv6 option space
584        beneath options it also contains.
586    Precisely how to correctly support the above conundrums has not quite
587    yet been settled, so support is incomplete.
589    [RFC5453] creates a registry at IANA to reserve interface identifiers
590    and specifies a starting set.  These IIDs should not be used when
591    constructing addresses to avoid possible conflicts.
593 6.2.  DHCPv6 Options References
595    [RFC3319] defines the SIP server options for DHCPv6.
597    [RFC3646] documents the DHCPv6 name-servers and domain-search
598    options.
600    [RFC3633] documents the Identity Association Prefix Delegation for
601    DHCPv6, which is included here for protocol wire reference, but which
602    is not supported by ISC DHCP.
604    [RFC3898] documents four NIS options for delivering NIS servers and
605    domain information in DHCPv6.
607    [RFC4075] defines the DHCPv6 SNTP Servers option.
609    [RFC4242] defines the Information Refresh Time option, which advises
610    DHCPv6 Information-Request clients to return for updated information.
615 Hankins & Mrugalski                                            [Page 11]
617                      ISC DHCP References Collection         January 2012
620    [RFC4280] defines two BCMS server options for each protocol family.
622    [RFC4580] defines a DHCPv6 subscriber-id option, which is similar in
623    principle to the DHCPv4 relay agent option of the same name.
625    [RFC4649] defines a DHCPv6 remote-id option, which is similar in
626    principle to the DHCPv4 relay agent remote-id.
629 7.  References
631 7.1.  Published DHCPv4 References
633    [RFC0760]  Postel, J., "DoD standard Internet Protocol", RFC 760,
634               January 1980.
636    [RFC0768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
637               August 1980.
639    [RFC0894]  Hornig, C., "Standard for the transmission of IP datagrams
640               over Ethernet networks", STD 41, RFC 894, April 1984.
642    [RFC0951]  Croft, B. and J. Gilmore, "Bootstrap Protocol", RFC 951,
643               September 1985.
645    [RFC1035]  Mockapetris, P., "Domain names - implementation and
646               specification", STD 13, RFC 1035, November 1987.
648    [RFC1188]  Katz, D., "Proposed Standard for the Transmission of IP
649               Datagrams over FDDI Networks", RFC 1188, October 1990.
651    [RFC1542]  Wimer, W., "Clarifications and Extensions for the
652               Bootstrap Protocol", RFC 1542, October 1993.
654    [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
655               RFC 2131, March 1997.
657    [RFC2132]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
658               Extensions", RFC 2132, March 1997.
660    [RFC2241]  Provan, D., "DHCP Options for Novell Directory Services",
661               RFC 2241, November 1997.
663    [RFC2242]  Droms, R. and K. Fong, "NetWare/IP Domain Name and
664               Information", RFC 2242, November 1997.
666    [RFC2485]  Drach, S., "DHCP Option for The Open Group's User
667               Authentication Protocol", RFC 2485, January 1999.
671 Hankins & Mrugalski                                            [Page 12]
673                      ISC DHCP References Collection         January 2012
676    [RFC2563]  Troll, R., "DHCP Option to Disable Stateless Auto-
677               Configuration in IPv4 Clients", RFC 2563, May 1999.
679    [RFC2610]  Perkins, C. and E. Guttman, "DHCP Options for Service
680               Location Protocol", RFC 2610, June 1999.
682    [RFC2855]  Fujisawa, K., "DHCP for IEEE 1394", RFC 2855, June 2000.
684    [RFC2937]  Smith, C., "The Name Service Search Option for DHCP",
685               RFC 2937, September 2000.
687    [RFC2939]  Droms, R., "Procedures and IANA Guidelines for Definition
688               of New DHCP Options and Message Types", BCP 43, RFC 2939,
689               September 2000.
691    [RFC3004]  Stump, G., Droms, R., Gu, Y., Vyaghrapuri, R., Demirtjis,
692               A., Beser, B., and J. Privat, "The User Class Option for
693               DHCP", RFC 3004, November 2000.
695    [RFC3011]  Waters, G., "The IPv4 Subnet Selection Option for DHCP",
696               RFC 3011, November 2000.
698    [RFC3046]  Patrick, M., "DHCP Relay Agent Information Option",
699               RFC 3046, January 2001.
701    [RFC3074]  Volz, B., Gonczi, S., Lemon, T., and R. Stevens, "DHC Load
702               Balancing Algorithm", RFC 3074, February 2001.
704    [RFC3118]  Droms, R. and W. Arbaugh, "Authentication for DHCP
705               Messages", RFC 3118, June 2001.
707    [RFC3203]  T'Joens, Y., Hublet, C., and P. De Schrijver, "DHCP
708               reconfigure extension", RFC 3203, December 2001.
710    [RFC3256]  Jones, D. and R. Woundy, "The DOCSIS (Data-Over-Cable
711               Service Interface Specifications) Device Class DHCP
712               (Dynamic Host Configuration Protocol) Relay Agent
713               Information Sub-option", RFC 3256, April 2002.
715    [RFC3361]  Schulzrinne, H., "Dynamic Host Configuration Protocol
716               (DHCP-for-IPv4) Option for Session Initiation Protocol
717               (SIP) Servers", RFC 3361, August 2002.
719    [RFC3396]  Lemon, T. and S. Cheshire, "Encoding Long Options in the
720               Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396,
721               November 2002.
723    [RFC3397]  Aboba, B. and S. Cheshire, "Dynamic Host Configuration
727 Hankins & Mrugalski                                            [Page 13]
729                      ISC DHCP References Collection         January 2012
732               Protocol (DHCP) Domain Search Option", RFC 3397,
733               November 2002.
735    [RFC3442]  Lemon, T., Cheshire, S., and B. Volz, "The Classless
736               Static Route Option for Dynamic Host Configuration
737               Protocol (DHCP) version 4", RFC 3442, December 2002.
739    [RFC3456]  Patel, B., Aboba, B., Kelly, S., and V. Gupta, "Dynamic
740               Host Configuration Protocol (DHCPv4) Configuration of
741               IPsec Tunnel Mode", RFC 3456, January 2003.
743    [RFC3495]  Beser, B. and P. Duffy, "Dynamic Host Configuration
744               Protocol (DHCP) Option for CableLabs Client
745               Configuration", RFC 3495, March 2003.
747    [RFC3527]  Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy,
748               "Link Selection sub-option for the Relay Agent Information
749               Option for DHCPv4", RFC 3527, April 2003.
751    [RFC3594]  Duffy, P., "PacketCable Security Ticket Control Sub-Option
752               for the DHCP CableLabs Client Configuration (CCC) Option",
753               RFC 3594, September 2003.
755    [RFC3634]  Luehrs, K., Woundy, R., Bevilacqua, J., and N. Davoust,
756               "Key Distribution Center (KDC) Server Address Sub-option
757               for the Dynamic Host Configuration Protocol (DHCP)
758               CableLabs Client Configuration (CCC) Option", RFC 3634,
759               December 2003.
761    [RFC3679]  Droms, R., "Unused Dynamic Host Configuration Protocol
762               (DHCP) Option Codes", RFC 3679, January 2004.
764    [RFC3825]  Polk, J., Schnizlein, J., and M. Linsner, "Dynamic Host
765               Configuration Protocol Option for Coordinate-based
766               Location Configuration Information", RFC 3825, July 2004.
768    [RFC3925]  Littlefield, J., "Vendor-Identifying Vendor Options for
769               Dynamic Host Configuration Protocol version 4 (DHCPv4)",
770               RFC 3925, October 2004.
772    [RFC3942]  Volz, B., "Reclassifying Dynamic Host Configuration
773               Protocol version 4 (DHCPv4) Options", RFC 3942,
774               November 2004.
776    [RFC3993]  Johnson, R., Palaniappan, T., and M. Stapp, "Subscriber-ID
777               Suboption for the Dynamic Host Configuration Protocol
778               (DHCP) Relay Agent Option", RFC 3993, March 2005.
783 Hankins & Mrugalski                                            [Page 14]
785                      ISC DHCP References Collection         January 2012
788    [RFC4014]  Droms, R. and J. Schnizlein, "Remote Authentication
789               Dial-In User Service (RADIUS) Attributes Suboption for the
790               Dynamic Host Configuration Protocol (DHCP) Relay Agent
791               Information Option", RFC 4014, February 2005.
793    [RFC4030]  Stapp, M. and T. Lemon, "The Authentication Suboption for
794               the Dynamic Host Configuration Protocol (DHCP) Relay Agent
795               Option", RFC 4030, March 2005.
797    [RFC4039]  Park, S., Kim, P., and B. Volz, "Rapid Commit Option for
798               the Dynamic Host Configuration Protocol version 4
799               (DHCPv4)", RFC 4039, March 2005.
801    [RFC4174]  Monia, C., Tseng, J., and K. Gibbons, "The IPv4 Dynamic
802               Host Configuration Protocol (DHCP) Option for the Internet
803               Storage Name Service", RFC 4174, September 2005.
805    [RFC4243]  Stapp, M., Johnson, R., and T. Palaniappan, "Vendor-
806               Specific Information Suboption for the Dynamic Host
807               Configuration Protocol (DHCP) Relay Agent Option",
808               RFC 4243, December 2005.
810    [RFC4361]  Lemon, T. and B. Sommerfeld, "Node-specific Client
811               Identifiers for Dynamic Host Configuration Protocol
812               Version Four (DHCPv4)", RFC 4361, February 2006.
814    [RFC4388]  Woundy, R. and K. Kinnear, "Dynamic Host Configuration
815               Protocol (DHCP) Leasequery", RFC 4388, February 2006.
817    [RFC4390]  Kashyap, V., "Dynamic Host Configuration Protocol (DHCP)
818               over InfiniBand", RFC 4390, April 2006.
820    [RFC4436]  Aboba, B., Carlson, J., and S. Cheshire, "Detecting
821               Network Attachment in IPv4 (DNAv4)", RFC 4436, March 2006.
823    [RFC4701]  Stapp, M., Lemon, T., and A. Gustafsson, "A DNS Resource
824               Record (RR) for Encoding Dynamic Host Configuration
825               Protocol (DHCP) Information (DHCID RR)", RFC 4701,
826               October 2006.
828    [RFC4702]  Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host
829               Configuration Protocol (DHCP) Client Fully Qualified
830               Domain Name (FQDN) Option", RFC 4702, October 2006.
832    [RFC4703]  Stapp, M. and B. Volz, "Resolution of Fully Qualified
833               Domain Name (FQDN) Conflicts among Dynamic Host
834               Configuration Protocol (DHCP) Clients", RFC 4703,
835               October 2006.
839 Hankins & Mrugalski                                            [Page 15]
841                      ISC DHCP References Collection         January 2012
844    [RFC5010]  Kinnear, K., Normoyle, M., and M. Stapp, "The Dynamic Host
845               Configuration Protocol Version 4 (DHCPv4) Relay Agent
846               Flags Suboption", RFC 5010, September 2007.
848    [RFC5071]  Hankins, D., "Dynamic Host Configuration Protocol Options
849               Used by PXELINUX", RFC 5071, December 2007.
851    [RFC5107]  Johnson, R., Kumarasamy, J., Kinnear, K., and M. Stapp,
852               "DHCP Server Identifier Override Suboption", RFC 5107,
853               February 2008.
855    [RFC5192]  Morand, L., Yegin, A., Kumar, S., and S. Madanapalli,
856               "DHCP Options for Protocol for Carrying Authentication for
857               Network Access (PANA) Authentication Agents", RFC 5192,
858               May 2008.
860    [RFC5223]  Schulzrinne, H., Polk, J., and H. Tschofenig, "Discovering
861               Location-to-Service Translation (LoST) Servers Using the
862               Dynamic Host Configuration Protocol (DHCP)", RFC 5223,
863               August 2008.
865    [RFC5859]  Johnson, R., "TFTP Server Address Option for DHCPv4",
866               RFC 5859, June 2010.
868    [RFC5969]  Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4
869               Infrastructures (6rd) -- Protocol Specification",
870               RFC 5969, August 2010.
872    [draft-failover]
873               Droms, R., "DHCP Failover Protocol", March 2003.
875    [I-D.ietf-dhc-dhcpv4-relay-encapsulation]
876               Lemon, T. and H. Deng, "Relay Agent Encapsulation for
877               DHCPv4", draft-ietf-dhc-dhcpv4-relay-encapsulation-00
878               (work in progress), October 2010.
880    [I-D.ietf-dhc-dhcpv4-bulk-leasequery]
881               Kinnear, K., Volz, B., Russell, N., Stapp, M., Rao, D.,
882               Joshi, B., and P. Kurapati, "Bulk DHCPv4 Lease Query",
883               draft-ietf-dhc-dhcpv4-bulk-leasequery-03 (work in
884               progress), October 2010.
886    [I-D.ietf-dhc-leasequery-by-remote-id]
887               Kurapati, P. and B. Joshi, "DHCPv4 lease query by Relay
888               Agent Remote ID",
889               draft-ietf-dhc-leasequery-by-remote-id-09 (work in
890               progress), December 2010.
895 Hankins & Mrugalski                                            [Page 16]
897                      ISC DHCP References Collection         January 2012
900    [I-D.ietf-dhc-relay-id-suboption]
901               Stapp, M., "The DHCPv4 Relay Agent Identifier Suboption",
902               draft-ietf-dhc-relay-id-suboption-07 (work in progress),
903               July 2009.
905    [I-D.ietf-mip6-hiopt]
906               Jang, H., Yegin, A., Chowdhury, K., and J. Choi, "DHCP
907               Options for Home Information Discovery in MIPv6",
908               draft-ietf-mip6-hiopt-17 (work in progress), May 2008.
910 7.2.  Published Common (DHCPv4/DHCPv6) References
912    [RFC4280]  Chowdhury, K., Yegani, P., and L. Madour, "Dynamic Host
913               Configuration Protocol (DHCP) Options for Broadcast and
914               Multicast Control Servers", RFC 4280, November 2005.
916    [RFC4477]  Chown, T., Venaas, S., and C. Strauf, "Dynamic Host
917               Configuration Protocol (DHCP): IPv4 and IPv6 Dual-Stack
918               Issues", RFC 4477, May 2006.
920    [RFC4578]  Johnston, M. and S. Venaas, "Dynamic Host Configuration
921               Protocol (DHCP) Options for the Intel Preboot eXecution
922               Environment (PXE)", RFC 4578, November 2006.
924    [RFC4776]  Schulzrinne, H., "Dynamic Host Configuration Protocol
925               (DHCPv4 and DHCPv6) Option for Civic Addresses
926               Configuration Information", RFC 4776, November 2006.
928    [RFC4833]  Lear, E. and P. Eggert, "Timezone Options for DHCP",
929               RFC 4833, April 2007.
931    [RFC5417]  Calhoun, P., "Control And Provisioning of Wireless Access
932               Points (CAPWAP) Access Controller DHCP Option", RFC 5417,
933               March 2009.
935    [RFC5678]  Bajko, G. and S. Das, "Dynamic Host Configuration Protocol
936               (DHCPv4 and DHCPv6) Options for IEEE 802.21 Mobility
937               Services (MoS) Discovery", RFC 5678, December 2009.
939    [RFC5908]  Gayraud, R. and B. Lourdelet, "Network Time Protocol (NTP)
940               Server Option for DHCPv6", RFC 5908, June 2010.
942    [RFC5970]  Huth, T., Freimann, J., Zimmer, V., and D. Thaler, "DHCPv6
943               Options for Network Boot", RFC 5970, September 2010.
945    [RFC5986]  Thomson, M. and J. Winterbottom, "Discovering the Local
946               Location Information Server (LIS)", RFC 5986,
947               September 2010.
951 Hankins & Mrugalski                                            [Page 17]
953                      ISC DHCP References Collection         January 2012
956    [I-D.ietf-dhc-vpn-option]
957               Kinnear, K., Johnson, R., and M. Stapp, "Virtual Subnet
958               Selection Options for DHCPv4 and DHCPv6",
959               draft-ietf-dhc-vpn-option-12 (work in progress),
960               October 2010.
962 7.3.  Published DHCPv6 References
964    [RFC3315]  Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
965               and M. Carney, "Dynamic Host Configuration Protocol for
966               IPv6 (DHCPv6)", RFC 3315, July 2003.
968    [RFC3319]  Schulzrinne, H. and B. Volz, "Dynamic Host Configuration
969               Protocol (DHCPv6) Options for Session Initiation Protocol
970               (SIP) Servers", RFC 3319, July 2003.
972    [RFC3633]  Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
973               Host Configuration Protocol (DHCP) version 6", RFC 3633,
974               December 2003.
976    [RFC3646]  Droms, R., "DNS Configuration options for Dynamic Host
977               Configuration Protocol for IPv6 (DHCPv6)", RFC 3646,
978               December 2003.
980    [RFC3736]  Droms, R., "Stateless Dynamic Host Configuration Protocol
981               (DHCP) Service for IPv6", RFC 3736, April 2004.
983    [RFC3898]  Kalusivalingam, V., "Network Information Service (NIS)
984               Configuration Options for Dynamic Host Configuration
985               Protocol for IPv6 (DHCPv6)", RFC 3898, October 2004.
987    [RFC4075]  Kalusivalingam, V., "Simple Network Time Protocol (SNTP)
988               Configuration Option for DHCPv6", RFC 4075, May 2005.
990    [RFC4076]  Chown, T., Venaas, S., and A. Vijayabhaskar, "Renumbering
991               Requirements for Stateless Dynamic Host Configuration
992               Protocol for IPv6 (DHCPv6)", RFC 4076, May 2005.
994    [RFC4242]  Venaas, S., Chown, T., and B. Volz, "Information Refresh
995               Time Option for Dynamic Host Configuration Protocol for
996               IPv6 (DHCPv6)", RFC 4242, November 2005.
998    [RFC4580]  Volz, B., "Dynamic Host Configuration Protocol for IPv6
999               (DHCPv6) Relay Agent Subscriber-ID Option", RFC 4580,
1000               June 2006.
1002    [RFC4649]  Volz, B., "Dynamic Host Configuration Protocol for IPv6
1003               (DHCPv6) Relay Agent Remote-ID Option", RFC 4649,
1007 Hankins & Mrugalski                                            [Page 18]
1009                      ISC DHCP References Collection         January 2012
1012               August 2006.
1014    [RFC4704]  Volz, B., "The Dynamic Host Configuration Protocol for
1015               IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN)
1016               Option", RFC 4704, October 2006.
1018    [RFC4994]  Zeng, S., Volz, B., Kinnear, K., and J. Brzozowski,
1019               "DHCPv6 Relay Agent Echo Request Option", RFC 4994,
1020               September 2007.
1022    [RFC5007]  Brzozowski, J., Kinnear, K., Volz, B., and S. Zeng,
1023               "DHCPv6 Leasequery", RFC 5007, September 2007.
1025    [RFC5453]  Krishnan, S., "Reserved IPv6 Interface Identifiers",
1026               RFC 5453, February 2009.
1028    [RFC5460]  Stapp, M., "DHCPv6 Bulk Leasequery", RFC 5460,
1029               February 2009.
1031    [I-D.ietf-mif-dhcpv6-route-option]
1032               Dec, W., Mrugalski, T., Sun, T., and B. Sarikaya, "DHCPv6
1033               Route Options", draft-ietf-mif-dhcpv6-route-option-03
1034               (work in progress), September 2011.
1036    [I-D.ietf-dhc-dhcpv6-ldra]
1037               Miles, D., Ooghe, S., Dec, W., Krishnan, S., and A.
1038               Kavanagh, "Lightweight DHCPv6 Relay Agent",
1039               draft-ietf-dhc-dhcpv6-ldra-03 (work in progress),
1040               October 2010.
1042    [I-D.ietf-dhc-dhcpv6-relay-supplied-options]
1043               Lemon, T. and W. Wu, "Relay-Supplied DHCP Options",
1044               draft-ietf-dhc-dhcpv6-relay-supplied-options-09 (work in
1045               progress), September 2011.
1047    [I-D.ietf-dhc-pd-exclude]
1048               Korhonen, J., Savolainen, T., Krishnan, S., and O. Troan,
1049               "Prefix Exclude Option for DHCPv6-based Prefix
1050               Delegation", draft-ietf-dhc-pd-exclude-01 (work in
1051               progress), January 2011.
1053    [I-D.ietf-dhc-secure-dhcpv6]
1054               Jiang, S., "Secure DHCPv6 Using CGAs",
1055               draft-ietf-dhc-secure-dhcpv6-02 (work in progress),
1056               December 2010.
1058    [I-D.ietf-mext-nemo-pd]
1059               Droms, R., Thubert, P., Dupont, F., Haddad, W., and C.
1063 Hankins & Mrugalski                                            [Page 19]
1065                      ISC DHCP References Collection         January 2012
1068               Bernardos, "DHCPv6 Prefix Delegation for NEMO",
1069               draft-ietf-mext-nemo-pd-07 (work in progress),
1070               December 2010.
1072    [I-D.ietf-dhc-duid-uuid]
1073               Narten, T. and J. Johnson, "Definition of the UUID-based
1074               DHCPv6 Unique Identifier (DUID-UUID)",
1075               draft-ietf-dhc-duid-uuid-03 (work in progress),
1076               February 2011.
1078    [I-D.ietf-softwire-ds-lite-tunnel-option]
1079               Hankins, D. and T. Mrugalski, "Dynamic Host Configuration
1080               Protocol for IPv6 (DHCPv6) Option for Dual- Stack Lite",
1081               draft-ietf-softwire-ds-lite-tunnel-option-10 (work in
1082               progress), March 2011.
1084    [I-D.ietf-mif-dns-server-selection]
1085               Savolainen, T. and J. Kato, "Improved DNS Server Selection
1086               for Multi-Homed Nodes",
1087               draft-ietf-mif-dns-server-selection-01 (work in progress),
1088               March 2011.
1090    [I-D.ietf-geopriv-rfc3825bis]
1091               Polk, J., Linsner, M., Thomson, M., and B. Aboba, "Dynamic
1092               Host Configuration Protocol Options for Coordinate-based
1093               Location Configuration Information",
1094               draft-ietf-geopriv-rfc3825bis-17 (work in progress),
1095               February 2011.
1097    [draft-addr-params]
1098               Mrugalski, T., "Address Parameters Option for DHCPv6",
1099               April 2007.
1102 Authors' Addresses
1104    David W. Hankins
1105    Internet Systems Consortium, Inc.
1106    950 Charter Street
1107    Redwood City, CA  94063
1119 Hankins & Mrugalski                                            [Page 20]
1121                      ISC DHCP References Collection         January 2012
1124    Tomasz Mrugalski
1125    Internet Systems Consortium, Inc.
1126    950 Charter Street
1127    Redwood City, CA  94063
1129    Phone: +1 650 423 1345
1130    Email: Tomasz_Mrugalski@isc.org
1175 Hankins & Mrugalski                                            [Page 21]