📄 rfc1532.txt
字号:
Network Working Group W. WimerRequest for Comments: 1532 Carnegie Mellon UniversityUpdates: 951 October 1993Category: Standards Track Clarifications and Extensions for the Bootstrap ProtocolStatus of this Memo This RFC specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.Abstract Some aspects of the BOOTP protocol were rather loosely defined in its original specification. In particular, only a general description was provided for the behavior of "BOOTP relay agents" (originally called BOOTP forwarding agents"). The client behavior description also suffered in certain ways. This memo attempts to clarify and strengthen the specification in these areas. In addition, new issues have arisen since the original specification was written. This memo also attempts to address some of these.Table of Contents 1. Introduction................................................. 2 1.1 Requirements................................................ 2 1.2 Terminology................................................. 3 1.3 Data Transmission Order..................................... 4 2. General Issues............................................... 5 2.1 General BOOTP Processing.................................... 5 2.2 Definition of the 'flags' Field............................. 5 2.3 Bit Ordering of Hardware Addresses.......................... 7 2.4 BOOTP Over IEEE 802.5 Token Ring Networks................... 8 3. BOOTP Client Behavior........................................ 9 3.1 Client use of the 'flags' field............................. 9 3.1.1 The BROADCAST flag........................................ 9 3.1.2 The remainder of the 'flags' field........................ 9 3.2 Definition of the 'secs' field.............................. 9 3.3 Use of the 'ciaddr' and 'yiaddr' fields..................... 10 3.4 Interpretation of the 'giaddr' field........................ 11 3.5 Vendor information "magic cookie"........................... 12 4. BOOTP Relay Agents........................................... 13Wimer [Page 1]RFC 1532 Clarifications and Extensions for BOOTP October 1993 4.1 General BOOTP Processing for Relay Agents................... 13 4.1.1 BOOTREQUEST Messages...................................... 14 4.1.2 BOOTREPLY Messages........................................ 16 5. BOOTP Server Behavior........................................ 18 5.1 Reception of BOOTREQUEST Messages........................... 18 5.2 Use of the 'secs' field..................................... 19 5.3 Use of the 'ciaddr' field................................... 19 5.4 Strategy for Delivery of BOOTREPLY Messages................. 19 Acknowledgements................................................ 21 References...................................................... 21 Security Considerations......................................... 22 Author's Address................................................ 221. Introduction The Bootstrap Protocol (BOOTP) is a UDP/IP-based protocol which allows a booting host to configure itself dynamically and without user supervision. BOOTP provides a means to notify a host of its assigned IP address, the IP address of a boot server host, and the name of a file to be loaded into memory and executed [1]. Other configuration information such as the local subnet mask, the local time offset, the addresses of default routers, and the addresses of various Internet servers can also be communicated to a host using BOOTP [2]. Unfortunately, the original BOOTP specification [1] left some issues of the protocol open to question. The exact behavior of BOOTP relay agents formerly called "BOOTP forwarding agents") was not clearly specified. Some parts of the overall protocol specification actually conflict, while other parts have been subject to misinterpretation, indicating that clarification is needed. This memo addresses these problems. Since the introduction of BOOTP, the IEEE 802.5 Token Ring Network has been developed which presents a unique problem for BOOTP's particular message-transfer paradigm. This memo also suggests a solution for this problem. NOTE: Unless otherwise specified in this document or a later document, the information and requirements specified througout this document also apply to extensions to BOOTP such as the Dynamic Host Configuration Protocol (DHCP) [3].1.1 Requirements In this memo, the words that are used to define the significance of particular requirements are capitalized. These words are:Wimer [Page 2]RFC 1532 Clarifications and Extensions for BOOTP October 1993 o "MUST" This word or the adjective "REQUIRED" means that the item is an absolute requirement of the specification. o "MUST NOT" This phrase means that the item is an absolute prohibition of the specification. o "SHOULD" This word or the adjective "RECOMMENDED" means that there may exist valid reasons in particular circumstances to ignore this item, but the full implications should be understood and the case carefully weighed before choosing a different course. o "SHOULD NOT" This phrase means that there may exist valid reasons in particular circumstances when the listed behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label. o "MAY" This word or the adjective "OPTIONAL" means that this item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because it enhances the product, for example; another vendor may omit the same item.1.2 Terminology This memo uses the following terms: BOOTREQUEST A BOOTREQUEST message is a BOOTP message sent from a BOOTP client to a BOOTP server, requesting configuration information. BOOTREPLY A BOOTREPLY message is a BOOTP message sent from a BOOTP server to a BOOTP client, providing configuration information.Wimer [Page 3]RFC 1532 Clarifications and Extensions for BOOTP October 1993 Silently discard This memo specifies several cases where a BOOTP entity is to "silently discard" a received BOOTP message. This means that the entity is to discard the message without further processing, and that the entity will not send any ICMP error message as a result. However, for diagnosis of problems, the entity SHOULD provide the capability of logging the error, including the contents of the silently-discarded message, and SHOULD record the event in a statistics counter.1.3 Data Transmission Order The order of transmission of the header and data described in this document is resolved to the octet level. Whenever a diagram shows a group of octets, the order of transmission of those octets is the normal order in which they are read in English. For example, in the following diagram, the octets are transmitted in the order they are numbered. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | 2 | +-------------------------------+ | 3 | 4 | +-------------------------------+ | 5 | 6 | +-------------------------------+ Whenever an octet represents a numeric quantity, the leftmost bit in the diagram is the high order or most significant bit. That is, the bit labeled 0 is the most significant bit. For example, the following diagram represents the value 170 (decimal). 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |1 0 1 0 1 0 1 0| +---------------+ Similarly, whenever a multi-octet field represents a numeric quantity the leftmost bit of the whole field is the most significant bit. When a multi-octet quantity is transmitted the most significant octet is transmitted first.Wimer [Page 4]RFC 1532 Clarifications and Extensions for BOOTP October 19932. General Issues This section covers issues of general relevance to all BOOTP entities (clients, servers, and relay agents).2.1 General BOOTP Processing The following consistency checks SHOULD be performed on BOOTP messages: o The IP Total Length and UDP Length must be large enough to contain the minimal BOOTP header of 300 octets (in the UDP data field) specified in [1]. NOTE: Future extensions to the BOOTP protocol may increase the size of BOOTP messages. Therefore, BOOTP messages which, according to the IP Total Length and UDP Length fields, are larger than the minimum size specified by [1] MUST also be accepted. o The 'op' (opcode) field of the message must contain either the code for a BOOTREQUEST (1) or the code for a BOOTREPLY (2). BOOTP messages not meeting these consistency checks MUST be silently discarded.2.2 Definition of the 'flags' Field The standard BOOTP message format defined in [1] includes a two-octet field located between the 'secs' field and the 'ciaddr' field. This field is merely designated as "unused" and its contents left unspecified, although Section 7.1 of [1] does offer the following suggestion: "Before setting up the packet for the first time, it is a good idea to clear the entire packet buffer to all zeros; this will place all fields in their default state." This memo hereby designates this two-octet field as the 'flags' field. This memo hereby defines the most significant bit of the 'flags' field as the BROADCAST (B) flag. The semantics of this flag are discussed in Sections 3.1.1 and 4.1.2 of this memo. The remaining bits of the 'flags' field are reserved for future use. They MUST be set to zero by clients and ignored by servers and relay agents.Wimer [Page 5]RFC 1532 Clarifications and Extensions for BOOTP October 1993 The 'flags' field, then, appears as follows: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |B| MBZ | +-+-----------------------------+ where: B BROADCAST flag (discussed in Sections 3.1.1 and 4.1.2) MBZ MUST BE ZERO (reserved for future use) The format of a BOOTP message is shown below. The numbers in parentheses indicate the size of each field in octets.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -