Предположим, у вас есть 2 компьютера, подключенных к интернету. И вы хотите наладить связь между ними. Например получить доступ к SSH или VNC. Задача достаточно простая, если оба компьютера расположены в одной подсети или же просто имеют прямой IP адрес. А что делать, если оба компьютера находятся за NAT?
В этом случае к нам на помощь приходит IPv6. С помощью тоннельного брокера мы получаем белые IPv6 для обоих компьютеров. Теперь прямое соединение становится возможным. Однако, остается последняя проблема, которую призван решить этот проект - динамические адреса. Каждый раз при загрузке компьютера наш IPv6 меняется.
Что бы решить эту проблему, нам нужен сервер, имеющий внешний IP адрес и способный сохранять информацию о нашем динамическом (но прямом!) IPv6.
Для этих целей я создал вот такой небольшой проект: grio.ru/ipv6/
Достаточно открыть страницу проекта с новыми параметрами, например так:
$curl http://www.grio.ru/ipv6/[email protected]&name=Moy_Laptop&pass=parol&ip=fe80::ffff:ffff:ffff
Теперь ваш новый айпи будет сохранен в базе проекта и доступен через поиск. Можно автоматизировать процесс сохранения IPv6 адреса, добавив задание в СRON или приурочив к загрузке системы. В ОС Линукс я использую вот такой скрипт.
Для его корректной работы необходимо установить два пакета.
1. Miredo, содержащий протокол инкапсуляции IPv6 в IPv4 UDP - Teredo.
2. Curl - для обновления информации о нашем IP на сервере проекта grio.ru/ipv6/
Устанавливаются эти пакеты предельно просто. В доп.настройках они, в принципе, не нуждаются. За одно можно установить и 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 адрес вашего компьютера, достаточно будет воспользоваться строкой поиска на сайте проекта или же сформировать свой запрос для страницы load.php
Всё готово? У обоих компьютеров есть IPv6 адрес?
Соединяем их по SSH:
$ssh -6 'vashlogin@2001:0:53aa:64c:2c38:2aa1:3c9d:4675'
Ура! Мы в удаленной консоле за двумя(а может быть и пятью!) NAT.
P.S.
Проект grio.ru/ipv6/ опенсорсный - можете подключиться к разработке или использовать в своих целях!
Буду рад в любом случае :)
br,
grio.
Комментарии (2)
Просто воспользуйтесь www.dhis.org - службой динамического DNS (аналог dyndns.com, no-ip.org и т.д), поддерживающей IPv6.
Либо не используйте teredo, а получите статические IPv6-адреса, с tunnelbroker.net или, в случае нахождения за NAT'ом, gogo6, это очень просто.
Кто тут тролит? :)
www.dhis.org заточен под IPv4. Плюс (вернее минус) к этому он достаточно наворочен (сложен для понимания).
gogo6.com - это вообще железяка для виндо-пользователей.
Я же предлагаю прототип приватного DNS сервера для динамических IPv6.
В принципе, прект grio.ru/ipv6/, можно развить до уровня тоннельного брокера с возможностью привязки IPv6 к компьютеру.
Отправить комментарий