I FOUND OUR NETWORKING PROBLEM. MOTHERFUCKING iTUNES.

Way back in the Stone Age, I worked in the IT department at my alma mater. Students would call into the helpdesk if they couldn't figure out how to get connected up to the internet. Most people could be walked through the webform over the phone, but if they couldn't or something was legit broken, we had a beleaguered hardware tech who could go down and do it for them in person.

One day, Apple came out with a brand-new iMac model. I think it was the one we used to call the iStalk -- the flat panel ones with all the brains packed into the little round base. The year they came out with that one, we suddenly started the semester with these clusters of panicked calls, a whole bunch of people in one section of one hallway of one dorm, who couldn't get connected up to the internet no matter what they did. We walked them through the webform, and their accounts were registered to the right rooms, but they weren't showing up on our network map, and ipconfig came back with these truly bizarre network configurations that they just couldn't seem to shake.

Eventually we figured out the correct fix for this. We sent the hardware tech down, knocked on all the doors in the wing, located the person who had brought their brand-new iStalk back to school with them, and euthanized its integrated AirPort router, thus restoring order to the universe.

What was happening was this: Those new iStalks all shipped configured for easy home networking. It was intended to be drool-proof software for people who weren't interested enough in networking to have bought their own wifi router and wired stuff up already. You turned the thing on, and it immediately started shouting HELLO? HELLOOOOO? out into the void. If there were no other computers in the house, it was fine; there was just no answer, and after shouting a couple of times at bootup it settled down. If all the other computers in the house were Macs, it was also fine; the other Macs shouted HELLO? back, and they found each other, and after some more shouting they made friends and started sharing all the media folders among themselves.

The problem was that the integrated AirPort was too stupid or too oblivious to notice if the other computers weren't Macs -- one wonders if the Apple people were mystified at the idea that a Mac user would ever buy a computer that ran anything else -- or if there was already a wifi router in the area. There were routers in the dorms already, but at short ranges the iStalk tranceiver was loud enough to drown out the school network, and it was unfortunately generous with its IP addresses. Any time it made contact with a thing that might have been another computer, it would immediately turn into a friendly but somewhat dim teenage girl, and go OMIGOD DO YOU WANT MY PHONE NUMBER? I WILL GIVE YOU MY PHONE NUMBER! WE CAN TEXT EACH OTHER ALL THE TIME AND BESTIES FOREVAR! and the other computer would go, uh, okay? and take the IP address from the loud shouty thing to make it shut up. So a bunch of nearby computers would end up talking to the iMac, which wasn't saying anything useful, instead of to the university routers, where the internet was. And since the iMac wasn't talking to the university network either, nobody had a net connection, and we got a load of calls complaining that they couldn't get their email or see web pages or, God forbid, play CounterStrike.

For those of you who speak IT, what was happening was that the AirPort autocratically declared itself DHCP Server of the ENTIRE WORLD, which was preventing any of the computers it was shouting bossily at from even getting to the DHCP server the school ran, thus preventing them from getting IPs on the network that hooked to the outside world. It was patterned on the old AppleTalk network model, where whichever Mac on the LAN was booted up first could take the boss spot and manage all the shares and network printers without having to consult the others. The decentralization worked well in a hard-wired office, because it meant that no one computer always had to be on in order to use the printers, and it was okay in a suburban house where the neighbor's computers were unlikely to be close enough to be shouted at, but it's a terrible idea in a dorm where you're running a smallish hierarchical network segment that has to funnel all internet connections through a central manager.

The network I have set up here at the apartment consists of my Win7 laptop, my Ubuntu 12 laptop, Jazmin's new Win8 laptop, and Jazmin's old Win7 Acer with the busted screen, all talking to the Linksys router that in turn talks to the cable modem. Some update of iTunes, or of the QuickTime player it keeps trying to foist on us, installed a piece of software called Bonjour. Bonjour is meant to find smart peripherals, like iPods and wifi printers, and give them their own tiny network so that they'll talk to one specific computer, while that computer is still on the house network that has the internet connection.

Except Bonjour apparently has no fucking volume control, or sense of self-restraint, or even a memory longer than your average goldfish. Any time anyone in the house woke up any of the network devices -- laptops, Kindles, tablets, phones with the wifi on, anything connected -- every copy of Bonjour on every active Windows computer would leap to attention and begin bellowing HELLO? HELLOOOOOO? ARE YOU MY FRIEND? and wouldn't stop if it got no answer. If one laptop was home and awake, the internets were mostly fine. If one personal laptop and the Acer were awake, it was kinda mostly fine; the Acer hasn't had iTunes updated in forever, because it's used almost exclusively for Winamp, VLC, and streaming Flash/Silverlight, so they wouldn't shout over each other, but the updated laptop would occasionally deafen itself and lose track of the router for a bit. If Jazmin and I were both watching Netflix in the living room with Facebook up, after about a minute and a half, one of us would be asking, "Is your internet working?" because suddenly everything would get stuck at Resolving host... for all eternity.

My best guess was that it was a problem with DNS resolution, so I changed everyone over to OpenDNS (208.67.222.222 alt 208.67.220.220) or Google DNS (8.8.8.8 alt 8.8.4.4). This happens to be faster than Comcast, so more requests got through before they timed out, but things still broke and complained about IP conflicts if we had enough computers awake at one time. I tried manually forcing IP addresses on our internal network, but frankly I don't even know if you can do this on phones and tablets, and it was of limited help. The problem wasn't actually the IP addresses the DHCP server was setting for the computers; the problem was that every iTunes copy was trying to be its own DHCP server for its own subnet and was incapable of shutting up long enough for the grownups to do their jobs.

I could have fixed this much faster if I had been aware of Bonjour and what it did, but I wasn't -- iTunes never tells you that your computer is trying to collect up its own group of minions all the time. iTunes has never gotten along with any computer I have ever owned (and that includes the Macbooks I've borrowed from employers) and frankly I consider it a good night if it doesn't shoot itself fatally in the foot while updating podcasts. I can't even get it to store media in a directory other than the default one on C:\ without spitting up all over everything. To the best of my recollection, Bonjour was never given its own checkbox in any of the update screens I was given. I consider this a violation on par with the Sony rootkit debacle because MY NETWORK, MY RULES, you presumptuous bastards.

Comments