Yesterday morning our Internet connection became flaky, then stopped. I spent some time over lunch getting it working again. It was a bit frustrating, and the closest I can figure is that it had something to do with the old hardware I use for everything. This web server is running on an AMD K6, 333Mhz machine. Yeah. But it does OK, almost all the time. With all that this machine does, which is much more than serving a blog site, I hardly ever have to reboot it. Linux tends to be that way. When problems arise, they more often than not are caused by flaky hardware. I’ve been blessed to have few such problems with this machine.
How liberating it is to be using Linux. Sure, there are still problems and challenges; there always are problems, even with Apple products. But at least with Linux (as opposed, especially, to Windows), I didn’t pay good money to buy my problems. And beside that, there are fewer problems and more possibilities.
Enough about that. It seemed that my DSL peer wasn’t responding to my pppoe configuration requests. I think rather that my NIC was somehow munging the requests or not hearing the responses. In this case, I did a reboot to reinitialize the NIC (I maybe could have just reloaded its kernel driver module, but that can be tricky when performing these things via SSH to a headless machine), and all was well.
Except… I had tried eliminating the MTU setting on my ppp and pppoe daemons, to see if it would allow me to get pppoe config responses from the peer. I hadn’t restored the original setting. So when the network came back online, there was some really odd behavior. Until I finally remembered the MTU change, it was quite frustrating. MTU stands, I think, for Maximum Transmission Unit, which is a kind of throttle on the size of data packets that come in through the DSL link. It’s useful and even necessary when those data packets have to carry some extra information just to make part of the system work properly.
My home network is masqueraded through this machine. (It’s a bit more complicated, but the rest is not pertinent.) That means this machine handles all Internet traffic for the computers at home. The weird thing was that most web sites wouldn’t fully load. The browser would make the initial connection, and then sit there waiting for more data. However, Google’s web sites worked! How’s that for strange? Apparently, Google’s web servers are all configured to use a smaller MTU than most of the Internet. Other kinds of traffic worked, too, such as SSH to various servers on the web. Masquerading was working (though I often wondered how well). But apparently those problem web sites were sending data packets too large for our masquerading setup to handle, so the return packets weren’t making it through.
I was up too late trying to get things working, and finally shut everything down. I’m sorry if having the Chicken offline caused any problems. But maybe my little experience here will help someone, or maybe I’ll remember it for next time!