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