Fresh from the RFC 2131 (DHCP):
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. If this bit is set to 1, the DHCP message SHOULD be sent as
an IP broadcast using an IP broadcast address (preferably 0xffffffff)
as the IP destination address and the link-layer broadcast address as
the link-layer destination address.
So the linux dhcp server SHOULD reply on the broadcast address but he does not. That behavior ist STILL adhering to the standard (it is NOT a MUST in the rfc)....
Out of the same RFC (talking about the client):
The TCP/IP software SHOULD accept and
forward to the IP layer any IP packets delivered to the client's
hardware address before the IP address is configured; DHCP servers
and BOOTP relay agents may not be able to deliver DHCP messages to
clients that cannot accept hardware unicast datagrams before the
TCP/IP software is configured.
So Vista is not accepting unicast datagrams as they SHOULD do. So they are adhering to the standard as well. But here the rfc warns that if you not accept unicasts you may not be able to receive ip-addresses....and thats exactly what happens....
Summary: Both sides adhering to the standard. The linux server is missing a feature that should be honnored, the vista clients relying on a feature where they have been warned that it might not work. Or to say it shorter: Vista gets what it deserves: No IP-Address:-)
Fresh from the RFC 2131 (DHCP):
...and thats exactly what happens....
:-)
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. If this bit is set to 1, the DHCP message SHOULD be sent as
an IP broadcast using an IP broadcast address (preferably 0xffffffff)
as the IP destination address and the link-layer broadcast address as
the link-layer destination address.
So the linux dhcp server SHOULD reply on the broadcast address but he does not. That behavior ist STILL adhering to the standard (it is NOT a MUST in the rfc)....
Out of the same RFC (talking about the client):
The TCP/IP software SHOULD accept and
forward to the IP layer any IP packets delivered to the client's
hardware address before the IP address is configured; DHCP servers
and BOOTP relay agents may not be able to deliver DHCP messages to
clients that cannot accept hardware unicast datagrams before the
TCP/IP software is configured.
So Vista is not accepting unicast datagrams as they SHOULD do. So they are adhering to the standard as well. But here the rfc warns that if you not accept unicasts you may not be able to receive ip-addresses.
Summary: Both sides adhering to the standard. The linux server is missing a feature that should be honnored, the vista clients relying on a feature where they have been warned that it might not work. Or to say it shorter: Vista gets what it deserves: No IP-Address