Вопрос или проблема
Ubuntu использует ‘avahi’ для выполнения запросов на поиск имен хостов в локальной сети, что позволяет мне находить другие компьютеры, просто добавив ‘.local’ к имени, например, laptop.local или desktop.local.
Тем не менее, avahi, похоже, не выполняет обратные запросы для IP-адресов компьютеров в локальной сети. Поэтому, когда приложения запрашивают IP-адреса для локальных компьютеров, запрос отправляется на DNS-сервер в Интернете, который возвращает NXDOMAIN (имя не существует).
Возможно ли, чтобы avahi выполнял обратные запросы для IP-адресов? Если да, то как это сделать?
Да, avahi поддерживает обратные запросы IP-адресов для .local имен, зарегистрированных в локальной сети. Однако большинство команд для выполнения тестовых запросов обращаются к DNS-серверам напрямую, не используя avahi. Чтобы подтвердить, что это работает в командной строке, вам нужно использовать команду getent hosts
вместо nslookup
, dig
или host
.
Например, вы можете выполнить поиск IP-адреса с помощью следующих команд:
$ nslookup 192.168.0.1
$ dig -x 192.168.0.1
$ host 192.168.0.1
$ getent hosts 192.168.0.1
Только команда getent hosts
вернет соответствующее имя, потому что это единственная команда, которая использует avahi для выполнения обратного запроса.
(На самом деле, это также касается поиска имен, но обычно проще просто ввести ping hostname.local
, что выполняет поиск имен, используя DNS или avahi и одновременно проверяет доступность.)
dig также может выполнять обратный DNS-запрос, используя avahi:
dig -x 192.168.0.1 @224.0.0.251 -p 5353
Существует команда avahi для этого: avahi-resolve-address
. Например:
avahi-resolve-address 192.168.0.1
Или эквивалентный вариант:
avahi-resolve --address 192.168.0.1
Ответ или решение
Может ли avahi выполнять обратные запросы по IP-адресам, а также запросы по именам хостов?
Вопрос о том, может ли avahi
обрабатывать не только запросы по именам хостов, но и обратные запросы по IP-адресам, очень актуален для пользователей, работающих в средах локальных сетей, таких как Ubuntu.
Что такое avahi?
avahi
является реализацией протокола Zeroconf (Bonjour), который обеспечивает автоматическое обнаружение сетевых сервисов и устройств в пределах локальной сети. В большинстве случаев его используют для поиска устройств с помощью доменных имен, оканчивающихся на .local
. Например, у вас может быть доступ к компьютерам, вводя такие адреса, как laptop.local
или desktop.local
.
Поддержка обратных запросов
На практике, avahi может выполнять обратные IP-адресные запросы для устройств, зарегистрированных в локальной сети. Однако, стоит отметить, что многие стандартные инструменты, такие как nslookup
, dig
и host
, обращаются к DNS-серверам напрямую и не используют функциональности avahi. Поскольку avahi работает с локальными ресурсами, чтобы протестировать его возможности, следует использовать команду getent hosts
.
Как проверить работу avahi?
Чтобы выполнить обратный запрос по IP-адресу и получить соответствующее имя хоста, используйте следующую команду:
$ getent hosts 192.168.0.1
Эта команда вернёт вам имя, соответствующее указанному IP-адресу, если этот адрес зарегистрирован в avahi.
Примеры команд
Вот несколько команд и их особенностей:
$ nslookup 192.168.0.1 # Обратный запрос с использованием DNS-сервера, возможен NXDOMAIN
$ dig -x 192.168.0.1 # Аналогично, обращение к DNS
$ host 192.168.0.1 # Также работает через DNS
$ getent hosts 192.168.0.1 # Обращение к avahi для получения имени
Из всех перечисленных команд только getent hosts
вернёт имя, зарегистрированное в avahi.
Использование avahi для обратного разрешения
Кроме того, для выполнения обратных запросов вы также можете использовать специальную команду avahi:
$ avahi-resolve-address 192.168.0.1
или эквивалентную команду:
$ avahi-resolve --address 192.168.0.1
Эти команды выполняют запрос через avahi и должны вернуть соответствующее имя для данного IP-адреса.
Заключение
Таким образом, avahi может выполнять обратные IP-адресные запросы для устройств в локальной сети, но важно использовать соответствующие инструменты, такие как getent
или avahi-resolve
, чтобы получить актуальную информацию. Стоит помнить, что стандартные инструменты, работающие с DNS, не будут использовать функции avahi и, как следствие, могут не вернуть ожидаемый результат.
Если у вас есть дополнительные вопросы или требуется помощь в настройке avahi, не стесняйтесь обращаться за профессиональной поддержкой.