I still fail to see an issue in any of this if the rollout moves from backbone-to-users, and not the other way around. Which is the only order which makes much sense anyway - if the backbones can't route your packet, what's the point in speaking that language?
ISP-level NATs don't make sense, except in connecting external-IPv6 to internal-IPv4, in which case: so? Only serve up the IPv4 connections which currently exist, creating no new ones and dynamically mapping no ports, and pass through all IPv6. And if I recall correctly, IPv4 addresses are reserved in a range of IPv6 addresses already, so translating is a non-issue if the in-between is all IPv6. Any attempt to access IPv6-only addresses from IPv4 get fake IPv4 addresses, probably as some hashed value so repeat connections yield the same result.
External-IPv4 to internal-IPv6: yeah, full of issues. Who gets port 80 once you start sharing external IP addresses? SSL ports? How about all those port-specific email servers? But not the reverse.
I could be missing something obvious, though. IANAIETF expert by any stretch of the imagination. Anyone care to correct me?
(edited for a bit more, and less block-of-text-iness)
Backbones seem to be mostly fine. Well, I've got my /48 from Hurricane Electric and had no serious problems except for minor disturbance with my Nokia N900, which needed custom kernel (weirdly, official one has no IPv6 support).
Except that IPv6 space is too empty. There's nothing much out there — Google, Debian & Ubuntu mirrors, Python docs... that's almost all I've noticed to use over IPv6. This is the reason nor ISPs nor users go v6, even those who can. And, on the other side, almost no hosting providers give v6 addresses to their customers, so almost no websites appear at v6 Internet. I believe this is the most important problem: there's really almost nothing to do with IPv6 nowadays.
IANA should really encourage LIRs to get v6 blocks, but they're not doing it at all.
Worse than nothing to do is the pile of misconfigured and abandoned IPv6 endpoints/experiments. Trying to get work done with an IPv6-before-IPv4 DNS preference makes the internet _work less well_, for the time being.
(This is 6mos of playing with IPv6 on Softlayer systems [well done, guys]; there's breakage on the internets.)
As a website admin, you can request an IPv6 address, configure your webserver to listen on it, and configure your DNS with an AAAA record for it. ie. you can make your website accessible over IPv6.
However, depending on your business, you might want to be careful. At a minimum, clamp the MTU on the server to be less than 1500. There is still a fraction of clients that will be broken by this process.
I run a small service which you can try on your website "right now" and see what happens, without affecting your users too much: http://testv6.stdio.be/
I could except my hosting provider still isn't ready - apparently their data center itself isn't totally ready. I was told 3 months ago to check back in 6-9 months.
Yes, it does depend on whether your upstream provider, i.e. ISP supports IPv6. DNS root servers supports IPv6 and most domain name services should support IPv6 by now.
There is no NAT in IPv6. The address that you get should be globally routable, Unless of course your ISP have any IP filters in place. In the end it will depend on how your ISP allocates IP addresses to you.
Initially, the main issue was non-IPv6 capable CPE devices like your cheapo ADSL modem. The way around this was via Teredo tunneling, tunneling on IPv6 packets within IPv4 UDP packets.
Windows Vista and above supports IPv6 pretty well out of the box including Teredo tunnelling out of the box. Most BSD flavours are alright via the KAME project... not too sure about Darwin though.
Anyway, it's been awhile since I've worked in the IPv6 area so god knows what else they've come up with.
ISP-level NATs don't make sense, except in connecting external-IPv6 to internal-IPv4, in which case: so? Only serve up the IPv4 connections which currently exist, creating no new ones and dynamically mapping no ports, and pass through all IPv6. And if I recall correctly, IPv4 addresses are reserved in a range of IPv6 addresses already, so translating is a non-issue if the in-between is all IPv6. Any attempt to access IPv6-only addresses from IPv4 get fake IPv4 addresses, probably as some hashed value so repeat connections yield the same result.
External-IPv4 to internal-IPv6: yeah, full of issues. Who gets port 80 once you start sharing external IP addresses? SSL ports? How about all those port-specific email servers? But not the reverse.
I could be missing something obvious, though. IANAIETF expert by any stretch of the imagination. Anyone care to correct me?
(edited for a bit more, and less block-of-text-iness)