Дома я подключен к IPv6-адресу, и, кроме того, мой провайдер предоставляет настройку, подобную NAT, через которую я получаю общедоступный IPv4-адрес, которым я делюсь с другими клиентами (очевидно, что у нас мало IPv4-адресов).
В результате я не могу подключиться к своим устройствам дома (например, к своему VPN-шлюзу), когда нахожусь в сети IPv4. Тем не менее, у меня есть сервер, который имеет как IPv4, так и IPv6-адрес. Таким образом, должна быть возможность доступа к моим домашним устройствам, если я пройду через свой сервер.
Вот что я имею в виду: поскольку на IPv6 каждое устройство получает свой собственный IP, мой домашний сервер получает статический IPv6 IP. Мой удаленный сервер уже имеет статический IPv4 и IPv6.
Когда я теперь хочу получить доступ к своему серверу OpenVPN дома, ранее я открывал порт 1194 в моем маршрутизаторе, и NAT передавал туда соединения с сервером. В моем новом сценарии я хочу подключиться к порту 1194 (или другому, неважно) на моем удаленном сервере, и оно должно принять это подключение и туннелировать его на мой домашний сервер (видя, что у них обоих есть IPv6).
Графически это будет означать:
Мобильное устройство (IPv4) -> Удаленный сервер (IPv4 + IPv6) -> Домашний сервер (IPv6)
Но это должно происходить только на выбранных портах (или есть даже более умный способ, чем выбирать по порту?).
У меня вопрос, как мне добиться этой настройки?
На каком уровне это должно работать? Если я хочу сделать это по порту, я, очевидно, должен переслать пакет на уровне TCP / UDP. Моей первой идеей будет iptables, но может ли iptables переслать пакет на удаленный IP? Или есть другое программное обеспечение, которое может? Или я должен создать туннель между двумя серверами, а затем переслать это локально? Как бы я пошел об этом?