Підключення IPv6 через мережу IPv4 без підключення до Інтернету


1

Я працюю над проектом у своєму університеті, і тепер з’являється наступна проблема:

Ми отримали Сервер [Сервер] з приватною мережею IPv6. Деякі датчики (температура, вологість ...) підключаються через маршрутизатор, і вони мають власні приватні адреси IPv6 у цій приватній мережі).

Сервер A підключений до Інтранету університету. Інтранет підтримує не IPv6, а IPv4.

Мій власний комп'ютер [Клієнт] може отримати доступ до Сервера через VPN та IPv4.

Тепер я хочу отримати статус датчиків на Клієнті. Сервер та клієнт використовують ОС на основі debian.

(Інтернет <-->) Клієнт <- (понад IPv6) IPv4, VPN -> Сервер <--IPv6--> Датчик

Я думав про налаштування простого тунелю 6to4, але без підключення до Інтернету Сервер не може отримати доступ до наступного маршрутизатора 6to4 (192.88.99.1).

Чи є можливість налаштувати 6to4 "локально" чи мені потрібне підключення до Інтернету?

Що ще я можу зробити, щоб отримати робоче з'єднання?

Дуже дякую за всю допомогу! (і особлива подяка Сандеру, я сподіваюся, що це правильне місце, щоб задати моє запитання :))

Відповіді:


2

Те, що ви хочете, це не так, 6to4але 6in4також відоме як протокол-41. 6to4 - це дозволяти пристроям з підключенням до Інтернету із загальнодоступною IPv4 адресою отримати доступ до IPv6. Це протокол із серйозними проблемами стабільності, і його більше не слід використовувати. З 6in4вами можна вручну налаштувати IPv6-в-IPv4 тунелів.

Ви можете налаштувати 6in4тунель на Debian / Ubuntu так:

auto ipv6tun
iface ipv6tun inet6 v4tunnel
    address 2001:db8::1
    netmask 64
    endpoint 192.0.2.111
    gateway 2001:db8:0f10:99d::1

Зрештою, без підключення до Інтернету IPv6 ви також можете додати лінію шлюзу, наприклад:

auto ipv6tun
iface ipv6tun inet6 v4tunnel
    address 2001:db8::2
    netmask 64
    endpoint 192.0.2.222
    gateway 2001:db8::1

Ви повинні замінити адреси IPv4 та IPv6 адресами, які відповідають вашій мережі.

PS: RFC7059 вийде у світ. Він містить огляд механізмів тунелювання IPv6-in-IPv4. Розкриття інформації: Я один із авторів.


1
Минуло багато часу, але зараз я це зробив. Дуже важлива річ, яку я не знав, це: переадресація Ipv6 вимкнена в Debian / Ubuntu -.-, щоб перевірити її просто використовуйте: cat / proc / sys / net / ipv6 / conf / all / forwarding, це повинно бути "1 "... ще одна проблема: у мене були деякі інтерфейси VMWare ... використовуючи датчик ping6, він взяв один з їх IPv4-адрес (кодований як IPv6) ... дуже дивно, я видалив їх і тепер він працює - дякую!
Боне

Хороший момент: щоб мати можливість пересилати пакети IPv6, вам дійсно потрібно включити переадресацію IPv6. Зазвичай це можна зробити за /etc/sysctl.confдопомогою рядка net.ipv6.conf.all.forwarding=1. Якщо ping6використовується відображена IPv4-адреса в якості джерела, що зазвичай вказує на те, що вона не може прив’язати "реальну" адресу джерела, тому я не знаю, чому вона поводилася так, як ви описуєте.
Сандер Стеффан

0

Можливо, ви надто ускладнюєте речі. Якщо у вас (IPv4) доступ SSH до сервера, ви можете використовувати переадресацію портів SSH, наприклад, вхід на сервер за допомогою цієї команди:

ssh -L 12345:[2001:db8::6]:4321 <server-ip4-address>

дозволить вам зв’язатися з датчиком (за його IPv6 адресою 2001: db8 :: 6) на порту 12345 на вашій локальній машині протягом тривалості сеансу SSH.

Ви не вказали, як отримати результати від датчиків. Вищезазначене працює для TCP. Що стосується UDP, вам потрібно буде додати деякі socatдо суміші, або деякі, netcatі mkfifoякщо ви хочете. ssh -wможе також зробити трюк, ще не пробували цього.

Netcat або socat також можуть допомогти створити альтернативу, коли ви відкриєте сокет на сервері, який перенаправлятиме трафік на внутрішню IPv6-адресу, не залишаючи відкритим сеанс SSH.

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