draft-ietf-dhc-pxe-options-03.txt   rfc4578.txt 
Dynamic Host Configuration Working M. Johnston Network Working Group M. Johnston
Group Intel Corporation Request for Comments: 4578 Intel Corporation
Internet-Draft S. Venaas, Ed. Category: Informational S. Venaas, Ed.
Expires: September 8, 2006 UNINETT UNINETT
March 7, 2006 November 2006
DHCP Options for the Intel Preboot eXecution Environment (PXE)
draft-ietf-dhc-pxe-options-03
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at Dynamic Host Configuration Protocol (DHCP) Options for the
http://www.ietf.org/ietf/1id-abstracts.txt. Intel Preboot eXecution Environment (PXE)
The list of Internet-Draft Shadow Directories can be accessed at Status of This Memo
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 8, 2006. This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The IETF Trust (2006).
Abstract Abstract
We define DHCP options being used by Preboot eXecution Environment We define Dynamic Host Configuration Protocol (DHCP) options being
(PXE) and Extensible Firmware Interface (EFI) clients to uniquely used by Preboot eXecution Environment (PXE) and Extensible Firmware
identify booting client machines and their pre-OS runtime environment Interface (EFI) clients to uniquely identify booting client machines
so the DHCP and/or PXE boot server can return the correct OS and their pre-OS runtime environment so that the DHCP and/or PXE boot
bootstrap image (or pre-boot application) name and server to the server can return the correct OS bootstrap image (or pre-boot
client. application) name and server to the client.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1].
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction ....................................................2
2. Option Definitions . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language ......................................2
2.1. Client System Architecture Type Option Definition . . . . . 3 2. Option Definitions ..............................................2
2.2. Client Network Interface Identifier Option Definition . . . 4 2.1. Client System Architecture Type Option Definition ..........2
2.3. Client Machine Identifier Option Definition . . . . . . . . 5 2.2. Client Network Interface Identifier Option Definition ......3
2.4. Options Requested by PXE Clients . . . . . . . . . . . . . 5 2.3. Client Machine Identifier Option Definition ................4
3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 2.4. Options Requested by PXE Clients ...........................4
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 3. Acknowledgements ................................................5
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 4. IANA Considerations .............................................5
6. Normative References . . . . . . . . . . . . . . . . . . . . . 6 5. Security Considerations .........................................5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 6. Normative References ............................................5
Intellectual Property and Copyright Statements . . . . . . . . . . 8
1. Introduction 1. Introduction
These DHCP [2] options are being widely used by PXE compliant clients These DHCP [2] options are being widely used by PXE-compliant clients
to uniquely identify booting client machines themselves and their to uniquely identify booting client machines themselves and their
pre-OS runtime environment so the DHCP and/or PXE boot server can pre-OS runtime environment so that the DHCP and/or PXE boot server
return the correct OS bootstrap image (or pre-boot application) name can return the correct OS bootstrap image (or pre-boot application)
and server to the client. In the past, this work was done by name and server to the client. In the past, this work was done by
examining the network MAC address in the "chaddr" field in the BOOTP/ examining the network Media Access Code (MAC) address in the "chaddr"
DHCP header and keeping a database of MAC addresses on the BOOTP/DHCP field in the BOOTP/ DHCP header and keeping a database of MAC
server. This was deemed insufficient for large and complex networks addresses on the BOOTP/DHCP server. This was deemed insufficient for
for two main reasons. 1) Multiple laptops could end up with the same large and complex networks for two main reasons. 1) Multiple laptops
MAC address if the NIC was in a shared docking station. 2) Multiple could end up with the same MAC address if the network interface was
network devices and MAC addresses could be used by one machine for in a shared docking station. 2) Multiple network devices and MAC
redundancy or because of repairs. Another issue that came up was the addresses could be used by one machine for redundancy or because of
machine that could change its pre-OS runtime environment. This issue repairs. Another issue that came up was the machine that could
caused the creation of another new option to identify the runtime change its pre-OS runtime environment. This issue caused the
environment so the correct binary image could be matched up with the creation of another new option to identify the runtime environment so
booting machine. These options are defined by Intel in the PXE [3] that the correct binary image could be matched up with the booting
and EFI [4] specifications and are being documented in this draft for machine. These options are defined by Intel in the PXE [3] and EFI
[4] specifications and are being documented in this draft for
completeness within the IETF. completeness within the IETF.
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1].
2. Option Definitions 2. Option Definitions
There are three DHCP options [5] defined for use by PXE clients. There are three DHCP options [5] defined for use by PXE clients.
2.1. Client System Architecture Type Option Definition 2.1. Client System Architecture Type Option Definition
The format of the option is: The format of the option is:
Code Len 16-bit Type Code Len 16-bit Type
+----+-----+-----+-----+ +----+-----+-----+-----+
skipping to change at page 4, line 5 skipping to change at page 3, line 14
Octet "n" gives the number of octets containing "architecture types" Octet "n" gives the number of octets containing "architecture types"
(not including the code and len fields). It MUST be an even number (not including the code and len fields). It MUST be an even number
greater than zero. Clients that support more than one architecture greater than zero. Clients that support more than one architecture
type MAY include a list of these types in their initial DHCP and PXE type MAY include a list of these types in their initial DHCP and PXE
boot server packets. The list of supported architecture types MAY be boot server packets. The list of supported architecture types MAY be
reduced in any packet exchange between the client and server(s). reduced in any packet exchange between the client and server(s).
Octets "n1" and "n2" encode a 16-bit architecture type identifier Octets "n1" and "n2" encode a 16-bit architecture type identifier
that describes the pre-boot runtime environment(s) of the client that describes the pre-boot runtime environment(s) of the client
machine. machine.
As of the writing of this document the following pre-boot As of the writing of this document, the following pre-boot
architecture types have been requested. architecture types have been requested.
Type Architecture Name Type Architecture Name
---- ----------------- ---- -----------------
0 Intel x86PC 0 Intel x86PC
1 NEC/PC98 1 NEC/PC98
2 EFI Itanium 2 EFI Itanium
3 DEC Alpha 3 DEC Alpha
4 Arc x86 4 Arc x86
5 Intel Lean Client 5 Intel Lean Client
6 EFI IA32 6 EFI IA32
7 EFI BC
8 EFI Xscale
9 EFI x86-64
This option MUST be present in all DHCP and PXE packets sent by PXE This option MUST be present in all DHCP and PXE packets sent by PXE-
compliant clients and servers. compliant clients and servers.
2.2. Client Network Interface Identifier Option Definition 2.2. Client Network Interface Identifier Option Definition
The format of the option is: The format of the option is:
Code Len Type Major Minor Code Len Type Major Minor
+----+-----+----+-----+-----+ +----+-----+----+-----+-----+
| 94 | 3 | t | M | m | | 94 | 3 | t | M | m |
+----+-----+----+-----+-----+ +----+-----+----+-----+-----+
Octet "t" encodes a network interface type. For now the only Octet "t" encodes a network interface type. For now the only
supported value is 1 for UNDI (Universal Network Device Interface). supported value is 1 for Universal Network Device Interface (UNDI).
Octets "M" and "m" describe the interface revision. To encode the Octets "M" and "m" describe the interface revision. To encode the
UNDI revision of 2.11, "M" would be set to 2 and "m" would be set to UNDI revision of 2.11, "M" would be set to 2, and "m" would be set to
11 (0x0B). 11 (0x0B).
Revision Description Revision Description
-------- ----------- -------- -----------
< 2.00 LANDesk service agent boot ROMs. No PXE APIs. < 2.00 LANDesk service agent boot ROMs. No PXE APIs.
2.00 First generation PXE boot ROMs. (PXENV+) [3] 2.00 First generation PXE boot ROMs. (PXENV+) [3]
2.01 Second generation PXE boot ROMs. (!PXE) [3] 2.01 Second generation PXE boot ROMs. (!PXE) [3]
3.00 32/64-bit UNDI specification. (Alpha) [4] 3.00 32/64-bit UNDI specification. (Alpha) [4]
EFI boot services driver only. No EFI runtime support. EFI boot services driver only.
No EFI runtime support.
3.10 32/64-bit UNDI specification. (Beta) [4] 3.10 32/64-bit UNDI specification. (Beta) [4]
First generation EFI runtime driver support. First generation EFI runtime driver support.
3.20 32/64-bit UNDI specification. (Release) [4] 3.20 32/64-bit UNDI specification. (Release) [4]
Second generation EFI runtime driver support. Second generation EFI runtime driver support.
This option MUST be present in all DHCP and PXE packets sent by PXE This option MUST be present in all DHCP and PXE packets sent by PXE-
compliant clients and servers. compliant clients and servers.
2.3. Client Machine Identifier Option Definition 2.3. Client Machine Identifier Option Definition
The format of the option is: The format of the option is:
Code Len Type Machine Identifier Code Len Type Machine Identifier
+----+-----+----+-----+ . . . +-----+ +----+-----+----+-----+ . . . +-----+
| 97 | n | t | | . . . | | | 97 | n | t | | . . . | |
+----+-----+----+-----+ . . . +-----+ +----+-----+----+-----+ . . . +-----+
Octet "t" describes the type of the machine identifier in the Octet "t" describes the type of the machine identifier in the
remaining octets in this option. 0 (zero) is the only defined value remaining octets in this option. 0 (zero) is the only value defined
for this octet at the present time and it describes the remaining for this octet at the present time, and it describes the remaining
octets as a 16-octet GUID. Octet "n" is 17 for type 0. (One octets as a 16-octet Globally Unique Identifier (GUID). Octet "n" is
definition of GUID can be found in Appendix A in the EFI 17 for type 0. (One definition of GUID can be found in Appendix A of
specification [efi].) the EFI specification [4].)
This option MUST be present in all DHCP and PXE packets sent by PXE This option MUST be present in all DHCP and PXE packets sent by PXE-
compliant clients and servers. compliant clients and servers.
2.4. Options Requested by PXE Clients 2.4. Options Requested by PXE Clients
All compliant PXE clients MUST include a request for DHCP options 128 All compliant PXE clients MUST include a request for DHCP options 128
through 135 in all DHCP and PXE packets. The format and contents of through 135 in all DHCP and PXE packets. The format and contents of
these options are NOT defined by the PXE specification. These these options are NOT defined by the PXE specification. These
options MAY be present in the DHCP and PXE boot server replies and options MAY be present in the DHCP and PXE boot server replies and
are meant for use by the downloaded network bootstrap programs. are meant for use by the downloaded network bootstrap programs.
These options are NOT used by the PXE boot ROMs. These options are NOT used by the PXE boot ROMs.
As options 128-135 are not officially assigned for PXE use (previous As options 128-135 are not officially assigned for PXE use (before
to November 2004 they were considered site-specific options, [6]), November 2004 they were considered site-specific options, [6]), use
use of these option values for PXE may conflict with other uses of of these option values for PXE may conflict with other uses of the
the same options on the same networks. same options on the same networks.
3. Acknowledgements 3. Acknowledgements
The authors thank Bernie Volz for valuable input. The authors thank Bernie Volz for valuable input.
4. IANA Considerations 4. IANA Considerations
IANA is requested to update the numbering space defined for public IANA has updated the numbering space defined for public DHCP options
DHCP options in [7] with references to this document for options 93, in [7] with references to this document for options 93, 94, and 97
94 and 97 (currently there are references to [8]), and also mark (previously, there were references to [8]). Also, IANA marked
options 128-135 as being used by PXE and reference this document options 128-135 as being used by PXE and referenced this document.
(they are currently marked as being used by PXE, but without
references).
5. Security Considerations 5. Security Considerations
By specifying incorrect values for some of these options a client may By specifying incorrect values for some of these options, a client
get access to, and possibly attempt to execute, code intended for may get access to, and possibly attempt to execute, code intended for
another platform or client. This may have security ramifications. another platform or client. This may have security ramifications.
Also note that these options contain information about a client's Also note that these options contain information about a client's
system architecture and pre-OS runtime environment which is revealed system architecture and pre-OS runtime environment that is revealed
to anyone who is able to listen in on DHCP messages sent by the to anyone who is able to listen in on DHCP messages sent by the
client. This information may be of use to potential attackers. client. This information may be of use to potential attackers.
6. Normative References 6. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[2] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, [2] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
March 1997. March 1997.
skipping to change at page 6, line 40 skipping to change at page 6, line 6
December 2002, <http://developer.intel.com/technology/efi/ December 2002, <http://developer.intel.com/technology/efi/
main_specification.htm>. main_specification.htm>.
[5] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor [5] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
Extensions", RFC 2132, March 1997. Extensions", RFC 2132, March 1997.
[6] Volz, B., "Reclassifying Dynamic Host Configuration Protocol [6] Volz, B., "Reclassifying Dynamic Host Configuration Protocol
version 4 (DHCPv4) Options", RFC 3942, November 2004. version 4 (DHCPv4) Options", RFC 3942, November 2004.
[7] Droms, R., "Procedures and IANA Guidelines for Definition of New [7] Droms, R., "Procedures and IANA Guidelines for Definition of New
DHCP Options and Message Types", BCP 43, RFC 2939, DHCP Options and Message Types", BCP 43, RFC 2939, September
September 2000. 2000.
[8] Droms, R., "Unused Dynamic Host Configuration Protocol (DHCP) [8] Droms, R., "Unused Dynamic Host Configuration Protocol (DHCP)
Option Codes", RFC 3679, January 2004. Option Codes", RFC 3679, January 2004.
Authors' Addresses Authors' Addresses
Michael Johnston Michael Johnston
Intel Corporation Intel Corporation
MS. JF1-239 2111 NE 25th Ave. MS. JF1-239 2111 NE 25th Ave.
Hillsboro, OR 97124 Hillsboro, OR 97124
USA USA
Phone: +1 503-264-9703 Phone: +1 503-264-9703
Email: michael.johnston@intel.com EMail: michael.johnston@intel.com
Stig Venaas Stig Venaas
UNINETT UNINETT
Trondheim NO-7465 Trondheim NO-7465
Norway Norway
Email: venaas@uninett.no EMail: venaas@uninett.no
Intellectual Property Statement Full Copyright Statement
Copyright (C) The IETF Trust (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST,
AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
skipping to change at page 8, line 29 skipping to change at page 7, line 46
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Disclaimer of Validity Acknowledgement
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 28 change blocks. 
118 lines changed or deleted 102 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/