wiki:tests_v4

Table describes the requirements for the DHCPv4 server to be tested (not specific test scenario). Unless otherwise specified, "Reference Number" column designates section in RFC 2131.

The first service provided by DHCP is to provide persistent storage of network parameters for network clients. The second service provided by DHCP is the allocation of temporary or permanent network (IP) addresses to clients.

Number Reference Number Requirement Notes
1 1.6 DHCP design goals: Guarantee that any specific network address will not be in use by more than one DHCP client at a time
2 1.6 DHCP design goals: Retain DHCP client configuration across DHCP client reboot. A DHCP client should, whenever possible, be assigned the same configuration parameters (e.g., network address) in response to each request
3 1.6 DHCP design goals: Retain DHCP client configuration across server reboots
4 1.6 DHCP design goals: Allow automated assignment of configuration parameters to new clients to avoid hand configuration for new clients
5 4.1 DHCP clients and servers both construct DHCP messages by filling in fields in the fixed format section of the message and appending tagged data items in the variable length option area. The options area includes first a four-octet ’magic cookie’ followed by the options. The last option must always be the ’end’ option.
6 4.1 DHCP messages from a client to a server are sent to the ’DHCP server’ port (67), and DHCP messages from a server to a client are sent to the ’DHCP client’ port (68).
7 4.1 The ’server identifier’ field is used both to identify a DHCP server in a DHCP message and as a destination address from clients to servers. A server with multiple network addresses MUST be prepared to to accept any of its network addresses as identifying that server in a DHCP message. potentially testing environment just get more complicated
8 4.1 If the options in a DHCP message extend into the ’sname’ and ’file’ fields, the ’option overload’ option MUST appear in the ’options’ field, with value 1, 2 or 3, as specified in RFC 1533. If the ’option overload’ option is present in the ’options’ field, the options in the ’options’ field MUST be terminated by an ’end’ option message validation on both sites
9 4.1 The options in the ’sname’ and ’file’ fields .. MUST begin with the first octet of the field, MUST be terminated by an ’end’ option, and MUST be followed by ’pad’ options to fill the remainder of the field. message validation on both sites
10 4.1 Any individual option in the ’options’, ’sname’ and ’file’ fields MUST be entirely contained in that field. message validation on both sites
11 4.1 A server or relay agent sending or relaying a DHCP message directly to a DHCP client (i.e., not to a relay agent specified in the ’giaddr’ field) SHOULD examine the BROADCAST bit in the ’flags’ field. Last paragraph of section 4.2 make using IP broadcast address possible every time. SHOULD and MAY used in every situation.
12 4.2 A DHCP server needs to use some unique identifier to associate a client with its lease. The client MAY choose to explicitly provide the identifier through the ’client identifier’ option. .. and the server MUST use that identifier to identify the client.
13 4.2 If the client does not provide a ’client identifier’ option, the server MUST use the contents of the ’chaddr’ field to identify the client.

Messages Requirements:

