Posts Tagged observation

IPv6: SSDM?

Two of the four keynotes at LCA 2011 referenced the depletion of the IPv4 address space (and I reckon if I looked back through the other two I could find some reference in them as well).  I think there’s a good chance Geoff Huston was lobbying his APNIC colleagues to lodge the “final request” (for the two /8s that triggered the final allocation of the remaining 5, officially exhausting IANA) a week earlier than they did, as it would have made the message of his LCA keynote a bit stronger.  Not that it was a soft message: we went from Vint Cerf the day before, who said “I’m the guy who said that a 32-bit address would be enough, so, sorry ’bout that”, to Geoff Huston saying “Vint Cerf is a professional optimist.  I’m not.”.  But I digress…

I did a bit of playing with IPv6 over the years, but it was too early and too broken when I did (by “too broken” I refer to the immaturity of dual-stack implementations and the lack of anything actually reachable on the IPv6 net).  However, with the bell of IPv4 exhaustion tolling, I had another go.

Freenet6, who now goes alternatively as gogonet or gogo6, was my first point-of-call.  I had looked at Gogo6 most recently, and still had an account.  It was just a matter of deciding whether or not I needed to make a new account (hint: I did) and reconfiguring the gw6c process on my router box.  Easy-as, I had a tunnel — better still, my IPv6-capable systems on the LAN also had connectivity thanks to radvd.  From Firefox (and Safari, and Chrome) on the Mac I could score both 10/10 scores on http://test-ipv6.com!

My joy was short-lived, however.  gw6c was proving to be about as stable as a one-legged tripod, and not only that Gogo6 had changed the address range they allocated me.  That wouldn’t be too bad, except that all my IPv6-capable systems still had the old address and were trying to use that — looks like IPv6 auto-configuration doesn’t un-configure an address that’s no longer valid (at least by default).  I started to look for possible alternatives.

Like many who’ve looked at IPv6 I had come across Hurricane Electric — in the countdown to IPv4 exhaustion I used their iOS app “ByeBye v4″.  They offer free v6-over-v4 tunneling, and the configuration in Gentoo is very simple.  I also get a static allocation of an IPv6 address range that I can see in the web interface.  The only downside I can see is that I had to nominate which of their locations I wanted to terminate my tunnel; they have no presence in Australia, the geographically-nearest location being Singapore.  I went for Los Angeles, thinking that would probably be closest network-wise.  The performance has been quite good, and it has been quite reliable (although I do need to set up some kind of monitoring over the link, since everything that can talk IPv6 is now doing so).

In typical style, after I’d set up a stable tunnel and got everything working, I decided to learn more about what I’d done.  What is IPv6 anyways?  Is there substance to the anecdotes flying around that are saying that “every blade of grass on the planet can have an IPv6 address” and similar?  Well, a 128-bit address provides for an enormous range of addresses.  The ZFS guys are on the same track — ZFS uses 128-bit counters for blocks and inodes, and there have been ridiculous statements made about how much data could theoretically be stored in a filesystem that uses 128-bit block counters.  To quote the Hitchhiker’s Guide to the Galaxy:

Space is big. Really big. You just won’t believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it’s a long way down the road to the chemist’s, but that’s just peanuts to space.

The Guide, The Hitchhiker’s Guide To The Galaxy, Douglas Adams, Pan Books 1979

Substitute IPv6 (or ZFS) for space.  To try and put into context just how big the IPv6 address range is, let’s use an example: the smallest common subnetwork.

When IPv4 was first developed, there were three address classes, named, somewhat unimaginatively, A B and C.  Class A was all the networks from 1.x.x.x to 127.x.x.x, and each had about 16 million addresses.  Class B was all the networks from 128.0.x.x to 191.255.x.x, each network with 65 534 usable addresses.  Class C went from 192.0.0.x to 223.255.255.x, and each had 254 usable addresses.  Other areas, such as 0.x.x.x and the networks after 224.x.x.x, have been reserved.  So, in the early days, the smallest network of hosts you could have was a network of 254 hosts.  After a while IP introduced something called Classless Inter-Domain Routing (CIDR) which meant that the fixed boundaries of the classes were eliminated and it became possible to “subnet” or “supernet” networks — divide or combine the networks to make networks that were just the right size for the number of hosts in the network (and, with careful planning, could be grown or shrunk as plans changed).  With CIDR, since the size of the network was now variable, addresses had to be written with the subnet mask — a format known as “CIDR notation” came into use, where an address would have the number of bits written after the address like this: 192.168.1.42/24.

Fast-forward to today, with IPv6…  IPv4′s CIDR notation is used in IPv6 (mostly because the masks are so huge).  In IPv6, the smallest network that can be allocated is what is called a “/64″.  This means that out of the total 128-bit address range, 64 bits represent what network the address belongs to.  Let’s think about that for a second.  There are 32 bits in an IPv4 address — that means that the entire IPv4 Internet would fit in an IPv6 network with a /96 mask (128-32=96).  But the default smallest IPv6 subnet is /64 — the size of the existing IPv4 Internet squared!

Wait a second though, it gets better…  When I got my account with Gogo6, they offered me up to a /56 mask — that’s a range that covers 256 /64s, or 256 Internet-squareds!  Better still, the Hurricane Electric tunnel-broker account gave me one /64 and one /48Sixty-five thousand networks, each the size of the IPv4 Internet squared! And how much did I pay for any of these allocations?  Nothing!

I can’t help but think that folks are repeating similar mistakes from the early days of IPv4.  A seemingly limitless address range (Vint said that 32 bits would be enough, right?) was given away in vast chunks.  In the early days of IPv4 we had networks with two or three hosts on them using up a Class C because of the limitations of addressing — in IPv6 we have LANs of maybe no more than a hundred or so machines taking up an entire /64 because of the way we designed auto-configuration.  IPv6 implementations now will be characterised not by how well their dual-stack implementations work, or how much more secure transactions have become thanks to the elimination of NAT, but by how much of the addressable range they are wasting.  So, is IPv6 just Same Sh*t, Different Millennium?

