The issue is that iPXE doesn't handle DHCPNACK at all. It doesn't change the DHCP state.
If needs to check for NACK, here: https://github.com/ipxe/ipxe/blob/master/src/net/udp/dhcp.c#L560 and set: `dhcp_set_state ( dhcp, &dhcp_state_discover );`.
It seems that fixing this in MAAS is not the correct thing to do, as the DHCP server is sending a NACK but the client is not handling it.
The issue is that iPXE doesn't handle DHCPNACK at all. It doesn't change the DHCP state.
If needs to check for NACK, here: https:/ /github. com/ipxe/ ipxe/blob/ master/ src/net/ udp/dhcp. c#L560 and set: `dhcp_set_state ( dhcp, &dhcp_state_ discover );`.
It seems that fixing this in MAAS is not the correct thing to do, as the DHCP server is sending a NACK but the client is not handling it.