Number Reference Number Requirement Notes
1 4.3.1 When a server receives a DHCPDISCOVER message from a client, the server chooses a network address for the requesting client. If no address is available, the server may choose to report the problem to the system administrator. no client notification.
2 4.3.1 When a server receives a DHCPDISCOVER message from a client, the server chooses a network address for the requesting client. .. If an address is available, the new address SHOULD be chosen as follows:
The client’s current address as recorded in the client’s current binding,
The client’s previous address as recorded in the client's binding
The address requested in the ’Requested IP Address’ option
A new address allocated from the server’s pool of available addresses
there is also other option: a server MAY, for administrative reasons, assign an address other than the one requested
3 4.3.1 While not required for correct operation of DHCP, the server SHOULD NOT reuse the selected network address before the client responds to the server’s DHCPOFFER message.
4 4.3.1 Once the network address and lease have been determined, the server constructs a DHCPOFFER message with the offered configuration parameters. .. The server MUST return to the client:
The client’s network address
The expiration time for the client’s lease
Any parameters from the existing binding that differ from the Host Requirements Document defaults
Any parameters specific to this client
Any parameters specific to this client’s class
Parameters with non-default values on the client’s subnet
5 4.3.1 Once the network address and lease have been determined, the server constructs a DHCPOFFER message with the offered configuration parameters. .. The server MUST return to the client .. Parameters requested by the client, according to the following rules:
IF the server has been explicitly configured with a default value for the parameter, the server MUST include that value in an appropriate option in the ’option’ field
IF the server recognizes the parameter as a parameter defined in the Host Requirements Document, the server MUST include the default value for that parameter
The server MUST supply as many of the requested parameters as possible and MUST omit any parameters it cannot provide
6 4.3.1 The server MUST include each requested parameter only once unless explicitly allowed in the DHCP Options and BOOTP Vendor Extensions document.
7 4.3.1 The server MAY choose to return the ’vendor class identifier’ used to determine the parameters in the DHCPOFFER message to assist the client in selecting which DHCPOFFER to accept.
8 4.3.1 The server inserts the ’xid’ field from the DHCPDISCOVER message into the ’xid’ field of the DHCPOFFER message and sends the DHCPOFFER message to the requesting client.
9 4.3.2 If the DHCPREQUEST message contains a ’server identifier’ option, the message is in response to a DHCPOFFER message. Otherwise, the message is a request to verify or extend an existing lease. If the client uses a ’client identifier’ in a DHCPREQUEST message, it MUST use that same ’client identifier’ in all subsequent messages. If the client included a list of requested parameters in a DHCPDISCOVER message, it MUST include that list in all subsequent messages. That mostly client specification, but goes with potential tests on server.
10 4.3.2 DHCPREQUEST generated during INIT-REBOOT state: Server SHOULD send a DHCPNAK message to the client if the ’requested IP address’ is incorrect, or is on the wrong network.
11 4.3.2 DHCPREQUEST generated during INIT-REBOOT state: Determining whether a client in the INIT-REBOOT state is on the correct network is done by examining the contents of ’giaddr’, the ’requested IP address’ option, and a database lookup. .. If the network is correct, then the DHCP server should check if the client’s notion of its IP address is correct. If not, then the server SHOULD send a DHCPNAK message to the client.
12 4.3.2 DHCPREQUEST generated during INIT-REBOOT state: Determining whether a client in the INIT-REBOOT state is on the correct network is done by examining the contents of ’giaddr’, the ’requested IP address’ option, and a database lookup. .. If the network is correct, then the DHCP server should check if the client’s notion of its IP address is correct. If the DHCP server has no record of this client, then it MUST remain silent
13 4.3.2 DHCPREQUEST generated during INIT-REBOOT state: If ’giaddr’ is 0x0 in the DHCPREQUEST message, the client is on the same subnet as the server. The server MUST broadcast the DHCPNAK message to the 0xffffffff broadcast address
14 4.3.2 DHCPREQUEST generated during INIT-REBOOT state: If ’giaddr’ is set in the DHCPREQUEST message, the client is on a different subnet. The server MUST set the broadcast bit in the DHCPNAK, so that the relay agent will broadcast the DHCPNAK to the client.
15 4.3.2 DHCPREQUEST generated during RENEWING state: Because ’giaddr’ is therefore not filled in, the DHCP server will trust the value in ’ciaddr’, and use it when replying to the client.
16 4.3.2 DHCPREQUEST generated during RENEWING state: The server may choose not to extend the lease, but should return a DHCPACK message regardless.
17 4.3.2 DHCPREQUEST generated during REBINDING state: The DHCP server SHOULD check ’ciaddr’ for correctness before replying to the DHCPREQUEST. A DHCP server MAY extend a client’s lease only if it has local administrative authority to do so.
18 4.3.3 If the server receives a DHCPDECLINE message The server MUST mark the network address as not available
19 4.3.4 Upon receipt of a DHCPRELEASE message, the server marks the network address as not allocated. The server SHOULD retain a record of the client’s initialization parameters for possible reuse in response to subsequent requests from the client.
20 4.3.5 The server responds to a DHCPINFORM message by sending a DHCPACK message directly to the address given in the ’ciaddr’ field of the DHCPINFORM message.
21 4.3.5 The server MUST NOT send a lease expiration time to the client and SHOULD NOT fill in ’yiaddr’. The server includes other parameters in the DHCPACK message as defined in section 4.3.1.
22 3.4 Servers receiving a DHCPINFORM message construct a DHCPACK message with any local configuration parameters appropriate for the client without:
allocating a new address
checking for an existing binding
filling in ’yiaddr’ or including lease time parameters
23 3.4 The servers SHOULD unicast the DHCPACK reply to the address given in the ’ciaddr’ field of the DHCPINFORM message.
24 3.4 The server SHOULD check the network address in a DHCPINFORM message for consistency

