Вопрос или проблема
После перезагрузки моего сервера я заметил, что имя хоста не разрешается. Я проверил firewall-cmd
, чтобы убедиться, что mdns
/5353/udp
открыт, и он был открыт.
Затем я проверил, запущен ли демон Avahi, и он действительно запущен.
[vestatian@etune ~]$ systemctl status avahi-daemon
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service;>
Active: active (running) since Mon 2025-02-10 15:13:27 +08;
Кроме того, sudo netstat -tuln
показал, что сервер действительно прослушивает здесь
udp 0 0 0.0.0.0:5353 0.0.0.0:*
После выполнения нижеуказанных команд я понял, что mdns действительно разрешается, но только в обратном направлении. Что может вызывать такое поведение у avahi-daemon
?
vestatian@pegasus:~/sources/frappe_podlet$ avahi-resolve -n etune.local
Failed to resolve host name 'etune.local': Timeout reached
vestatian@pegasus:~/sources/frappe_podlet$ avahi-resolve -a 192.168.50.241
192.168.50.241 etune
Дополнительная информация:
Operating System: Red Hat Enterprise Linux 9.5 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 5.14.0-503.21.1.el9_5.x86_64
Architecture: x86-64
Ответ или решение
Теория
Avahi — это демон для сетевого обнаружения, который реализует протокол multicast DNS (mDNS) и DNS Service Discovery (DNS-SD). Эти технологии позволяют автоматически находить и идентифицировать устройства и сервисы в локальной сети без необходимости ручной конфигурации. Мониторинг сети с использованием Avahi является особенно полезным в домашних и офисных сетях.
Протокол mDNS работает аналогично традиционному DNS, но напрямую между устройствами в локальной сети. В частности, forward resolution (прямое разрешение) предполагает перевод доменного имени, такого как etune.local
, в IP-адрес. Backward resolution (обратное разрешение), напротив, переходит от IP-адреса к соответствующему доменному имени.
Пример
Рассмотрим ваш случай: после перезагрузки сервера вы заметили, что hostname не разрешается. При этом проверка показала, что Avahi-демон работает исправно, и порт 5353/UDP, на котором работает mDNS, открыт. Однако, avahi-resolve не смог разрешить hostname etune.local
. Интересно, что обратное разрешение IP-адреса работает корректно и возвращает имя etune
.
Возможные причины ограничения прямого разрешения включают:
-
Правила брандмауэра: Несмотря на открытый порт 5353/UDP, другие правила брандмауэра могут блокировать запросы или ответы от mDNS, устраняя их перед доставкой.
-
Сетевые проблемы: Соединение между устройствами может быть нестабильным, в том числе проблемы с маршрутизацией или конфигурацией коммутаторов, что препятствует прохождению mDNS-пакетов.
-
Неверные настройки Avahi: Если в конфигурации Avahi отключено мультикаст широковещание или неправильно настроены доменные суффиксы, это может препятствовать прямому разрешению имен.
-
Ограниченная видимость узлов: Если устройство, запрашивающее разрешение имени, и устройство с Avahi находятся в разных подсетях, а мультикаст-трафик не может проходить через сетевые устройства, это может привести к вашей проблеме.
Применение
Для решения проблемы следуйте следующему подходу:
-
Проверка конфигурации Avahi: Откройте файл конфигурации Avahi, который обычно находится в
/etc/avahi/avahi-daemon.conf
, и убедитесь, чтоenable-dbus
иdomain-name
настроены правильно. Убедитесь, что мультикаст (разделuse-ipv4=yes
иuse-ipv6=yes
) включён. -
Диагностика сети: Используйте инструменты сетевой диагностики, такие как
tcpdump
илиwireshark
, чтобы поймать и изучить трафик mDNS между устройствами. Это поможет выявить, не блокируются ли пакеты где-то в сети. -
Брандмауэр: Дополнительно проверьте все правила брандмауэра. Кроме открытых портов для udp/5353, убедитесь, что нет иных активных правил, которые могут препятствовать обмену mDNS-трафиком.
-
Проверка сетевых устройств: Проверьте, что сетевые устройства в вашей сети, такие как маршрутизаторы и коммутаторы, не блокируют и не фильтруют mDNS-трафик. Иногда старые версии прошивок могут неправильно обрабатывать такие пакеты.
-
Обновление и патчи: Убедитесь, что все ваши системы, включая ОС и модули программного обеспечения, обновлены до последних версий. Известно, что старые версии могут содержать баги, затрудняющие работу Avahi.
-
Изоляция сетей: Проверьте, нет ли разделения на VLAN, где устройства на разных VLAN не могут обмениваться mDNS-трафиком.
Таким образом, следуя этим шагам, вы сможете диагностировать и, в конечном итоге, решить проблему, связанную с ограничениями разрешения имен в Avahi. Понимание внутренней работы Avahi и сетевых принципов поможет избежать подобных ошибок в будущем и позволит эффективно управлять сетевой инфраструктурой.