Вопрос или проблема
Я недавно открыл для себя avahi. Это поможет вам, когда вам нужно разрешить имя хоста для локальной сети. Но в моей ситуации у меня возникла проблема.
Я решил разместить машину под названием a.alpha
и другую под названием b.alpha
. В ближайшем будущем я также буду использовать несколько машин под названиями a.beta
и b.beta
. Моя проблема в том, что с a.alpha
я могу разрешить имя хоста a.alpha.local
, но в данный момент я не могу разрешить a.alpha.local
с b.alpha
.
Поэтому, когда я решу использовать расширение .beta
, у меня будут некоторые проблемы.
Это нормально, что машина “a.alpha” не выставляет полное имя хоста в mdns?
Я знаю, что могу изменить способ именования (например, использовать a-alpha вместо a.alpha
). Но мне это нравится.
Так что вопрос в том: возможно ли использовать точечное имя в /etc/hostname
и разрешить его с помощью avahi?
Смотрите принятый ответ от @sysadmin1138 (цитируется ниже) в моем вопросе на Server Fault: Могу ли я иметь точки в имени хоста?
Chopper прав. В зависимости от того, как работает DNS, компонент “alpha” в “a.alpha” считается отдельной ‘меткой’ в DNS. Использование имени хоста с точкой вызовет непоследовательные результаты от любой системы, которая использует DNS.
Avahi взаимодействует с именами DNS, и конкретно директива
<host-name>
должна содержать FQDN сервиса, поэтому она также подвержена непоследовательности DNS с точечными именами.Не используйте точечное имя.
Ответ или решение
Использование точечных имен хостов с Avahi
Avahi — это служба, которая обеспечивает автоматическое обнаружение сетевых ресурсов в локальных сетях с использованием протокола mDNS (Multicast DNS). В вашей ситуации вы столкнулись с проблемой разрешения имен хостов, что является важной частью работы с сетевыми ресурсами. Рассмотрим ключевые аспекты вашего вопроса о том, как использовать точечные имена хостов в Avahi и с какими ограничениями вы можете столкнуться.
Tочечные имена хостов и их особенности
Ваша структура именования предполагает использование точечных имен, таких как a.alpha
и b.alpha
. Однако стоит учитывать, что DNS (Система доменных имен) трактует каждую часть имени, разделенного точками, как отдельный "ярлык". Поэтому alpha
здесь считается отдельной сущностью, а не частью имени хоста. Это поведение может вызвать путаницу и проблемы при разрешении имен в сети.
Согласно открытиям из обсуждений на Server Fault, использование точечных имен может привести к непостоянным результатам системы в зависимости от того, как DNS обрабатывает запросы. Avahi, как сервис, взаимодействующий с DNS, также подвержен этим проблемам. Если a.alpha
не "экспортирует" полное имя из-за особенности реализации mDNS, то вы не сможете разрешить a.alpha.local
с другого хоста, например, b.alpha
.
Решение проблемы с Avahi
Ваша основная цель — обеспечить возможность разрешения имён хостов с использованием точек. Для достижения этого существует несколько подходов:
-
Изменение конфигурации avahi-daemon:
- Вы можете попробовать настроить файл конфигурации Avahi, чтобы явно указать, какие имена хостов должны быть опубликованы.
- Отредактируйте файл
/etc/avahi/avahi-daemon.conf
, добавив соответствующее имя хоста. Если данный параметр не позволяет добиться желаемого результата, стоит рассмотреть возможность альтернативных решений.
-
Изменение метода именования:
- Вы упомянули, что не хотите изменять текущее именование. Но в большинстве случаев рекомендуется использовать имена без точек (например,
a-alpha
), что позволит избежать путаницы и упростить администрирование.
- Вы упомянули, что не хотите изменять текущее именование. Но в большинстве случаев рекомендуется использовать имена без точек (например,
-
Использование других решений для обнаружения:
- Если использование Avahi по каким-либо причинам не подходит, вы можете рассмотреть альтернативные решения, такие как использование классического DNS-сервера, где вы сможете контролировать каждую часть имени.
Заключение
Использование точечных имен хостов с Avahi не совсем оптимально и может вызвать проблемы в разрешении имен на локальной сети. Сложности, с которыми вы сталкиваетесь при попытке разрешить a.alpha.local
с b.alpha
, связаны с особенностями работы DNS и mDNS. В большинстве случаев рекомендуется придерживаться простых имен без точек для обеспечения максимальной совместимости и стабильности работы сети.
Если вы хотите сохранить глубокие и понятные имена хостов, вам, возможно, придется изменить подход к их синтаксису или рассмотреть другие решения, которые соответствуют вашим требованиям. Надеюсь, это освещение вашей проблемы было полезным и поможет в будущем избежать аналогичных трудностей.