Вдома я пов'язаний з 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? Або є інше програмне забезпечення, яке може? Або я повинен створити тунель між двома серверами, а потім передати це локально? Як би я пішов про це?