Разрешение имени хоста Avahi: где-то кеширование?

Я использую Fedora 18 с инструментами командной строки avahi (версия 0.6.31)

Я использую avahi-resolve-host-name для обнаружения IP-адреса единиц в моей подсети для целей тестирования во время разработки. Я отслеживаю запрос и ответ с Wireshark. После одного успешного запроса и ответа никаких дополнительных запросов не появляется в Wireshark, но инструмент по-прежнему возвращает IP-адрес. Возможно ли, что демон компьютера/авахи/что-то еще "кэширует" результат?

Вопрос: Я хочу отправить пакет запроса с КАЖДОЙ ВЫЗОВОМ avahi-resolve-host-name. Это возможно?

Причина: я так называю "ложные срабатывания". Я пытаюсь разрешить "test1.local", и получаю результирующий IP-адрес, но блок больше не находится на этом IP-адресе. Я хочу, чтобы запрос отправлялся каждый раз, поэтому я могу избежать просмотра единиц с неправильными IP-адресами.

1 ответ

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

Мой ответ основан на avahi-0.6.32_rc.

Возможно ли, что демон компьютера/авахи/что-то еще "кэширует" результат?

Да, avahi-daemon - это результаты поиска кеширования. Хотя это явно не указано в функциях, справочная страница avahi-daemon(8) подсказывает:

Демон [...] предоставляет два API IPC для локальных программ, которые используют кеш-запись mDNS, поддерживаемую avahi-daemon.

Я хочу отправить пакет запроса с КАЖДОЙ ВЫЗОВОМ avahi-resolve-host-name. Возможно ли это?

Да, это так. Соответствующая опция cache-entries-max (от avahi-daemon.conf(5)):

cache-entries-max= Получает целое число без знака, определяющее, сколько записей ресурсов кэшируется для каждого интерфейса. Большие значения позволяют mDNS правильно работать в больших локальных сетях, но также увеличивают потребление памяти.

Чтобы добиться желаемого эффекта, вы можете просто установить:

cache-entries-max=0

Это полностью отключит кэширование и заставит avahi-daemon переиздавать пакеты MDNS для каждого запроса, поэтому вы сможете контролировать их.

Однако я должен отметить здесь, что это также сделает avahi практически бесполезным для нормального использования. В то время как avahi-daemon будет выдавать поисковые пакеты, он не сможет сохранить результаты, и каждый вызов avahi-resolve-host-name (а также другие инструменты командной строки, nss-mdns, D-Bus API...) завершится с ошибкой.

licensed under cc by-sa 3.0 with attribution.