The internet the way it should be

The following was posted on my blog at Sony's Gamer Advisory Panel website on August 26th of last year. I was told by someone that I should post it elsewhere. So here it is in its original form.

I just finished changing some settings on my router in an effort to make more effective use of my bandwidth when my son and I are both playing our respective games of choice. So, as I do after every change to my home network I fired up the PS3 connection test and made sure that it was still working properly. As I did I started to think about what I was looking at, and what it really meant.

In particular, I was looking at the result of the UPnP and NAT Type tests. They came up as 'Available' and 'Type 2' respectively. Both what I expected to see, and so everything is just fine. Except it isn't. Why is the PS3 even running these tests? Why does it care? Why, over 10 years after IPv6 was defined, are we still living under the limitations of IPv4?

For those of you that don't know, the current version of the numbering and routing system that the internet as we know it runs on is but a few short years from being totally out of addresses to hand out. We would have already run out if not for things such as NAT (Network Address Translation) which allows a single IP address to service a much larger number of systems, with some limitations. Not the least of which is that there is no trivial way to allow systems 'on the outside' to contact one of your systems. That brings me back to UPnP.

UPnP (Univeral Plug and Play) allows another device to configure a NAT router to allow outside connections into a specific address and port for a specific reason (as well as many other nifty and happy things). Until UPnP came along if you wanted to host a game that your friend in another part of the world (or down the street) could play in you had to login to your router, and with sometimes almost intimate knowledge of how the game communicated, configure the router to forward communications to your PC/Game console. Often times this required a lot more knowledge about the router than most people had, and many times the router didn't support it properly anyway. The only other option was to directly connect to the internet, which meant that anyone else trying to use the connection in your home was now quite out of luck.

UPnP to the rescue, yes? Sort of. Sure, new devices and new software are released with support out of the box, but it's an imperfect solution and most certainly not a fix just a tool to prolong the inevitable. Also, it has no way to authenticate the program making the request, so it is possible to use it to remove the pseudo-security that a NAT router provides. IP version 6 to the rescue? It could. With an address space so large that you could easily give an address to every person on the planet so many times over that you would lose count, everything could have it's own publicly routable, worldwide addressable, place on the net. No more worries about how to talk to another device, you just do it. Like things used to be, when the net was new, and tumbleweed was all around... or was that Gunsmoke?

Anyway, where was I? Oh yes, IPv6. Where is it? Why isn't it here? When will it be? I don't know. By now we should be well on our way to changing over to IPv6 only communications, with 4to6 gateways scattered around the net to allow the older devices and services to be accessed until they are replaced with the latest and greatest thing since sliced bread. The operating systems that most of us use on our computers are more than capable of making use of IPv6 right out of the box, or with only minor settings changes. Windows XP just requires turning it on, and it's on and ready to go in Vista as soon as you turn it on. Even Windows 2000 can make use of it with a download from Microsoft's website (as of this post the link for it is dead). Mac OS has had it for a while now, and it is on by default since OS X 10.3. Our Linux and BSD using brothers and sisters have also had it for a while (some longer than others). So why aren't we using it? Because there is no connection available. No one wants to start the ball rolling, or more I should say those that are doing so are in a very small, very exclusive group, and they can only do but so much.

I'm sitting on my bed, using an old Gateway laptop running FreeBSD and connected to my Mac via SSH over an IPv6 connection to prepare this. I listen to live streaming radio from the UK over an IPv6 connection within iTunes. I watch video from around the world, listen to trance and trip-hop from Germany, communicate via IRC with people all over the world all over an IPv6 connection. No thanks to my ISP, but thanks to a small group of people out of Switzerland, and others like them who offer cheap, or free IPv6 tunnels over people's existing IPv4 connections so they can start taking advantage of the still limited resources that are out there.

Limited resources, that's the problem. There is no killer app, no holy grail that will bring the masses in line and make the IPv6 gods shine their love down upon us; but that killer app is there, just waiting. It's sitting next to your TV, beside your VCR, on your kid's dresser. Your game console. Your PS3/360/Wii/etc. There it is, just waiting for unrestricted anywhere to anywhere communications. It wants to let you host a game to people all over the planet. It wants to tune into an internet radio station hosted by one lone guy in his basement along with hundreds, or even thousands of other people while lone basement guy only sends out one stream because you all just subscribe to that one stream. It wants to make a multi-person video conference call with your sister in California, your aunt in Mexico, and your best friend forever that just moved to Australia without any of you having to know anything at all about how it works or worrying about if your NAT device will allow the connection through.

If your console had those features, if you knew it, and knew how much easier it would be to host a server, or make that video call... if everyone had it and knew they had it. Knew what it could do, what it could mean. Then the connection providers (not just your ISP, but your ISP's ISP, and so forth) would have to give it to you, or someone else would. If you could take your laptop out on the road and still had full access to all of your resources at home, not because you knew how to set up a VPN, but because the underlying network just knew how to do it (and mobile IPv6 does) you're ISP would have to give it to you, or someone else would.

Why does your console not have that ability? Why doesn't it get an IPv6 address if one is available? Why doesn't it use Teredo (a zero-configuration tunneling protocol that can, under the right conditions, give a single machine behind a NAT an IPv6 address without the user having to know, or do anything) when a routable IPv6 address isn't available? That question I pose to Sony, to Microsoft, to Nintendo. Sony, remote play is great, being able to access my PS3 from my PSP... but think about how much easier it would be, and how much more useful it could be, if you didn't have to punch a hole through a router, if the router will even let you? Microsoft, your pride and joy (and the bane of technical support reps everywhere) Vista is all ready and revved up to go, why isn't your game console? Oh, and Apple, why doesn't that shiny new iPhone I just bought understand IPv6 when your desktop OS has for years? Cox, Time Warner, Charter, why aren't you already using it? Comcast, why are you only deploying it for internal CMTS to cable modem use? Why does your own IPv6 deployment strategy explicitly say "Deploy IPv6 only where it is absolutely necessary, and nowhere else!" Verizon, Quest, Earthlink, and other DSL providers, why aren't you using this as a selling point over cable, which has you beat in speed in most areas so badly that it's not even funny anymore?

Why?

Why is no one willing to take the first step? Why are we waiting until it's too late; until there becomes an IP black market of sorts? Why are we going to wait until end users don't have public IPs anymore, and their games don't work because their console is behind two, or more NAT devices? Did we not learn anything from the Y2K issue? We waited and waited, and it was almost too late when we did anything. It cost billions to fix, and we knew it was a problem when it was created. IPv4 was never intended to be a production network protocol, it was just a case study that got let loose into the wild, but we've had the solution for a very long time yet we do nothing. Sure, Japan and China are going a long way, but it's still mostly just academic networks that use it. Sure the US government made it mandatory for their networks to be IPv6 capable by June of this year, and they did, but never said anyone had to actually use it.

So here we are, looking at 2010-2011 (some even think 2009) as the end of the available IPv4 address pool, but we sit on our collective butts and wait for the other guy to go first. Two things drive technology. Two things always have. Entertainment and sex. So to The Great IPv6 Experiment I say godspeed to you, and to the gaming and mobile device makers I say, what are you waiting for? If not you, who, if not now, when? Soon your customers will not be able to use your products; why wait until it's too late, do something now.