Bug 447010

Summary: Fedora / Windows Vista dhcp interoperability problem
Product: [Fedora] Fedora Reporter: Răzvan Sandu <razvan.sandu>
Component: dhcpAssignee: David Cantrell <dcantrell>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: low    
Version: rawhideCC: k.georgiou, marius.stracna
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://support.microsoft.com/kb/928233
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-05-18 04:47:45 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Răzvan Sandu 2008-05-16 18:52:17 EDT
Description of problem:

Windows Vista clients don't get IP addresses from a Fedora dhcp server.

Since the vast majority of clients are Windows clients and Vista is getting
adopted more videly, this is a *serious* issue.

The "bug" is due to some recent changes in Windows, please see here:
http://support.microsoft.com/kb/928233


ISC DHCP README documents says that a broadcast "route" is necessary in order
for DHCP to work with some clients
(http://www.isc.org/sw/dhcp/dhcpv3-README.php#linux4). Is that setting still
necessary ?  If so, please autmomate it via rpm package, to solve this
interoperability issue...


Version-Release number of selected component (if applicable):
dhcp-4.0.0-14.fc9.x86_64

How reproducible:
Always.

Steps to Reproduce:
1. Install Fedora 9
2. Install DHCP server on F9
3. Install Microsoft Vista DHCP client
4. Start both server and client
5. Observe client

  
Actual results:
Windows Vista client doesn't get an IP address via DHCP. A registry hack is
necessary in order to enable connectivity using DHCP protocol.

Expected results:
If possible, please implement a server workaround for this matter, in order for
Vista clients to work unmodified.


Thanks a lot,
Răzvan
Comment 1 David Cantrell 2008-05-16 19:37:39 EDT
(In reply to comment #0)
> The "bug" is due to some recent changes in Windows, please see here:
> http://support.microsoft.com/kb/928233

Microsoft has been doing this for a while, which makes interoperability with other clients and servers 
very difficult.

> ISC DHCP README documents says that a broadcast "route" is necessary in order
> for DHCP to work with some clients
> (http://www.isc.org/sw/dhcp/dhcpv3-README.php#linux4). Is that setting still
> necessary ?

This is not the same thing as the broadcast flag.  Unfortunately the terminology is confusing.  The 
broadcast flag is set in the DHCP packets between the client and the server.  The information you see in 
the README is a work around for old Linux kernels (around the 2.0 and 2.2 time period).

> Version-Release number of selected component (if applicable):
> dhcp-4.0.0-14.fc9.x86_64
> 
> How reproducible:
> Always.
> 
> Steps to Reproduce:
> 1. Install Fedora 9
> 2. Install DHCP server on F9
> 3. Install Microsoft Vista DHCP client
> 4. Start both server and client
> 5. Observe client
> 
>   
> Actual results:
> Windows Vista client doesn't get an IP address via DHCP. A registry hack is
> necessary in order to enable connectivity using DHCP protocol.
> 
> Expected results:
> If possible, please implement a server workaround for this matter, in order for
> Vista clients to work unmodified.

Unfortunately there is no easy fix for this.  I cannot enable the broadcast flag by default because that 
breaks DHCP traffic for everyone else.  This is strictly a Windows problem because no other 
implementations of DHCP that I've seen make use of the broadcast flag.  The whole purpose of the 
broadcast flag is to restrict traffic.  Only those clients that have the flag set will talk to each other.  
Some argue it is a security feature, but mostly it's an annoyance.

What you need to do on your end is modify your /etc/dhcpd.conf file and add the following line:

always-broadcast on;

See the dhcpd.conf(5) man page for more information.
Comment 2 Răzvan Sandu 2008-05-17 02:45:05 EDT
Thank you for your comments !


Only one more question: if one puts "always-broadcast on" in dhcpd.conf, will
this break interoperability with other clients, including older Windowses from
Microsoft ?

I have a mixed network running XP, Vista, various Linuxes and hardware boxes
from different manufacturers.

IMHO, this Fedora - Vista compatibility issue is so important that it worths
mentioning it in some *visible* piece of Red Hat documentation, say the
Deployment Guide...


Regards,
Răzvan
Comment 3 David Cantrell 2008-05-17 18:42:49 EDT
If you enable always-broadcast, then dhcpd will only be able to speak to clients that have a broadcast 
flag set.  This is what makes the broadcast flag setting by Windows so annoying.  It's an all or nothing 
proposition.

So, if you enable it, you need to make sure your other non-vista clients are also setting the broadcast 
flag, otherwise you will break their communication.

Mentioning it in the documentation is a good idea.  I don't use or test with Windows, so I rely on 
reports from other users.  I do appreciate this information as it will help us point out known problems.

Can you test the 'always-broadcast on;' setting on your network and see if that resolves the problem?  
If so, I'll find a suitable location to mention this (probably on the Fedora wiki).
Comment 4 Răzvan Sandu 2008-05-18 03:07:44 EDT
Hello,


The vast majority of the workstations in my network are Windows XP Professional.
We only have very few Vistas, primarily laptops.

I'll be pleased to experiment by adding "always-broadcast" to my (unique) DHCP
server, to see if it break things on XP and resolve them on Vista. I'll add the
results here ASAP.

But:

There must be some trick in the middle. Please imagine a Microsoft-only network,
with a Windows 2003 DHCP server and a mixture of XP and Vistas. How do *they*
resolve things ?

Is there any Windows Update patch to "upgrade" both XP and the DHCP server to
"broadcast=yes" ?

Is the Windows DHCP server sending offers in both modes (if technically feasible) ?

And what happens if the DHCP server is some third-party box, say a Cisco router
? The administrator is supposed to throw away Cisco and install a Windows there
? ;-)  Microsoft is eager to break Linux in any situation, but I don't think
they'll afford to do the same for Cisco or Nortel...


I still doubt Microsoft is so stupid to break *their own client networks* so
badly...


However, the results of all these findings *worths* to be published, IMHO...

Technicality: even if it's not a bug, I'll reopen this, for others to *easily*
see our discussion and add further comments here. Maybe we'll find interesting
news from network administrators more experienced than I am... Please let this
open for a month or so, I'll close it myself afterwards.


Many thanks,
Răzvan
Comment 5 David Cantrell 2008-05-18 04:47:45 EDT
(In reply to comment #4)
> The vast majority of the workstations in my network are Windows XP Professional.
> We only have very few Vistas, primarily laptops.
> 
> I'll be pleased to experiment by adding "always-broadcast" to my (unique) DHCP
> server, to see if it break things on XP and resolve them on Vista. I'll add the
> results here ASAP.
> 
> But:
> 
> There must be some trick in the middle. Please imagine a Microsoft-only network,
> with a Windows 2003 DHCP server and a mixture of XP and Vistas. How do *they*
> resolve things ?

Microsoft sets the broadcast bit on everything so that Windows systems only speak to Windows 
systems by default.

> Is there any Windows Update patch to "upgrade" both XP and the DHCP server to
> "broadcast=yes" ?

I have no idea, you'd have to check with Microsoft.

> Is the Windows DHCP server sending offers in both modes (if technically feasible) ?

Again, I don't really know, you'd have to ask Microsoft.  All I do know is that they generally set the 
broadcast bit as a way to restrict DHCP communication among Windows systems.  If two DHCP servers 
are on a network, one Windows and one Linux, then by default the Windows server wins for Windows 
clients.

> And what happens if the DHCP server is some third-party box, say a Cisco router
> ? The administrator is supposed to throw away Cisco and install a Windows there
> ? ;-)  Microsoft is eager to break Linux in any situation, but I don't think
> they'll afford to do the same for Cisco or Nortel...

Again, you'd have to ask Microsoft or Cisco.

> I still doubt Microsoft is so stupid to break *their own client networks* so
> badly...
> 
> 
> However, the results of all these findings *worths* to be published, IMHO...

Not until we have definite results.  My suggestions require you to test.  I don't have Windows on 
anything and am not going to go purchase windows just to test this problem.  If you can test my 
suggestions and provide feedback on what does and doesn't work, then *that* is worth being published.  
Just publishing ideas doesn't help anyone.

> Technicality: even if it's not a bug, I'll reopen this, for others to *easily*
> see our discussion and add further comments here. Maybe we'll find interesting
> news from network administrators more experienced than I am... Please let this
> open for a month or so, I'll close it myself afterwards.

I would rather you take this discussion to a fedora mailing list.  Bugzilla is inappropriate in this case 
because this is not a dhcp bug.  This is a Windows interoperability problem, so discussing it on a 
mailing list is more appropriate.  I rely on Bugzilla to track software defects, which is problem is not 
right now.  If it's determined that there is a dhcp bug, open a new bug for that problem.
Comment 6 Răzvan Sandu 2008-05-19 05:28:46 EDT
>> There must be some trick in the middle. Please imagine a Microsoft-only network,
>> with a Windows 2003 DHCP server and a mixture of XP and Vistas. How do *they*
>> resolve things ?

> Microsoft sets the broadcast bit on everything so that Windows systems only >
speak to Windows 
> systems by default.


Sorry, just for curiosity:

*This* is the core of the problem (of course it is not Red Hat DHCP-related).

I have hundreds of XPs in my network, that used to work perfectly with Red Hat
DHCP *without* that bit set. When I added Vistas, they require the bit. Now, if
I'll put "always-broadcast on" on the DHCP server, Vistas will work, but I
expect XPs to break.

*Unless* Microsoft publishes some (mandatory) online update for XP that will
make it to mimics Vista's behaviour. But how can one be 100% sure that *all* XPs
using DHCP will receive the Microsoft update automatically ?

I'll check on Microsoft sites, as you suggested.


Thanks *a lot*,
Răzvan