I am an installer for an ISP here in Alberta Canada. They recently launched LTE but are doing double NAT on IPv4 so accessing a server from the outside world isn't possible via IPv4. They do however offer IPv6 addresses that are publicly facing.

I was wondering if there is some type of service that I could use to get a static IPv4 address & tunnel it to the IPv6 address. I don't want to have to go through the hassle of setting up my own using a VPS or something. We have many customers who need static IPv4 addresses to access various things like web servers as well as security camera's and so forth. So something that is simple to setup would be nice.

1 Answer 1


If I got your question right, then what you need is called a 4in6 tunnel broker. This is a service that tunnels IPv4 traffic over an IPv6 network.

The way it works is this: A router on your side accepts IPv4 packets that are to be routed outside and encapsulates them inside an IPv6 packet, which is then sent to the tunnel broker service. Their router decapsulates the IPv4 packet out of the IPv6 packet and sends it on to the IPv4 internet.

In reverse, when a person "from outside" wants to access your server they connect to one of the IPv4 addresses you got from the tunnel broker. Their IPv4 packets are of course first routed to the tunnel broker where they are encapsulated into an IPv6 packet and then sent on to your router. On your router, the IPv4 content of the IPv6 packet gets forwarded on inside your network.

This means that the usability of this tunnel for your case depends on the tunnel broker being able and willing to offer you a set of IPv4 addresses that are preferably static. This idea of course puts all the load on one IPv6 address, so if you want to do some load balancing you would need to create a few more tunnels to different IPv6 address, handling different IPv4 addresses.

The configuration would be rather simple. You set up all servers on your network with at least an IPv4 address (one of the ones that your tunnel broker will give you) and point the standard gateway to the tunnel-enabled router. In your router you configured a 4in6 tunnel to forward all IPv4 packets to the tunnel broker (the tunnel broker usually has all the details that you need for that).

Edit: If you don't want to run all the IPv4 traffic of your network over the tunnel, you need to set up the tunnel on the server itself, as another network interface and route the traffic from the tunnel broker's IPv4 address over that interface and all other traffic from your internal IPv4 address(es) over another interface. Technically you could also use a second network card in the server and tell the router to forward all of the IPv4 packets from that link over the tunnel.

Personally, I never used a 4in6 tunnel broker, but I used the opposite, a 6in4 tunnel broker, since my ISP only offers me IPv4. Since I am able to remain a static IPv6 address from my tunnel broker, I am able to run a server over the tunnel. For my devices (and the devices they talk to) it seems like I have a completely normal IPv6 connection, but in fact only IPv4 packets leave my modem.

If your question was to make an IPv6-only server available to IPv4 customers, then I can't think of an easy solution. There is NAT64, but since it "NATs" the IPv6 side towards the IPv4 side, you can't really initiate a communication from the IPv4 side. Think of it like a home router's NAT where you can't (easily) initiate a connection from the outside. And since most of the solutions that mesh IPv4 and IPv6 were made to deal with the transition from IPv4 to IPv6, I guess there is no solution to run something like a "NAT46".

I hope that my advice was useful to you.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .