So, I've been given to believe that IPv6-only clients can access IPv4 servers by using addresses like: ::ffff:0: (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:

it fails (Destination unreachable: Address unreachable)

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


::ffff:0: 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.

| improve this answer | |
  • 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 5 '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 5 '11 at 21:24
  • @singpolyma ::ffff: is an IPv4 address. Addresses of that format allows an application to use a single socket for both IPv4 and IPv6. ::ffff:0: 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 4 '15 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.