1 | initial version |
The client hardware address field ('chaddr') in DHCP is a fixed 16 octets. The hlen field indicates the length of the hardware address, and thus the number of those octets used. However, the remaining octets _must_ be present as padding. Your server is not including the 10 padding octets necessary and is only transmitting a 6 octet _chaddr_ field; put another way, the DHCP magic cookie is being transmitted inside the _file_ field as everything is shifted by 10 octets, and this leads to the packet being seen as malformed. As the first four bytes of the options field are not the DHCP Magic Cookie, it is instead interpreted as BOOTP.