xref: /minix/external/bsd/dhcp/dist/doc/References.txt (revision bb9622b5)
1
2
3
4ISC-DHCP-REFERENCES                                           D. Hankins
5                                                            T. Mrugalski
6                                                                     ISC
7                                                        January 04, 2012
8
9
10                     ISC DHCP References Collection
11
12Abstract
13
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.
17
18Copyright Notice
19
20   Copyright (c) 2006-2007,2009,2011 by Internet Systems Consortium,
21   Inc. ("ISC")
22
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.
27
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.
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55Hankins & Mrugalski                                             [Page 1]
56
57                     ISC DHCP References Collection         January 2012
58
59
60Table of Contents
61
62   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
63
64   2.  Definition: Reference Implementation . . . . . . . . . . . . .  3
65
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
72
73   4.  BOOTP Protocol References  . . . . . . . . . . . . . . . . . .  6
74
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
83
84   6.  DHCPv6 Protocol References . . . . . . . . . . . . . . . . . . 10
85     6.1.  DHCPv6 Protocol References . . . . . . . . . . . . . . . . 10
86     6.2.  DHCPv6 Options References  . . . . . . . . . . . . . . . . 11
87
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
92
93   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111Hankins & Mrugalski                                             [Page 2]
112
113                     ISC DHCP References Collection         January 2012
114
115
1161.  Introduction
117
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).
125
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.
132
133
1342.  Definition: Reference Implementation
135
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.
148
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."
153
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.
159
160   Anything else is a bug, the only question is whether the bug is in
161   reference or software (failing to implement the reference).
162
163   This means:
164
165
166
167Hankins & Mrugalski                                             [Page 3]
168
169                     ISC DHCP References Collection         January 2012
170
171
172   o  To produce new externally-visible behaviour, one must first
173      provide a reference.
174
175   o  Before changing externally visible behaviour to work around simple
176      incompatibilities in any other implementation, one must first
177      provide a reference.
178
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.
183
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".
193
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.
200
201
2023.  Low Layer References
203
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.
208
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.
213
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].
217
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
220
221
222
223Hankins & Mrugalski                                             [Page 4]
224
225                     ISC DHCP References Collection         January 2012
226
227
228       address yet) interface.
229
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.
233
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.
237
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.
243
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.
250
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.
254
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.
260
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.
272
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
276
277
278
279Hankins & Mrugalski                                             [Page 5]
280
281                     ISC DHCP References Collection         January 2012
282
283
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.
289
2903.1.  Ethernet Protocol References
291
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.
297
298   http://en.wikipedia.org/wiki/DIX_Ethernet
299
3003.2.  Token Ring Protocol References
301
302   IEEE 802.5 defines the Token Ring framing format used by ISC DHCP.
303
3043.3.  FDDI Protocol References
305
306   [RFC1188] is the most helpful reference ISC DHCP has used to form
307   FDDI packets.
308
3093.4.  Internet Protocol Version 4 References
310
311   RFC760 [RFC0760] fundamentally defines the bare IPv4 protocol which
312   ISC DHCP implements.
313
3143.5.  Unicast Datagram Protocol References
315
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.
319
320
3214.  BOOTP Protocol References
322
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.
328
329   The ISC DHCP server supports BOOTP clients conforming to RFC951
330   [RFC0951] and RFC1542 [RFC1542].
331
332
333
334
335Hankins & Mrugalski                                             [Page 6]
336
337                     ISC DHCP References Collection         January 2012
338
339
3405.  DHCPv4 Protocol References
341
3425.1.  DHCPv4 Protocol
343
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".
347
3485.1.1.  Core Protocol References
349
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.
369
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.
380
3815.2.  DHCPv4 Option References
382
383   RFC2241 [RFC2241] defines options for Novell Directory Services.
384
385   RFC2242 [RFC2242] defines an encapsulated option space for NWIP
386   configuration.
387
388
389
390
391Hankins & Mrugalski                                             [Page 7]
392
393                     ISC DHCP References Collection         January 2012
394
395
396   RFC2485 [RFC2485] defines the Open Group's UAP option.
397
398   RFC2610 [RFC2610] defines options for the Service Location Protocol
399   (SLP).
400
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.
408
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.
412
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.
416
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.
420
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.
426
427   RFC3679 [RFC3679] documents a number of options that were documented
428   earlier in history, but were not made use of.
429
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.
435
436   RFC3942 [RFC3942] redefined the 'site local' option space.
437
438   [RFC4280] defines two BCMS server options for each protocol family.
439
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.
443
444
445
446
447Hankins & Mrugalski                                             [Page 8]
448
449                     ISC DHCP References Collection         January 2012
450
451
4525.2.1.  Relay Agent Information Option Options
453
454   RFC3046 [RFC3046] defines the Relay Agent Information Option and
455   provides a number of sub-option definitions.
456
457   RFC3256 [RFC3256] defines the DOCSIS Device Class sub-option.
458
459   RFC3527 [RFC3527] defines the Link Selection sub-option.
460
4615.2.2.  Dynamic DNS Updates References
462
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.
470
471   ISC DHCP adopted early versions of these documents, and has not yet
472   synchronized with the final standards versions.
473
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.
476
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.
491
4925.2.3.  Experimental: Failover References
493
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.
498
499   Unfortunately it has been quite some years (2003) since the last time
500
501
502
503Hankins & Mrugalski                                             [Page 9]
504
505                     ISC DHCP References Collection         January 2012
506
507
508   this document was edited, and the authors no longer show any interest
509   in fielding comments or improving the document.
510
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.
514
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.
528
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.
535
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).
540
5415.3.  DHCP Procedures
542
543   [RFC2939] explains how to go about obtaining a new DHCP Option code
544   assignment.
545
546
5476.  DHCPv6 Protocol References
548
5496.1.  DHCPv6 Protocol References
550
551   For now there is only one document that specifies the base of the
552   DHCPv6 protocol (there have been no updates yet), [RFC3315].
553
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
556
557
558
559Hankins & Mrugalski                                            [Page 10]
560
561                     ISC DHCP References Collection         January 2012
562
563
564   IA_NAs within one packet from the client, our client only supports
565   sending one.  There is no relay support.
566
567   DHCPv6 introduces some new and uncomfortable ideas to the common
568   software library.
569
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.
576
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.
585
586   Precisely how to correctly support the above conundrums has not quite
587   yet been settled, so support is incomplete.
588
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.
592
5936.2.  DHCPv6 Options References
594
595   [RFC3319] defines the SIP server options for DHCPv6.
596
597   [RFC3646] documents the DHCPv6 name-servers and domain-search
598   options.
599
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.
603
604   [RFC3898] documents four NIS options for delivering NIS servers and
605   domain information in DHCPv6.
606
607   [RFC4075] defines the DHCPv6 SNTP Servers option.
608
609   [RFC4242] defines the Information Refresh Time option, which advises
610   DHCPv6 Information-Request clients to return for updated information.
611
612
613
614
615Hankins & Mrugalski                                            [Page 11]
616
617                     ISC DHCP References Collection         January 2012
618
619
620   [RFC4280] defines two BCMS server options for each protocol family.
621
622   [RFC4580] defines a DHCPv6 subscriber-id option, which is similar in
623   principle to the DHCPv4 relay agent option of the same name.
624
625   [RFC4649] defines a DHCPv6 remote-id option, which is similar in
626   principle to the DHCPv4 relay agent remote-id.
627
628
6297.  References
630
6317.1.  Published DHCPv4 References
632
633   [RFC0760]  Postel, J., "DoD standard Internet Protocol", RFC 760,
634              January 1980.
635
636   [RFC0768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
637              August 1980.
638
639   [RFC0894]  Hornig, C., "Standard for the transmission of IP datagrams
640              over Ethernet networks", STD 41, RFC 894, April 1984.
641
642   [RFC0951]  Croft, B. and J. Gilmore, "Bootstrap Protocol", RFC 951,
643              September 1985.
644
645   [RFC1035]  Mockapetris, P., "Domain names - implementation and
646              specification", STD 13, RFC 1035, November 1987.
647
648   [RFC1188]  Katz, D., "Proposed Standard for the Transmission of IP
649              Datagrams over FDDI Networks", RFC 1188, October 1990.
650
651   [RFC1542]  Wimer, W., "Clarifications and Extensions for the
652              Bootstrap Protocol", RFC 1542, October 1993.
653
654   [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
655              RFC 2131, March 1997.
656
657   [RFC2132]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
658              Extensions", RFC 2132, March 1997.
659
660   [RFC2241]  Provan, D., "DHCP Options for Novell Directory Services",
661              RFC 2241, November 1997.
662
663   [RFC2242]  Droms, R. and K. Fong, "NetWare/IP Domain Name and
664              Information", RFC 2242, November 1997.
665
666   [RFC2485]  Drach, S., "DHCP Option for The Open Group's User
667              Authentication Protocol", RFC 2485, January 1999.
668
669
670
671Hankins & Mrugalski                                            [Page 12]
672
673                     ISC DHCP References Collection         January 2012
674
675
676   [RFC2563]  Troll, R., "DHCP Option to Disable Stateless Auto-
677              Configuration in IPv4 Clients", RFC 2563, May 1999.
678
679   [RFC2610]  Perkins, C. and E. Guttman, "DHCP Options for Service
680              Location Protocol", RFC 2610, June 1999.
681
682   [RFC2855]  Fujisawa, K., "DHCP for IEEE 1394", RFC 2855, June 2000.
683
684   [RFC2937]  Smith, C., "The Name Service Search Option for DHCP",
685              RFC 2937, September 2000.
686
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.
690
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.
694
695   [RFC3011]  Waters, G., "The IPv4 Subnet Selection Option for DHCP",
696              RFC 3011, November 2000.
697
698   [RFC3046]  Patrick, M., "DHCP Relay Agent Information Option",
699              RFC 3046, January 2001.
700
701   [RFC3074]  Volz, B., Gonczi, S., Lemon, T., and R. Stevens, "DHC Load
702              Balancing Algorithm", RFC 3074, February 2001.
703
704   [RFC3118]  Droms, R. and W. Arbaugh, "Authentication for DHCP
705              Messages", RFC 3118, June 2001.
706
707   [RFC3203]  T'Joens, Y., Hublet, C., and P. De Schrijver, "DHCP
708              reconfigure extension", RFC 3203, December 2001.
709
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.
714
715   [RFC3361]  Schulzrinne, H., "Dynamic Host Configuration Protocol
716              (DHCP-for-IPv4) Option for Session Initiation Protocol
717              (SIP) Servers", RFC 3361, August 2002.
718
719   [RFC3396]  Lemon, T. and S. Cheshire, "Encoding Long Options in the
720              Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396,
721              November 2002.
722
723   [RFC3397]  Aboba, B. and S. Cheshire, "Dynamic Host Configuration
724
725
726
727Hankins & Mrugalski                                            [Page 13]
728
729                     ISC DHCP References Collection         January 2012
730
731
732              Protocol (DHCP) Domain Search Option", RFC 3397,
733              November 2002.
734
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.
738
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.
742
743   [RFC3495]  Beser, B. and P. Duffy, "Dynamic Host Configuration
744              Protocol (DHCP) Option for CableLabs Client
745              Configuration", RFC 3495, March 2003.
746
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.
750
751   [RFC3594]  Duffy, P., "PacketCable Security Ticket Control Sub-Option
752              for the DHCP CableLabs Client Configuration (CCC) Option",
753              RFC 3594, September 2003.
754
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.
760
761   [RFC3679]  Droms, R., "Unused Dynamic Host Configuration Protocol
762              (DHCP) Option Codes", RFC 3679, January 2004.
763
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.
767
768   [RFC3925]  Littlefield, J., "Vendor-Identifying Vendor Options for
769              Dynamic Host Configuration Protocol version 4 (DHCPv4)",
770              RFC 3925, October 2004.
771
772   [RFC3942]  Volz, B., "Reclassifying Dynamic Host Configuration
773              Protocol version 4 (DHCPv4) Options", RFC 3942,
774              November 2004.
775
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.
779
780
781
782
783Hankins & Mrugalski                                            [Page 14]
784
785                     ISC DHCP References Collection         January 2012
786
787
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.
792
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.
796
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.
800
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.
804
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.
809
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.
813
814   [RFC4388]  Woundy, R. and K. Kinnear, "Dynamic Host Configuration
815              Protocol (DHCP) Leasequery", RFC 4388, February 2006.
816
817   [RFC4390]  Kashyap, V., "Dynamic Host Configuration Protocol (DHCP)
818              over InfiniBand", RFC 4390, April 2006.
819
820   [RFC4436]  Aboba, B., Carlson, J., and S. Cheshire, "Detecting
821              Network Attachment in IPv4 (DNAv4)", RFC 4436, March 2006.
822
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.
827
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.
831
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.
836
837
838
839Hankins & Mrugalski                                            [Page 15]
840
841                     ISC DHCP References Collection         January 2012
842
843
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.
847
848   [RFC5071]  Hankins, D., "Dynamic Host Configuration Protocol Options
849              Used by PXELINUX", RFC 5071, December 2007.
850
851   [RFC5107]  Johnson, R., Kumarasamy, J., Kinnear, K., and M. Stapp,
852              "DHCP Server Identifier Override Suboption", RFC 5107,
853              February 2008.
854
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.
859
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.
864
865   [RFC5859]  Johnson, R., "TFTP Server Address Option for DHCPv4",
866              RFC 5859, June 2010.
867
868   [RFC5969]  Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4
869              Infrastructures (6rd) -- Protocol Specification",
870              RFC 5969, August 2010.
871
872   [draft-failover]
873              Droms, R., "DHCP Failover Protocol", March 2003.
874
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.
879
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.
885
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.
891
892
893
894
895Hankins & Mrugalski                                            [Page 16]
896
897                     ISC DHCP References Collection         January 2012
898
899
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.
904
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.
909
9107.2.  Published Common (DHCPv4/DHCPv6) References
911
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.
915
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.
919
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.
923
924   [RFC4776]  Schulzrinne, H., "Dynamic Host Configuration Protocol
925              (DHCPv4 and DHCPv6) Option for Civic Addresses
926              Configuration Information", RFC 4776, November 2006.
927
928   [RFC4833]  Lear, E. and P. Eggert, "Timezone Options for DHCP",
929              RFC 4833, April 2007.
930
931   [RFC5417]  Calhoun, P., "Control And Provisioning of Wireless Access
932              Points (CAPWAP) Access Controller DHCP Option", RFC 5417,
933              March 2009.
934
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.
938
939   [RFC5908]  Gayraud, R. and B. Lourdelet, "Network Time Protocol (NTP)
940              Server Option for DHCPv6", RFC 5908, June 2010.
941
942   [RFC5970]  Huth, T., Freimann, J., Zimmer, V., and D. Thaler, "DHCPv6
943              Options for Network Boot", RFC 5970, September 2010.
944
945   [RFC5986]  Thomson, M. and J. Winterbottom, "Discovering the Local
946              Location Information Server (LIS)", RFC 5986,
947              September 2010.
948
949
950
951Hankins & Mrugalski                                            [Page 17]
952
953                     ISC DHCP References Collection         January 2012
954
955
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.
961
9627.3.  Published DHCPv6 References
963
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.
967
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.
971
972   [RFC3633]  Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
973              Host Configuration Protocol (DHCP) version 6", RFC 3633,
974              December 2003.
975
976   [RFC3646]  Droms, R., "DNS Configuration options for Dynamic Host
977              Configuration Protocol for IPv6 (DHCPv6)", RFC 3646,
978              December 2003.
979
980   [RFC3736]  Droms, R., "Stateless Dynamic Host Configuration Protocol
981              (DHCP) Service for IPv6", RFC 3736, April 2004.
982
983   [RFC3898]  Kalusivalingam, V., "Network Information Service (NIS)
984              Configuration Options for Dynamic Host Configuration
985              Protocol for IPv6 (DHCPv6)", RFC 3898, October 2004.
986
987   [RFC4075]  Kalusivalingam, V., "Simple Network Time Protocol (SNTP)
988              Configuration Option for DHCPv6", RFC 4075, May 2005.
989
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.
993
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.
997
998   [RFC4580]  Volz, B., "Dynamic Host Configuration Protocol for IPv6
999              (DHCPv6) Relay Agent Subscriber-ID Option", RFC 4580,
1000              June 2006.
1001
1002   [RFC4649]  Volz, B., "Dynamic Host Configuration Protocol for IPv6
1003              (DHCPv6) Relay Agent Remote-ID Option", RFC 4649,
1004
1005
1006
1007Hankins & Mrugalski                                            [Page 18]
1008
1009                     ISC DHCP References Collection         January 2012
1010
1011
1012              August 2006.
1013
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.
1017
1018   [RFC4994]  Zeng, S., Volz, B., Kinnear, K., and J. Brzozowski,
1019              "DHCPv6 Relay Agent Echo Request Option", RFC 4994,
1020              September 2007.
1021
1022   [RFC5007]  Brzozowski, J., Kinnear, K., Volz, B., and S. Zeng,
1023              "DHCPv6 Leasequery", RFC 5007, September 2007.
1024
1025   [RFC5453]  Krishnan, S., "Reserved IPv6 Interface Identifiers",
1026              RFC 5453, February 2009.
1027
1028   [RFC5460]  Stapp, M., "DHCPv6 Bulk Leasequery", RFC 5460,
1029              February 2009.
1030
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.
1035
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.
1041
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.
1046
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.
1052
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.
1057
1058   [I-D.ietf-mext-nemo-pd]
1059              Droms, R., Thubert, P., Dupont, F., Haddad, W., and C.
1060
1061
1062
1063Hankins & Mrugalski                                            [Page 19]
1064
1065                     ISC DHCP References Collection         January 2012
1066
1067
1068              Bernardos, "DHCPv6 Prefix Delegation for NEMO",
1069              draft-ietf-mext-nemo-pd-07 (work in progress),
1070              December 2010.
1071
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.
1077
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.
1083
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.
1089
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.
1096
1097   [draft-addr-params]
1098              Mrugalski, T., "Address Parameters Option for DHCPv6",
1099              April 2007.
1100
1101
1102Authors' Addresses
1103
1104   David W. Hankins
1105   Internet Systems Consortium, Inc.
1106   950 Charter Street
1107   Redwood City, CA  94063
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119Hankins & Mrugalski                                            [Page 20]
1120
1121                     ISC DHCP References Collection         January 2012
1122
1123
1124   Tomasz Mrugalski
1125   Internet Systems Consortium, Inc.
1126   950 Charter Street
1127   Redwood City, CA  94063
1128
1129   Phone: +1 650 423 1345
1130   Email: Tomasz_Mrugalski@isc.org
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175Hankins & Mrugalski                                            [Page 21]
1176
1177