Вячеслав Мавроди - 400 идей бесплатно для Вас 131. Пиринговый DNS, или Freedom Net
-- Г-голубчики, - сказал Федор Симеонович озадаченно, разобравшись в почерках. -- Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал,что она н-не имеет р-решения. -- Мы сами знаем, что она не имеет решения, -- сказал Хунта, немедленно ощетиниваясь. -- Мы хотим знать, как ее решать. (Аркадий и Борис Стругацкие. Понедельник начинается в субботу)
131. Пиринговый DNS, или Freedom Net
25.11.2004
Основные
положения
Для организации альтернативных DNS-суффиксов использовать пиринговые сети. Любой пользователь может внести свой суффикс и он станет прозрачно доступным без дополнительных плагинов к браузеру через сотни тысяч компьютеров пользователей Р2Р-сетей. Также предлагается услуга скрытый DNS: Ваш компьютер/сеть будет свободно находиться
всеми другими пользователями Интернета, при этом в DNS-службах RIPN Ваш DNS зарегистрирован не будет.
Реализация идеи
Технически схема сервиса выглядит так:
Таблицы DNS физически находятся в пиринговых сетях в виде конкретных DNS-файлов, известных управляющему серверу Freedom Net (далее FreeNet – Фринет).
Обращаясь
к конкретному домену вида Vasya.porn, пользователь на самом деле попадает на сервер Фринет (основной маршрутизатор), либо на его зеркала, расположенные на нескольких бесплатных серверах (или платных) в разных точках планеты («звезда» 003-го). Т.е. на этом этапе мы имеем полную аналогию с работой маршрутизаторов RIPN.
Сервер Фринет и его зеркала не хранят сами таблицы маршрутизации
с конкретными IP-адресами пользователей. Они хранят лишь таблицы соответствия введенному доменному имени имен DNS-файлов Фринет в пиринговой сети. Конкретные же данные по доменам находятся в DNS-файлах. Где именно расположены эти DNS-файлы сервер Фринет не знает.
Получив запрос на доменное имя Vasya.porn, сервер Фринет отправляет обращение в пиринговую сеть на поиск этого DNS-файла
по его имени.
Когда Фринет-серверу возвращается ответ пиринговой сети с указанием адреса местоположения данного DNS-файла, сервер посылает данному DNS-файлу запрос-команду с указанием нужного домена.
DNS-файл, представляющий собой php-скрипт (либо иной скрипт), в ответ на запрос сервера возвращает ему значение IP-адреса для данного
домена, взяв это значение из своей таблицы маршрутизации.
Либо, как вариант, - сервер в команде DNS-файлу также указывает и IP-адрес пользователя, от кого пришел запрос и, если нужно, параметры запроса (или весь TCP/IP пакет запроса целиком). Тогда DNS-файл может не передавать данные обратно Фринет-серверу, а – передать данные от имени Фринет-сервера (как продолжение сеанса) напрямую на компьютер пользователя, инициировавшего запрос.
Точный IP-адрес сервера DNS-файл знает, поэтому притвориться Фринет-сервером ему не составит труда…
Браузер пользователя получает такую же DNS-инфу, какую он получил бы от DNS-серверов RIPN при посещении «нормального» домена, после чего происходит стандартная процедура соединения.
Дополнения
Чтобы система стабильно работала
в обычных пиринговых сетях, где файлы хранятся на компьютерах пользователей, нужно чтобы пользователи закачивали себе на компы эти самые DNS-файлы. Чего ни один нормальный юзер делать добровольно никогда не будет. Поэтому единственный вариант – стеганографирование DNS-файлов внутрь популярных аудио- видеофайлов, а также порно- и прочих картинок. Либо какое-то простое прикрепление DNS-файлов к другим файлам (я таких механизмов не знаю). Т.е. внутрь того контекста, который пользуется
наибольшей популярностью у юзеров. С учетом того, что DNS-файлы представляют собой скрипты, я пока не готов предложить механизм реализации подобной схемы – непонятно как можно БЫСТРО выдрать инфу из таких файлов без их перекачки на Фридом-сервер и открытия программой стеганографии… Если есть какой-то путь – буду рад его узнать. Если в DNS-маршрутизации можно обойтись какими-то иными механизмами, кроме скриптов или выделенных серверов, - тоже было бы интересно, т.к. моих знаний
о полной схеме маршрутизации явно недостаточно…
Поэтому мы пока не будем заморачиваться на действующих пиринговых сетях, а посмотрим несколько шире на само определение «что такое пиринговая сеть». В самом общем моем смысле – это децентрализованная сеть между двумя клиентами. В нашем случае один клиент – это пользователь, желающий зайти на сайт Vasya.porn
, а второй клиент – это децентрализованный DNS-маршрутизатор. Как их свести между собой так, чтобы для клиента процесс протекал незаметно (прозрачно) и никак не отличался от привычного юзанья Инета?
Пока не будем заморачиваться полностью распределенной пиринговой сетью, без центральных серверов. Построим простую «полупиринговую» сеть с несколькими центральными управляющими
(т.е. не хранящими сами файлы сети) серверами Фринет (основной в офисе + 3 зеркала). А вместо действующих пиринговых сетей используем «звезду» 003-го. В этой «звезде» регистрацию новых клонов и «маток» сделаем полуавтоматической: когда робот доходит до момента распознавания картинки (момент, на котором 003-й остановился на сегодня) – помогать ему будет человек-оператор. (При условии, что ему не поможет статья из журнала «Хакер», где предлагается механизм распознавания
таких картинок роботом).
Для начала операторами, помогающими роботу будут наши люди. В дальнейшем, если это потребуется, я предложу механизмы подключения к этой работе «широких масс» юзеров, пока на этом заострять внимание не надо, как именно это будет работать. Делаем просто в расчете на то, что «кто-то» если надо роботу поможет…
Резюме:
нам надо сделать «альтернативную» официальной RIPN’овской DNS-сеть из клонов и «зеркал» ВЖ-звезды. Задействовав PR-клоны, или зеркала ВЖ как альтернативные DNS-серверы, на которых хранятся таблицы маршрутизации: ведь их не надо даже переписывать, только дополнять новыми доменами и хост-именами. И вполне можно раздать кучу адресов в виде просто «Богатырь» или «Кремль.ру».
! В 2005 году будет новый домен .post, где будут почтовые службы
(надо туда ТМ прописать…)