Come eseguire il tunneling trasparente di una porta da IPv4 a un dispositivo IPv6 remoto?


11

A casa, sono collegato con un indirizzo IPv6 e inoltre, il mio provider fornisce una configurazione simile a NAT attraverso la quale ricevo un indirizzo IPv4 pubblico che condivido con altri clienti (il motivo è ovviamente che stiamo esaurendo gli indirizzi IPv4).

Di conseguenza, non riesco a raggiungere i miei dispositivi a casa (ad es. Il mio gateway VPN) quando sono su una rete IPv4. Tuttavia, ho un server che ha sia un indirizzo IPv4 che un indirizzo IPv6. Pertanto, dovrebbe essere possibile raggiungere i miei dispositivi domestici se passo attraverso il mio server.

Ecco cosa ho in mente finora: poiché su IPv6, ogni dispositivo ha il proprio IP, il mio server di casa ottiene un IP IPv6 statico. Il mio server remoto ha già sia IPv4 statico che IPv6.

Quando ora voglio raggiungere il mio server OpenVPN a casa, in precedenza avrei aperto la porta 1194 nel mio router e NAT avrebbe passato le connessioni al server lì. Nel mio nuovo scenario, voglio collegarmi sulla porta 1194 (o diversa, non importa) sul mio server remoto e dovrebbe prendere quella connessione e collegarla al mio server di casa (visto che entrambi hanno IPv6).

Graficamente, ciò significherebbe:

Dispositivo mobile (IPv4) -> Server remoto (IPv4 + IPv6) -> Server principale (IPv6)

Ma questo dovrebbe accadere solo su porte selezionate (o c'è anche un modo più intelligente che selezionare per porta?).

La mia domanda è: come posso ottenere questa configurazione?

A quale livello dovrebbe operare? Se voglio farlo per porta, devo ovviamente inoltrare il pacchetto a livello TCP / UDP. La mia prima idea sarebbe iptables, ma iptables può inoltrare un pacchetto a un IP remoto? O c'è altro software che può? O dovrei creare un tunnel tra i due server e quindi inoltrarlo localmente? Come lo farei?


1
Hai mai pensato di utilizzare un broker tunnel IPv6 per il tuo laptop?
Michael Hampton,

@MichaelHampton grazie per il suggerimento, ma preferirei molto avere un modo che non abbia bisogno di modifiche sul dispositivo in quanto intendo anche effettuare una connessione dal mio telefono (Android) e probabilmente altri dispositivi. La configurazione dovrebbe essere semplice come prima dal punto di vista dei dispositivi.
javex,

Risposte:


13

Ho finalmente trovato una soluzione con l' inoltro delle porte IPv4 agli host solo IPv6 che fondamentalmente utilizza socat:

socat TCP4-LISTEN:22,fork,su=nobody TCP6:[2a01:198:79d:1::8]:22

La mia soluzione è sostanzialmente la stessa tranne che uso un nome host tranne un IP statico lì. Fare attenzione a non usare parentesi quadre con un nome host in quanto lo interpreterà come un IP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.