Открытый Фреймворк-протокол ТопНет
Версия стандарта: 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 | Сервер не доступен |
Фреймворк не ограничивает саму стратегию поиска необходимого сервера доменных имен клиентом. У клиента может быть изначально список корневых адресов и адрес необходимого сервера может спрашиваться от корня до необходимого домена. Клиент может получить список ближайших доменных серверов от провайдера, которые могут обращаться как на уровень выше, так и к корневому серверу. Сеть серверов может быть и одноранговой, где совокупность серверов подтверждает адрес и можно обратиться к любому / любым компьютерам. Сеть серверов может иметь очень ограниченное количество и полный список клиентам известен.
Описание
Фреймворк-протокол каталога доменных имен ТопНет.