Многоадресный DNS
В компьютерных сетях протокол многоадресной рассылки DNS ( mDNS ) преобразует имена хостов в IP-адреса в небольших сетях, которые не включают локальный сервер имен . Это служба с нулевой конфигурацией , использующая по существу те же программные интерфейсы, форматы пакетов и операционную семантику, что и одноадресная система доменных имен (DNS). Он был разработан для работы либо как автономный протокол, либо как совместимый со стандартными DNS-серверами. [1] Он использует пакеты протокола многоадресной передачи пользовательских датаграмм IP (UDP) и реализуется с помощью Apple Bonjour с открытым исходным кодом и пакетов программного обеспечения Avahi , включенных в большинство дистрибутивов Linux. Хотя реализация Windows 10 ограничивалась обнаружением сетевых принтеров, в последующих выпусках также разрешались имена хостов. [2] mDNS может работать в сочетании с обнаружением служб DNS (DNS-SD), сопутствующим сетевым методом с нулевой конфигурацией, описанным отдельно в РФК 6763 . [3]
История
[ редактировать ]Многоадресная DNS была впервые предложена Биллом Вудкоком и Биллом Мэннингом в IETF в 2000 году и в конечном итоге была опубликована как стандартная версия. RFC 6762 Стюарта Чешира и Марка Крохмаля тринадцать лет спустя. [1] [4]
Обзор протокола
[ редактировать ]Когда клиенту mDNS необходимо разрешить имя хоста, он отправляет сообщение запроса многоадресной IP-адресации , которое просит хост, имеющий это имя, идентифицировать себя. Затем эта целевая машина рассылает многоадресное сообщение, включающее ее IP-адрес. Все машины в этой подсети смогут затем использовать эту информацию для обновления своих кешей mDNS. Любой хост может отказаться от своих претензий на имя, отправив ответный пакет со временем жизни (TTL), равным нулю.
По умолчанию mDNS разрешает исключительно имена хостов, оканчивающиеся на .local
Домен верхнего уровня. Это может вызвать проблемы, если .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-пакета , состоящего из двух частей — заголовка и данных. [5]
Заголовок идентичен заголовку одноадресного DNS, как и подразделы части данных: запросы, ответы, авторитетные серверы имен и дополнительные записи. Количество записей в каждом подразделе соответствует значению соответствующего поля *COUNT в заголовке.
Запросы
[ редактировать ]Формат проводной передачи записей в разделе запроса немного изменен по сравнению с форматом одноадресной DNS, добавлено однобитовое поле UNICAST-RESPONSE. [1]
Поле | Описание | длины Биты |
---|---|---|
QNAME | Имя узла, к которому относится запрос | Переменная |
КОЛ-ТИП | Тип запроса, т. е. тип записи ресурса, которая должна быть возвращена в ответах. | 16 |
UNICAST-ОТВЕТ | Логический флаг, указывающий, требуется ли одноадресный ответ. | 1 |
QКЛАСС | Код класса, 1, он же «IN» для Интернета и IP-сетей. | 15 |
Как и в одноадресном DNS, поле QNAME состоит из серии подполей длины/значения, называемых метками . Каждая метка представляет собой одну из подстрок, разделенных точками, в полном доменном имени (FQDN). Список завершается либо одним нулевым байтом, представляющим корень DNS, либо байтом с двумя установленными старшими битами (значение 192), сигнализирующими о косвенном указателе на другое место в сообщении. В RFC 6762 это называется сжатием имен.
Поле UNICAST-RESPONSE используется для минимизации ненужных широковещательных рассылок в сети: если бит установлен, ответчики ДОЛЖНЫ отправлять направленный одноадресный ответ непосредственно запрашивающему узлу, а не транслировать ответ по всей сети.
Поле QCLASS идентично полю в одноадресной DNS.
Ресурсные записи
[ редактировать ]Все записи в разделах ответов, авторитетных серверов имен и дополнительных записей имеют одинаковый формат и называются записями ресурсов (RR).
Записи ресурсов в mDNS также имеют немного измененный общий формат по сравнению с одноадресным DNS:
Поле | Описание | длины Биты |
---|---|---|
RRNAME | Имя узла, к которому относится запись | Переменная |
ТИП RR | Тип записи ресурса | 16 |
Очистка кэша | Логический флаг, указывающий, следует ли удалять устаревшие кэшированные записи. | 1 |
RRКЛАСС | Код класса, 1, он же «IN» для Интернета и IP-сетей. | 15 |
ТТЛ | Интервал времени (в секундах), в течение которого RR должен кэшироваться | 32 |
ДЛИНА | Целое число, представляющее длину (в октетах) поля RDATA. | 16 |
РДАТА | Данные о ресурсах; внутренняя структура зависит от RRTYPE | Переменная |
Бит CACHE-FLUSH используется для указания соседним узлам, что запись должна перезаписывать, а не добавляться к любым существующим кэшированным записям для этих RRNAME и RRTYPE.
Форматы полей RDATA такие же, как и в одноадресной DNS. Однако обнаружение служб DNS (DNS-SD), наиболее распространенный вариант использования mDNS, предусматривает небольшие изменения в некоторых их форматах (особенно в записях TXT).
См. также
[ редактировать ]- Бонжур Спящий Прокси
- Разрешение многоадресных имен локальных каналов (LLMNR)
- Переключатель службы имен (NSS)
Ссылки
[ редактировать ]- ^ Jump up to: а б с Многоадресный DNS . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC6762 . РФК 6762 .
- ^ mDNS и DNS-SD постепенно внедряются в Windows 10 , блог Ctrl, 21 октября 2015 г. , получено 30 августа 2017 г.
- ^ Обнаружение службы DNS . IETF . дои : 10.17487/RFC6763 . РФК 6763 .
- ^ Мэннинг, Билл; Вудкок, Билл (август 2000 г.), «Служба многоадресных доменных имен» , Ietf Datatracker , IETF
- ^ П. Мокапетрис (ноябрь 1987 г.). ДОМЕННЫЕ ИМЕНА – РЕАЛИЗАЦИЯ И СПЕЦИФИКАЦИЯ . Сетевая рабочая группа, IETF . дои : 10.17487/RFC1035 . РФК 1035 . .
Внешние ссылки
[ редактировать ]- Multicast DNS - информационный сайт, поддерживаемый дизайнером mDNS Стюартом Чеширом.
- LLMNR, многоадресный DNS и имена в вашей локальной сети