Многоадресный DNS - Multicast DNS

В компьютерная сеть, то многоадресный DNS (mDNS) протокол разрешает имена хостов к IP-адресам в небольших сетях, которые не включают локальный сервер имен. Это нулевая конфигурация сервис, использующий те же программные интерфейсы, форматы пакетов и рабочую семантику, что и одноадресная система доменных имен (DNS). Несмотря на то что Стюарт Чешир mDNS разработан как отдельный протокол, он может работать совместно со стандартными DNS-серверами.[1]

Протокол mDNS опубликован как RFC  6762, использует многоадресную рассылку IP Протокол пользовательских датаграмм (UDP) пакетов, и реализуется Apple Bonjour и открытый исходный код Авахи программные пакеты, входящие в большинство дистрибутивов Linux. mDNS также был реализован в Windows 10, изначально ограничивалась обнаружением сетевых принтеров[2], позже становится способным также разрешать имена хостов.

mDNS может работать вместе с Обнаружение службы DNS (DNS-SD), компаньон сеть с нулевой конфигурацией техника, указанная отдельно в RFC 6763.[3]

Обзор протокола

Когда клиенту mDNS необходимо разрешить имя хоста, он отправляет Многоадресная IP-рассылка сообщение запроса, которое просит хост с таким именем идентифицировать себя. Затем эта целевая машина рассылает многоадресное сообщение, содержащее ее IP-адрес. Затем все машины в этой подсети могут использовать эту информацию для обновления своих кешей mDNS. Любой хост может отказаться от своих прав на имя, отправив ответный пакет с время жить (TTL) равно нулю.

По умолчанию mDNS разрешает только имена хостов, заканчивающиеся на .местный домен верхнего уровня. Это может вызвать проблемы, если .local включает в себя хосты, которые не реализуют mDNS, но которые можно найти через обычный одноадресный DNS-сервер. Разрешение таких конфликтов требует изменений конфигурации сети, которых mDNS был разработан, чтобы избежать.

Структура пакета

Сообщение mDNS - это многоадресный UDP-пакет, отправленный с использованием следующей адресации:

Структура полезной нагрузки основана на формат одноадресного пакета DNS, состоящий из двух частей - заголовка и данных.[4]

Заголовок идентичен заголовку в одноадресной DNS, как и подразделы в части данных: запросы, ответы, авторитетные серверы имен и дополнительные записи. Количество записей в каждом подразделе соответствует значению соответствующего поля * COUNT в заголовке.

Запросы

Формат передачи для записей в разделе запроса немного отличается от формата одноадресного DNS, добавляя однобитовое поле UNICAST-RESPONSE.[1]

Поля раздела запроса mDNS
ПолеОписаниеДлина биты
QNAMEИмя узла, к которому относится запросПеременная
QTYPEТип запроса, то есть тип RR, который должен быть возвращен в ответах.16
UNICAST-ОТВЕТЛогический флаг, указывающий, требуется ли одноадресный ответ1
QCLASSКод класса, 1 или "IN" для Интернета и IP сети15

Как и в одноадресной DNS, поле QNAME состоит из серии подполей длины / значения, называемых «метками». Каждая метка представляет одну из разделенных точками подстрок в полное доменное имя (Полное доменное имя). Список завершается одним нулевым байтом, представляющим «корень» DNS.

Поле UNICAST-RESPONSE используется для минимизации ненужных широковещательных рассылок в сети: если бит установлен, отвечающие ДОЛЖНЫ отправлять направленный одноадресный ответ непосредственно запрашивающему узлу, а не широковещательно передавать ответ всей сети.

Поле QCLASS идентично полю одноадресного DNS.

Ресурсы

Все записи в разделах ответов, авторитетных серверов имен и дополнительных записей имеют один и тот же формат и вместе известны как записи ресурсов (RR).

Записи ресурсов в mDNS также имеют несколько измененный общий формат по сравнению с одноадресным DNS:

Поля записи ресурса mDNS
ПолеОписаниеДлина биты
RRNAMEИмя узла, к которому относится записьПеременная
RRTYPEТип записи ресурса16
КЭШ-ПРОМЫВКАЛогический флаг, указывающий, следует ли удалять устаревшие кэшированные записи.1
RRCLASSКод класса, 1 или "IN" для Интернета и IP сети15
TTLИнтервал времени (в секундах), в течение которого RR должен быть кэширован32
ДЛИНАЦелое число, представляющее длину (в октетах) поля RDATA16
RDATAДанные о ресурсах; внутренняя структура зависит от RRTYPEПеременная

Бит CACHE-FLUSH используется для указания соседним узлам, что запись должна перезаписывать, а не добавляться к любым существующим кэшированным записям для этих RRNAME и RRTYPE.

Форматы полей RDATA такие же, как и в одноадресном DNS. Тем не мение, Обнаружение службы DNS (DNS-SD), наиболее распространенный вариант использования mDNS, предусматривает незначительные изменения некоторых их форматов (особенно записей TXT).

Смотрите также

Рекомендации

  1. ^ а б Многоадресный DNS. Инженерная группа Интернета (IETF). Дои:10.17487 / RFC6762. RFC 6762..
  2. ^ mDNS и DNS ‐ SD медленно внедряются в Windows 10, Ctrl блог, получено 2017-08-30
  3. ^ Обнаружение службы DNS. Инженерная группа Интернета (IETF). Дои:10.17487 / RFC6763. RFC 6763.
  4. ^ П. Мокапетрис (ноябрь 1987 г.). ДОМЕННЫЕ ИМЕНА - РЕАЛИЗАЦИЯ И СПЕЦИФИКАЦИЯ. Сетевая рабочая группа, IETF. Дои:10.17487 / RFC1035. RFC 1035..

внешняя ссылка

  • Многоадресный DNS - информационный сайт, поддерживаемый дизайнером mDNS Стюартом Чеширом