Router Club это сообщество, доступ к которому возможен только по приглашениям. Если вы хотите получить приглашение, попросите об этом в skype-чате клуба.

Iodine: "последний шанс" получить Интернет (без денег, без авторизации, очень медленный)

Решил поделиться опытом использования роутера под OpenWRT и программы iodine для доступа в Интернет по протоколу IP-over-DNS.

Исходные данные:
- роутер с прошивкой OpenWRT (TP-Link WR-703n)
- модем 3G с СИМ-картой, на которой нет денег (Мегафон)
- свободный вечер
- желание получить хоть какой-то доступ в Интернет

При подключении модема он ловит 3G сеть Мегафона, на роутере поднимается 3g-ppp соединение и появляется выход в "интернет". Но это не тот интернет что нам нужен! Без денег при попытке открыть любую страницу открывается домашняя страница Мегафона с просьбой пополнить счёт.
Что же делать?

Порядок действий:
1Q) нужен собственный сервер, на котором будет работать iodined - получать "якобы-ДНС" запросы от клиента и отправлять "якобы-ДНС" ответы. На самом деле запросы и ответы будут содержать упакованный IP-трафик.
1A) используем арендованный за $2 в месяц VPS-сервер (условный IP-адрес 36.220.127.110), который заодно является и VPN-сервером, и HTTP-сервером, и FTP-сервером, чем-нибудь ещё... Не важно, главное чтобы это был сервер с реальным IP-адресом. Скачиваем и устанавливаем пакет iodined. Запускаем его командой
iodined -P password -c 10.53.0.1 iod.myzone.cloudns.pw
На сервере будет создан туннель с именем dns0 и адресом 10.53.0.1 Теперь наш iodined-сервер будет слушать 53-й порт и отвечать на запросы клиентов iodine.

2Q) нужен настоящий провайдер имён (DNS hosting), который будет отправлять запросы на наш iodined-сервер.
2A) выбираем один из бесплатных сервисов, позволяющих регистрировать домены и создавать "A" и "NS" записи. Я использовал cloudns.net. Создаём там DNS-зону с поддоменом 3-го уровня, например myzone.cloudns.pw.
Создаём для нашей зоны A-запись "myzone", указывающую на наш iodined-сервер:
myzone.cloudns.pw A 36.220.127.110
Создаём для нашей зоны NS-запись, указывающую на только что созданное доменное имя
iod.myzone.cloudns.pw NS myzone.cloudns.pw

3Q) нужен клиент iodine, который обеспечит доступ в Интернет через все эти "навороты".
3A) ставим на наш роутер с OpenWRT пакет iodine.
Делаем opkg install iodine kmod-tun (клиент и модуль ядра для создания туннеля к серверу)

4Q) на роутере нужно правило для firewall, которое разрешает прохождение данных между создаваемым dns-туннелем и локальной сетью
4A) добавляем в настройки firewall зону dns и разрешаем форвардинг
Attach: firewall

5Q) нужно научить роутер передавать настоящие запросы DNS к серверам провайдера, а фейковые запросы DNS - к нашему iodined-серверу.
5A) делаем скрипт, который удаляет машрут по умолчанию и создаёт 2 маршрута для 2 типов трафика. Маршрут к настоящим серверам DNS будет по-прежнему вести к провайдеру, а маршрут по умолчанию - в туннель, созданный клиентом iodine. Кроме того, для всех исходящих соединений потребуется настроить "маскарадинг".
Attach: iod.sh

Всё. Запускаем скрипт
iod start
Если пинги до сервера ya.ru (лидер на рынке ICMP запросов) приходят, то всё заработало.
Данный скрипт автоматически не перезапускает упавший туннель и вообще является лишь Proof of Concept для демонстрации возможности.

Итак, что получилось?
Вначале был хаос. Потом появился доступ в 3G, но интернета не было. Проходили только DNS-запросы. С помощью "палки и верёвки" через фейковые запросы DNS к заранее установленному "роялю в кустах" мы получили пусть плохой и медленный, но бесплатный и работающий Интернет.
Реальная скорость загрузки страничек - 10..20 кбит/сек.
Замечу, что IP-over-DNS работает не только в сетях 3G, требующих денег, но и в сетях WiFi, требующих авторизации. Например, в Москве есть незапароленная сеть Beeline-Wifi, которая также позволяет получить доступ через iodine. Причём здесь OpenWRT, спросите вы? Конечно не при чём! Хотя, если настроить роутер в режиме AP+cli, можно получить доступ и через WiFi.

Тэги темы:
txt
txt
iod.txt
3K
txt
txt
firewall.txt
524B

Комментарии

  • Отличный мануал. :-bd
    Замечу, что чем короче доменное имя, тем быстрее скорость работы такого интернета, т.е. домен a.abc.ru даст заметное увеличение скорости загрузки по сравнению с iod.myzone.cloudns.pw.
  • отредактировано October 2015
    Я так делал на Keenetic с дополнительной флешкой с линукс. Но без правил файрвола пропадал доступ в инет у клиентов роутера. Спасибо за мастер-класс.
     Если кому надо, есть собраный под ARM предыдущий релиз Iodine:

    Post edited by gidiara on
  • Рабочий iodine, собранный под ARM
    zip
    zip
    iodine_0.6.0-rc1-5_keenetic.ipk.zip
    55K
Войдите или Зарегистрируйтесь чтобы комментировать.