Vista Bug Costs Users In Swedish Town Their Internet
Lund, Sweden refuses to work around a Vista bug, so people who live there must choose between Vista and internet access. It's nice to see the right people being held accountable for a change.
The bug in Vista is that it sends somewhat broken DHCP requests that Lund Energi's DHCP server refuses to reply to. If you have a home router the DHCP server in the router would (propably) reply to the requests from Vista and other computers on your LAN. And the router sends correct DHCP requests to Lund Energi's server in order to get it's own public IP address.
In short, having a home router would solve the problem.
Both of the english articles listed in this slashdot-post says that Lundis Energi has no desire to do anything. However, in a Swedish newspaper http://www.metro.se/se/article/2007/08/28/14/2423- 48/index.xml they say:
"Our technicians are looking in the matter to see what we can do but it is mainly up to Microsoft to fix this issue" /Åsa Holmander, product manager at Lundis Energi (rough translation)
From : http://www.dhcp-handbook.com/dhcp_faq.html#wisrb
"Which implementations support or require the broadcast flag?
The broadcast flag is an optional element of DHCP, but a client which sets it works only with a server or relay that supports it.
Clients
Microsoft Windows NT
DHCP client support added with version 3.5 sets the broadcast flag. Version 3.51 and later no longer set it. The exception is in the remote access support: it sets the flag when it uses DHCP to acquire addresses to hand out to its PPP clients.
tcp/ip-32 for Microsoft Windows for Workgroups (WFW)
Version 3.11a sets it, but version 3.11B doesn't.
Microsoft Windows 95
Does not set the broadcast flag."
So, I guess Vista only works with Servers that support it and it was an option to implemant it. End of Story.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
RFC2131 states:
A client that cannot receive unicast IP datagrams until its protocol
software has been configured with an IP address SHOULD set the
BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or
DHCPREQUEST messages that client sends. The BROADCAST bit will
provide a hint to the DHCP server and BOOTP relay agent to broadcast
any messages to the client on the client's subnet. A client that can
receive unicast IP datagrams before its protocol software has been
configured SHOULD clear the BROADCAST bit to 0.
RFC1542 States
3.1.1 The BROADCAST flag
Normally, BOOTP servers and relay agents attempt to deliver BOOTREPLY
messages directly to a client using unicast delivery. The IP
destination address (in the IP header) is set to the BOOTP 'yiaddr'
address and the link-layer destination address is set to the BOOTP
'chaddr' address. Unfortunately, some client implementations are
unable to receive such unicast IP datagrams until they know their own
IP address (thus we have a "chicken and egg" issue). Often, however,
they can receive broadcast IP datagrams (those with a valid IP
broadcast address as the IP destination and the link-layer broadcast
address as the link-layer destination).
If a client falls into this category, it SHOULD set (to 1) the
newly-defined BROADCAST flag in the 'flags' field of BOOTREPLY
messages it generates. This will provide a hint to BOOTP servers and
relay agents that they should attempt to broadcast their BOOTREPLY
messages to the client.
If a client does not have this limitation (i.e., it is perfectly able
to receive unicast BOOTREPLY messages), it SHOULD NOT set the
BROADCAST flag (i.e., it SHOULD clear the BROADCAST flag to 0).
DISCUSSION:
This addition to the protocol is a workaround for old host
implementations. Such implementations SHOULD be modified so
that they may receive unicast BOOTREPLY messages, thus making
use of this workaround unnecessary. In general, the use of
this mechanism is discouraged.
If XP can receive unicast IP datagrams. why cant Vista? Either MS broke Vista or the TCP/IP stack is less functional than before. Either way, use of the broadcast flag is discouraged.
I am a free slashdotter. I will not be modded, blogged, DRM'd, patented, podcasted or RFID'd. My life is my own.
Vista is only compliant to the RFCs if it is legacy code :-)
RFC 1542 sayeth
3.1.1 The BROADCAST flag [...] This addition to the protocol is a workaround for old host implementations. Such implementations SHOULD be modified so that they may receive unicast BOOTREPLY messages, thus making use of this workaround unnecessary. In general, the use of this mechanism is discouraged.
One, relatively strong Monopoly (Microsoft) gets screwed in a small town by another absolute monopoly.
:-)
Ah, no, sorry, welcome to Sweden. I know things work a bit differently in the states, but we actually got competition.
Lunds energi drop fiber along with their heating pipes and sell net access over that. Other than that, you'd have at least four different DSL providers plus net over CATV. Chances are that you'd actually have another 100Mbit ethernet provider over in Lund on top of that.
Lunds energi is definitely not the only shop in town
RESOLUTION
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
To resolve this issue, disable the DHCP BROADCAST flag in Windows Vista. To do this, follow these steps:
1. Click StartStart button, type regedit in the Start Search box, and then click regedit in the Programs list.
User Account Control permission If you are prompted for an administrator password or for confirmation, type your password, or click Continue.
2. Locate and then click the following registry subkey:c es\Tcpip\Parameters\Interfaces\{GUID}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servi
In this registry path, click the (GUID) subkey that corresponds to the network adapter that is connected to the network.
3. On the Edit menu, point to New, and then click DWORD (32-bit) Value.
4. In the New Value #1 box, type DhcpConnDisableBcastFlagToggle, and then press ENTER.
5. Right-click DhcpConnDisableBcastFlagToggle, and then click Modify.
6. In the Value data box, type 1, and then click OK.
7. Close Registry Editor.
So Vista isn't (formally) going counter to protocol, it's just going counter to a 15-year old custom. Nonetheless, Vista *can* cooperate, it just needs to be told not to raise the DHCP BROADCAST flag. And yes, that route goes via a registry modification.
In summary: a tropical storm in a teacup.
Monthly fee contract 1 year 3 year 5 year
100 Mbit/s 349 kr 329 kr 299 kr
10 Mbit/s 199 kr 179 kr 159 kr
Taxes included.
7 SEK = 1 $
Microsoft know exactly what the problem is, and know exactly how to fix it. They are being deceptive in their claim that they're not doing anything because Lundis are not cooperating. The bug is that they have decided to implement a legacy feature in DHCP, one that servers are not required to support, as being on by default in Vista. This was a legacy feature in 93, so there's no need for it to be on by default. In fact, the standard which specifies the flag states that the flag is for cases where you have no choice but to use it. The fact that it can be turned off in Vista shows this is not the case.
There are also reports that Cisco equipment won't work with it either.
If you can read this you've gone too far.
No buddy, you got that dead wrong. Quoting from RFC 760:
"In general, an implementation should be conservative
in its sending behavior, and liberal in its receiving behavior. That
is, it should be careful to send well-formed datagrams, but should
accept any datagram that it can interpret (e.g., not object to
technical errors where the meaning is still clear)."
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
Right people here are discussing RCFs and wonder what is going on, well I live in Lund and here is my take on what has happened:
a)Per the RFC servers do not need to implement the broadcast flag, but it is a good idea if you want to support systems that use it.
b)Per RFC Vista doesn't need to clear the broadcast bit, but it is strongly recommended and setting it is intended for legacy clients only.
c)Lund's energi's network doesn't support the broadcast and thus Vista machines do not get an IP over DHCP since they set the broadcast bit.
d)For reasons we don't yet know, Lund energi won't implement a workaround on their server. I don't know enough about DHCP or their systems to tell why, so I guess there might be a technical issue or perhaps they are just being jerks.
e)The fix is to set a registry key, which is easy for technical users, but a pain for those who don't know about it.
My judgement is that Lund's energi has a shitty DHCP server and Vista is a shitty DHCP client. Since the fix is so simple ( adding a registry key ) this really ought to be a non-issue, but because Microsoft and Lund's energi are both incompetent crappy companies the end user is left with a problem that would actually be rather easy to resolve. Those in the know can work around it, but non-technical users are left without service while those responsible point the finger at one another. The sad thing is that this really isn't particularly surprising. Hmm, did I forget something? Oh yea, the article summary is wrong since there are scores of ISPs in Lund, and this only affects one of them. So yea, I'm not very surprised at all...
My company ran into this as well. We have 4000 wireless customers spread out on 20+ antennas (each with its own Cisco switch). We're a Microsoft partner so we contacted them about the problem right away.
As I understood it, the bug was this: Vista will only accept broadcast replies to DHCP requests. Any multicast response is discarded for security reasons (!?). So their solution was to put a DHCP server on every level of our network (for us, one for every 200 users) or switch to a network that relayed the broadcasted replies (ie: hubs). They also told us it wasn't a bug so they wouldn't issue a patch to correct it. There was a KB article on the issue but when we had users call MS support and ask them to walk them through applying it, we got a bunch of angry calls back to us saying MS refused to help them with it. We also talked to Cisco a bit to see if they had any idea what we could do to relay the broadcast but they never got us a solution.
So in the end, we told MS that we'd either need a better way to fix this or we'd just tell our users not to use Vista. They seemed okay with us telling users not to use it so we have. A few of our users still use Vista with a home router and that seems to work alright. Luckily, there aren't too many Vista users yet and when faced with the option of buying and configuring a router or buying and configuring Windows XP, they've decided on XP. So all in all, it wasn't that big of a deal.
Jem Tallon
This particular option is designed to aid old implementations of TCP which can't receive unicast packets until they have received an IP address (which they dont have yet because DHCP hasnt given them one)...
Vista has a new TCP stack, it would be incredibly stupid to implement such an ancient bug, especially when all earlier versions of windows worked correctly.
Infact, the vista TCP stack does support receiving of unicast packets, and yet microsoft still chose to use the broadcast flag without reason. That's why this ridiculous behaviour can be turned off with a simple registry entry. The broadcast flag is intended for TCP stacks which _CANNOT_ support unicast, it is absoloutely incorrect to use it as the default on a stack which can support it.
The broadcast flag is only intended for compatibility with very old TCP stacks (i cant think of any which requires it, and it makes sense that this legacy functionality was intended to be removed when you weren't using any of these legacy systems.
So, did this swedish ISP have any reason to believe that people would be connecting ancient TCP stacks to their network? If not, it makes sense that they wouldn't support this legacy flag.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Funny, out of the box XP SP2 doesn't support my NIC, graphics card (Well only in VGA mode) or my USB printer. My network and chipset driver is a 40MB download, my GPU driver, 50MB, and my printer drivers a pleasant 180MB. Oh and then I have to update DirectX, update Windows Messenger, update to IE7, update to WMP 11 and then get going on the 80 or so other updates (which comes in at almost 50-100 MiB I suspect) from Windows Update.
Out of box Ubuntu supports my network card and with a few simple clicks my printer and I can start installing my favourite software.
My point here isn't to start a flame war, but rather that the Window's experience isn't so wonderful out of the box when the last service pack was 3 years before your current hardware came out. When you consider this, there is something to be said for Ubuntu's 6 month cycle.
Oh and I've never used a wireless adapter in XP (~6) or Vista (1) that worked out the box.
I don't think anyone denies it takes a certain level of intelligence to grasp Linux. Sorry.
I think you're missing the point.
I work for a networking company and a few months ago I fixed our BootP relay to be able to handle this.
If you read the DHCP RFC, you will discover that this broadcast packet is actually an optional part of the spec. Furthermore, it was designed for (at the time - circa 1993) LEGACY equipment that could not handle unicast responses.
Ie, I ask for an IP address, and because I'm a crappy old piece of hardware that can't handle it, I want the DHCP server to reply to me with a broadcast reply telling me my IP address. Normally such responce is unicast to your MAC address and everyone is happy.
Windows XP works fine and will accept a unicast reply. In Vista Microsoft had the brilliant idea that they should enable this flag by default - despite the fact that any modern computer should be able to handle a unicast reply - they could back in 1993 after all.
So yes, the fault is precisely with Microsoft for enabling an unnecessary and OPTIONAL part of the DHCP protocol by default, causing untold problems that could simply be avoided if they stuck to the XP way of doing things.
It's actually a stupid issue with pretty much all parties faulty. After reading tons of posts which all confuse it all, I did RTFKBA and RTFRFC. From the RFC and the KB article, the following facts can be found:
1. There is one flag in DHCP protocol, the "BROADCAST" flag. The "Clarifications to BOOTP (RFC 1542)" gives a nice description of it's purpose (referenced from DHCP RFC2131).
2. Normally the server sends DHCP replies as unicast packets to a specific node.
3. It is suggested there are TCP/IP implementations unable to receive such a unicast packet before they have been fully configured, in which case they should set "the flag" to request that the server sends it's reply as a broadcast instead. Server should honor such a request. I guess such an implementation would configure their local MAC (or equivalent?) at the same time with their IP level settings, which might be a sensible thing to do in a simplistic single family (IP-only) network stack, which was designed before anybody thought of "auto-configuration" things like DHCP.
4. For some unknown reason, Vista sends DHCP requests with "the flag" set by default, even if it doesn't have said inability to receive unicast packets before being fully configured.
5. A DHCP server should honor such a request, though from reading the discussion here, I futher conclude that for various reasons, maintainers of certain servers and/or networks are unwilling to support broadcast replies to DHCP requests. At least in case of centralized DHCP servers this seems a reasonable decision.
Now, it's likely that MSFT has some purpose for setting the broadcast flag (other than pissing people up). So far this purpose is more or less a mystery to me. One possible reason I can immediately think of would be allowing a DHCP server to detect the presence of another DHCP server by monitoring DHCP reply broadcasts that somebody else sent (that could be useful for certain types of "zero-config" networking maybe?). But then again they might have another reason? Who knows.. maybe they wanna start selling DHCP relays? Or maybe they want Vista users to get static IPs?
Anyway, it doesn't seem like anyone is breaking the letter of the standard, as the DHCP requests Vista's sending are technically valid (although the flag isn't set for the specific rationale it exists for), yet the servers/networks/whatever aren't really required to support the flag either (although they "should").
Software should be free as in speech, but if we also get some free beer, all the better.