Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 24

Отличная работа. Наконец стали появляться адекватные статьи по работе через STUN. Осталось только написать третью часть, где вы организуете VPN без посредника и STUN сервера.
VPN без посредника и STUN сервера.
это будет VPN over IPv6)
1. Устанавливаем сервер.
2. Сервер выполняет трассировку и получает белый ip/сеть за NAT. Если что, то существуют всемирные базы провайдеров.
3. Сервер начинает udp-прослушку.
4. Устанавливаем клиент.
5. Вбиваем в него полученный ip/сеть.
6. Запускается сканер портов (ищем udp-прослушку).Однако, сканирование достаточно выполнить один раз в большинстве случаев, если провайдер не использует балансировщик и прочие подобные вещи.
7. Мы узнали ip: порт сервера. Теперь можно использовать обычный VPN.

Естественно, этот способ имеет ещё меньшую область применения чем stun, который в свою очередь уступает ретрансляции. Однако, даже 1% от 10 000 000 устройств — неплохой результат.
5. Вбиваем в него полученный ip/сеть.


так весь смысл статьи в отказе от ручной работы
Это как звонок по телефону. Вы один раз записали номер, а потом можете на него звонить.
Тем более, вы забываете, что кто-то ещё должен установить openvpn + остальное ПО + сконфигурировать это всё. На фоне таких манипуляций вписывание 4 числе не кажется уж такой большой прибавкой к ручной работе.
Кроме того, весь смысл в организации vpn без посредников. Если я захочу избавиться от ручной работы, я найму сисадмина или хотя бы куплю сервер.
На фоне таких манипуляций вписывание 4 числе

а кто сказал, что маппинг будет постоянным во времени? вспоминаем легендарное "ни единого разрыва" — рестарт pppoe-сессии почти наверняка даст смену внешнего IP и/или порта.


Кроме того, весь смысл в организации vpn без посредников

совсем без посредников, очевидно, не получится — нам нужны провайдеры последней мили, магистральные провайдеры, все эти BGP-сессии и т.п.


Если я захочу избавиться от ручной работы, я найму сисадмина или хотя бы куплю сервер.

вот тут альтернатива и предлагается — использовать уже имеющуюся инфрастурктуру (stun-серверы, яндекс-диск и т.п.), а не создавать новую.


честно скажу, читая прошлую статью, я не проникся. а потом подумал: ведь на самом деле мысли дельные. решил "надо будет на эту тему ещё подумать".


а тут автор вторую статью написал с развитием идеи, и развитие, считаю, в правильном направлении.

Но это всего лишь пол дела, встал вопрос как передать эти данные удаленному узлу и организовать VPN-соединение. Использование почтового протокола, а может Telegram?!

мне кажется, тут dyndns бы подошёл

Для передачи номера порта?
а почему нет? в TXT записи, например, можно хранить ip:port
А тут есть над чем подумать, спасибо!
Прочитайте о pwnat, он позволит вам передать произвольные данные второй стороне, без каких-либо посредников (вернее, используя транзитные маршрутизаторы в качестве посредников).
IMHO: Заголовок «немножко» не корректный. Посредник есть! Вы параметры определяете через посредника, какой-то stun-сервер. Плюс Ваш метод не работает через «продвинутый», читай нормальный провайдерский CG-NAT, мобильных операторов или простой офисный прозрачный проксик.
Вы читали прошлую статью? Там посредником был арендованный VPS, за которого нужно платить — это самый большой минус, а данном случае VPS нет — платить не надо. STUN-сервер, в данном случае идеальный и бесплатный способ определения текущих параметров соединения.
CG-NAT, мобильных операторов или простой офисный прозрачный проксик
— это самое интересное, OpenVPN можно научить работать через прокси — идея для другой реализации. Я надеюсь, что статья не последняя, при моральной поддержке, есть куда развиваться… Спасибо за комментарии, я из них черпаю вектор развития)))
Какая потеря скорости, в процентах, при использовании VPN-сервера на VPS?
Почему openvpn когда l2tpv3 поднять проще? А шифрование можно применить внутри трубы политикой ipsec
Так исторически сложилось, использовался OpneVPN, так как изначально вдохновение дала статья об OpenVPN в режиме peer-to-peer. Спасибо Вам за идею l2tpv3, я обязательно учту в следующей реализации.
У руки чешутся сделать впн с инициализацией через торент и dht. Магнет ссылку кидаем и коннект через весь мир совсем без серверов.
Сколько там время анонса в dht сети? Имхо будет быстрее заюзать пачку открытых трекеров.
в магнет ссылке можно указать трекер
Решил попробовать l2tpv3, работает.
Какое-то оборудование во время простоя быстро закрывало порт, и туннель переставал работать. Быстро растолкать придумал только ping`ом. OpenWRT (19.07-rc2), роутер сказал что не знает про l2tpv3 :-)
Прикинув что есть UDP, простое, быстрое, шифрование и с Keepalive — WireGuard. Работает.
во время простоя быстро закрывало порт
Потому что роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Если какое-то время (около минуты, но не факт) не было трафика, то запись во временной таблице удаляется и соединение пропадает. Спасибо за WireGuard…
в опнврт ставь kmod-l2tp и kmod-l2tp-ip (или kmod-l2tp-eth для л2 туннелей)
пакет ip-full если соединение создаешь на баше.

Для поддержания соединения у меня там тусит bird, проверяет доступность пира и маршрутами обменивается.

UDP очень быстро забывается роутерами 10 секунд одиночный пакет, 3 минуты если поток только в одну сторону.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации