Добрый день, Сообщество!

Меня зовут Михаил Подивилов. Я являюсь основателем общественной организации «Medium».

Этой публикацией я начинаю серию статей, посвящённых настройке сетевого оборудования для соблюдения аутентичности при становлении оператором децентрализованного интернет-провайдера «Medium».

В этой статье мы рассмотрим один из возможных вариантов конфигурации — создание одиночной беспроводной точки доступа без использования стандарта IEEE 802.11s.

Что такое «Medium»? / Как присоединиться к сети «Medium»?



Лирическое отступление


Если вы хотите стать оператором сети «Medium», то, вполне вероятно, вы уже задумывались над тем, насколько легальна эта затея и какие могут возникнуть последствия.

Ответ: это совершенно легально и никаких последствий возникнуть не должно. Мы тесно сотрудничаем с РосКомСвободой (у которой, к слову, очень богатая судебная практика в сфере информационных технологий) и консультировались с ней по этому поводу.

Кстати, РосКомСвобода недавно выпустила материал про «Medium» в своём блоге. В одном из пунктов там чётко обозначена позиция РосКомСвободы в отношении сети «Medium»:

Я хочу стать оператором сети. Меня найдут?

Этот вопрос уже обсуждался как участниками сообщества, так и нами — и мы не обнаружили никаких проблем с безвозмездным предоставлением услуг подвижной радиосвязи децентрализованным интернет-провайдером «Medium» на территории РФ.

Мы понимаем, что этой выдержки из публикации совершенно недостаточно, чтобы успокоить своего внутреннего параноика. Поэтому совместно с РосКомСвободой мы составили обращение в Минкомсвязи и в настоящее время ожидаем от них ответа.

Самый распространённый сценарий использования


Как правило, сейчас далеко не все могут себе позволить прямое подключение к Mesh-сети «Medium» с топологией partial mesh ввиду слишком малой плотности беспроводных точек доступа.

Поэтому пользователи используют ресурсы сети «Medium» посредством подключения к ней с использованием транспорта Yggdrasil.

Это выглядит следующим образом:



Создание одиночной беспроводной точки доступа


В этой публикации мы рассмотрим создание одиночной беспроводной точки. После настройки топология сети будет иметь следующий вид:



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

Поэтому я буду абстрагироваться от наиболее общих терминов и понятий, объясняя процесс настройки сетевого оборудования в достаточной степени абстрактно. Если что — смело поправляйте или дополняйте меня, статья открыта к правкам.

Шаг 1. Базовая конфигурация


Yggdrasil распространяется в качестве пакета для OpenWRT, однако не каждый оператор может себе позволить установку OpenWRT на свой беспроводной маршрутизатор в силу тех или иных обстоятельств — начиная от банального нежелания до невозможности перепрошивки устройства.

Мы рассмотрим вариант, в котором клиент, подключенный к беспроводной сети, будет использовать режим autoconf, благодаря которому роутер Yggdrasil клиента автоматически обнаружит роутер Yggdrasil оператора посредством использования мультикаста и сможет использовать ресурсы сети «Medium».

Алгоритм действий клиента, который желает подключиться к сети «Medium»:

  1. Клиент подключается к скрытой беспроводной сети с SSID «Medium»
  2. Клиент запускает роутер Yggdrasil с ключом -autoconf
  3. Клиент использует ресурсы сети «Medium»

В настройках беспроводного вещания вашего маршрутизатора укажите SSID «Medium» и тип шифрования «без пароля». Также не забудьте отключить вещание идентификатора SSID — сеть должна быть скрытой.



Шаг 2. Настройка «Captive Portal»


«Captive Portal» — это технология, позволяющая беспроводным точкам доступа перед входом в сеть показать веб-страницу, на которой содержится перечень действий, необходимых к выполнению для подключения к сети.

Например, это может быть авторизация посредством использования одноразового кода из SMS — согласно действующему российскому законодательству все юридические лица и индивидуальные предприниматели, раздающие Wi-Fi на бесплатной основе, должны идентифицировать клиента посредством использования SMS.

В «Medium» такой потребности нет — здесь технология «Captive Portal» необходима для того, чтобы предоставить конечному пользователю возможность загрузки программного обеспечения, необходимого для работы в сети.

Если ваш беспроводной маршрутизатор поддерживает технологию «Captive Portal», используйте готовый шаблон, разработанный сообществом.



