Что вызывает различную заглавную букву и дополнения, такие как .local в рекламируемых именах хостов?

235
Nick

У меня есть две платы Raspberry Pi под управлением Linux (Raspbian). Их идентичность приводит меня в замешательство, когда я вижу их рекламируемые имена хостов:

Первое - это kitchen.local; второй BATHROOM.

Файл / etc / hostname есть kitchenи bathroomсоответственно для обоих устройств.

Итак, мой вопрос: какая вещь добавляет .localили заставляет второе устройство иметь все заглавные буквы в имени хоста?

Я не уверен, как все это работает, и если имеет значение следующее: я запрашиваю имена хостов с помощью Angry IP Scanner. Мой DHCP-сервер - это маршрутизатор с OpenWRT. DNS-сервер - это мой модем, который, по моему мнению, действует как своего рода кеш.

1

1 ответ на вопрос

1
Spiff

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

Служба имен NetBIOS очень старая и традиционно использует ВСЕ имена хостов CAPS.

IETF ZeroConf поддерживает смешанный регистр и использует наименования .local. (Примечание по именованию: ZeroConf начал свою жизнь как Apple Rendezvous / Bonjour и с тех пор был стандартизирован IETF. Используемые базовые протоколы называются mDNS (многоадресная DNS) и DNS-SD (обнаружение службы DNS), поэтому некоторые люди называют это это под этими именами. Наиболее распространенная реализация Linux, вероятно, все еще Avahi, хотя mDNSResponder от Apple с открытым исходным кодом используется в некоторых дистрибутивах, и OpenWrt создал свой собственный демон mDNS)

Собственный Microsoft LLMNR (локальное многоадресное разрешение ссылок) похож на нестандартный полуклон ZeroConf и также использует .local для имен, просто чтобы запутать вещи.

Возможно, ваш сканер просто придерживается того имени, которое он обнаруживает первым, по какому-либо протоколу, который отвечает первым.

Спасибо, это может быть самым кратким и в то же время полным изложением различных механизмов, лежащих в основе этого, казалось бы, простого вопроса. Хотя один вопрос: так всегда ли эти имена хостов возвращаются через своего рода обратный DNS-запрос? Таким образом, мы не запрашиваем само имя хоста у устройства, а запрашиваем DNS-сервер, с которым хост идентифицировал себя? Почему так сложно? Кстати, не уверен, какие протоколы использует Angry IP Scanner. Он просто говорит «DNS»: http://angryip.org/faq/hostnames.html. Nick 6 лет назад 0
@Nick mDNS работает путем многоадресной передачи DNS-подобного запроса в локальной сети, в основном спрашивая что-то вроде: «Какое имя хоста для IP-адреса 192.168.1.3?», А устройство, имеющее этот адрес, отвечает многоадресной DNS-подобной реакцией, говорящей « 192.168.1.3 is kitchen.local ». Это грубое упрощение того, как это работает, но дело в том, что все это делается с помощью локальных многоадресных пакетов DNS-подобных запросов и ответов без необходимости в одноадресном DNS-сервере. Spiff 6 лет назад 0
Я вижу, таким образом, единица, которая отвечает, может также быть устройством, для которого имя хоста запрашивается само? Интересно, с какими устройствами это могло быть иначе? DHCP-сервер? В любом случае причиной может быть имя хоста, запрашиваемое с использованием разных протоколов. Таким образом, объяснения поведения, вероятно, состоят в том, что либо для какого-либо устройства какой-либо блок отвечает на один из запросов с различным протоколом каждый, возможно, из-за синхронизации, либо существует только несколько устройств, которые отвечают только на определенные протоколы. Nick 6 лет назад 0