Wandering Thoughts archives

2009-03-21

Why the ideal IPv4 to IPv6 transition is impossible

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.)

tech/IdealIpv4ToIpv6Problem written at 00:36:28; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.