Як прозоро тунелювати порт від IPv4 до віддаленого пристрою IPv6?


11

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


1
Чи планували ви використовувати тунельний брокер IPv6 для свого ноутбука?
Майкл Хемптон

@MichaelHampton дякую за пропозицію, але я дуже хотів би мати спосіб, який не потребує змін на пристрої, оскільки я також маю намір встановити з'єднання зі свого телефону (андроїда) та, ймовірно, інших пристроїв. Налаштування має бути таким же простим, як і раніше, з точки зору пристроїв.
javex

Відповіді:


13

Нарешті я знайшов рішення з переадресацією портів IPv4 на хости, які підтримують лише IPv6, і в основному використовує socat:

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

Моє рішення в основному те саме, за винятком того, що я використовую ім'я хоста, за винятком статичного IP-адреси. Слідкуйте за тим, щоб не використовувати квадратні дужки з ім'ям хоста, оскільки це буде інтерпретувати це як IP.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.