5

So, I've been given to believe that IPv6-only clients can access IPv4 servers by using addresses like: ::ffff:0:74.125.226.80 (that would be an address for google.com). I'm not IPv6 yet, but I may be soon. I have a miredo/teredo tunnel set up and I can ping normal IPv6 addresses just fine, but when I run:

ping6 ::ffff:0:74.125.226.80

it fails (Destination unreachable: Address unreachable)

Am I misunderstanding something? Can I actually get to IPv4 hosts over my IPv6 connection?

singpolyma
  • 489
  • 2
  • 7
  • 19

1 Answers1

9

::ffff:0:74.125.226.80 is a dotted-decimal address, and not a real IPv6 address.

If you only have full, world-routable IPv6 address (with prefix and a /48) then you cannot communicate with the IPv4 world without a special tunnel.

They are for all intents and purposes two different protocols. You have two choices for communication between the two:

  • Dual-stack. Have both IPv4 (behind a NAT if need be) AND IPv6 (with a world-routable IP, and a link-local address) installed and configured. OS's will try to use IPv6 first, and fall back to IPv4 if that fails. Just make sure you're configured correctly (not a dotted-decimal address like above) and it works pretty seamlessly.

  • Tunnelling. If you have an IPv6 device, it needs to be aware of an IPv4 tunnel that it can use to broker your connections to the IPv4 world.

Mark Henderson
  • 68,823
  • 31
  • 180
  • 259
  • 1
    So, what is this "fake IPv6" address with the ::ffff:0: prefix I keep seeing everywhere? It's supposed to be for "backward compatability", but if I need IPv4 connectivity anyway then I can just use normal IPv4 addresses so the above is useless. Or am I still missing something? – singpolyma Mar 05 '11 at 13:38
  • @sing - that's for if you want to map your IPv4 addresses to an IPv6 interface, but it still won't permit you to communicate via IPv4 to that device, only IPv6. – Mark Henderson Mar 05 '11 at 21:24
  • 1
    @singpolyma `::ffff:74.125.226.80` is an IPv4 address. Addresses of that format allows an application to use a single socket for both IPv4 and IPv6. `::ffff:0:74.125.226.80` is an IPv6 address in a reserved range, you are not supposed to see that IPv6 address used anywhere, because that range has not been assigned a purpose yet. (For some obscure reason a traceroute towards that address from one of my servers in Germany happens to go fine for a few hops before getting a no route to host error from a router somewhere in India.) – kasperd Nov 04 '15 at 22:39