[MEDIANA] К обсуждению: схема данных DNS в NodeInfo для новой децентрализованной системы доменных имён

Приветствую!

В топике discuss.mediumfoundation.org/mediana/62 я предложил децентрализованную систему DNS, на основе данных в NodeInfo. Краткое изложение можно прочитать там, чтобы я тут не повторялся.

Но схема данных требует обсуждения, так как хочется сразу заложить максимум (все, вероятно не удастся всё равно) возможностей. Почему? Потому, что судя по NodeInfo, в сети Yggdrasil очень много узлов, работающих на старых версиях 0.3.8, но чаще даже 0.3.5. А если пользователи-админы так относятся к своему транспортному уровню, то и к DNS будут подходить так же халатно. Поэтому, чтобы потом не требовать обновлять структуру данных, она всё-таки заполняется вручную, надо её хорошо продумать.

Мы уже много топиков создавали и обсуждали в них все желаемые моменты. Один, к сожалению, пока реализовать не получится — скрытые DNS-записи, например поддомены. Но такую вещь, как тэгирование домена, реализовать будет просто. Я не обещаю это в первой версии, но вариант записи нужно предложить сразу.
Читать дальше

[MEDIANA] Альтернативная схема организации DNS

Посматривая карту расположения узлов в сети Yggdrasil, я обратил внимание на то, что некоторые узлы называются как домены в зоне .ygg. То есть, например, dhtmap.ygg. Естественно, он у вас не откроется, потому, что на DNS-серверах Медиума нет такой записи.

То есть, владелец узла прописал этот домен в свой NodeInfo. Как мы можем это использовать?

В качестве эксперимента, можно настроить сервер, который будет работать так:
  1. Обходить все узлы сети, как делает робот map.ygg, вытаскивая из каждого NodeInfo.
  2. Если имя узла (name) похоже на внутренний (в зонах Medium) домен, то:
    • Если домена нет в базе, домен и IPv6-адрес добавляются в базу с датой, когда он замечен.
    • Если домен уже есть, и IPv6-адрес совпадает с находящимся в базе, то его «действие» обновляется.
    • Если домен есть в базе, но IPv6-адрес не совпадает с предыдущим, то:
      • Если перед этим домен был помечен для переноса на новый IPv6 (с помощью поля moved), и если новый IPv6 совпадает с пометкой для переноса, то запись в базе перезаписывается.
      • Если у домена на предыдущем адресе в NodeInfo была пометка вроде alt: IPv6, то IPv6 добавляется второй AAAA-записью для этого домена.
      • В ином случае, этот хост помечается неблагонадёжным, и от него NodeInfo не обрабатывается.
  3. Если имя узла находится в зоне IANA то производится резолв AAAA-записей у такого домена через любой DNS-сервер обычного Интернета, выделяется запись из диапазона адресов Yggdrasil, и если такая найдена, то домен записывается в базу.
  4. Из базы регулярно делается выгрузка соответствий в нужном для DNS-сервера формате конфигурации, и осуществляется работа сервера(-ов) в обычном режиме.
  5. Так же, домены, не появлявшиеся на своём «привычном» IPv6-адресе N дней удаляются из базы.

Что вы думаете о таком механизме?