Why the ideal IPv4 to IPv6 transition is impossible

March 21, 2009

The idealized and ideal IPv4 to IPv6 transition would work something like this: if you take a new machine and give it an IPv4 address, it can only talk to other machines with IPv4 addresses. But if you take a new machine and give it an IPv6 address, it can talk to machines with IPv6 addresses and also machines with IPv4 addresses. Then you could progressively give all your new machines IPv6 addresses, and eventually stop caring much about IPv4.

(Necessarily, any conversation with an IPv4-only machine has to be done with IPv4.)

Unfortunately, this idealized transition is impossible as far as I can see, and not because the IPv6 people 'fumbled' the design of the protocol by not making it backwards compatible with IPv4 this way; the backwards compatibility is itself impossible in general.

The fundamental problem is that each endpoint of an IPv4 conversation has to have a (unique) IPv4 address; when you talk to an IPv4 machine, it needs to know your IPv4 address so it can send packets back to you. What unique IPv4 address does an arbitrary IPv6 machine have?

You cannot make a one to one mapping of unrestricted IPv6 addresses to IPv4 addresses because there are way more IPv6 addresses than there are IPv4 addresses; that is one of the big attractions of IPv6. If you restrict the available IPv6 addresses so that you can map them to IPv4 addresses, you're stuck with the limits of the IPv4 address space, limits that everyone wants to get away from by moving to IPv6.

You can skip requiring a one to one mapping between random IPv6 addresses and IPv4 addresses but then you need some sort of address translation box between the two ends of the conversation, with all of the usual problems of address translation. Besides, once you introduce things like translation boxes you do not really have a nice transition any more; what you have is awkward backwards compatibility.

(There are some things that IPv6 could have done to potentially make a transition easier, but that's for another entry.)

Comments on this page:

From at 2009-03-21 16:26:06:

It's not as insurmountable as people would have you believe, but you do have to do some funky stuff to get it to work. I used to work for a UK ISP that was one of the earliest adopters of full IPv6 (2002) because we had a customer that required it. The network manager had to do all kinds of tricks and stuff to implement it but did so successfully.

Whilst I was working for the company we made a complete internal change to IPv6 (apart from sysadmin for various legacy reasons), using some IPv6/IPv4 tunneling method to handle sites that didn't provide IPv6. We discovered that a surprising number of mainstream sites are silently already providing IPv6 connectivity.

He did a presentation to UKNOF which can be found here: http://www.uknof.org.uk/uknof8/Freedman-IPv6.pdf

I'm not particularly up with the details, I was purely sysadmin and we had a dedicated networks team who handled it all. Dave might be able to offer advice or suggestions if you drop him an e-mail (david dot freedman at uk dot clara dot net)

From at 2009-03-27 05:39:10:

Kind of OT here, but I like to share my experiences.

The main point is: you really have to take regional differences into account before making judgments about the flaws in the IPv6-transitions.

From where I come from, the IPv4/IPv6 dual stack have worked beautifully ever since native IPv6 connections have been offered to consumers (without any extra fee) by few local ISPs. I mean: it really works, and even in this troublesome consumer broadband market segment! With proper stacks (I am thinking KAME here) and IPv6-ready applications, I dare the claim that the famous average Joes wouldn't see any difference whatsoever if their local ISPs would make additional IPv6-routing default.

I think the technical problems are very minor compared to monetary and cultural reasons. Maybe one should examine cases where the transition has worked very well instead of the problematic cases?

Japan, anyone?

- j.

By cks at 2009-03-27 11:45:10:

I think that dual-stack has always worked well (provided that you could get IPv6 connectivity). But the interesting thing, and the problem, is trying to live in an IPv6 only world.

(With that said, there are a lot of places that are not really offering even dual-stack connectivity; you get IPv4 only. That, as they say, is a real problem.)

Written on 21 March 2009.
« Why 'sender stores message' schemes won't cure phish spams
An outline of a possibly easier IPv4 to IPv6 transition »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sat Mar 21 00:36:28 2009
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.