Like the early days of IPv4 though, things will surely change as IPv6 matures.  I guess I’m just hoping that the folks in charge are thinking about it, and not just high on the amount of space they have to play with now.  Because one day all those blades of grass will want their IP addresses, and the Internet had better be ready.

Update 16 May 2011: I just listened to Episode 297 of the Security Now program…  Steve Gibson relates some of his experience getting IPv6 allocation from his upstream providers (he says he got a /48).  In describing how much address space that is, he made the same point (about the “wasteful” allocation of IPv6).  At about 44:51, he starts talking about the current “sky is falling” attitude regarding IPv4, and states “you’d think, maybe they’d learn the lesson, and be a little more parsimonious with these IPs…”.  He goes on to give the impression that the 128-bit range of IPv6 is so big that there’s just no need to worry about it.  I hope you’re right, Steve!

Tags: , , , , , ,

On being an early-adopter

I like new things. Many of my friends and colleagues do as well. Some of us are very familiar with “early adopter tax”, the high price of paying for a new release product or program in spite of the knowledge that delaying the purchase would save money. I got to thinking about early-adoption a little while ago, and came to somewhat of an epiphany: nothing to do with shiny gadgets or cool software, either…

Some months ago I was in an IRC channel with a group of folks in the team I was working with at the time. The conversation had come around to green electricity, what deals our respective electricity companies were offering, and whether we were “doing the right thing” and selecting green energy.

I was a nay-sayer. “It’s a scam,” I railed. “Why should I pay extra for green power when the electricity companies know they should be doing that anyway?” The conversation turned to subsidies for installing solar power systems, and soon after that we actually got back to work. :)

Months later I recalled that conversation while listening to a podcast. The presenter was discussing climate change and the need for urgent action, whatever the cost. Which is when it hit me: green energy and it’s friends are like an early-adopter tax for a sustainable future.

In the early 90s, I remember models of the IBM ThinkPad would cost A$12k and more. Twelve THOUSAND dollars! Over time however, the developments in the technology have led to such remarkable improvements that a modern laptop can be had for a fraction of that amount, and projects like OLPC becoming viable. None of it wold have happened, however, if early-adopters had not backed the IBMs, Compaqs, and Toshibas (and the Osbornes before that, bless them) and supported the idea.

In 1978, when Mercedes-Benz first fitted ABS to the S-Class[1], I expect they would have wanted to make it at least an option on all their vehicles. That they didn’t, when the cost of doing so would have been astronomical, ensured that they were able to viably continue research and development on the technology and bring the cost down over time. Together with other car makers who progressively did the same, they ensured that even a modern $10k car can have access to such technology, but again it wouldn’t have happened if not for those S-Class buyers validating the idea and stumping-up the cash.

I’ve realised that businesses don’t have a conscience, and that the current economic model cannot reward a company for “knowing what it should be doing”. In quite a real way, companies need their customers to be their conscience by supporting those products that make a contribution to society, and rejecting products that are damaging or harmful. Longer-term, those companies that “get it” will thrive while those that don’t will fail.

So my consideration on things like green electricity changed to, simply, “can we afford to?”. Knowing that in around three months I’ll be meeting my second child (all going well), and becoming maudlin about the state of the world that a new person is being brought into (as new parents sometimes are wont to do), perhaps the question should be “can we afford NOT to?”…

[1] Other manufacturers fitted ABS systems to cars earlier than 1978, but they seemed to be one-off decisions that were inconsistently implemented or met with commercial failure. Mercedes-Benz, once the decision was made, stuck with it.

Tags: ,

Internet-grade

It’s probably been coined already, and I’m sure it’s not a new realisation. Something happened at my employer recently that’s made me wonder whether the old benchmark of “enterprise-grade” is really relevant any more.

Our internal IM system was closed down for a while this week, and when it was restarted a number of us could not reconnect. It turns out that the IM servers had been set up to lock this particular client out. Nothing unusual about that really, as it has happened in the past with unsupported clients that stress the servers in unexpected ways.

What was different this time is that the client in question is part of a new “integrated communications” offering — a version of our e-mail client that has the IM client built-in. This product, which will be sent to-market quite soon (and therefore we will be expecting our customers to buy), has been locked out of our IM infrastructure. The further irony is that the part of the business that markets this software runs a “use what we make” initiative to get people to use development versions of their software in their day-to-day work.

The IM system in question is marketed as enterprise-grade — and in general it lives up to that, having to support a couple of hundred-thousand users at peak. What got me thinking though is that systems like MSN Messenger (or whatever it’s called now) and Yahoo! IM and AOL IM must be supporting millions of connections at a time with nary a blink.

So (if it wasn’t already) I’m knocking “enterprise-grade” off the top-spot of reliability rankings. Nowadays, the top spot surely goes to “Internet-grade”. I mean, just imagine the amount of traffic that must pour through Google Talk and Skype — these are systems that not only do text chat but voice and video as well — while our IM is still struggling with smilies and changing fonts. The trouble, in the case of my employer, is that the name of this IM service is synonymous with the concept of IM there. It doesn’t matter that even an open system like Jabber could scale better.

In my opinion, our software people need to take a look at what Google has done in taking XMPP/Jabber and creating Google Talk. Either that or the company needs to do what another prominent software company did and actually use one of the public IM systems (I cant remember which one they use, either YIM or AIM) as the corporate IM platform.

I feel for the developers of the new client, who I’m sure would love to have a stable environment to do a large-scale test on. Oh well.

Tags: