čtvrtek 28. května 2020

Tunelováni TCP spojení IPv4, IPv6, zkrátka všude

Začalo nutností připojit se z IPv4 Only prostřednictvím sítě IPv6 Only na stroj s neveřejnou IPv4 adresou. Ještě štěstí, že mám k dispozici server, který má obě veřejné adresy.

IPv4 (klient) <4=4> IPv4/IPv6 (internetový server) IPv4/IPv6 <6=6> IPv6 (router) IPv4 <4=4> IPv4 (privátní server)

Na privátním serveru nasloucháme:

nc -l 8000

Na routeru nastavíme správně firewall (Accept) a spustíme socat:

socat TCP6-LISTEN:8000,fork <privátní server IPv4>:8000

Na Internetovém serveru spustíme také socat:

socat TCP4-LISTEN:8000,fork TCP6:[<IPv6 adresa routeru>]:8000

A klient (IPv4 Only) se připojí k serveru:
nc <IPv4 adresa internetového serveru> <port>


Jako bonus můžeme trasu mezi serverem a routerem pustit SSL tunelem: (teorie :-))
socat TCP-LISTEN:51000,fork,reuseaddr OPENSSL:remotehost:51000,cafile=certificate.pem,verify=0

socat OPENSSL-LISTEN:4433,reuseaddr,cert=server.pem,cafile=certificate.pem,fork <privátní server IPv4>:8000