Как может работать обратное разрешение через avahi daemon, если прямое разрешение не работает?

Вопрос или проблема

После перезагрузки моего сервера я заметил, что имя хоста не разрешается. Я проверил 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.

Возможные причины ограничения прямого разрешения включают:

  1. Правила брандмауэра: Несмотря на открытый порт 5353/UDP, другие правила брандмауэра могут блокировать запросы или ответы от mDNS, устраняя их перед доставкой.

  2. Сетевые проблемы: Соединение между устройствами может быть нестабильным, в том числе проблемы с маршрутизацией или конфигурацией коммутаторов, что препятствует прохождению mDNS-пакетов.

  3. Неверные настройки Avahi: Если в конфигурации Avahi отключено мультикаст широковещание или неправильно настроены доменные суффиксы, это может препятствовать прямому разрешению имен.

  4. Ограниченная видимость узлов: Если устройство, запрашивающее разрешение имени, и устройство с Avahi находятся в разных подсетях, а мультикаст-трафик не может проходить через сетевые устройства, это может привести к вашей проблеме.

Применение

Для решения проблемы следуйте следующему подходу:

  1. Проверка конфигурации Avahi: Откройте файл конфигурации Avahi, который обычно находится в /etc/avahi/avahi-daemon.conf, и убедитесь, что enable-dbus и domain-name настроены правильно. Убедитесь, что мультикаст (раздел use-ipv4=yes и use-ipv6=yes) включён.

  2. Диагностика сети: Используйте инструменты сетевой диагностики, такие как tcpdump или wireshark, чтобы поймать и изучить трафик mDNS между устройствами. Это поможет выявить, не блокируются ли пакеты где-то в сети.

  3. Брандмауэр: Дополнительно проверьте все правила брандмауэра. Кроме открытых портов для udp/5353, убедитесь, что нет иных активных правил, которые могут препятствовать обмену mDNS-трафиком.

  4. Проверка сетевых устройств: Проверьте, что сетевые устройства в вашей сети, такие как маршрутизаторы и коммутаторы, не блокируют и не фильтруют mDNS-трафик. Иногда старые версии прошивок могут неправильно обрабатывать такие пакеты.

  5. Обновление и патчи: Убедитесь, что все ваши системы, включая ОС и модули программного обеспечения, обновлены до последних версий. Известно, что старые версии могут содержать баги, затрудняющие работу Avahi.

  6. Изоляция сетей: Проверьте, нет ли разделения на VLAN, где устройства на разных VLAN не могут обмениваться mDNS-трафиком.

Таким образом, следуя этим шагам, вы сможете диагностировать и, в конечном итоге, решить проблему, связанную с ограничениями разрешения имен в Avahi. Понимание внутренней работы Avahi и сетевых принципов поможет избежать подобных ошибок в будущем и позволит эффективно управлять сетевой инфраструктурой.

Оцените материал
Добавить комментарий

Капча загружается...