À la maison, je suis connecté avec une adresse IPv6 et, en outre, mon fournisseur fournit une configuration de type NAT à travers laquelle je reçois une adresse IPv4 publique que je partage avec d'autres clients (la raison étant évidemment que nous manquons d'adresses IPv4).
Par conséquent, je ne peux pas atteindre mes appareils à la maison (par exemple ma passerelle VPN) lorsque je suis sur un réseau IPv4. Cependant, j'ai un serveur qui a à la fois une adresse IPv4 et IPv6. Ainsi, il devrait être possible d'accéder à mes appareils domestiques si je passe par mon serveur.
Voici ce que j'ai à l'esprit jusqu'à présent: puisque sur IPv6, chaque appareil obtient sa propre IP, mon serveur à la maison obtient une IP IPv6 statique. Mon serveur distant dispose déjà d'IPv4 et d'IPv6 statiques.
Quand je veux maintenant atteindre mon serveur OpenVPN à la maison, auparavant j'ouvrais le port 1194 dans mon routeur et NAT transmettait les connexions au serveur là-bas. Dans mon nouveau scénario, je veux me connecter sur le port 1194 (ou autre, peu importe) sur mon serveur distant et il devrait prendre cette connexion et la tunneler vers mon serveur domestique (vu qu'ils ont tous les deux IPv6).
Graphiquement, cela signifierait:
Appareil mobile (IPv4) -> Serveur distant (IPv4 + IPv6) -> Serveur domestique (IPv6)
Mais cela ne devrait se produire que sur certains ports (ou existe-t-il même un moyen plus intelligent que de sélectionner par port?).
Ma question est, comment puis-je réaliser cette configuration?
À quel niveau cela devrait-il fonctionner? Si je veux le faire par port, je dois évidemment transmettre le paquet à la couche TCP / UDP. Ma première idée serait iptables, mais iptables peut-il transmettre un paquet à une adresse IP distante? Ou existe-t-il d'autres logiciels qui le peuvent? Ou dois-je créer un tunnel entre les deux serveurs, puis le transmettre localement? Comment pourrais-je m'y prendre?