I think I finally figured out what was wrong with my home network. It’s been acting flakey for the past month or so – client machines would somewhat randomly lose their ability to get to the Internet (even though they could see other computers in my house). There was no rhyme or reason when or why machines would lose connectivity – sometimes they’d be fine for days and sometimes they would drop out after just a few minutes.
First, my network topology: I have a Windows 2003 Server (running SP1) as my edge box with 3 NICs: one connecting to the DSL modem, one connecting to my Wireless router, and one connects to a wired router. I bridge the wireless & wired connections and share the Internet connection via Windows’ ICS.
While I was in Chile, my DSL modem got reset somehow and when I got back home I had to spend some time with Qwest’s customer service to figure out what was wrong. I have a non-standard IP setup at home (specifically, I have a block of static IP addresses, hence my choice to stay with DSL instead of using faster cable Internet access) and Qwest’s tech support didn’t seem able to handle my case for some reason (even though I was using what was a technically supported configuration). They got me mostly up and running, but ever since then – this damned flakiness.
I couldn’t figure out if the modem was mis-configured somehow, or if there was something wrong with my WS03 machine, since it was a fairly complicated setup (nobody ever assumes you’ve got a triple-homed server). Additionally, when the problem with my clients arose, the fix was to either reboot the DSL modem or reboot my WS03 edge box.
Anyway, I finally figured out the problem, and it was a pain in the ass to diagnose. There were two more wrinkles in my network – first, I have a few spare computers, and occasionally I put them directly on the edge and not behind the ICS box (for instance, to host multiplayer game servers like NWN2). Secondly, I have Windows Vista running at home, so for the first time I have IPv6 clients chattering inside my network.
With all these variables, it’s difficult to diagnose the specific problem, and of course the only way to figure out what the problem really is is to isolate each condition and eliminate it as the potential problem.
So here’s what it was: by default the DSL modem assumes that it will hand out DHCP IP addresses to clients behind it since most home users would have a network where that’s most appropriate. When I worked with the DSL tech support staff to reconfigure my modem after its failure while I was in Chile, they failed to point out this setting, so it was left it that way.
Since I have static IP addresses, I specifically didn’t need or want the DSL modem thinking that it was a DHCP server. So when I’d bring up these other edge boxes, they would occasionally, and somewhat randomly, be given the IP address that my WS03 edge box was supposed to have. The reason that this was a problem is that this ended up screwing up the routing table, confusing Internet traffic. The DSL modem would occasionally hand traffic to the wrong machine because it didn’t realize that every machine on the edge of my network was being given a specific, static IP address by me. Once I found this setting and disabled it, everything started working great again. Phew!
Note to self: Qwest tech support is as poor as I was worried that they were. And good news: Windows Vista and IPv6 work great in my environment.