Readme.md

Открытый Фреймворк-протокол ТопНет

Версия стандарта: 1.0

Состояние: в разработке

Фреймворк-протокол каталога доменных имен ТопНет. Данный протокол прикладного уровня, аналогичен протоколу DNS. Предназначается для преобразования доменного имени в сетевой адрес и обратно. Версия 1.0 предполагается упрощенной версией протокола DNS и не будет поддерживать все записи.

Фреймворк состоит из следующих компонентов с открытым исходным кодом:

  • Сервер обработки запросов
  • Динамическая библиотека протокола приема-передачи запроса
  • Плагины обработчиков запроса
  • Динамическая библиотека базы данных
  • База данных записей
  • Утилита тестирования сервера обработки запросов
  • DNS сервер-конвертер запросов из DNS в ТопНет
  • Библиотека для создания клиента / сервера
  • Сервер администрирования базы данных

Динамическая библиотека протокола приема-передачи запроса используется одна на один сервер обработки запросов, тем не менее может иметь разные реализации, в зависимости от протокола приема передачи. Например фреймворк может поддерживать протоколы: UDP, TCP, HTTP. Соответственно каждый протокол будет реализован в виде библиотеки с одинаковым интерфейсом других протоколов, но разной реализацией. Задача данной библиотеки запустить сервер на прием и передачу сообщений и передать серверу обработки запросов.

Плагины обработчиков запроса используются сервером для фильтрации запросов с некорректными данными или символами (которые можно спутать с другими), кеширования запросов, статистического анализа запросов.

Динамическая библиотека базы данных используется для получения записей из базы данных в зависимости от используемой базы данных. Например фреймворк может поддерживать базы данных: SQLite, SQL Server, Postgres, Redis и т.д.

Протокол ТопНет поддерживает записи следующих сетевых протоколов адресации:

  • IPv4
  • IPv6

Кодировка символов всех записей: UTF-8

Каждая запись имеет квантование срока актуальности данных. Допустим в течение часа данные актуальны, это означает что каждый час данные могут быть изменены. В таком случае на запрос в 2:30 ответ приходит вместе с записями, которые актуальны до 3:00. Актуальность всех записей дается с ответом. Если актуальность разная - выбирается наименьшая. Чем реже происходят изменения, тем быстрее может быть доступ к домену из-за кеширования.

Записи протокола ТопНет вместе с поддержкой записей DNS сервера-конвертера:

| № | Топнет | Описание | Поддержка записи сервера-конвертера | | – | ————— | ————————————————————- | ———————————– | | 01 | Сеть | Сервер ответственный за доменную зону | NS | | 02 | Посол | Сервер ответственный за коммуникацию с некотролируемой сетью | NS | | 03 | Псевдоним | Псевдоним для канонического имени узла | CNAME | | 04 | IP | IP адрес | A или AAAA | | 05 | IPv4 | IPv4-адрес | A | | 06 | IPv6 | IPv6-адрес | AAAA | | 07 | Почта | Почта | MX | | 08 | Приложение | Значение для приложения | TXT | | 09 | Владелец | Информация про владельца домена | | | 10 | Контакт | Контакт владельца домена | | | 12 | Текст | Общая тектовая информация | TXT | | 13 | Устарел | Домен устарел и будет действителен до определённой даты. | | | | Обновить | Добавляется параметр перенаправления, если есть. | | | 14 | Публичный ключ | Публичный ключ для алгоритмов шифрования | | | 15 | Приватный ключ | Приватный ключ для алгоритмов шифрования | |

Запросы от клиента к серверу

  • Подтвердить, работает ли сервер
  • Подтвердить, является ли сервер корневым
  • Получить записи о корневых серверах
  • Получить адреса серверов ответственных за родительскую доменную зону
  • Получить определенные типы записей до определенного количества максимум
  • Подтвердить верна ли запись
  • Получить версию протокола ТопНет
  • Получить список поддерживаемых записей

Таблица ответов ТопНет кода

Код Описание
01 Да
02 Нет
03 Записи найдены
04 Записи не найдены
05 Невалидные символы
06 Отказано в доступе
07 Сервер не доступен

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

Описание

Фреймворк-протокол каталога доменных имен ТопНет.

Конвейеры
0 успешных
0 с ошибкой