Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: IPv6:: Соединяем 2 компьютера за NAT по SSH  (Прочитано 6367 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн grio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
    • ДНС для динамических IPv6
Предположим, у вас есть 2 компьютера, подключенных к интернету. И вы хотите наладить связь между ними. Например получить доступ к SSH или VNC. Задача достаточно простая, если оба компьютера расположены в одной подсети или же просто имеют прямой IP адрес. А что делать, если оба компьютера находятся за NAT?

В этом случае к нам на помощь приходит IPv6. С помощью тоннельного брокера мы получаем белые IPv6 для обоих компьютеров. Теперь прямое соединение становится возможным. Однако, остается последняя проблема, которую призван решить этот проект - динамические адреса. Каждый раз при загрузке компьютера наш IPv6 меняется.
Что бы решить эту проблему, нам нужен сервер, имеющий внешний IP адрес и способный сохранять информацию о нашем динамическом (но прямом!) IPv6.

Для этих целей я создал этот небольшой проект: grio.ru/ipv6/

Достаточно открыть страницу проекта с новыми параметрами, например так:

$curl http://www.grio.ru/ipv6/save.php?email=vasia@pupkin.ru&name=Moy_Laptop&pass=parol&ip=fe80::ffff:ffff:ffff

Теперь ваш новый айпи будет сохранен в базе проекта и доступен через поиск. Можно автоматизировать процесс сохранения IPv6 адреса, добавив задание в СRON или приурочив к загрузке системы. В ОС Линукс я использую вот такой скрипт.

Для его корректной работы необходимо установить два пакета.
1. Miredo, содержащий протокол инкапсуляции IPv6 в IPv4 UDP - Teredo.
2. Curl - для обновления информации о нашем IP на сервере проекта.

Устанавливаются эти пакеты предельно просто. В доп.настройках они, в принципе, не нуждаются. За одно можно установить и SSH-сервер.
Выполняем в терминале:
$sudo aptitude install miredo curl ssh
Скачиваем скрипт и сохраняем его в ~/scripts/, например.
Из консоли:

$sudo crontab -e -u имя_пользователя

В редакторе добавляем строку:

55 */2 * * * ~/scripts/ipv6save.sh > /dev/null  2>&1
# Скрипт будет выполняться каждые 2 часа, начиная с 0:55

Теперь заходим на сайт grio.ru/ipv6/ и регистрируем имя компьютера.

Проверяем:

$~/scripts/ipv6save.sh
Должно выдать "Ok".
Затем, когда вам потребуется узнать IP адрес вашего компьютера, достаточно будет воспользоваться
строкой поиска на сайте проекта или же сформировать свой запрос для страницы <b>load.php</b>

Всё готово? У обоих компьютеров есть IPv6 адрес?
Соединяем их по SSH:

$ssh -6 'vashlogin@2001:0:53aa:64c:2c38:2aa1:3c9d:4675'

Ура! Мы в удаленной консоле за двумя(а может быть и пятью!) NAT.

P.S.
Проект grio.ru/ipv6/ опенсорсный - можете подключиться к разработке или использовать в своих целях!
Буду рад в любом случае :)

br,
grio.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #1 : 16 Августа 2011, 10:27:50 »
По моему ничего не сказано про дяденьку туннельного брокера. Без него, ничего не выйдет.

Оффлайн grio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
    • ДНС для динамических IPv6
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #2 : 16 Августа 2011, 10:51:58 »
Всё выйдет.
С дяденькой тоннельным брокером, как раз, договаривается обо всём пакет Miredo.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #3 : 16 Августа 2011, 16:48:38 »
прежде чем дотдавать на растерзание пакету, нужно сначала определиться кто он. А то получится что дяденька разговаривать не станет с незнакомцами.
PS: где брать этого брокера и сколько он стоит. какая пропускная способность будет.

Оффлайн grio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
    • ДНС для динамических IPv6
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #4 : 16 Августа 2011, 17:20:18 »
Про брокера рекомендую почитать здесь: http://version6.ru/ways
В нашем случае брокер лишь выдает уникальный айпи. А компьютеры будут соединяться друг с другом напрямую, без посредников,
по средствам протокола IPv6.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #5 : 17 Августа 2011, 13:09:04 »
компьютеры будут соединяться друг с другом напрямую, без посредников
 

