WikiDer > Многоадресный 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-пакет, отправленный с использованием следующей адресации:
- IPv4-адрес 224.0.0.251 или же IPv6-адрес ff02 :: fb
- UDP порт 5353
- Когда используешь Кадры Ethernet, то стандартный MAC-адрес групповой IP-рассылки 01: 00: 5E: 00: 00: FB (за IPv4) или же 33: 33: 00: 00: 00: FB (за IPv6)
Структура полезной нагрузки основана на формат одноадресного пакета DNS, состоящий из двух частей - заголовка и данных.[4]
Заголовок идентичен заголовку в одноадресной DNS, как и подразделы в части данных: запросы, ответы, авторитетные серверы имен и дополнительные записи. Количество записей в каждом подразделе соответствует значению соответствующего поля * COUNT в заголовке.
Запросы
Формат передачи для записей в разделе запроса немного отличается от формата одноадресного DNS, добавляя однобитовое поле UNICAST-RESPONSE.[1]
Поле | Описание | Длина биты |
---|---|---|
QNAME | Имя узла, к которому относится запрос | Переменная |
QTYPE | Тип запроса, то есть тип RR, который должен быть возвращен в ответах. | 16 |
UNICAST-ОТВЕТ | Логический флаг, указывающий, требуется ли одноадресный ответ | 1 |
QCLASS | Код класса, 1 или "IN" для Интернета и IP сети | 15 |
Как и в одноадресной DNS, поле QNAME состоит из серии подполей длины / значения, называемых «метками». Каждая метка представляет одну из разделенных точками подстрок в полное доменное имя (Полное доменное имя). Список завершается одним нулевым байтом, представляющим «корень» DNS.
Поле UNICAST-RESPONSE используется для минимизации ненужных широковещательных рассылок в сети: если бит установлен, отвечающие ДОЛЖНЫ отправлять направленный одноадресный ответ непосредственно запрашивающему узлу, а не широковещательно передавать ответ всей сети.
Поле QCLASS идентично полю одноадресного DNS.
Ресурсы
Все записи в разделах ответов, авторитетных серверов имен и дополнительных записей имеют один и тот же формат и вместе известны как записи ресурсов (RR).
Записи ресурсов в mDNS также имеют несколько измененный общий формат по сравнению с одноадресным DNS:
Поле | Описание | Длина биты |
---|---|---|
RRNAME | Имя узла, к которому относится запись | Переменная |
RRTYPE | Тип записи ресурса | 16 |
КЭШ-ПРОМЫВКА | Логический флаг, указывающий, следует ли удалять устаревшие кэшированные записи. | 1 |
RRCLASS | Код класса, 1 или "IN" для Интернета и IP сети | 15 |
TTL | Интервал времени (в секундах), в течение которого RR должен быть кэширован | 32 |
ДЛИНА | Целое число, представляющее длину (в октетах) поля RDATA | 16 |
RDATA | Данные о ресурсах; внутренняя структура зависит от RRTYPE | Переменная |
Бит CACHE-FLUSH используется для указания соседним узлам, что запись должна перезаписывать, а не добавляться к любым существующим кэшированным записям для этих RRNAME и RRTYPE.
Форматы полей RDATA такие же, как и в одноадресном DNS. Тем не мение, Обнаружение службы DNS (DNS-SD), наиболее распространенный вариант использования mDNS, предусматривает незначительные изменения некоторых их форматов (особенно записей TXT).
Смотрите также
Рекомендации
- ^ а б Многоадресный DNS. Инженерная группа Интернета (IETF). Дои:10.17487 / RFC6762. RFC 6762..
- ^ mDNS и DNS ‐ SD медленно внедряются в Windows 10, Ctrl блог, получено 2017-08-30
- ^ Обнаружение службы DNS. Инженерная группа Интернета (IETF). Дои:10.17487 / RFC6763. RFC 6763.
- ^ П. Мокапетрис (ноябрь 1987 г.). ДОМЕННЫЕ ИМЕНА - РЕАЛИЗАЦИЯ И СПЕЦИФИКАЦИЯ. Сетевая рабочая группа, IETF. Дои:10.17487 / RFC1035. RFC 1035..
внешняя ссылка
- Многоадресный DNS - информационный сайт, поддерживаемый дизайнером mDNS Стюартом Чеширом