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