Шаг 3. Настройка клиента Yggdrasil


Чтобы клиент, подключенный к вашему беспроводному маршрутизатору, смог использовать ресурсы сети «Medium», необходимо настроить и запустить на вашем ПК, подключенном к беспроводной сети, копию Yggdrasil.

Используйте следующее руководство, чтобы правильно сконфигурировать вашу копию Yggdrasil.



Шаг 4. Добавьте вашу точку доступа в публичный перечень всех точек доступа сети


Дело за малым — теперь осталось добавить вашу точку доступа в публичный перечень всех точек доступа сети. Это необязательно, но желательно, если вы хотите, чтобы пользователям сети было легче вас обнаружить.





Читайте также:


Мы в Telegram: @medium_isp

Комментарии (13)


  1. ValdikSS
    09.09.2019 18:25

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

    Итак, если я правильно всё понял:

    • Medium — сообщество, цель которого — построить Mesh-сеть с использованием ПО оверлейной сети Yggdrasil и предоставить конечным пользователям возможность подключения к сети с помощью публичных точек доступа Wi-Fi.
    • На данный момент развития проекта, подключиться к Medium можно как от ближайшей установленной точки доступа через Mesh, так и через интернет, с использованием любой ноды сети Yggdrasil (не только ноды Medium, а вообще любого участника Yggdrasil)
    • Публичные точки доступа Medium, представленные для подключения конечным пользователям, не предоставляют доступа в интернет.
    • Конечный пользователь не может просто подключиться к точке доступа и получить доступ в Yggdrasil, ему нужно установить клиент Yggdrasil на свой компьютер.


    Идея построения Mesh-сети у меня не вызывает вопросов: ясна и концепция (построение сети передачи данных с использованием привычных протоколов), и сфера применения (передача данных без использования инфраструктуры существующих коммерческих провайдеров, независимость от них).

    Вопрос: зачем это в принципе может быть нужно конечным пользователям?
    • Пользователи не могут просто подключиться к точке доступа и получить доступ в Yggdrasil, им нужно для этого ещё и установить Yggdrasil на свой компьютер, настроить его, и только тогда они получают доступ. Клиента для Android, как понимаю, нет (на оф. сайте нет, у вас в репозитории нет apk или инструкции), для iOS — только Test Flight, т.е. для установки нужен интернет, которого внутри Wi-Fi-точки нет.
    • Как я понимаю, сам Medium не предоставляет каких-либо собственных сервисов (по ссылке «List of available services» ничего нет).


    Я иду в место, где установлена публичная точка доступа Medium, и подключаюсь к ней. Что мне делать дальше? Какими сервисами я могу пользоваться? Что конечного пользователя должно мотивировать, чтобы идти в определенное место и подключаться к точке без интернета?

    У проектов портативных точек доступа вроде PirateBox понятны задачи, которые они решают: предоставить возможность чатиться и обмениваться файлами между клиентами точки доступа Wi-Fi. Это удобно использовать для коммуникаций в среде с плохим покрытием интернета, на каких-то мероприятиях, для связи людей на ограниченной физической территории. PirateBox не требует установки дополнительного ПО и имеет простой интерфейс.

    Какие задачи, с точки зрения конечного пользователя точки доступа Wi-Fi, решает Medium?


    1. Foxcool
      09.09.2019 18:56
      +2

      Когда в своем чате distributed обсуждали эти вещи, то в принципе пришли к выводу, что в наших реалиях будет рулить нечто такое:

      — Роутер на OpenWRT
      — Имеет свои точки закрытые домашние обычные
      — Имеет 802.11s точки и просто открытые точки, которые не выпускают в интернет напрямую, но выпускают в тот же CJDNS (Yggdrassil до кучи).
      — Знающий пользователь может выйти в интернет через свой интернет или TOR.

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

      Да, это кейс не для совсем конечного юзера, но с этим теоретичесми можно идти к гкам и строить первые сети хотя бы в общагах студенческим и прочих местах с повышенной концентрацией задротов на квадратый метр (:


    1. podivilov Автор
      09.09.2019 19:39

      Прежде всего, Medium решает задачу развёртывания независимой телекоммуникационной среды передачи данных. Которой, чего таить, ни у нас, ни во многих других странах — нет. Взять в пример Грецию: товарищи заморочились и построили AWMN. Настоящая Mesh-сеть с топологией partial mesh.

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

      Отвечу на Ваш вопрос: «Как я понимаю, сам Medium не предоставляет каких-либо собственных сервисов (по ссылке «List of available services» ничего нет)».

      В закреплённых репозиториях организации есть awesome-medium, где все сервисы medium.isp относятся непосредственно к Medium.

      Также посмотрите архив.

      Вы говорите: «Что конечного пользователя должно мотивировать, чтобы идти в определенное место и подключаться к точке без интернета?»

      Отвечаю: пока что эта сеть ориентирована на пользователей, в большей степени относящихся к айти-сообществу. Чтобы популяризовать эту сеть, необходимо, как было правильно замечено, чтобы присутствовало обширное FAQ, в частности удовлетворяющее вопросу «Зачем?»

      Чтобы пользователь мог установить приложение и использовать все прелести децентрализованной сети.

      Внутри у нас есть форум mesh.ygg, социальная сеть humhub.ygg, децентрализованный поисковой движок yacy.ygg. Сеть растёт, сервисы развиваются. А если Вы действительно заинтересованы в том, чтобы разобраться, что к чему — посетите канал @medium_general в Telegram. Участники сообщества с радостью ответят на все интересующие Вас вопросы.


      1. ValdikSS
        09.09.2019 20:25

        Которой, чего таить, ни у нас, ни во многих других странах — нет.

        Тем не менее, mesh-сети существуют, в том числе и сравнительно крупные (1, 2). Также есть большие сообщества вокруг них: Libremesh, Battlemesh. Нужно было начинать с ознакомления с возможностями маршрутизаторов, протоколами маршрутизации, анализа уже существующих проектов, их преимуществ и недостатков.

        Вы не ответили на мой вопрос: зачем мне, пользователю, относящемуся к IT-сообществу, который знает и использует оверлейные сети, у которого установлены несколько нод Tor, I2P, ZeroNet, Tahoe-LAFS, и который держит несколько публичных точек Wi-Fi, может потребоваться подключиться к Yddgrasil не просто через интернет, а через специальную точку доступа без интернета, в определенном месте планеты, да ещё и для этого ставить ПО?

        Почему вы называете себя интернет-провайдером, при этом не предоставляете доступ в интернет, а ваш проект не нацелен на объединение сетей (а нацелен на построение новой)?

        Зачем вы пишете об этом на хабре, так часто, когда у вас еще ничего толком не готово?
        Я бы понял, если бы вы писали прямо: проект нацелен на эксперименты с Mesh-сетями и попытку построения такой, потому, что это круто. Но нет, вы называете себя децентрализованным интернет-провайдером, хотя вы не интернет-провайдер, и децентрализации у вас особой нет.


        1. podivilov Автор
          09.09.2019 21:08

          Отвечаю на Ваши вопросы.

          > Почему вы называете себя интернет-провайдером, при этом не предоставляете доступ в интернет, а ваш проект не нацелен на объединение сетей (а нацелен на построение новой)?

          Интернет-провайдер — это организация, предоставляющая услуги доступа к сети Интернет и иные связанные с Интернетом услуги. На данный момент Medium работает в режиме оверлея, то есть уже поверх существующей сети Интернет — и хотя через Medium нельзя попасть в обычный, «чистый» Интернет (также иногда называемый Clearnet), на транспортном уровне Medium тесно связан с этой сетью. В дальнейшем, когда Medium сможет позволить себе отказаться от использования транспорта сети Интернет и перейти на свой собственный, его всё также можно будет называть интернет-провайдером — потому что Интернет по определению являет собой не что иное, как «Interconnected Networks» — «Сеть Сетей».

          > зачем мне, пользователю, относящемуся к IT-сообществу, который знает и использует оверлейные сети, у которого установлены несколько нод Tor, I2P, ZeroNet, Tahoe-LAFS, и который держит несколько публичных точек Wi-Fi, может потребоваться подключиться к Yddgrasil не просто через интернет, а через специальную точку доступа без интернета, в определенном месте планеты, да ещё и для этого ставить ПО?

          В действительности нет никакой необходимости делать это. Но все проекты начинались с малого, и будет глупо полагать, что если ничего не делать, то потом внезапно сеть разрастётся. Конечно, не разрастётся. Это такой своеобразный PoC.

          > Зачем вы пишете об этом на хабре, так часто, когда у вас еще ничего толком не готово?

          В основном — для привлечения новых разработчиков. Без публикации статей на Хабре мы бы не смогли получить фидбэк от пользователей, которые направили нас в РосКомСвободу. И сеть бы оставалась на I2P, потому что некому было решать её судьбу.


          1. ClearAirTurbulence
            09.09.2019 21:15

            ИМХО переводить clearnet как «чистый» интернет крайне некорректно.
            Здесь clear используется в значении «незашифрованный» (as in sending in the clear).


            1. podivilov Автор
              09.09.2019 21:16

              Спасибо за ценное замечание, учту.


            1. KonstantinSpb
              09.09.2019 22:21

              семантика слова clearnet все же больше в сторону прозрачная сеть, нежели незашифрованная, т.к. в clearnet есть https. А под прозрачностью понимается отсутствие промежуточных оверлейных сетей между клиентом и сервером.


          1. ValdikSS
            09.09.2019 21:28
            +1

            Интернет-провайдер — это организация, предоставляющая услуги доступа к сети Интернет и иные связанные с Интернетом услуги.
            Так и есть. Medium — mesh-сеть с доступом в оверлейную сеть Yggdrasil. Medium — не интернет-провайдер, не подменяйте понятия, пожалуйста.

            В дальнейшем, когда Medium сможет позволить себе отказаться от использования транспорта сети Интернет и перейти на свой собственный, его всё также можно будет называть интернет-провайдером — потому что Интернет по определению являет собой не что иное, как «Interconnected Networks» — «Сеть Сетей».
            Интернет — это определённая сеть, в которой мы сейчас с вами общаемся, а не абстрактное понятие «сеть сетей», хоть она так и расшифровывается. Не задумывались, почему Интернет пишут с большой буквы?

            Если следовать вашей логике, Yddgrasil и I2P — тоже интернет-провайдеры, ведь это сети, работающие поверх интернета. Очевидно, что они не являются интернет-провайдерами.

            Это такой своеобразный PoC.
            Пожалуйста, именно так и пишите о Medium, чтобы у читающего не создавалось ошибочного впечатления, и не называйте себя интернет-провайдером.


          1. ValdikSS
            09.09.2019 21:30

            В действительности нет никакой необходимости делать это.
            Но в чём тогда идея проекта? Ведь основной ваш упор на то, чтобы предоставлять доступ в Yggdrasil потенциальным пользователям, с помощью Wi-Fi-точек. Если вы не можете мне, гику, объяснить, зачем это нужно, то как это объяснить другим людям, не связанным с IT-индустрией?


  1. Foxcool
    09.09.2019 18:50
    +2

    Складывается ощущение, что вы как слепые котята туда-сюда шевелитесь. То выпускали в особо никому ненужный i2p только, то сейчас добавили Yggdrassil со спорным роутингом (плохо масштабируется). Могли бы сначала почитать наработки и статьи по темам на том же хабре (моя старая, например habr.com/ru/post/277721), зайти пообщаться в сообщество Distributed. Ведь там можно сформулировать кейсы типа, что можно применять, а что не стоит. Надо ли ограничиваться конкретными инструментами типа yggdrassil или стоит параллельно оставить место для того же CJDNS? Пообщаться с создателем последнего, например?

    Вы же хотите работать с людими. А значит им нужно предлагать практически законченные TODO скрипты по действиям, и чтобы это нормально взлетело и было юзабельно. Иначе пара человек попробует и потом не будет даже смотреть в эту сторону


  1. Sabubu
    10.09.2019 21:30

    Что я не понимаю: зачем используются какие-то усложненные технологии? Почему нельзя сделать сеть совместимой со стандартной конфигурацией популярных ОС вроде Linux, Android, Windows, Mac? Чтобы человеку достаточно было просто подсоединиться и получить доступ к децентрализованной сети, иметь возможность работать через стандартный браузер?


    И тут, не уверен, что стоит это делать:


    Это необязательно, но желательно, если вы хотите, чтобы пользователям сети было легче вас обнаружить.

    А еще вас будет легче обнаружить сотрудникам ФСБ и СК и завести дело об оказании услуг связи без получения телематической лицензии. Указывать координаты с точностью до 10 метров — не лучшая идея.


    1. Tufed
      11.09.2019 15:19

      Ой, да там целый список нарушений за такую точку приписать можно. Чуть больше чем за простой публичный WIFI.