Arnt Gulbrandsen
About meAbout this blog

Trading IPv4 addresses

People keep saying blah about how IPv4 can go on even if there are no free addresses, they'll just be traded on a free market.

So. I don't think so.

Either, the blocks to be traded will primarily be large (the kind commonly routed today), or primarily be small (the kind commonly handed to end-users). I'll argue each separately.

Large blocks (say /23 and larger) are generally owned by ISPs and other organisations who tend to need more addresses over time, not fewer. Some surely will have spare addresses, but many? At this time, IPv4 usage grows by a half-million addresses per day, that's 10,000 /23 blocks. If large-block trading is to cover 10% of that, a thousand organizations need to sell parts of their address space per day. After a few months, almost everyone who owns more than a single /23 must have sold one of their blocks, or else trading stops for lack of supply. RAA.

Small blocks can be freed up for sale much more easily (even I could easily free up eight addresses if I really wanted to), but the routing system can't handle the resulting growth.

Right now there are 320,000 routes in the global routing table, and it grows at 1% per month. If 10% of the added addresses added daily are to be traded as small blocks (say an equal mix of /26, /27, /28 and /29) that's about 3,000 trades per day, so 1% growth per day. Very quickly, ISPs around the world notice that their routers need 1% more RAM per day, add more route filtering to compensate, and so the traded addresses become unreachable from most of the world. RAA.

This doesn't imply that there will be no trading. Just that there will be very little. Most of the people who need a new address will have to make do with IPv6 only, so IPv6 will quickly become the common case when a new system is set up. For good or bad.


Building a balanced binary tree from sorted input in O(n)

Writing about Knuth's literate programming book reminded me about when I met him (at a conference) and asked why the following algorithm wasn't in TAOCP. He grasped the algorithm from a ten-second description, and said it wasn't there because he didn't know about it. Good reason.

My TA at university (when I invented it for an exercise) wasn't aware of it either, but unlike Knuth, my TA didn't understand it. And I hadn't commented the code at all. Sigh.

Here are some words in sorted order: (more…)


Virtualbox, AnyDVD and read errors

If AnyDVD pops up a big warning dialog about read errors (suggesting a region-free fimware from, cleaning the DVD, etc), and you're using it inside Virtualbox, then the correct solution is: (more…)


I learn Puppet

I need to use Puppet, a system to configure linux boxes (add the right users, install and configure the right services, make sure the right things are running and the wrong things not). Puppet seems good, better than cfengine.

So I read the existing configuration, which seemed to make sense but left a lot of open questions, read the the documentation, felt little wiser, and bought a book (Pulling strings with Puppet by James Turnbull) and (more…)