The case of the blocked web pages

LES Tyre

One of my fears when I set up the network in Tyre last year was that I would be called out for emergency repair trips. It’s an hour and quarter each way on a good day, double that if you hit the traffic wrong. And, for those who don’t know Lebanese traffic, hitting it wrong often involves an unhealthy rise in blood pressure.

Anyhow, I had mentally prepared for, at worst, one callout a month. Twelve months later, not one single callout. No emergencies. No “we need you here now” phone calls. The few times there were problems, I’d talk Dave (their resident computer expert) through them over the phone or get him to set up a reverse ssh tunnel so I could fix them from here.

Last week, that twelve month streak was finally broken. It started off with a phone call.

“Jonathan, none of our computers can get on the web. I can ssh with no problems, IMAP and POP3 work fine, but web pages only load sporadically, if at all.”

I talked Dave through checking the school’s squid proxy and then checked what happened when they bypassed their proxy. Still nothing.

“Ok, Dave, it’s obviously a problem with your ISP. Call them up and get them to fix it.”

The next day, Dave calls me again.

“The guy from the ISP was just here. He had no problems at all until he put his laptop behind the proxy. So he says it’s the proxy.”

Ok, that’s reasonable enough. Just to test, I have Dave bypass the proxy with his laptop (running Ubuntu), and, sure enough, the web works fine. For a couple of minutes. And then, again, nothing.

“Dave, if we’re bypassing the proxy, and you’re still not getting any web pages, it must be the ISP. Here’s what we’re going to do. We’re going to completely shut the proxy down and bypass it for everyone. That’s not going to fix the problem, but at least they can’t blame the proxy.”

The next day, I get a call again. “Jonathan, the technician came, and it’s definitely not them. He connected his laptop straight to the ISP using PPPoE, bypassing the router, and everything worked. He then went through the router, and, again, everything worked. He browsed for 15 minutes, with no problems at all. And here’s the crazy thing. All of the Macs and Windows machines are working fine. It’s only the Linux machines that aren’t working.

Well, that sucks. The school runs Fedora on all of its desktops, the servers run CentOS, and Dave runs Ubuntu on his computer. And none of them can access the web.

At this point, I’m out of ideas, so I get in my car and head on down to Tyre. Of course, Dave has a meeting up here in Beirut, but he clears everything with the school secretary, and I’m given access to the router.

The first thing I do is plug my laptop into the network and start browsing the web. Five minutes later, when Google has still failed to load, I finally accept that, yes, there is actually a problem browsing the web.

My next step is to try swapping in another router. Even after setting the username, password, and MAC address, the new router just won’t connect. I remember what Dave said about the technician plugging straight into Internet ethernet cable and making the connection using PPPoE. So I plug my laptop straight into the cable, setup PPPoE in NetworkManager (which is insanely easy), and, boom, I’m in, bypassing the router.

I check my emails (using Evolution, connecting over IMAP). Looks great. I open Google. Not so great. I then test a Windows computer that’s sitting on the desk. Instant web access.

At this point, a bulb finally lights in my brain. Most of the ISPs in this country using transparent caching proxies, as bandwidth is expensive for them too. Could this have to do with their ISP’s proxy?

I set up my computer to use our server in the States as a proxy. All of a sudden, my web access is working perfectly. It’s the ISP’s proxy. There’s obviously something wrong with how it’s parsing any requests that come from Linux computers.

I then realize that the Mac and Windows computers started working after we shut down the school’s proxy… which was running under Linux. Ouch.

When Dave returns from Beirut, we sit down and talk through the problem. The first step is for me to turn the school proxy back on, and set it to use the US server as a parent proxy. Now, all web traffic is getting routed through the US server, which may not be efficient, but at least works. The next step is for the school to switch ISPs, and we’re still waiting on that process to finish.

As for me, I’m still a bit shell shocked. We live in 2010 and an ISP is using a transparent proxy solution that doesn’t work with Linux? My best guess is that we’re looking at some weirdness in how it’s parsing TCP packets… but how?

If anyone ever works out what the explanation is, I’d sure love to hear it.

Update (10/02/2010): A big thank you to all who offered suggestions in the comments. We went down to Tyre for a visit today, and while we were down there, I switched the school’s proxy back to a direct connection to the web so I could test some of the suggestions. Of course, the web started working correctly immediately. Obviously the ISP fixed whatever it was that they broke (which is good), but they haven’t explained what went wrong to the school (which isn’t so good).

Anyhow, if I come up against this again, I’ll at least have some things to try. Thanks again.

The return of Mr. Sparky

Power strip

As I mentioned in a previous post, I am most definitely not an electrician. Take a close look at the picture on the right. This is a normal power strip. Sorry, this was a normal power strip. If you look closely, you’ll notice what looks like a black line running along it, with occasional ruptures and what look like silver beads coming out of it. There’s a story behind that line…

So I’m finally finishing up the computer room in the mountains, and the last problem to deal with is the computer room UPS’s. They’ve been there for years and need to be replaced. The crazy thing is that it’s cheaper to buy several small UPS’s (one for every two computers) than a couple of large UPS’s. So we get a ten small UPS’s and put them on top of every other computer in the room. I then grab the plugs from the three sections of the computer room.

Now, at this point I should clarify that I did not design the computer room, and it wasn’t my choice to have the power leads for all three sections come out in one place. However, I am the idiot who chooses to plug the three leads into a single power strip. A single thin-cabled power strip. Specifically the single thin-cabled power strip pictured above. I then plug the power strip into the wall. I turn to my wife (who is helping, that’s love for you) and say, “Ok, turn on a few of the computers.” All of the monitors (most of which are CRTs) are already on. As the first computer starts booting, it happens…

*BZRT*

*fizzle* *fizzle*

Before my eyes, the power strip starts smoking! I immediately reach in to pull it out of the wall. A spark shoots out right next to my hand, and then an open flame that distinctly resembles a flame-thrower. I change my mind and pull my hand back.

By this point smoke is pouring out the whole length of the power strip’s cable. And I’m praying that it burns itself out before shorting out the school’s (and possibly the village’s) electricity supply. Finally, the fizzling dies away and I reach in and pull out the strip. The entire wire has been burned through, and there are ruptures every foot or so, with beaded metal that used to be the wire.

So, I go and grab two more power strips. One thick one for the UPS’s and one thinner one for the monitors. I plug them into the wall, and…we have power! And no sparks. And no fizzles.

The computer room

So, the school’s computer room is now finished. Twenty-two computers, eleven Core 2 Duo’s with 15″ widescreen LCDs and eleven mishmash Celerons with CRTs that look like they were stolen from the ark. But all of them are running Fedora 13 with gnome-shell, and all in all, the room looks good. And now I’m back to my normal job which doesn’t include messing around with electricity (at least, beyond the point of plugging my laptop in).

I am not an electrician. I most definitely do not wish to be an electrician.