I came across an interesting article by D. J. Bernstein about the IPv6 Mess. In the article, Bernstein raises several interoperability challenges for organizations who would be interested in migrating to IPv6, which potentially make it expensive and difficult to begin deploying IPv6 on the Internet alongside of IPv4.
Read More for a discussion of how I think some of these problems might be resolved.
The basic problem is that hosts configured with only IPv4 cannot talk to other hosts using only IPv6, and hosts running only IPv6 cannot talk to hosts running only IPv4. Because of this, all servers continue to need to use IPv4 in addition to IPv6, and so do all end-users. If you are using IPv4 anyhow, there never comes a point where you can transition to IPv6-only. In order for a transition to be possible at all, we need the ability for interoperability between the two protocols.
I have been wondering, is there any reason why a router/gateway device at the 'border' between an end-user, corporate, or ISP network could not act as a bi-directional 'bridge' between IPv4 and IPv6? That is, a device which accomplishes 2 basic functions: it maps IPv6 public addresses to IPv4 addresses (either public or private addresses, as appropriate), and it supports DNS queries which treat IPv6 numeric addresses as DNS domain names (maybe something where you replace colons with periods, replace the double-colon shorthand-notation with a special placeholder, like
This system would be based on a sort of NAT, and a cooperating IPv4 DNS and DHCP server.
In typical usage, currently, NAT devices have a one-to-many relationship with the hosts inside the NAT. That is, typically, the NAT router has 1 public IP address, and multiple internal addresses. Is there any reason why a NAT server couldn't do many-to-many mapping?
When an IPv4 device connects to the network and makes a DHCP request, it would be given a version 4 address, IPv4 default gateway address, and IPv4 DNS Server address(es) as in normal DHCP usage currently. The DHCP server would register the newly leased IPv4 address with the NAT gateway, which would create an IPv6 corresponding address. The IPv6 address would serve as the main address for the IPv4 device behind the NAT, for any hosts on the Internet which use IPv6. So, now, the IPv4 'legacy' device can receive in-bound IPv6 connections, with the necessary translation between IPv6 and IPv4 being done by the gateway, so that the IPv4 device doesn't even know it's talking to an IPv6 peer, and vice-versa.
The cool trick here, for outbound connections, is that the NAT device could, I think, create mappings in the other direction too:
Consider some scenarios:
1) You have legacy devices (like a Tivo, Cell phone w/ Wifi, XBox/Playstation/Wii, etc) or applications (and so you need to configure your PC with IPv4 for the legacy app) which are not IPv6 compatible, but your network/ISP and the Internet at large has migrated to IPv6. The device or application uses DNS to resolve a name to an IP address (that is, in this scenario, no literal IPv4 address is trying to be resolved, but just a 'normal' dns entry like slashdot.org, or possibly one of the
In this situation, my idea is that the following would occur: The IPv4 request is made to the DNS Server, but the DNS Server only is able to get an AAAA record for the server (which is for IPv6 addresses), but no A record (for IPv4 address). The DNS Server then makes a request to the the NAT to map the IPv6 external address to an IPv4 address internally. The NAT that sets up such a mapping using private network addresses which are not reserved by local policy for internal hosts (that is, maybe for your internal hosts, you are using 192.168.*.*, which leaves 10.*.*.* unused, and so available for this 'mapping'), so for example, the NAT adds an entry in the NAT tables that 10.0.1.14 maps to the IPv6 address 1234:abcd:ef01:1111::5 (NOTE that the IPv6 address might be for an external host *or* an internal host which is using IPv6 inside the LAN).
The NAT then replies back to the DNS Server to use 10.0.1.14 for that IPv6 entry, which replies back to the legacy device with the mapped internal address of 10.0.1.14, and the DNS Server caches the IPv4 address for future lookups (temporarily; such caching should expire after some time if that DNS entry has not been referenced, and the NAT should also expire the mapping after the same amount of time, so that a different IPv6 host can be mapped to that private IP address).
So, now the legacy device(s) attempts to open a connection to the server using the IP address it got back from DNS, which is the 10.0.1.14 address. The gateway device sees that the connection is for one of the 'mapped' addresses, and does the necessary NAT and routing to move the traffic back-and-forth between the IPv4 device, and the IPv6 device. This all happens *completely transparently* to the IPv6 host and the internal IPv4 host.
2) Similar to the above scenario, except no DNS query is performed; the app or device instead tries to connect to a hard-coded IPv4 address:
In this scenario, if the hard-coded IPv4 address is for another IPv4 device which isn't on the local network, then perhaps the gateway could map the IPv4 address (as long as it isn't one of the non-routable address blocks) to an IPv6 address which embeds the IPv4 address.
I've heard of something called 6to4 which is a way of carrying IPv6 traffic over the IPv4 Internet without using an explicit tunnel, which used a similar concept of embedding an IPv4 address into an IPv6 address. I don't see why a similar approach couldn't be used for allowing IPv6 hosts and gateways to connect to IPv4 hosts across the backbone. The packets would be carried as far as necessary as IPv6 packets, then translated back into IPv4 packets by a gateway server somewhere, when it transitions from the 6Bone to an IPv4 network.
3) You have legacy devices inside your network (maybe servers), which need to receive in-bound connections from an external IPv6 host.
Since the legacy device's internal IPv4 address was mapped to a public IPv6 address when it received a DHCP lease, external hosts can make a connection to the public IPv6 address, and the gateway does the necessary NAT to pass the traffic to the internal IPv4 address, transparently to both the external and internal host.
In conclusion, it seems to me that a strategy like what I've described should, I think, make it possible to allow the 'core' of the Internet (backbones and ISPs) to begin upgrading to IPv6 without breaking IPv4 devices. Then, you can begin upgrading 'edge' networks. Is there any reason why this wouldn't work, or wouldn't work well? Are people already doing this, and I'm just not aware of it (I tried googling information for IPv4 to IPv6 transition, and didn't see anything like this, though my research was only brief, and definitely not exhaustive)?
Note: This all might sound pretty complicated, but I think that something like this could be included in 'home broadband' gateway devices from companies like linksys/cicso, d-link, netgear, etc, already configured for users so that it 'just works'. I think such routers could take care of this automatically. It might not even be necessary for users to install such a device at home - this 'bridging', it seems to me, could probably be done by ISPs.
The only limitation I can think of at the moment, is that the ISPs would need to make sure they didn't try to service too many users with one gateway - because of the fact that you would be mapping IPv6 addresses to private addresses like 10.x.x.x, you are limited to how many mappings can be maintained by any given gateway at any given time, but I think that as long as you don't have a large number of users, there's enough normally unused addresses in 10.x.x.x and 192.168.*.* to allow for mapping a large number of IPv6 to IPv4 addresses. Even though the Internet needs Billions of addresses, I think it likely that a small set of users will only ever be connecting to a few thousand or tens of thousands of those hosts at any given time, so the approx 16.7 million private addresses in the 10.*.*.* network should, in most cases, be sufficient, I think.
You're the tertiary storage; I'm the L1 cache.
I'm a web crawling spider; you [sic] an Internet mosquito;
You thought the 7-layer model referred to a burrito.
You're a dialup connection; I'm a gigabit LAN.
I last a mythical man-month; you a one-minute man.
Kill Dash Nine!
'As far as I can understand, my play has not been found suitable, and I ask you to return it to me.'
For some reason, these words caused agitation. Armchairs shifted, someone leaned down towards me from behind and said:
"No, why put it like that? Come now!"
Ivan Vasilievich looked at the jam and then, in consternation, at the people around him.
'Hmm
After a pause, I said:
'In that case I ask you to return it to me.'
And in that moment I quite distinctly glimpsed malice in Ivan Vasilievich's eyes.
'We have a little contract,' another voice suddenly spoke up, and Gavriil Stepanovich's face appeared from behind the doctor's back.
'But your theater does not wish to perform it, what do you want it for?'
Then a face with very lively eyes behind a pince-nez moved closer to me and in a high, thin tenor voice said:
'Surely you won't take it to Schlieppe's theater? What will they make of it there? Why, they'll have brisk little officers strutting around on stage! What good is that to anyone?'
'Under the terms of the current statutes and interpretations it cannot be given to Schlieppe's theater - we have a little contract!' said Gavriil Stepanovich emerging completely from behind the doctor's back.
'What is going on here? What do they want?' I thought and suddenly, for the first time in my life, I had a terrible, suffocating feeling.
So used and manipulated leaves Maksudov a mental wreck and wretchedly jaded. Bulgakov opens chapter 14 talking about Moscow and a stain he has on his clothing, perhaps drawing parallels to the people he deals with daily there:
How, can you tell me, can grease stains be removed from clothing? I tried this way and that, one thing and another. And it's quite remarkable: for instance, you soak it in petrol and the result is wonderful - the stain dissolves, dissolves and disappears. You feel happy, because there is no torment worse than a stain on your clothes. It's sloppy, it's bad, it gets on your nerves. You hang the jacket on a nail, and when you get up in the morning - the stain is back again, only now it has a slight smell of petrol.
The same thing after boiling water, dilute tea, eau de Cologne. Its' a real curse! You start getting angry and twitchy, but there's nothing you can do. No, it's clear that anyone who has once put a stain on his clothes is going to walk around with it until the suit itself wears out and is thrown out for ever. It's all the same to me now, but I wish others fewer of these stains.
So true of the tricks and contracts that artists find themselves in. Ever wonder why The Artist Formerly Known as Prince is once again Prince? Contract dispute! And I'm sure he had some of the best lawyers working for him and reading over that document before he signed it! How much longer before that stain is back?!
Fortunately, his play is eventually produced as the theater is under criticism for not being contemporary or independent (which is in its name). From that point on, every horror story ever told of a book or play being produced into a movie or stage is realized by our hero. Aside from massive ego complexes, critics mad with jealousy & bad acting instructions, he has to deal with his contemporary play being directed by an older, more esteemed man who wants to censor and edit the play. Bulgakov's real life hardships were no different as directors and theater managers tried desperately to cleanse his plays of any political satire or criticisms--especially of the current government!
This drives him to nearly complete sanity. At night he practices lying to Vasilievich and dealing with him so that his play will be produced without censorship. He comes to this harsh realization:
One night I decided to check things - I pronounced my monologue without looking in the mirror, and then cast a furtive, squinting glance into it - and was horrified.
Gazing out at me from the mirror was a face with a wrinkled forehead, bared teeth and eyes that betrayed not only anxiety but also ulterior motive. I clutched my head in my hands realizing that the mirror had misled and deceived me, and I flung it to the floor. A triangular piece sprang out of it. They say it's a very bad sign if a mirror breaks. Then what can be said of the madman who deliberately breaks his own mirror!
A harsh realization that you are dealing with these kind of people, an even harsher realization when you realize that you've become one of them. Now a nearly a raving lunatic who has taken to talking to himself, he depends entirely on living at the theater where his play is being produced. It is the only thing that keeps him going--to know that his story might be told to people to provide them enjoyment and to hear it and recognize with the characters.
However, the production goes very slowly and the director (Vasilievich) is taking entire days to force the actors and actresses to perform strange acting rituals that are supposed to make them better actors. While the play does not progress at all! By this time, Maksudov & Bulgakov have become cut down and unsure of themselves, the lunatic says to himself near the end of the book:
'Yes, this is all astonishing. But it is only astonishing because I am an ignoramus in these matters. Every art has its own laws, mysteries and methods. For instance, a savage would think it funny and strange that anyone should scrub his teeth with a brush, filling his mouth with chalk. To the uninitiated it appears strange that instead of proceeding directly to operate on his patient, a doctor first does all sorts of strange things to him, for instance, he takes blood for analysis and so on
How many times do you think that a musician, actor, writer, painter or graphics artist has been instructed not to do something? How many albums do you think come out these days with the intensity of the sound on the CD mastered so that it is all the way up all the time? How many artists are allowed to keep the sound that made them famous in their small towns? How many movies are made that lack a formulaic sure fire success model for today's theaters? Are we not living in a society where what is 'art' is defined by those with the funds to publish it?
If you don't read A Dead Man's Memoir, at least recognize that to be an artist of any kind today doesn't mean starvation necessarily but instead torment, manipulation and in the worse cases being stripped of your dignity & sanity.
The opposite of a correct statement is a false statement. But the opposite of a profound truth may well be another profound truth. -- Niels Bohr