wiki:DHCP

The base specification for DHCP is 2131, but that just describes the structure of the packets. The packets contain "options", which are specified in 2132.

We only implement part of the DHCP spec. The biggest missing feature is probably that we don't implement the broadcast option. All replies are sent out on the interface associated with their VM and are sent as broadcast packets. This conflicts with the spec:

If the 'giaddr' field in a DHCP message from a client is non-zero, the server sends any return messages to the 'DHCP server' port on the BOOTP relay agent whose address appears in 'giaddr'. If the 'giaddr' field is zero and the 'ciaddr' field is nonzero, then the server unicasts DHCPOFFER and DHCPACK messages to the address in 'ciaddr'. If 'giaddr' is zero and 'ciaddr' is zero, and the broadcast bit is set, then the server broadcasts DHCPOFFER and DHCPACK messages to 0xffffffff. If the broadcast bit is not set and 'giaddr' is zero and 'ciaddr' is zero, then the server unicasts DHCPOFFER and DHCPACK messages to the client's hardware address and 'yiaddr' address. In all cases, when 'giaddr' is zero, the server broadcasts any DHCPNAK messages to 0xffffffff.

Last modified 10 years ago Last modified on Oct 28, 2007, 5:43:09 PM