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