IPv4 to IPv6 proxy/passthrough

ipv4ipv6PROXYsocatsquid

I recently had an app rejected from the ios store for crashing during their (now) mandatory IPv6 test (didn't even know they did that).

My server (on AWS) wasn't setup for IPv6, but I've fixed that with proper DNS and routing. It passes the tests at http://ready.chair6.net/

To this point, I did some research and saw that you can spoof an IPv6 network at home using internet connection sharing (ie: NAT64) on Mac OS X. So, I did that and assigned a v6 address to the iphone with my app on it and everything worked fine. However, that's not really testing the whole end-to-end connection that apple would be doing since once it hits the Mac it goes back to v4.

I'm trying to figure out a way that I can test the whole v6 connection to my server. Right now I'm assuming my home internet will only offer IP4. My current thoughts are setting up a VM/droplet on Digital Ocean/etc. They can be assigned both v4 and v6 at the same time. Further research shows that either "socat" or "squid cache" might be able to do the trick of listening on IP4 port/address and routing to the IP6 address outgoing on the same machine to continue the path to my app server on IP6. I'm getting a little lost in the details though. How do I connect from my client at home via IP4 to the VM? Do I have to tunnel? Can I set a proxy in firefox? How do I pass DNS requests through this connection so that my DNS server responds with the IP6 address and not the v4 one? I'm sure there are many other questions that I'm not thinking of currently.

Any thoughts on how to do this? Thanks!

Best Answer

You can set up a https://tunnelbroker.net/ tunnel to add IPv6 to your home system. Also some ISPs have IPv6 configurations that would allow native connectivity.