]> git.ipfire.org Git - thirdparty/dhcp.git/blob - doc/References.html
DHCPv6 branch merged to HEAD.
[thirdparty/dhcp.git] / doc / References.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html lang="en"><head><title>ISC-DHCP-REFERENCES: ISC DHCP References Collection</title>
3 <meta http-equiv="Expires" content="Fri, 13 Apr 2007 18:37:11 +0000">
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <meta name="description" content="ISC DHCP References Collection">
6 <meta name="keywords" content="ISC, DHCP, Reference Implementation">
7 <meta name="generator" content="xml2rfc v1.30 (http://xml.resource.org/)">
8 <style type='text/css'>
9 <!--
10 body {
11 font-family: verdana, charcoal, helvetica, arial, sans-serif;
12 margin: 2em;
13 font-size: small ; color: #000000 ; background-color: #ffffff ; }
14 .title { color: #990000; font-size: x-large ;
15 font-weight: bold; text-align: right;
16 font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
17 background-color: transparent; }
18 .filename { color: #666666; font-size: 18px; line-height: 28px;
19 font-weight: bold; text-align: right;
20 font-family: helvetica, arial, sans-serif;
21 background-color: transparent; }
22 td.rfcbug { background-color: #000000 ; width: 30px ; height: 30px ;
23 text-align: justify; vertical-align: middle ; padding-top: 2px ; }
24 td.rfcbug span.RFC { color: #666666; font-weight: bold; text-decoration: none;
25 background-color: #000000 ;
26 font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
27 font-size: x-small ; }
28 td.rfcbug span.hotText { color: #ffffff; font-weight: normal; text-decoration: none;
29 text-align: center ;
30 font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
31 font-size: x-small ; background-color: #000000; }
32 /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
33 div#counter{margin-top: 100px}
34
35 a.info{
36 position:relative; /*this is the key*/
37 z-index:24;
38 text-decoration:none}
39
40 a.info:hover{z-index:25; background-color:#990000 ; color: #ffffff ;}
41
42 a.info span{display: none}
43
44 a.info:hover span.info{ /*the span will display just on :hover state*/
45 display:block;
46 position:absolute;
47 font-size: smaller ;
48 top:2em; left:2em; width:15em;
49 padding: 2px ;
50 border:1px solid #333333;
51 background-color:#eeeeee; color:#990000;
52 text-align: left ;}
53
54 A { font-weight: bold; }
55 A:link { color: #990000; background-color: transparent ; }
56 A:visited { color: #333333; background-color: transparent ; }
57 A:active { color: #333333; background-color: transparent ; }
58
59 p { margin-left: 2em; margin-right: 2em; }
60 p.copyright { font-size: x-small ; }
61 p.toc { font-size: small ; font-weight: bold ; margin-left: 3em ;}
62 table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
63 td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
64
65 span.emph { font-style: italic; }
66 span.strong { font-weight: bold; }
67 span.verb, span.vbare { font-family: "Courier New", Courier, monospace ; }
68
69 span.vemph { font-style: italic; font-family: "Courier New", Courier, monospace ; }
70 span.vstrong { font-weight: bold; font-family: "Courier New", Courier, monospace ; }
71 span.vdeluxe { font-weight: bold; font-style: italic; font-family: "Courier New", Courier, monospace ; }
72
73 ol.text { margin-left: 2em; margin-right: 2em; }
74 ul.text { margin-left: 2em; margin-right: 2em; }
75 li { margin-left: 3em; }
76
77 pre { margin-left: 3em; color: #333333; background-color: transparent;
78 font-family: "Courier New", Courier, monospace ; font-size: small ;
79 text-align: left;
80 }
81
82 h3 { color: #333333; font-size: medium ;
83 font-family: helvetica, arial, sans-serif ;
84 background-color: transparent; }
85 h4 { font-size: small; font-family: helvetica, arial, sans-serif ; }
86
87 table.bug { width: 30px ; height: 15px ; }
88 td.bug { color: #ffffff ; background-color: #990000 ;
89 text-align: center ; width: 30px ; height: 15px ;
90 }
91 td.bug A.link2 { color: #ffffff ; font-weight: bold;
92 text-decoration: none;
93 font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
94 font-size: x-small ; background-color: transparent }
95
96 td.header { color: #ffffff; font-size: x-small ;
97 font-family: arial, helvetica, sans-serif; vertical-align: top;
98 background-color: #666666 ; width: 33% ; }
99 td.author { font-weight: bold; margin-left: 4em; font-size: x-small ; }
100 td.author-text { font-size: x-small; }
101 table.full { vertical-align: top ; border-collapse: collapse ;
102 border-style: solid solid solid solid ;
103 border-color: black black black black ;
104 font-size: small ; text-align: center ; }
105 table.headers, table.none { vertical-align: top ; border-collapse: collapse ;
106 border-style: none;
107 font-size: small ; text-align: center ; }
108 table.full th { font-weight: bold ;
109 border-style: solid ;
110 border-color: black black black black ; }
111 table.headers th { font-weight: bold ;
112 border-style: none none solid none;
113 border-color: black black black black ; }
114 table.none th { font-weight: bold ;
115 border-style: none; }
116 table.full td {
117 border-style: solid solid solid solid ;
118 border-color: #333333 #333333 #333333 #333333 ; }
119 table.headers td, table.none td { border-style: none; }
120
121 hr { height: 1px }
122 -->
123 </style>
124 </head>
125 <body>
126 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
127 <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
128 <tr><td class="header">ISC-DHCP-REFERENCES</td><td class="header">D. Hankins</td></tr>
129 <tr><td class="header">&nbsp;</td><td class="header">ISC</td></tr>
130 <tr><td class="header">&nbsp;</td><td class="header">August 2006</td></tr>
131 </table></td></tr></table>
132 <div align="right"><span class="title"><br />ISC DHCP References Collection</span></div>
133
134 <h3>Copyright Notice</h3>
135
136 <p>Copyright (c) 2006-2007 by Internet Systems Consortium, Inc.
137 ("ISC")
138 </p>
139 <p>Permission to use, copy, modify, and distribute this software for
140 any purpose with or without fee is hereby granted, provided that the
141 above copyright notice and this permission notice appear in all
142 copies.
143 </p>
144 <p>THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
145 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
146 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
147 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
148 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
149 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
150 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
151 </p>
152 <h3>Abstract</h3>
153
154 <p>This document describes a collection of Reference material that
155 ISC DHCP has been implemented to.
156 </p><a name="toc"></a><br /><hr />
157 <h3>Table of Contents</h3>
158 <p class="toc">
159 <a href="#anchor1">1.</a>&nbsp;
160 Introduction<br />
161 <br />
162 <a href="#anchor2">2.</a>&nbsp;
163 Definition: Reference Implementation<br />
164 <br />
165 <a href="#anchor3">3.</a>&nbsp;
166 Low Layer References<br />
167 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor4">3.1.</a>&nbsp;
168 Ethernet Protocol References<br />
169 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">3.2.</a>&nbsp;
170 Token Ring Protocol References<br />
171 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">3.3.</a>&nbsp;
172 FDDI Protocol References<br />
173 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">3.4.</a>&nbsp;
174 Internet Protocol Version 4 References<br />
175 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor8">3.5.</a>&nbsp;
176 Unicast Datagram Protocol References<br />
177 <br />
178 <a href="#anchor9">4.</a>&nbsp;
179 BOOTP Protocol References<br />
180 <br />
181 <a href="#anchor10">5.</a>&nbsp;
182 DHCP Protocol References<br />
183 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">5.1.</a>&nbsp;
184 DHCPv4 Protocol<br />
185 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">5.1.1.</a>&nbsp;
186 Core Protocol References<br />
187 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">5.2.</a>&nbsp;
188 DHCPv6 Protocol References<br />
189 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">5.3.</a>&nbsp;
190 DHCP Option References<br />
191 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor15">5.3.1.</a>&nbsp;
192 Relay Agent Information Option Options<br />
193 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor16">5.3.2.</a>&nbsp;
194 Dynamic DNS Updates References<br />
195 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor17">5.3.3.</a>&nbsp;
196 Experimental: Failover References<br />
197 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor18">5.4.</a>&nbsp;
198 DHCP Procedures<br />
199 <br />
200 <a href="#rfc.references1">6.</a>&nbsp;
201 References<br />
202 <br />
203 <a href="#rfc.authors">&#167;</a>&nbsp;
204 Author's Address<br />
205 </p>
206 <br clear="all" />
207
208 <a name="anchor1"></a><br /><hr />
209 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
210 <a name="rfc.section.1"></a><h3>1.&nbsp;Introduction</h3>
211
212 <p>As a little historical anecdote, ISC DHCP once packaged all the
213 relevant RFCs and standards documents along with the software
214 package. Until one day when a voice was heard from one of the
215 many fine institutions that build and distribute this software...
216 they took issue with the IETF's copyright on the RFC's. It
217 seems the IETF's copyrights don't allow modification of RFC's
218 (except for translation purposes).
219 </p>
220 <p>Our main purpose in providing the RFCs is to aid in
221 documentation, but since RFCs are now available widely from many
222 points of distribution on the Internet, there is no real need to
223 provide the documents themselves. So, this document has been
224 created in their stead, to list the various IETF RFCs one might
225 want to read, and to comment on how well (or poorly) we have
226 managed to implement them.
227 </p>
228 <a name="anchor2"></a><br /><hr />
229 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
230 <a name="rfc.section.2"></a><h3>2.&nbsp;Definition: Reference Implementation</h3>
231
232 <p>ISC DHCP, much like its other cousins in ISC software, is
233 self-described as a 'Reference Implementation.' There has been
234 a great deal of confusion about this term. Some people seem to
235 think that this term applies to any software that once passed
236 a piece of reference material on its way to market (but may do
237 quite a lot of things that aren't described in any reference, or
238 may choose to ignore the reference it saw entirely). Other folks
239 get confused by the word 'reference' and understand that to mean
240 that there is some special status applied to the software - that
241 the software itself is the reference by which all other software
242 is measured. Something along the lines of being "The DHCP
243 Protocol's Reference Clock," it is supposed.
244 </p>
245 <p>The truth is actually quite a lot simpler. Reference
246 implementations are software packages which were written
247 to behave precisely as appears in reference material. They
248 are written "to match reference."
249 </p>
250 <p>If the software has a behaviour that manifests itself
251 externally (whether it be something as simple as the 'wire
252 format' or something higher level, such as a complicated
253 behaviour that arises from multiple message exchanges), that
254 behaviour must be found in a reference document.
255 </p>
256 <p>Anything else is a bug, the only question is whether the
257 bug is in reference or software (failing to implement the
258 reference).
259 </p>
260 <p>This means:
261 </p>
262 <ul class="text">
263 <li>To produce new externally-visible behaviour, one must first
264 provide a reference.
265 </li>
266 <li>Before changing externally visible behaviour to work around
267 simple incompatibilities in any other implementation, one must
268 first provide a reference.
269 </li>
270 </ul>
271 <p>That is the lofty goal, at any rate. It's well understood that,
272 especially because the ISC DHCP Software package has not always been
273 held to this standard (but not entirely due to it), there are many
274 non-referenced behaviours within ISC DHCP.
275 </p>
276 <p>The primary goal of reference implementation is to prove the
277 reference material. If the reference material is good, then you
278 should be able to sit down and write a program that implements the
279 reference, to the word, and come to an implementation that
280 is distinguishable from others in the details, but not in the
281 facts of operating the protocol. This means that there is no
282 need for 'special knowledge' to work around arcane problems that
283 were left undocumented. No secret handshakes need to be learned
284 to be imparted with the necessary "real documentation".
285 </p>
286 <p>Also, by accepting only reference as the guidebook for ISC
287 DHCP's software implementation, anyone who can make an impact on
288 the color texture or form of that reference has a (somewhat
289 indirect) voice in ISC DHCP's software design. As the IETF RFC's
290 have been selected as the source of reference, that means everyone
291 on the Internet with the will to participate has a say.
292 </p>
293 <a name="anchor3"></a><br /><hr />
294 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
295 <a name="rfc.section.3"></a><h3>3.&nbsp;Low Layer References</h3>
296
297 <p>It may surprise you to realize that ISC DHCP implements 802.1
298 'Ethernet' framing, Token Ring, and FDDI. In order to bridge the
299 gap there between these physical and DHCP layers, it must also
300 implement IP and UDP framing.
301 </p>
302 <p>The reason for this stems from Unix systems' handling of BSD
303 sockets (the general way one might engage in transmission of UDP
304 packets) on unconfigured interfaces, or even the handling of
305 broadcast addressing on configured interfaces.
306 </p>
307 <p>There are a few things that DHCP servers, relays, and clients all
308 need to do in order to speak the DHCP protocol in strict compliance
309 with <a class="info" href="#RFC2131">RFC2131<span> (</span><span class="info">Droms, R., &ldquo;Dynamic Host Configuration Protocol,&rdquo; March&nbsp;1997.</span><span>)</span></a> [8].
310 </p>
311 <ol class="text">
312 <li>Transmit a UDP packet from IP:0.0.0.0 Ethernet:Self, destined to
313 IP:255.255.255.255 LinkLayer:Broadcast on an unconfigured (no IP
314 address yet) interface.
315 </li>
316 <li>Receive a UDP packet from IP:remote-system LinkLayer:remote-system,
317 destined to IP:255.255.255.255 LinkLayer:Broadcast, again on an
318 unconfigured interface.
319 </li>
320 <li>Transmit a UDP packet from IP:Self, Ethernet:Seelf, destined to
321 IP:remote-system LinkLayer:remote-system, without transmitting a
322 single ARP.
323 </li>
324 <li>And of course the simple case, a regular IP unicast that is
325 routed via the usual means (so it may be direct to a local system,
326 with ARP providing the glue, or it may be to a remote system via
327 one or more routers as normal). In this case, the interfaces are
328 always configured.
329 </li>
330 </ol>
331 <p>The above isn't as simple as it sounds on a regular BSD socket.
332 Many unix implementations will transmit broadcasts not to
333 255.255.255.255, but to x.y.z.255 (where x.y.z is the system's local
334 subnet). Such packets are not received by several known DHCP client
335 implementations - and it's not their fault, <a class="info" href="#RFC2131">RFC2131<span> (</span><span class="info">Droms, R., &ldquo;Dynamic Host Configuration Protocol,&rdquo; March&nbsp;1997.</span><span>)</span></a> [8] very explicitly demands that these packets' IP
336 destination addresses be set to 255.255.255.255.
337 </p>
338 <p>Receiving packets sent to 255.255.255.255 isn't a problem on most
339 modern unixes...so long as the interface is configured. When there
340 is no IPv4 address on the interface, things become much more murky.
341 </p>
342 <p>So, for this convoluted and unfortunate state of affairs in the
343 unix systems of the day ISC DHCP was manufactured, in order to do
344 what it needs not only to implement the reference but to interoperate
345 with other implementations, the software must create some form of
346 raw socket to operate on.
347 </p>
348 <p>What it actually does is create, for each interface detected on
349 the system, a Berkeley Packet Filter socket (or equivalent), and
350 program it with a filter that brings in only DHCP packets. A
351 "fallback" UDP Berkeley socket is generally also created, a single
352 one no matter how many interfaces. Should the software need to
353 transmit a contrived packet to the local network the packet is
354 formed piece by piece and transmitted via the BPF socket. Hence
355 the need to implement many forms of Link Layer framing and above.
356 The software gets away with not having to implement IP routing
357 tables as well by simply utilizing the aforementioned 'fallback'
358 UDP socket when unicasting between two configured systems is the
359 need.
360 </p>
361 <p>Modern unixes have opened up some facilities that diminish how
362 much of this sort of nefarious kludgery is necessary, but have not
363 found the state of affairs absolutely absolved. In particular,
364 one might now unicast without ARP by inserting an entry into the
365 ARP cache prior to transmitting. Unconfigured interfaces remain
366 the sticking point, however...on virtually no modern unixes is
367 it possible to receive broadcast packets unless a local IPv4
368 address has been configured, unless it is done with raw sockets.
369 </p>
370 <a name="anchor4"></a><br /><hr />
371 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
372 <a name="rfc.section.3.1"></a><h3>3.1.&nbsp;Ethernet Protocol References</h3>
373
374 <p>ISC DHCP Implements Ethernet Version 2 ("DIX"), which is a variant
375 of IEEE 802.2. No good reference of this framing is known to exist
376 at this time, but it is vaguely described in <a class="info" href="#RFC0894">RFC894<span> (</span><span class="info">Hornig, C., &ldquo;Standard for the transmission of IP datagrams over Ethernet networks,&rdquo; April&nbsp;1984.</span><span>)</span></a> [3] (see the section titled "Packet format"), and
377 the following URL is also thought to be useful.
378 </p>
379 <p>http://en.wikipedia.org/wiki/DIX
380 </p>
381 <a name="anchor5"></a><br /><hr />
382 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
383 <a name="rfc.section.3.2"></a><h3>3.2.&nbsp;Token Ring Protocol References</h3>
384
385 <p>IEEE 802.5 defines the Token Ring framing format used by ISC
386 DHCP.
387 </p>
388 <a name="anchor6"></a><br /><hr />
389 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
390 <a name="rfc.section.3.3"></a><h3>3.3.&nbsp;FDDI Protocol References</h3>
391
392 <p><a class="info" href="#RFC1188">RFC1188<span> (</span><span class="info">Katz, D., &ldquo;Proposed Standard for the Transmission of IP Datagrams over FDDI Networks,&rdquo; October&nbsp;1990.</span><span>)</span></a> [6] is the most helpful
393 reference ISC DHCP has used to form FDDI packets.
394 </p>
395 <a name="anchor7"></a><br /><hr />
396 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
397 <a name="rfc.section.3.4"></a><h3>3.4.&nbsp;Internet Protocol Version 4 References</h3>
398
399 <p><a class="info" href="#RFC0760">RFC760<span> (</span><span class="info">Postel, J., &ldquo;DoD standard Internet Protocol,&rdquo; January&nbsp;1980.</span><span>)</span></a> [1] fundamentally defines the
400 bare IPv4 protocol which ISC DHCP implements.
401 </p>
402 <a name="anchor8"></a><br /><hr />
403 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
404 <a name="rfc.section.3.5"></a><h3>3.5.&nbsp;Unicast Datagram Protocol References</h3>
405
406 <p><a class="info" href="#RFC0768">RFC768<span> (</span><span class="info">Postel, J., &ldquo;User Datagram Protocol,&rdquo; August&nbsp;1980.</span><span>)</span></a> [2] defines the User Datagram
407 Protocol that ultimately carries the DHCP or BOOTP protocol. The
408 destination DHCP server port is 67, the client port is 68. Source
409 ports are irrelevant.
410 </p>
411 <a name="anchor9"></a><br /><hr />
412 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
413 <a name="rfc.section.4"></a><h3>4.&nbsp;BOOTP Protocol References</h3>
414
415 <p>The DHCP Protocol is strange among protocols in that it is
416 grafted over the top of another protocol - BOOTP (but we don't
417 call it "DHCP over BOOTP" like we do, say "TCP over IP"). BOOTP
418 and DHCP share UDP packet formats - DHCP is merely a conventional
419 use of both BOOTP header fields and the trailing 'options' space.
420 </p>
421 <p>The ISC DHCP server supports BOOTP clients conforming to
422 <a class="info" href="#RFC0951">RFC951<span> (</span><span class="info">Croft, B. and J. Gilmore, &ldquo;Bootstrap Protocol,&rdquo; September&nbsp;1985.</span><span>)</span></a> [4] and <a class="info" href="#RFC1542">RFC1542<span> (</span><span class="info">Wimer, W., &ldquo;Clarifications and Extensions for the Bootstrap Protocol,&rdquo; October&nbsp;1993.</span><span>)</span></a> [7].
423 </p>
424 <a name="anchor10"></a><br /><hr />
425 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
426 <a name="rfc.section.5"></a><h3>5.&nbsp;DHCP Protocol References</h3>
427
428 <a name="anchor11"></a><br /><hr />
429 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
430 <a name="rfc.section.5.1"></a><h3>5.1.&nbsp;DHCPv4 Protocol</h3>
431
432 <p>"The DHCP[v4] Protocol" is not defined in a single document. The
433 following collection of references of what ISC DHCP terms "The
434 DHCPv4 Protocol".
435 </p>
436 <a name="anchor12"></a><br /><hr />
437 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
438 <a name="rfc.section.5.1.1"></a><h3>5.1.1.&nbsp;Core Protocol References</h3>
439
440 <p><a class="info" href="#RFC2131">RFC2131<span> (</span><span class="info">Droms, R., &ldquo;Dynamic Host Configuration Protocol,&rdquo; March&nbsp;1997.</span><span>)</span></a> [8] defines the protocol format
441 and procedures. ISC DHCP is not known to diverge from this document
442 in any way. There are, however, a few points on which different
443 implementations have arisen out of vagueries in the document.
444 DHCP Clients exist which, at one time, present themselves as using
445 a Client Identifier Option which is equal to the client's hardware
446 address. Later, the client transmits DHCP packets with no Client
447 Identifier Option present - essentially identifying themselves using
448 the hardware address. Some DHCP Servers have been developed which
449 identify this client as a single client. ISC has interpreted
450 RFC2131 to indicate that these clients must be treated as two
451 separate entities (and hence two, separate addresses). Client
452 behaviour (Embedded Windows products) has developed that relies on
453 the former implementation, and hence is incompatible with the
454 latter. Also, RFC2131 demands explicitly that some header fields
455 be zeroed upon certain message types. The ISC DHCP Server instead
456 copies many of these fields from the packet received from the client
457 or relay, which may not be zero. It is not known if there is a good
458 reason for this that has not been documented.
459 </p>
460 <p><a class="info" href="#RFC2132">RFC2132<span> (</span><span class="info">Alexander, S. and R. Droms, &ldquo;DHCP Options and BOOTP Vendor Extensions,&rdquo; March&nbsp;1997.</span><span>)</span></a> [9] defines the initial set of
461 DHCP Options and provides a great deal of guidance on how to go about
462 formatting and processing options. The document unfortunately
463 waffles to a great extent about the NULL termination of DHCP Options,
464 and some DHCP Clients (Windows 95) have been implemented that rely
465 upon DHCP Options containing text strings to be NULL-terminated (or
466 else they crash). So, ISC DHCP detects if clients null-terminate the
467 host-name option and, if so, null terminates any text options it
468 transmits to the client. It also removes NULL termination from any
469 known text option it receives prior to any other processing.
470 </p>
471 <a name="anchor13"></a><br /><hr />
472 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
473 <a name="rfc.section.5.2"></a><h3>5.2.&nbsp;DHCPv6 Protocol References</h3>
474
475 <p>For now there is only one document that specifies the DHCPv6
476 protocol (there have been no updates yet), <a class="info" href="#RFC3315">RFC3315<span> (</span><span class="info">Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, &ldquo;Dynamic Host Configuration Protocol for IPv6 (DHCPv6),&rdquo; July&nbsp;2003.</span><span>)</span></a> [21].
477 </p>
478 <p>Support for DHCPv6 was added first in version 4.0.0. The server
479 and client support only IA_NA. While the server does support multiple
480 IA_NAs within one packet from the client, our client only supports
481 sending one. There is no relay support.
482 </p>
483 <p>DHCPv6 introduces some new and uncomfortable ideas to the common
484 software library.
485 </p>
486 <ol class="text">
487 <li>Options of zero length are normal in DHCPv6. Currently, all
488 ISC DHCP software treats zero-length options as errors.
489 </li>
490 <li>Options sometimes may appear multiple times. The common
491 library used to treat all appearance of multiple options as
492 specified in RFC2131 - to be concatenated. DHCPv6 options
493 may sometimes appear multiple times (such as with IA_NA or
494 IAADDR), but often must not.
495 </li>
496 <li>The same option space appears in DHCPv6 packets multiple times.
497 If the packet was got via a relay, then the client's packet is
498 stored to an option within the relay's packet...if there were two
499 relays, this recurses. At each of these steps, the root "DHCPv6
500 option space" is used. Further, a client packet may contain an
501 IA_NA, which may contain an IAADDR - but really, in an abstract
502 sense, this is again re-encapsulation of the DHCPv6 option space
503 beneath options it also contains.
504 </li>
505 </ol>
506 <p>Precisely how to correctly support the above conundrums has not
507 quite yet been settled, so support is incomplete.
508 </p>
509 <a name="anchor14"></a><br /><hr />
510 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
511 <a name="rfc.section.5.3"></a><h3>5.3.&nbsp;DHCP Option References</h3>
512
513 <p><a class="info" href="#RFC2241">RFC2241<span> (</span><span class="info">Provan, D., &ldquo;DHCP Options for Novell Directory Services,&rdquo; November&nbsp;1997.</span><span>)</span></a> [10] defines options for
514 Novell Directory Services.
515 </p>
516 <p><a class="info" href="#RFC2242">RFC2242<span> (</span><span class="info">Droms, R. and K. Fong, &ldquo;NetWare/IP Domain Name and Information,&rdquo; November&nbsp;1997.</span><span>)</span></a> [11] defines an encapsulated
517 option space for NWIP configuration.
518 </p>
519 <p><a class="info" href="#RFC2485">RFC2485<span> (</span><span class="info">Drach, S., &ldquo;DHCP Option for The Open Group&apos;s User Authentication Protocol,&rdquo; January&nbsp;1999.</span><span>)</span></a> [12] defines the Open Group's
520 UAP option.
521 </p>
522 <p><a class="info" href="#RFC2610">RFC2610<span> (</span><span class="info">Perkins, C. and E. Guttman, &ldquo;DHCP Options for Service Location Protocol,&rdquo; June&nbsp;1999.</span><span>)</span></a> [13] defines options for
523 the Service Location Protocol (SLP).
524 </p>
525 <p><a class="info" href="#RFC2937">RFC2937<span> (</span><span class="info">Smith, C., &ldquo;The Name Service Search Option for DHCP,&rdquo; September&nbsp;2000.</span><span>)</span></a> [14] defines the Name Service
526 Search Option (not to be confused with the domain-search option).
527 The Name Service Search Option allows eg nsswitch.conf to be
528 reconfigured via dhcp. The ISC DHCP server implements this option,
529 and the ISC DHCP client is compatible...but does not by default
530 install this option's value. One would need to make their relevant
531 dhclient-script process this option in a way that is suitable for
532 the system.
533 </p>
534 <p><a class="info" href="#RFC3004">RFC3004<span> (</span><span class="info">Stump, G., Droms, R., Gu, Y., Vyaghrapuri, R., Demirtjis, A., Beser, B., and J. Privat, &ldquo;The User Class Option for DHCP,&rdquo; November&nbsp;2000.</span><span>)</span></a> [16] defines the User-Class
535 option. Note carefully that ISC DHCP currently does not implement
536 to this reference, but has (inexplicably) selected an incompatible
537 format: a plain text string.
538 </p>
539 <p><a class="info" href="#RFC3011">RFC3011<span> (</span><span class="info">Waters, G., &ldquo;The IPv4 Subnet Selection Option for DHCP,&rdquo; November&nbsp;2000.</span><span>)</span></a> [17] defines the Subnet-Selection
540 plain DHCPv4 option. Do not confuse this option with the relay agent
541 "link selection" sub-option, although their behaviour is similar.
542 </p>
543 <p><a class="info" href="#RFC3319">RFC3319<span> (</span><span class="info">Schulzrinne, H. and B. Volz, &ldquo;Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers,&rdquo; July&nbsp;2003.</span><span>)</span></a> [22] defines the SIP server
544 options for DHCPv6.
545 </p>
546 <p><a class="info" href="#RFC3396">RFC3396<span> (</span><span class="info">Lemon, T. and S. Cheshire, &ldquo;Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4),&rdquo; November&nbsp;2002.</span><span>)</span></a> [23] documents both how long
547 options may be encoded in DHCPv4 packets, and also how multiple
548 instances of the same option code within a DHCPv4 packet will be
549 decoded by receivers.
550 </p>
551 <p><a class="info" href="#RFC3397">RFC3397<span> (</span><span class="info">Aboba, B. and S. Cheshire, &ldquo;Dynamic Host Configuration Protocol (DHCP) Domain Search Option,&rdquo; November&nbsp;2002.</span><span>)</span></a> [24] documents the Domain-Search
552 Option, which allows the configuration of the /etc/resolv.conf
553 'search' parameter in a way that is <a class="info" href="#RFC1035">RFC1035<span> (</span><span class="info">Mockapetris, P., &ldquo;Domain names - implementation and specification,&rdquo; November&nbsp;1987.</span><span>)</span></a> [5] wire format compatible (in fact, it uses the RFC1035 wire
554 format). ISC DHCP has both client and server support, and supports
555 RFC1035 name compression.
556 </p>
557 <p><a class="info" href="#RFC3646">RFC3646<span> (</span><span class="info">Droms, R., &ldquo;DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),&rdquo; December&nbsp;2003.</span><span>)</span></a> [27] documents the DHCPv6
558 name-servers and domain-search options.
559 </p>
560 <p><a class="info" href="#RFC3633">RFC3633<span> (</span><span class="info">Troan, O. and R. Droms, &ldquo;IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6,&rdquo; December&nbsp;2003.</span><span>)</span></a> [26] documents the Identity
561 Association Prefix Delegation, which is included here for protocol
562 wire reference, but which is not supported by ISC DHCP.
563 </p>
564 <p><a class="info" href="#RFC3679">RFC3679<span> (</span><span class="info">Droms, R., &ldquo;Unused Dynamic Host Configuration Protocol (DHCP) Option Codes,&rdquo; January&nbsp;2004.</span><span>)</span></a> [28] documents a number of
565 options that were documented earlier in history, but were not
566 made use of.
567 </p>
568 <p><a class="info" href="#RFC3898">RFC3898<span> (</span><span class="info">Kalusivalingam, V., &ldquo;Network Information Service (NIS) Configuration Options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),&rdquo; October&nbsp;2004.</span><span>)</span></a> [29] documents four NIS options
569 for delivering NIS servers and domain information in DHCPv6.
570 </p>
571 <p><a class="info" href="#RFC3925">RFC3925<span> (</span><span class="info">Littlefield, J., &ldquo;Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4),&rdquo; October&nbsp;2004.</span><span>)</span></a> [30] documents a pair of
572 Enterprise-ID delimited option spaces for vendors to use in order
573 to inform servers of their "vendor class" (sort of like 'uname'
574 or 'who and what am I'), and a means to deliver vendor-specific
575 and vendor-documented option codes and values.
576 </p>
577 <p><a class="info" href="#RFC3942">RFC3942<span> (</span><span class="info">Volz, B., &ldquo;Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options,&rdquo; November&nbsp;2004.</span><span>)</span></a> [31] redefined the 'site local'
578 option space.
579 </p>
580 <p><a class="info" href="#RFC4075">RFC4075<span> (</span><span class="info">Kalusivalingam, V., &ldquo;Simple Network Time Protocol (SNTP) Configuration Option for DHCPv6,&rdquo; May&nbsp;2005.</span><span>)</span></a> [32] defines the DHCPv6 SNTP
581 Servers option.
582 </p>
583 <p><a class="info" href="#RFC4242">RFC4242<span> (</span><span class="info">Venaas, S., Chown, T., and B. Volz, &ldquo;Information Refresh Time Option for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),&rdquo; November&nbsp;2005.</span><span>)</span></a> [33] defines the Information
584 Refresh Time option, which advises DHCPv6 Information-Request
585 clients to return for updated information.
586 </p>
587 <p><a class="info" href="#RFC4280">RFC4280<span> (</span><span class="info">Chowdhury, K., Yegani, P., and L. Madour, &ldquo;Dynamic Host Configuration Protocol (DHCP) Options for Broadcast and Multicast Control Servers,&rdquo; November&nbsp;2005.</span><span>)</span></a> [34] defines two BCMS server
588 options.
589 </p>
590 <p><a class="info" href="#RFC4388">RFC4388<span> (</span><span class="info">Woundy, R. and K. Kinnear, &ldquo;Dynamic Host Configuration Protocol (DHCP) Leasequery,&rdquo; February&nbsp;2006.</span><span>)</span></a> [35] defined the DHCPv4
591 LEASEQUERY message type and a number of suitable response messages,
592 for the purpose of sharing information about DHCP served addresses
593 and clients.
594 </p>
595 <p><a class="info" href="#RFC4580">RFC4580><span> (</span><span class="info">Volz, B., &ldquo;Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option,&rdquo; June&nbsp;2006.</span><span>)</span></a> [36] defines a DHCPv6
596 subscriber-id option, which is similar in principle to the DHCPv4
597 relay agent option of the same name.
598 </p>
599 <p><a class="info" href="#RFC4649">RFC4649<span> (</span><span class="info">Volz, B., &ldquo;Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option,&rdquo; August&nbsp;2006.</span><span>)</span></a> [37] defines a DHCPv6 remote-id
600 option, which is similar in principle to the DHCPv4 relay agent
601 remote-id.
602 </p>
603 <a name="anchor15"></a><br /><hr />
604 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
605 <a name="rfc.section.5.3.1"></a><h3>5.3.1.&nbsp;Relay Agent Information Option Options</h3>
606
607 <p><a class="info" href="#RFC3046">RFC3046<span> (</span><span class="info">Patrick, M., &ldquo;DHCP Relay Agent Information Option,&rdquo; January&nbsp;2001.</span><span>)</span></a> [18] defines the Relay Agent
608 Information Option and provides a number of sub-option
609 definitions.
610 </p>
611 <p><a class="info" href="#RFC3256">RFC3256<span> (</span><span class="info">Jones, D. and R. Woundy, &ldquo;The DOCSIS (Data-Over-Cable Service Interface Specifications) Device Class DHCP (Dynamic Host Configuration Protocol) Relay Agent Information Sub-option,&rdquo; April&nbsp;2002.</span><span>)</span></a> [20] defines the DOCSIS Device
612 Class sub-option.
613 </p>
614 <p><a class="info" href="#RFC3527">RFC3527<span> (</span><span class="info">Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, &ldquo;Link Selection sub-option for the Relay Agent Information Option for DHCPv4,&rdquo; April&nbsp;2003.</span><span>)</span></a> [25] defines the Link Selection
615 sub-option.
616 </p>
617 <a name="anchor16"></a><br /><hr />
618 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
619 <a name="rfc.section.5.3.2"></a><h3>5.3.2.&nbsp;Dynamic DNS Updates References</h3>
620
621 <p>The collection of documents that describe the standards-based
622 method to update dns names of DHCP clients starts most easily
623 with <a class="info" href="#RFC4703">RFC4703<span> (</span><span class="info">Stapp, M. and B. Volz, &ldquo;Resolution of Fully Qualified Domain Name (FQDN) Conflicts among Dynamic Host Configuration Protocol (DHCP) Clients,&rdquo; October&nbsp;2006.</span><span>)</span></a> [40] to define the overall
624 architecture, travels through RFCs <a class="info" href="#RFC4702">4702<span> (</span><span class="info">Stapp, M., Volz, B., and Y. Rekhter, &ldquo;The Dynamic Host Configuration Protocol (DHCP) Client Fully Qualified Domain Name (FQDN) Option,&rdquo; October&nbsp;2006.</span><span>)</span></a> [39]
625 and <a class="info" href="#RFC4704">4704<span> (</span><span class="info">Volz, B., &ldquo;The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option,&rdquo; October&nbsp;2006.</span><span>)</span></a> [41] to describe the DHCPv4 and
626 DHCPv6 FQDN options (to carry the client name), and ends up at
627 <a class="info" href="#RFC4701">RFC4701<span> (</span><span class="info">Stapp, M., Lemon, T., and A. Gustafsson, &ldquo;A DNS Resource Record (RR) for Encoding Dynamic Host Configuration Protocol (DHCP) Information (DHCID RR),&rdquo; October&nbsp;2006.</span><span>)</span></a> [38] which describes the DHCID
628 RR used in DNS to perform a kind of atomic locking.
629 </p>
630 <p>ISC DHCP adoped early versions of these documents, and has not
631 yet synched up with the final standards versions.
632 </p>
633 <p>For RFCs 4702 and 4704, the 'N' bit is not yet supported. The
634 result is that it is always set zero, and is ignored if set.
635 </p>
636 <p>For RFC4701, which is used to match client identities with names
637 in the DNS as part of name conflict resolution. Note that ISC DHCP's
638 implementation of DHCIDs vary wildly from this specification.
639 First, ISC DHCP uses a TXT record in which the contents are stored
640 in hexadecimal. Second, there is a flaw in the selection of the
641 'Identifier Type', which results in a completely different value
642 being selected than was defined in an older revision of this
643 document...also this field is one byte prior to hexadecimal
644 encoding rather than two. Third, ISC DHCP does not use a digest
645 type code. Rather, all values for such TXT records are reached
646 via an MD5 sum. In short, nothing is compatible, but the
647 principle of the TXT record is the same as the standard DHCID
648 record. However, for DHCPv6 FQDN, we do use DHCID type code '2',
649 as no other value really makes sense in our context.
650 </p>
651 <a name="anchor17"></a><br /><hr />
652 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
653 <a name="rfc.section.5.3.3"></a><h3>5.3.3.&nbsp;Experimental: Failover References</h3>
654
655 <p>The Failover Protocol defines a means by which two DHCP Servers
656 can share all the relevant information about leases granted to
657 DHCP clients on given networks, so that one of the two servers may
658 fail and be survived by a server that can act responsibly.
659 </p>
660 <p>Unfortunately it has been quite some years since the last time
661 this document was edited, and the authors no longer show any
662 interest in fielding comments or improving the document.
663 </p>
664 <p>The status of this protocol is very unsure, but ISC's
665 implementation of it has proven stable and suitable for use in
666 sizable production environments.
667 </p>
668 <p><a class="info" href="#draft-failover">draft-ietf-dhc-failover-12.txt<span> (</span><span class="info">Droms, R., &ldquo;DHCP Failover Protocol,&rdquo; March&nbsp;2003.</span><span>)</span></a> [42]
669 describes the Failover Protocol. In addition to what is described
670 in this document, ISC DHCP has elected to make some experimental
671 changes that may be revoked in a future version of ISC DHCP (if the
672 draft authors do not adopt the new behaviour). Specifically, ISC
673 DHCP's POOLREQ behaviour differs substantially from what is
674 documented in the draft, and the server also implements a form of
675 'MAC Address Affinity' which is not described in the failover
676 document. The full nature of these changes have been described on
677 the IETF DHC WG mailing list (which has archives), and also in ISC
678 DHCP's manual pages. Also note that although this document
679 references a RECOVER-WAIT state, it does not document a protocol
680 number assignment for this state. As a consequence, ISC DHCP has
681 elected to use the value 254.
682 </p>
683 <p><a class="info" href="#RFC3074">RFC3074<span> (</span><span class="info">Volz, B., Gonczi, S., Lemon, T., and R. Stevens, &ldquo;DHC Load Balancing Algorithm,&rdquo; February&nbsp;2001.</span><span>)</span></a> [19] describes the Load Balancing
684 Algorithm (LBA) that ISC DHCP uses in concert with the Failover
685 protocol. Note that versions 3.0.* are known to misimplement the
686 hash algorithm (it will only use the low 4 bits of every byte of
687 the hash bucket array).
688 </p>
689 <a name="anchor18"></a><br /><hr />
690 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
691 <a name="rfc.section.5.4"></a><h3>5.4.&nbsp;DHCP Procedures</h3>
692
693 <p><a class="info" href="#RFC2939">RFC2939<span> (</span><span class="info">Droms, R., &ldquo;Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types,&rdquo; September&nbsp;2000.</span><span>)</span></a> [15] explains how to go about
694 obtaining a new DHCP Option code assignment.
695 </p>
696 <a name="rfc.references1"></a><br /><hr />
697 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
698 <h3>6.&nbsp;References</h3>
699 <table width="99%" border="0">
700 <tr><td class="author-text" valign="top"><a name="RFC0760">[1]</a></td>
701 <td class="author-text">Postel, J., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc760.txt">DoD standard Internet Protocol</a>,&rdquo; RFC&nbsp;760, January&nbsp;1980.</td></tr>
702 <tr><td class="author-text" valign="top"><a name="RFC0768">[2]</a></td>
703 <td class="author-text">Postel, J., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc768.txt">User Datagram Protocol</a>,&rdquo; STD&nbsp;6, RFC&nbsp;768, August&nbsp;1980.</td></tr>
704 <tr><td class="author-text" valign="top"><a name="RFC0894">[3]</a></td>
705 <td class="author-text">Hornig, C., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc894.txt">Standard for the transmission of IP datagrams over Ethernet networks</a>,&rdquo; STD&nbsp;41, RFC&nbsp;894, April&nbsp;1984.</td></tr>
706 <tr><td class="author-text" valign="top"><a name="RFC0951">[4]</a></td>
707 <td class="author-text">Croft, B. and J. Gilmore, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc951.txt">Bootstrap Protocol</a>,&rdquo; RFC&nbsp;951, September&nbsp;1985.</td></tr>
708 <tr><td class="author-text" valign="top"><a name="RFC1035">[5]</a></td>
709 <td class="author-text">Mockapetris, P., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc1035.txt">Domain names - implementation and specification</a>,&rdquo; STD&nbsp;13, RFC&nbsp;1035, November&nbsp;1987.</td></tr>
710 <tr><td class="author-text" valign="top"><a name="RFC1188">[6]</a></td>
711 <td class="author-text"><a href="mailto:dkatz@merit.edu">Katz, D.</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc1188.txt">Proposed Standard for the Transmission of IP Datagrams over FDDI Networks</a>,&rdquo; RFC&nbsp;1188, October&nbsp;1990.</td></tr>
712 <tr><td class="author-text" valign="top"><a name="RFC1542">[7]</a></td>
713 <td class="author-text"><a href="mailto:Walter.Wimer@CMU.EDU">Wimer, W.</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc1542.txt">Clarifications and Extensions for the Bootstrap Protocol</a>,&rdquo; RFC&nbsp;1542, October&nbsp;1993.</td></tr>
714 <tr><td class="author-text" valign="top"><a name="RFC2131">[8]</a></td>
715 <td class="author-text"><a href="mailto:droms@bucknell.edu">Droms, R.</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2131.txt">Dynamic Host Configuration Protocol</a>,&rdquo; RFC&nbsp;2131, March&nbsp;1997 (<a href="ftp://ftp.isi.edu/in-notes/rfc2131.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2131.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2131.xml">XML</a>).</td></tr>
716 <tr><td class="author-text" valign="top"><a name="RFC2132">[9]</a></td>
717 <td class="author-text"><a href="mailto:sca@engr.sgi.com">Alexander, S.</a> and <a href="mailto:droms@bucknell.edu">R. Droms</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2132.txt">DHCP Options and BOOTP Vendor Extensions</a>,&rdquo; RFC&nbsp;2132, March&nbsp;1997 (<a href="ftp://ftp.isi.edu/in-notes/rfc2132.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2132.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2132.xml">XML</a>).</td></tr>
718 <tr><td class="author-text" valign="top"><a name="RFC2241">[10]</a></td>
719 <td class="author-text"><a href="mailto:donp@Novell.Com">Provan, D.</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2241.txt">DHCP Options for Novell Directory Services</a>,&rdquo; RFC&nbsp;2241, November&nbsp;1997 (<a href="ftp://ftp.isi.edu/in-notes/rfc2241.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2241.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2241.xml">XML</a>).</td></tr>
720 <tr><td class="author-text" valign="top"><a name="RFC2242">[11]</a></td>
721 <td class="author-text"><a href="mailto:droms@bucknell.edu">Droms, R.</a> and <a href="mailto:kfong@novell.com">K. Fong</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2242.txt">NetWare/IP Domain Name and Information</a>,&rdquo; RFC&nbsp;2242, November&nbsp;1997 (<a href="ftp://ftp.isi.edu/in-notes/rfc2242.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2242.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2242.xml">XML</a>).</td></tr>
722 <tr><td class="author-text" valign="top"><a name="RFC2485">[12]</a></td>
723 <td class="author-text"><a href="mailto:drach@sun.com">Drach, S.</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2485.txt">DHCP Option for The Open Group&#039;s User Authentication Protocol</a>,&rdquo; RFC&nbsp;2485, January&nbsp;1999 (<a href="ftp://ftp.isi.edu/in-notes/rfc2485.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2485.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2485.xml">XML</a>).</td></tr>
724 <tr><td class="author-text" valign="top"><a name="RFC2610">[13]</a></td>
725 <td class="author-text"><a href="mailto:Charles.Perkins@Sun.Com">Perkins, C.</a> and <a href="mailto:Erik.Guttman@Sun.Com">E. Guttman</a>, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2610.txt">DHCP Options for Service Location Protocol</a>,&rdquo; RFC&nbsp;2610, June&nbsp;1999.</td></tr>
726 <tr><td class="author-text" valign="top"><a name="RFC2937">[14]</a></td>
727 <td class="author-text">Smith, C., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2937.txt">The Name Service Search Option for DHCP</a>,&rdquo; RFC&nbsp;2937, September&nbsp;2000.</td></tr>
728 <tr><td class="author-text" valign="top"><a name="RFC2939">[15]</a></td>
729 <td class="author-text">Droms, R., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc2939.txt">Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types</a>,&rdquo; BCP&nbsp;43, RFC&nbsp;2939, September&nbsp;2000.</td></tr>
730 <tr><td class="author-text" valign="top"><a name="RFC3004">[16]</a></td>
731 <td class="author-text">Stump, G., Droms, R., Gu, Y., Vyaghrapuri, R., Demirtjis, A., Beser, B., and J. Privat, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3004.txt">The User Class Option for DHCP</a>,&rdquo; RFC&nbsp;3004, November&nbsp;2000.</td></tr>
732 <tr><td class="author-text" valign="top"><a name="RFC3011">[17]</a></td>
733 <td class="author-text">Waters, G., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3011.txt">The IPv4 Subnet Selection Option for DHCP</a>,&rdquo; RFC&nbsp;3011, November&nbsp;2000.</td></tr>
734 <tr><td class="author-text" valign="top"><a name="RFC3046">[18]</a></td>
735 <td class="author-text">Patrick, M., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3046.txt">DHCP Relay Agent Information Option</a>,&rdquo; RFC&nbsp;3046, January&nbsp;2001.</td></tr>
736 <tr><td class="author-text" valign="top"><a name="RFC3074">[19]</a></td>
737 <td class="author-text">Volz, B., Gonczi, S., Lemon, T., and R. Stevens, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3074.txt">DHC Load Balancing Algorithm</a>,&rdquo; RFC&nbsp;3074, February&nbsp;2001.</td></tr>
738 <tr><td class="author-text" valign="top"><a name="RFC3256">[20]</a></td>
739 <td class="author-text">Jones, D. and R. Woundy, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3256.txt">The DOCSIS (Data-Over-Cable Service Interface Specifications) Device Class DHCP (Dynamic Host Configuration Protocol) Relay Agent Information Sub-option</a>,&rdquo; RFC&nbsp;3256, April&nbsp;2002.</td></tr>
740 <tr><td class="author-text" valign="top"><a name="RFC3315">[21]</a></td>
741 <td class="author-text">Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3315.txt">Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</a>,&rdquo; RFC&nbsp;3315, July&nbsp;2003.</td></tr>
742 <tr><td class="author-text" valign="top"><a name="RFC3319">[22]</a></td>
743 <td class="author-text">Schulzrinne, H. and B. Volz, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3319.txt">Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers</a>,&rdquo; RFC&nbsp;3319, July&nbsp;2003.</td></tr>
744 <tr><td class="author-text" valign="top"><a name="RFC3396">[23]</a></td>
745 <td class="author-text">Lemon, T. and S. Cheshire, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3396.txt">Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)</a>,&rdquo; RFC&nbsp;3396, November&nbsp;2002.</td></tr>
746 <tr><td class="author-text" valign="top"><a name="RFC3397">[24]</a></td>
747 <td class="author-text">Aboba, B. and S. Cheshire, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3397.txt">Dynamic Host Configuration Protocol (DHCP) Domain Search Option</a>,&rdquo; RFC&nbsp;3397, November&nbsp;2002.</td></tr>
748 <tr><td class="author-text" valign="top"><a name="RFC3527">[25]</a></td>
749 <td class="author-text">Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3527.txt">Link Selection sub-option for the Relay Agent Information Option for DHCPv4</a>,&rdquo; RFC&nbsp;3527, April&nbsp;2003.</td></tr>
750 <tr><td class="author-text" valign="top"><a name="RFC3633">[26]</a></td>
751 <td class="author-text">Troan, O. and R. Droms, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3633.txt">IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6</a>,&rdquo; RFC&nbsp;3633, December&nbsp;2003.</td></tr>
752 <tr><td class="author-text" valign="top"><a name="RFC3646">[27]</a></td>
753 <td class="author-text">Droms, R., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3646.txt">DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</a>,&rdquo; RFC&nbsp;3646, December&nbsp;2003.</td></tr>
754 <tr><td class="author-text" valign="top"><a name="RFC3679">[28]</a></td>
755 <td class="author-text">Droms, R., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3679.txt">Unused Dynamic Host Configuration Protocol (DHCP) Option Codes</a>,&rdquo; RFC&nbsp;3679, January&nbsp;2004.</td></tr>
756 <tr><td class="author-text" valign="top"><a name="RFC3898">[29]</a></td>
757 <td class="author-text">Kalusivalingam, V., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3898.txt">Network Information Service (NIS) Configuration Options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</a>,&rdquo; RFC&nbsp;3898, October&nbsp;2004.</td></tr>
758 <tr><td class="author-text" valign="top"><a name="RFC3925">[30]</a></td>
759 <td class="author-text">Littlefield, J., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3925.txt">Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)</a>,&rdquo; RFC&nbsp;3925, October&nbsp;2004.</td></tr>
760 <tr><td class="author-text" valign="top"><a name="RFC3942">[31]</a></td>
761 <td class="author-text">Volz, B., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc3942.txt">Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options</a>,&rdquo; RFC&nbsp;3942, November&nbsp;2004.</td></tr>
762 <tr><td class="author-text" valign="top"><a name="RFC4075">[32]</a></td>
763 <td class="author-text">Kalusivalingam, V., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4075.txt">Simple Network Time Protocol (SNTP) Configuration Option for DHCPv6</a>,&rdquo; RFC&nbsp;4075, May&nbsp;2005.</td></tr>
764 <tr><td class="author-text" valign="top"><a name="RFC4242">[33]</a></td>
765 <td class="author-text">Venaas, S., Chown, T., and B. Volz, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4242.txt">Information Refresh Time Option for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</a>,&rdquo; RFC&nbsp;4242, November&nbsp;2005.</td></tr>
766 <tr><td class="author-text" valign="top"><a name="RFC4280">[34]</a></td>
767 <td class="author-text">Chowdhury, K., Yegani, P., and L. Madour, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4280.txt">Dynamic Host Configuration Protocol (DHCP) Options for Broadcast and Multicast Control Servers</a>,&rdquo; RFC&nbsp;4280, November&nbsp;2005.</td></tr>
768 <tr><td class="author-text" valign="top"><a name="RFC4388">[35]</a></td>
769 <td class="author-text">Woundy, R. and K. Kinnear, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4388.txt">Dynamic Host Configuration Protocol (DHCP) Leasequery</a>,&rdquo; RFC&nbsp;4388, February&nbsp;2006.</td></tr>
770 <tr><td class="author-text" valign="top"><a name="RFC4580">[36]</a></td>
771 <td class="author-text">Volz, B., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4580.txt">Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option</a>,&rdquo; RFC&nbsp;4580, June&nbsp;2006.</td></tr>
772 <tr><td class="author-text" valign="top"><a name="RFC4649">[37]</a></td>
773 <td class="author-text">Volz, B., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4649.txt">Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option</a>,&rdquo; RFC&nbsp;4649, August&nbsp;2006.</td></tr>
774 <tr><td class="author-text" valign="top"><a name="RFC4701">[38]</a></td>
775 <td class="author-text">Stapp, M., Lemon, T., and A. Gustafsson, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4701.txt">A DNS Resource Record (RR) for Encoding Dynamic Host Configuration Protocol (DHCP) Information (DHCID RR)</a>,&rdquo; RFC&nbsp;4701, October&nbsp;2006.</td></tr>
776 <tr><td class="author-text" valign="top"><a name="RFC4702">[39]</a></td>
777 <td class="author-text">Stapp, M., Volz, B., and Y. Rekhter, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4702.txt">The Dynamic Host Configuration Protocol (DHCP) Client Fully Qualified Domain Name (FQDN) Option</a>,&rdquo; RFC&nbsp;4702, October&nbsp;2006.</td></tr>
778 <tr><td class="author-text" valign="top"><a name="RFC4703">[40]</a></td>
779 <td class="author-text">Stapp, M. and B. Volz, &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4703.txt">Resolution of Fully Qualified Domain Name (FQDN) Conflicts among Dynamic Host Configuration Protocol (DHCP) Clients</a>,&rdquo; RFC&nbsp;4703, October&nbsp;2006.</td></tr>
780 <tr><td class="author-text" valign="top"><a name="RFC4704">[41]</a></td>
781 <td class="author-text">Volz, B., &ldquo;<a href="ftp://ftp.isi.edu/in-notes/rfc4704.txt">The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option</a>,&rdquo; RFC&nbsp;4704, October&nbsp;2006.</td></tr>
782 <tr><td class="author-text" valign="top"><a name="draft-failover">[42]</a></td>
783 <td class="author-text">Droms, R., &ldquo;<a href="http://www.isc.org/sw/dhcp/drafts/draft-ietf-dhc-failover-12.txt">DHCP Failover Protocol</a>,&rdquo; March&nbsp;2003.</td></tr>
784 </table>
785
786 <a name="rfc.authors"></a><br /><hr />
787 <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>
788 <h3>Author's Address</h3>
789 <table width="99%" border="0" cellpadding="0" cellspacing="0">
790 <tr><td class="author-text">&nbsp;</td>
791 <td class="author-text">David W. Hankins</td></tr>
792 <tr><td class="author-text">&nbsp;</td>
793 <td class="author-text">Internet Systems Consortium,
794 Inc.</td></tr>
795 <tr><td class="author-text">&nbsp;</td>
796 <td class="author-text">950 Charter Street</td></tr>
797 <tr><td class="author-text">&nbsp;</td>
798 <td class="author-text">Redwood City, CA 94063</td></tr>
799 <tr><td class="author" align="right">Phone:&nbsp;</td>
800 <td class="author-text">+1 650 423 1300</td></tr>
801 <tr><td class="author" align="right">Email:&nbsp;</td>
802 <td class="author-text"><a href="mailto:David_Hankins@isc.org">David_Hankins@isc.org</a></td></tr>
803 </table>
804 </body></html>