I recently bought my wife a new computer as the motherboard on my old one died. We decided to take the plunge and go the route of Windows 7 and bypass Vista. We actually like 7 for the most part, but today we ran into our first problem. Had I not had another computer with Internet access, I probably would not have been able to figure out the problem.
First thing to understand is that a lot of the networking in 7 has been updated since XP. It actually shares the same base as Vista and Server 2008. Some of these features are overkill, but more importantly, dumb. And I mean that in the literal sense, as in so dumb I can’t tell that you manually set my ip settings, because I am hard coded to heartbeat with Microsoft servers for valid connectivity to the Internet. One feature they updated was the TCP IP Stack for native IPv4 and IPv6 connectivity. This wouldn’t be an issues except that my router, does not speak IPv6.
Issue #1: IPv6 takes priority over IPv4.
If you don’t have or neeed IPv6, DISABLE IT! There is also a regedit fix to disable its “new” rfc settings to prioritize based on best address available. (Its interesting to know that RFC 3484 is a Microsoft rfc written in 2003) To disable this “feature” that they added to Vista and later OS’s, see here: http://support.microsoft.com/kb/968920
Issue #2: The heartbeat check.
Since Vista came out, there are some new services and settings that can cause a major headache. This one reared its ugly head today as well. While connecting to your router or gateway for DHCP information, Windows also tries to contact a certain Microsoft website. If it can’t reach it, your adapter status says “no Internet conenctivity” for IPv4 and 6. On top of that, you get assigned a 169.254.x.x address, which basically means you can’t reach your DHCP server. Total Bullshit! Especially when I MANUALLY set an address in the adapter settings to override this, it accepts all the settings, but then says can’;t connect to the Internet becuase of NO VALID DNS SERVER. This is also total bullshit. What happened was the computer could not reach Microsoft’s heartbeat server for the NlaSvc. What I did was set up apache on my machine, then point my wifes computer to my ip address in her HOSTS file for the site of “www.msftncsi.com”. (I found this address in the event viewer under “manage” when right clicking “my computer”). I then loaded up wireshark to see what the problem was. Her computer WAS most definately working to send DHCP requests, as well as trying to reach this Microsoft site for file ncis.txt. I noticed that I could not get to this site in XP today while opening it in my browser. So, Microsofts (IIS 7.0) server was not reachable. Hmm, that means, her computer could not verify Internet connectivity with the site, so Microsh!t Winblows 7 basically decided to say “Fuck you, if I can’t reach this site, then you are not allowed to reach any site! Have a nice day!”. What I ended up doing was create that file on my end, then had her disconnect and reconnect, and low and behold, she has internet conenctivity.
XD
Now, I googled this little “feature”, and found that it too can be disabled with a quick little regedit. Scroll down to the bottom of http://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx and have a look. So, now I have disabled two BUILT IN features in Windows 7, just in order to resolve connectivity issues with her PC, so how in the fuck was I supposed to figure that out if I didn’t have Internet access from another machine? Thank you Microsoft for another fun day, it only took me 6 hours of my day to figure this shit out.
/"\
|\./|
| |
| |
|>~<|
| |
/'\| |/'\..
/~\| | | | \
| =[@]= | | \
| | | | | \
| ~ ~ ~ ~ |` )
| /
\ /
\ /
\ _____ /
|--//''`\--|
| (( +==)) |
|--\_|_//--|