Table describes DHCPv4 Options specified in RFC 2132. (Unless otherwise specified, "Reference Number" column designates section in RFC 2132.)

Number Reference Number Option Name Requirement Value type Notes
1 3.3. Subnet Mask If both the subnet mask and the router option are specified in a DHCP reply, the subnet mask option MUST be first.
2 3.3. Subnet Mask The code for the subnet mask option is 1, and its length is 4 octets. one IP addresses
3 3.4. Time Offset The offset is expressed as a two's complement 32-bit integer
4 3.4. Time Offset The code for the time offset option is 2, and its length is 4 octets. 32-bit integer
5 3.5. Router Option The code for the router option is 3. The minimum length for the router option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
6 3.6. Time Server Option The code for the time server option is 4. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
7 3.7. Name Server Option The code for the name server option is 5. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
8 3.8. Domain Name Server Option The code for the domain name server option is 6. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
9 3.9. Log Server Option The code for the log server option is 7. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
10 3.10. Cookie Server Option The code for the log server option is 8. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
11 3.11. LPR Server Option The code for the LPR server option is 9. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
12 3.12. Impress Server Option The code for the Impress server option is 10. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
13 3.13. Resource Location Server Option The code for this option is 11. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
14 3.14. Host Name Option The code for this option is 12, and its minimum length is 1.
15 3.15. Boot File Size Option The code for this option is 13, and its length is 2. 16-bit integer
16 3.15. Boot File Size Option The file length is specified as an unsigned 16-bit integer. 16-bit integer
17 3.16. Merit Dump File The code for this option is 14. Its minimum length is 1. NVT ASCII character set
18 3.16. Merit Dump File The path is formatted as a character string consisting of characters from the NVT ASCII character set. NVT ASCII character set
19 3.17. Domain Name The code for this option is 15. Its minimum length is 1.
20 3.18. Swap Server The code for this option is 16 and its length is 4. one IP addresses
21 3.19. Root Path The code for this option is 17. Its minimum length is 1. NVT ASCII character set.
22 3.20. Extensions Path The code for this option is 18. Its minimum length is 1.
23 4.1. IP Forwarding Enable/Disable? Option The code for this option is 19, and its length is 1. boolean value
24 4.1. IP Forwarding Enable/Disable? Option A value of 0 means disable IP forwarding, and a value of 1 means enable IP forwarding. boolean value
25 4.2. Non-Local Source Routing Enable/Disable? Option The code for this option is 20, and its length is 1. boolean value
26 4.2. Non-Local Source Routing Enable/Disable? Option A value of 0 means disallow forwarding of such datagrams, and a value of 1 means allow forwarding. boolean value
27 4.3. Policy Filter Option The code for this option is 21. The minimum length of this option is 8, and the length MUST be a multiple of 8.
28 4.3. Policy Filter Option The filters consist of a list of IP addresses and masks which specify destination/mask pairs with which to filter incoming source routes one or more IP address pairs
29 4.4. Maximum Datagram Reassembly Size The code for this option is 22, and its length is 2. 16-bit unsigned integer
30 4.4. Maximum Datagram Reassembly Size The size is specified as a 16-bit unsigned integer. The minimum value legal value is 576. 16-bit unsigned integer
31 4.5. Default IP Time-to-live The code for this option is 23, and its length is 1. 8-bit unsigned integer
32 4.5. Default IP Time-to-live The TTL is specified as an octet with a value between 1 and 255. 8-bit unsigned integer
33 4.6. Path MTU Aging Timeout Option The code for this option is 24, and its length is 4. 32-bit unsigned integer
34 4.6. Path MTU Aging Timeout Option This option specifies the timeout (in seconds) [...] The timeout is specified as a 32-bit unsigned integer. 32-bit unsigned integer
35 4.7. Path MTU Plateau Table Option The code for this option is 25. Its minimum length is 2, and the length MUST be a multiple of 2. lidt of 16-bit unsigned integers
36 4.7. Path MTU Plateau Table Option The table is formatted as a list of 16-bit unsigned integers, ordered from smallest to largest. The minimum MTU value cannot be smaller than 68. list of 16-bit unsigned integers
37 5.1. Interface MTU Option The MTU is specified as a 16-bit unsigned integer. 16-bit unsigned integer
38 5.1. Interface MTU Option The minimum legal value for the MTU is 68. 16-bit unsigned integer
39 5.2. All Subnets are Local Option The code for this option is 27, and its length is 1. boolean value
40 5.3. Broadcast Address Option The code for this option is 28, and its length is 4. broadcast IPv4 addresses RFC 1122 Section 3.2.1.3
41 5.4. Perform Mask Discovery Option The code for this option is 29, and its length is 1. boolean value
42 5.5. Mask Supplier Option The code for this option is 30, and its length is 1. boolean value
43 5.6. Perform Router Discovery Option The code for this option is 31, and its length is 1. boolean value
44 5.7. Router Solicitation Address Option The code for this option is 32, and its length is 4. IPv4 address
45 5.8. Static Route Option The code for this option is 33. The minimum length of this option is 8, and the length MUST be a multiple of 8. list of IP address pairs
46 5.8. Static Route Option The default route (0.0.0.0) is an illegal destination for a static route.
47 6.1. Trailer Encapsulation Option The code for this option is 34, and its length is 1. boolean value
48 6.2. ARP Cache Timeout Option The code for this option is 35, and its length is 4. 32-bit unsigned integer
49 6.2. ARP Cache Timeout Option The time is specified as a 32-bit unsigned integer.
50 6.3. Ethernet Encapsulation Option The code for this option is 36, and its length is 1. boolean value
51 7.1. TCP Default TTL Option The value is represented as an 8-bit unsigned integer. The minimum value is 1.
52 7.1. TCP Default TTL Option The code for this option is 37, and its length is 1.
53 7.2. TCP Keepalive Interval Option The time is specified as a 32-bit unsigned integer.
54 7.2. TCP Keepalive Interval Option The code for this option is 38, and its length is 4.
55 7.3. TCP Keepalive Garbage Option The code for this option is 39, and its length is 1. boolean value
56 8.1. Network Information Service Domain Option The code for this option is 40. Its minimum length is 1 NVT ASCII character set
57 8.2. Network Information Servers Option The code for this option is 41. Its minimum length is 4, and the length MUST be a multiple of 4. one or more IP addresses
58 8.3. Network Time Protocol Servers Option The code for this option is 42. Its minimum length is 4, and the length MUST be a multiple of 4. one or more IP addresses
59 8.4. Vendor Specific Information The Encapsulated vendor-specific options field SHOULD be encoded as a sequence of code/length/value fields of identical syntax to the DHCP options field Possible requirement of additional tests specifications
60 8.4. Vendor Specific Information The code for this option is 43 and its minimum length is 1.
61 8.5. NetBIOS over TCP/IP Name Server Option The code for this option is 44. The minimum length of the option is 4 octets, and the length must always be a multiple of 4. one or more IP addresses
62 8.6. NetBIOS over TCP/IP Datagram Distribution Server Option The code for this option is 45. The minimum length of the option is 4 octets, and the length must always be a multiple of 4. one or more IP addresses
63 8.7. NetBIOS over TCP/IP Node Type Option The code for this option is 46. The length of this option is always 1.
64 8.7. NetBIOS over TCP/IP Node Type Option The value is specified as a single octet which identifies the client type Value Node Type
----- ---------
0x1 B-node
0x2 P-node
0x4 M-node
0x8 H-node
number in base-16 (hexadecimal).
65 8.8. NetBIOS over TCP/IP Scope Option The code for this option is 47. The minimum length of this option is 1.
66 8.9. X Window System Font Server Option The code for this option is 48. The minimum length of this option is 4 octets, and the length MUST be a multiple of 4. one or more IP addresses
67 8.10. X Window System Display Manager Option The code for this option is 49. The minimum length of this option is 4 octets, and the length MUST be a multiple of 4. one or more IP addresses
68 8.11. Network Information Service+ Domain Option The code for this option is 64. Its minimum length is 1. NVT ASCII character set
69 8.12. Network Information Service+ Servers Option The code for this option is 65. Its minimum length is 4, and the length MUST be a multiple of 4. one or more IP addresses
70 8.13. Mobile IP Home Agent option The code for this option is 68. Its minimum length is 0 and the length MUST be a multiple of 4. one or more IP addresses should server send this even when it's not configured?
71 8.14. Simple Mail Transport Protocol (SMTP) Server Option The code for the SMTP server option is 69. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
72 8.15. Post Office Protocol (POP3) Server Option The code for the POP3 server option is 70. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
73 8.16. Network News Transport Protocol (NNTP) Server Option The code for the NNTP server option is 71. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
74 8.17. Default World Wide Web (WWW) Server Option The code for the WWW server option is 72. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
75 8.18. Default Finger Server Option The code for the Finger server option is 73. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
76 8.19. Default Internet Relay Chat (IRC) Server Option The code for the IRC server option is 74. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
77 8.20. StreetTalk? Server Option The code for the StreetTalk? server option is 75. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses
78 8.21. StreetTalk? Directory Assistance (STDA) Server Option The code for the StreetTalk? Directory Assistance server option is 76. The minimum length for this option is 4 octets, and the length MUST always be a multiple of 4. one or more IP addresses

