Hulu down, sadness ensuing

Hulu appears to be down.  Or, rather, it looks like Akamai might be screwing up their dns.  No A record for hulu == bad for business and for my viewing pleasure.  :(

Hopefully they’ve got some black box monitoring that doesn’t rely on their own nameservers.

rwoodrum@slard:~$ dig www.hulu.com
.
; <<>> DiG 9.5.0-P2 <<>> www.hulu.com
;; global options: printcmd
;; Got answer:
;; -<<HEADER>>- opcode: QUERY, status: NXDOMAIN, id: 2366
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
.
;; QUESTION SECTION:
;www.hulu.com. IN A
.
;; AUTHORITY SECTION:
hulu.com. 418 IN SOA use9.akam.net. dnsadmin.hulu.com. 2008102102 10800 3600 604800 900
.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Oct 21 19:20:41 2008
;; MSG SIZE rcvd: 88


This guy
is as sad as I am right now. :_(

Update: Yay, our friendly A record is back again.  Downtime?  ~10 minutes.

Another S3 outage

Amazon’s Simple Storage Service experienced a fairly hefty outage earlier this year in February and it looks like they’re up to it again as I write this post. As seen on the previous link, the S3 service has some great rates. It also happens to have an SLA which some people might be taking advantage of this time around.

The interesting thing is how I discovered this on a Sunday afternoon while doing some routine web browsing. Turns out I was shopping on a fairly big retailer’s website (officemax.com) only to find that the pages weren’t loading due to something hanging on a third party interaction with sb.sellpoint.com. Hmmm:

rwoodrum@slard:~$ host sb.sellpoint.net
sb.sellpoint.net        CNAME   sb.sellpoint.net.s3.amazonaws.com
sb.sellpoint.net.s3.amazonaws.com       CNAME   s3-directional-w.amazonaws.com
s3-directional-w.amazonaws.com  CNAME   s3-2-w.amazonaws.com
s3-2-w.amazonaws.com    A       207.171.183.117

Interesting. So I went to my old job’s website www.avvo.com which, like many other web 2.0 companies, find the S3 service a good compromise to a complex media distribution mechanism. Having worked there and all, I also happened to know that they’re using S3 for media storage. No secret there. Sure enough, no images load causing the site to suffer on both performance and aesthetic fronts. Lame, Amazon, lame.

Somehow or another I noticed some time ago that Woot! was also using S3 for hosting their product images. That doesn’t appear to be the case anymore, however. Probably a wise move on their part.

According to the external AWS Service Health Dashboard, it looks like this problem has been going on for over 4 hours. That’s a pretty freakin’ long time. The only service I know which has outages longer than that in their production systems is aspone.com; a garbage third party exchange provider. Now, in no way shape or form am I comparing S3 (or any other AWS service for that matter) to a managed Exchange provider - that’d be a grave injustice - AWS is orders of magnitude more reliable.

I’ve heard from quite a few people previously employed by Amazon that their infrastructure reliability leaves much to be desired. There must be some grain of truth to all that insider knowledge and another S3 outage in the span of a few months is a pretty reliable indicator. More reliable than the service, anyway.

So sorry, OfficeMax, Amazon has prevented me from continuing to shop for tables on your site. :(

Update:
Official downtime? 09:05 PDT - 17:12 PDT - 8 hours 7 minutes

iPhone laptop internet access

Long time no post. I’ve been in the process of both moving and changing jobs, so I’ve definitely neglected the blog. The move, however, has left me without Internet access (akin to being without oxygen) and so I’ve been surviving on my iPhone. Of course, given that my iPhone functions as yet another *nix box to me, I set out to get my laptop some internet by way of my iPhone. If I’m breaking terms of agreement here, then this is all just pretend.

This post is for linux users. It doesn’t explain how to do it on your crappy windows box, although if you’re at all savvy, you should be able to figure it out in the same way. Or just google around for keywords like iphone tether laptop.

In my scenario, I’ve got a linux laptop running Debian/sid and a jail-freed iPhone. There are quite a few howto’s already out there, such as this one which I followed for awhile… until I thought I found a less complicated way. There was also this one, but again, I thought it seemed easier to do it my way. Not saying, of course, that my way is the best way… this is just how I did it. I also stumbled upon a couple of gotchas that I had not seen outlined elsewhere, so read on for more awesomeness.

I use the Cydia package installer by Jay Freeman on my iPhone because it’s gloriously built on top of one of my favorite tools, APT. He has made the keen move of not reinventing the wheel here, and instead improving it. Good design principles. Via Cydia, I have simply installed ssh on my iPhone.

So the steps of setting up your little iPhone <-> laptop network will be:

First, let’s create the ad-hoc wireless network. On your linux laptop, assuming you’ve ever used your wireless before, you should have ‘iwconfig’ installed. The goal here is to create an ad-hoc network that your iPhone will be able to join. You can do so with something similar to the following:

In this example, my wireless interface is ‘wlan0′.

rwoodrum@shamp:~$ sudo iwconfig wlan0 mode ad-hoc
rwoodrum@shamp:~$ sudo iwconfig wlan0 essid "iphone_adhoc"
rwoodrum@shamp:~$ sudo ifconfig wlan0 up
rwoodrum@shamp:~$ sudo iwconfig
lo        no wireless extensions.

eth2      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11g  ESSID:"iphone_adhoc"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 8A:B3:63:C0:DB:B2
          Tx-Power=27 dBm
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

So you can see above that my wireless card is configured in ad-hoc mode and that the ssid is “iphone_adhoc”.

Now if you search for wireless networks with your iPhone, you should see the “iphone_adhoc” network in your network list under Settings -> Wi-Fi. Choose to join the network by tapping it. Note that by joining an ad-hoc network, your iPhone will retain its network configuration on the Edge network (interface ip1) and it will retain a default route to the Internet based on the Edge network. This is important.

Now you need to get them on the same network. If you elect to use the link-local addresses in the 169.254/16 network, just note the address on your iPhone and subsequently configure your laptop to be on the same network. For example, if your iPhone comes up with address 169.254.105.88/16, you could put your laptop as 169.254.105.89/16. Alternatively, you could go the extra step to put them on a different network of your choosing. Because extra steps are for the uncool, I’ll just let the iPhone choose it’s address in the 169.254/16 network and put my laptop on the same network like this:

sudo ifconfig wlan0 169.254.105.89 netmask 255.255.0.0

You should now be able to ping your iPhone from your laptop.

At this point, I’ll bring up gotcha #1. When your iPhone auto-locks, your connection will die. From this point out, it’s probably a lot easier to simply disable this. To do so, go under Settings -> General -> Auto-Lock and change it to “Never.” Just don’t forget to change it back.

Now, we need to ssh into the iPhone using it as a socks proxy. This will allow the connections of our laptop to go through the iPhone. To establish this connection, ssh to your iPhone using something like the following. In my example, I’m simply ssh’ing as the ‘mobile’ user (the default user on the iPhone):

rwoodrum@shamp$ ssh -f -N -D 9999 mobile@169.254.105.88

This will put ssh into the background listening on tcp/9999. If a connection is received, it will forward it over the secure connection and subsequently use the application level protocol to determine where to connect from there. Before you can use this, however, you should configure your Iceweasel/Firefox to shunt DNS lookups over this channel as well. You do this by editing the ‘network.proxy.socks_remote_dns’ value to ‘true’ under ‘about:config’ in the browser.

You must also configure your socks proxy under Edit -> Preferences -> Advanced tab -> Settings button to point to your new ssh socks proxy. To do this, enter under ‘SOCKS Host’ the value 127.0.0.1 with port 9999. You must ensure that no other proxy values exist. All others must be blank.

Now, on your laptop, modify the routing table to add the iPhone as the default route to the Internet. If my iPhone has an address of 169.254.105.88, I would do this like so:

rwoodrum@shamp$ sudo route add -net 0.0.0.0/0 gw 169.254.105.88

You’re almost done.

You may need to shutdown Iceweasel/Firefox entirely just to make sure all the application level changes take effect.

You should now be able to fire up your browser and hit something like google.com. It’ll be slow… but it’ll work.

One thing you may experience is that during your internet browsing, Iceweasel/Firefox will suddenly complain about timeouts. You may also notice that the Edge icon on your iPhone has changed to a wireless connection. The Edge connection seems to periodically “shut down” when not used directly from the iPhone. To remedy this situation, I simply fired up the “weather” button and periodically switched it from city to city so the update would take place. This fires up the Edge connection from the iPhone itself and seems to breathe life back into the connection via the laptop. Not ideal… but at the time of this writing, it’s what worked.  Alternatively from a shell on the phone you could just start a ping or something.  Given limited bandwidth, however, you may want to increase to every x number of seconds or something.

Comments appreciated! I’d be happy to help anyone in need with a beloved iPhone and no beloved Internet!

Network Solutions Hijacks Domains

I dislike Network Solutions. I dislike them because their website is sub-par in terms of usability and because they charge ludicrous amounts of money to register domains. Not until but a few moments ago, however, did my ire for Network Solutions aspire to new heights.

Before, I just thought they were kinda crappy and overpriced. Now I place them in the category of down-right Despicable Internet Neighbors. Why this sudden angst? I’ll tell you why…

Network Solutions will hijack your domain and hold it hostage. Do not query for domain names using the Network Solution’s website! They will immediately register the domain for a period of four days, according to this blog post, and force you to purchase it only from Network Solutions. For a whopping $35.00 for one year.

Just watch:

rwoodrum@slard:~$ whois networksolutionsisshit.comWhois Server Version 2.0
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
No match for "NETWORKSOLUTIONSISSHIT.COM".
>>> Last update of whois database: Thu, 21 Feb 2008 00:53:32 UTC <<<

Now I scamper off and use the Network Solutions Is Shit website to see if my domain is available. Within about a minute, what do I see? Take a gander:

   Domain Name: NETWORKSOLUTIONSISSHIT.COM
   Registrar: NETWORK SOLUTIONS, LLC.
   Whois Server: whois.networksolutions.com
   Referral URL: http://www.networksolutions.com
   Name Server: NS1.RESERVEDDOMAINNAME.COM
   Name Server: NS2.RESERVEDDOMAINNAME.COM
   Status: clientHold
   Updated Date: 20-feb-2008
   Creation Date: 20-feb-2008
   Expiration Date: 20-feb-2009>>> Last update of whois database: Thu, 21 Feb 2008 00:57:38 UTC <<<

Wow. Network Solutions is seriously shit. Now I go to GoDaddy, a real registrar, and the domain is not available. Nope, it has been sealed down with a $35.00 price tag.

Dear Network Solutions,

I will make sure no one I know is ever your customer. You have wronged the Internet and now you shall pay.

Update: After reading this comment on the domaintools.com blog, I decided to give Network Solutions a call. Here’s the transcript:

—14 minutes 39 seconds on hold—

14 minutes 39 seconds later…

I spoke with Amanda. The conversation went like this:

Amanda: Thank you for calling network solutions. Can I have your domain name please?

rwoodrum: Well I’m trying to register a domain but you guys placed a hold on it when I looked it up on your site.

Amanda: Let me take that off of there for you.

rwoodrum: [amazed she knew exactly what I was talking about and was doing exactly what I wanted]

Amanda: I assume you don’t want to register the domain with us?

rwoodrum: uhhh, no

Amanda: That should come off in the next few minutes but it could take up to 24 hours.

—2 minutes later—

Domain freed.

I told my story there as well.