Switched providers the other day, they only assign DSlite-connections. I'm fine, I thought. Thing is - I want to access some of my stuff from outside of my network, which should be of much less a hassle now I got native IPv6.
My new main problem was that I can't assume to have that everywhere I roam, so most of the time I'll try to access from an IPv4-only entry point. Found $ socat
was my friend, as I can access one box with true dualstack connection - so accessing my IPv6 from an IPv4-only connection is as easy as running $ socat UDP4-LISTEN:sourceport,fork,su=nobody UDP6:my-ipv6-hostname-behind.cgn:targetport
on the dualstacked machine and afterwards connecting to my-dualstack-hostna.me:sourceport
from outside.
Now, $ netstat -tulpen | grep sourceport
on the dualstacked machine only reveals an UDP4-listener - so my current problem is:
- Access from IPv6-only connection requires me to connect to
my-ipv6-hostname-behind.cgn:targetport
- Access from IPv4-only connection requires me to connect to
my-dualstack-hostna.me:sourceport
- Access from DS(-lite) connection enables me to use both, but preferably use the direct IPv6-route
So it would be great to be able to use my-dualstack-hostna.me:sourceport
for both IPv4 and IPv6 connections and not to root-update the configuration every time I move my laptop or phone!
How to make socat
listen on both? There has to be a way! $ netstat -tulpen | grep ":22"
on the DS-machine shows these:
tcp 0 0 0.0.0.0:22 […]
tcp6 0 0 :::22 […]
$ netstat -tulpen | grep sourceport
on the dualstacked machine only reveals an UDP4-listener", likeudp 0 0 0.0.0.0:sourceport […]