цитата по вашей ссылке:
Цитировать
Весь IPv6-трафик будет проходить через туннельный сервер
 Недостатки: Весь IPv6-трафик будет проходить через туннельный сервер – даже до тех точек назначения, до которых прямой маршрут по IPv4 был бы оптимальнее;

Или я чет не догоняю?   :uglystupid2:

« Последнее редактирование: 17 Августа 2011, 13:11:48 от Nesmit »

Оффлайн grio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
    • ДНС для динамических IPv6
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #6 : 18 Августа 2011, 07:43:53 »
Хороший вопрос.

Цитировать
Teredo

Если ваш провайдер предоставляет выход в Интернет только через свой IPv4 NAT, вы можете получить IPv6 при помощи технологии Teredo, разрабатывавшейся специально для работы в таких условиях.

Преимущества:

    *
      Не требуется регистрации какого-либо эккаунта, очень просто устанавливается;
    *
      Связь между двумя пользователями Teredo осуществляется не через туннельный сервер, а напрямую, с нулевой дополнительной задержкой;
    *
      «Пробивается» через многие виды NAT.


ссылка на источник: http://version6.ru/ways

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1564
  • УМка.
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #7 : 18 Августа 2011, 09:01:24 »
Предположим, у вас есть 2 компьютера, подключенных к интернету. И вы хотите наладить связь между ними. Например получить доступ к SSH или VNC. Задача достаточно простая, если оба компьютера расположены в одной подсети или же просто имеют прямой IP адрес. А что делать, если оба компьютера находятся за NAT?
Это все конечно круто в первом посте написано - но не для этой задачи. для этой задаче как бы просто на маршрутизаторе тот который NAT делает пробрасываем любой порт на внутреннюю машину с ssh на 22 порт  с двух сторон и все.
« Последнее редактирование: 18 Августа 2011, 09:03:40 от alecsartania »
Дома Linux Mint 20.1 / 20.02

Оффлайн Красноглазый

  • Активист
  • *
  • Сообщений: 702
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #8 : 18 Августа 2011, 09:35:58 »
Это все конечно круто в первом посте написано - но не для этой задачи. для этой задаче как бы просто на маршрутизаторе тот который NAT делает пробрасываем любой порт на внутреннюю машину с ssh на 22 порт  с двух сторон и все.
Это здорово, если сервер с NAT управляется вами. А если нет?
Тем более, что большинство пользователей сидят за двумя, а то и больше серверами с трансляцией адресов.
Вот здесь то как раз туннелирование в ipv6 без трансляций и пригодится.
В любом случае мысль интересная и свежая. Остается вопрос открытости информации о моих компьютерах на сервере grio для всего мира.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #9 : 18 Августа 2011, 11:03:26 »
А нафига ipv6  в отдельно взятых 2х компьютерах?
vpn, openvpn и т.д. никак? ВСЕ они используют выделенный сервер, который тут называется туннельный брокер через который все бежит.
 ИМХО, один хрен только с боку. Конечно в перспективе, когда ipv6 появится более полноценно то тогда может быть ipv6 станет более интересным протоколом.

Оффлайн grio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
    • ДНС для динамических IPv6
Re: IPv6:: Соединяем 2 компьютера за NAT по SSH
« Ответ #10 : 18 Августа 2011, 11:04:34 »
Красноглазый, благодарю за положительный отзыв.

Вопрос открытости решаем просто. Уже сейчас скрипт load.php выдает информацию о вашем IP только по вашему паролю.

Через поиск в базе проекта, ваши IP адреса пока открыты, если, запрашивающий знает или ваш адрес электронной почты или имя вашего компьютера. Часто это может быть удобно для многих. Но я понимаю, что есть люди, которым это не нужно.

Решение вижу такое: добавить чекбокс в форму регистрации компьютера "не доступен для общего поиска", тогда информацию по нему можно будет получить только по паролю через скрипт load.php

 

Страница сгенерирована за 0.056 секунд. Запросов: 24.