I have a Verizon cell modem that uses IPv6 addressing only. I can use it to access IPv4 addresses, like browsing the Internet. However, if I try to ping this IPv6 address on a cell modem from IPv4 network, it returns Destination host unreachable. Now I have two questions:

  1. Is it possible for a computer in an IPv4 network (including NAT, firewall, etc.) to access IPv6 addresses without too much tweaking? I tried to use a Teredo service. It seemed to worked for a time, and then I was not able to communicate with IPv6 addressing (for example, ipv6.google.com). Is there any tunneling service that I can use to bypass internal network layer and directly communicate with IPv6?
  2. If I want to open a service, say VNC service in computer connecting to that IPv6 cell modem, can I access this service from a regular IPv4 network?

Also, may I know where can I find knowledge regarding this kind of issues? It seems like I don't even have the right keywords to google.


IPv4 and IPv6 are two completely separate protocols, with separate, incompatible packet headers and addressing, and an IPv4-only host cannot directly communicate with an IPv6-only host.

The correct way to do this is to dual-stack one or both hosts so that they run both the IPv4 and IPv6 protocols. Otherwise, you must use some type of kludge to translate between IPv4 and IPv6, but there are problems and limitations with any of those. For example, there are far more IPv6 addresses than IPv4 addresses, so it is easier to translate an IPv4 address into something an IPv6-only host understands, than it is to do the opposite.

In 2017, the time has passed that there are still IPv4-only hosts and networks. Most ISPs support IPv6, and if your business has not yet begun to roll out IPv6, then it may find itself scrambling to do that in the future.


Welcome to the messy world of the IPv6 transition.

IPv4 and IPv6 are two seperate protocols that do not directly interoperate.

The IPv6 proponents idea was that we would all move to dual stack, running IPv4 and IPv6 in parallel for a transition period. Then once IPv6 was ubiquitous IPv4 could be turned off.

Unfortunately deploying dual stack meant extra cost immediately for benefits at some unclear time in the future. Unsurprisingly takeup was extremely slow and IPv4 exhaustion hit without the world being dual-stacked.

Most IP transit providers nowadays will provide dual-stack, but with mobile and broadband ISPs the picture is often a lot less rosy.

So anyway back to the question of of interoperation. Since it is clear that in the real world IPv4 isn't going away any time soon a variety of mechanisms have been devised to try and bridge the gap.

The first and simplest is just a point to point tunnel, such tunnels can be pretty reliable and with the right tunneling technologies can work behind NAT. The problem is of course the tunnel has to terminate somewhere. There exist free tunneling providers but they are not without their issues in terms of performance and/or restrictions.

The next is 6to4. A host or network with non-natted IPv4 only connectivity can generate an IPv6 /48 from their public IPv4 IP. Packets from 6to4 clients are encapsulated in IPv4 and can be sent to other 6to4 clients or to a relay anycast address. Unfortunately it doesn't work behind NAT

The next thing to mention is teredo. Teredo tries to provide IPv6 addresses to clients behind NAT using NAT traversal techniques. Unfortunately it is pretty fragile and often fails. Also due to the way teredo finds relays it will only work if the IPv6 host responds to pings.

Also ISPs mostly don't seem to have stepped up to the plate and deployed 6to4 and teredo relays in their networks, so 6to4 and teredo traffic ends up going via one of a handful of networks who provide relays for the internet in general. This often ends up limiting performance.

Teredo and 6to4 have largely failed to achive increases in the ipv6-capable client base. It has become clear that while IPv6 deployment is growing, the burden of interoperability will have to be shouldered by those wanting to run IPv6 only networks.

Which brings us round to how they can do that. Probablly the most common approach for clients is NAT64/DNS64. The network translates DNS A responses into AAAA responses pointing at a range of IPv6 addresses that are routed to stateful NAT64 boxes. The NAT64 boxes translate the traffic from IPv6 to IPv4 allowing clients to reach servers on the IPv4 internet. An extension of this is 464XLAT where the client has a stateless NAT46 allowing IPv4 only applications to send requests via the NAT64.

On the server side NAT based approaches can also be possible, but they have the problem that you still need an IPv4 address for each server which defeats most of the point of running an IPv6 only network. Another option is reverse proxies which can direct traffic based on application layer headers.

Unfortunately trying to run services on your cellular modem is likely to be an excercise in frustration. As you say it doesn't have an IPv4 addresses and while it probablly does have a public IPv6 address you may still find there are firewalls present and that the IPv6 address is not very stable.

In general I find the best approach to administering devices that are in unknown network situations is to use a VPN. Have a server on the public internet (preferablly dual stack) to which all your devices can connect and then access the devices using their VPN IP addresses.

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.