List of DHCP Extensions ("Reference Number" column designates section in RFC 2132.)

Number Reference Number Option Name Requirement Value type Notes
1 9.2. IP Address Lease Time The code for this option is 51, and its length is 4. The time is in units of seconds, and is specified as a 32-bit unsigned integer.
2 9.2. IP Address Lease Time In a server reply (DHCPOFFER), a DHCP server uses this option to specify the lease time it is willing to offer.
3 9.3. Option Overload This option is used to indicate that the DHCP 'sname' or 'file' fields are being overloaded by using them to carry DHCP options. The code for this option is 52, and its length is 1. Legal values for this option are: 1-3
4 9.4. TFTP server name This option is used to identify a TFTP server when the 'sname' field in the DHCP header has been used for DHCP options. The code for this option is 66, and its minimum length is 1.
5 9.5. Bootfile name This option is used to identify a bootfile when the 'file' field in the DHCP header has been used for DHCP options. The code for this option is 67, and its minimum length is 1.
6 9.6. DHCP Message Type The code for this option is 53, and its length is 1. Legal values for this option are: 1-8
7 9.7. Server Identifier The code for this option is 54, and its length is 4. The identifier is the IP address of the selected server.
8 9.8. Parameter Request List This option is used by a DHCP client to request values for specified configuration parameters.
The DHCP server is not required to return the options in the requested order, but MUST try to insert the requested options in the order requested by the client.
MUST try? ;)
9 9.9. Message The code for this option is 56 and its minimum length is 1. n octets of NVT ASCII text
10 9.9. Message This option is used by a DHCP server to provide an error message to a DHCP client in a DHCPNAK message in the event of a failure.
11 9.10. Maximum DHCP Message Size The code for this option is 57, and its length is 2.
12 9.10. Maximum DHCP Message Size The length is specified as an unsigned 16-bit integer. The minimum legal value is 576 octets.
13 9.11. Renewal (T1) Time Value The code for this option is 58, and its length is 4.
14 9.11. Renewal (T1) Time Value The value is in units of seconds, and is specified as a 32-bit unsigned integer.
15 9.12. Rebinding (T2) Time Value The code for this option is 59, and its length is 4.
16 9.12. Rebinding (T2) Time Value The value is in units of seconds, and is specified as a 32-bit unsigned integer.
17 9.13. Vendor class identifier Specified in different tests requirements (not yet available)
18 9.14. Client-identifier The code for this option is 61, and its minimum length is 2.
19 9.14. Client-identifier each client's client-identifier MUST be unique among the client-identifiers used on the subnet to which the client is attached.
Last modified 4 years ago Last modified on Mar 7, 2014, 12:39:26 PM