Проблемы с доменами avahi-daemon и «.local»

12

У меня есть HTPC / Media Server на базе Ubuntu 16.04 , работающий 24/7 . Насколько я помню, используя официальный дистрибутив Ubuntu, у меня всегда были проблемы с avahi-daemon . Проблема довольно часто обсуждается в Интернете. Некоторые люди решают просто удалить демона, однако мне это действительно нужно, так как я использую сервер CUPS и использую Kodi в качестве приемника AirPlay.

Проблема

mDNS / DNS-SD по своей сути несовместимы с одноадресными DNS-зонами .local . Мы настоятельно рекомендуем не использовать Avahi или nss-mdns в такой конфигурации сети. Примечание: nss-mdns обычно не входит в комплект Avahi и требует отдельной загрузки и установки. (avahi.org)

Симптомы просты - примерно через 2-4 дня бездействия сетевое соединение обрывается, и это регистрируется

Mar 17 18:33:27 15 avahi-daemon[1014]: Withdrawing address record for 192.168.1.200 on enp3s0.
Mar 17 18:33:27 15 avahi-daemon[1014]: Leaving mDNS multicast group on interface enp3s0.IPv4 with address 192.168.1.200.
Mar 17 18:33:27 15 avahi-daemon[1014]: Interface enp3s0.IPv4 no longer relevant for mDNS.

Сеть будет идти обратно без проблем , если вы физически подключиться к Ethernet разъема, или если вы подключите программное обеспечение на сторону.

Возможные решения

В официальной вики перечислены три решения, которые не работают с июня 2016 года , поэтому я предоставляю ссылку на не прямую ссылку archive.org

1.) Отредактируйте /etc/nsswitch.conf из

"hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"

в

hosts: files dns mdns4

2.) Изменить /etc/avahi/avahi-daemon.conf

от

domain-name=.local

в

domain-name=alocal

3.) «Попросить администратора переместить зону .local» (как сказано в вики)

Что я сделал

Первое решение не явился на работу для меня - демон по- прежнему работает, однако, сеть будет идти вниз точно так же , как и раньше (чтобы быть справедливым, на вики это действительно говорит , « У нашего M ileage M ау V ичных»)

Второе решение приводит к тому , демон, казалось бы функционировать должным образом (ничего плохого , если вы посмотрите на журналы) , но устройства IOS не «видеть» машину в качестве принтера или AirPlay (ресивера, а также ITunes на моей машине Windows)

Третье решение сложно, потому что я не очень хорошо разбираются в «тонкостях» о том , как функционирует сеть; и я не уверен, что я действительно попробовал это. Вот что я имею в виду: на моем маршрутизаторе Asus под управлением Asuswrt-Merlin я вошел в подкатегорию настроек / LAN / DHCP Server / Basic Config. Там я установил « Доменное имя RT-AC68U » как «lan» (доменное имя, которое я посоветовал в Интернете, потому что оно не конфликтует ни с чем, в отличие от «локального»). Насколько я понимаю, это то, что означает « перемещение локальной зоны ». Если это на самом деле правильно, то это решение не работает и для меня.

Заключение

Так что я должен делать? Я борюсь с этой проблемой уже более 4 месяцев, и каждый ответ в Интернете сводится к тем, которые я уже пробовал; честно говоря, я полностью потерян. Заранее спасибо!

halfer
источник
Это не объясняет, как вы узнали, что avahi является причиной " разрыва сети", в отличие от этого сообщения журнала, являющегося симптомом . См. Также unix.stackexchange.com/a/271412/29483
sourcejedi
@sourcejedi При поиске симптомов «случайное отключение сети» указывают на связанные с Ubuntu доски, которые ссылаются на эту проблему, и большинство людей там упоминают, что проблемой является avahi. ссылка
Halfer
Неправильная ссылка, хотя я не собираюсь спорить об этом. Ни о том, что эта поисковая фраза не показала такого результата для меня, по крайней мере, из первых 10. Из того, что вы написали, я могу только заключить, что вы не тестировали удаление avahi. Забавно, однако, что поиск «Снятие записи адреса» дает мне несколько результатов о «случайном отключении сети», решенном как ошибки в оборудовании, а не в avahi. 2) ссылка на archive.org в Q показывает для меня «ничего не найдено». 3) что «у меня не работает» относится к вашему третьему решению? Подразумевается, что результат был таким же, как и для # 1, но он не ясен на 100%.
sourcejedi
AFAICT Ответ Бартона написан в предположении, что ваше третье решение вызывает некоторую ошибку только с разрешением / обнаружением avahi / MDNS / bonjour, и не вызывает проблему «сбой сетевого соединения». Так что было бы очень хорошо уточнить симптомы, которые вы видите, когда пытались применить третий раствор!
sourcejedi
Например, в ваших трудностях я подозреваю, что вы видели ответ здесь в своих трудностях. Обратите внимание, что в ответе явно не упоминаются сбои в сети, и спрашивающий не принял ответ или вообще ничего не сказал о том, что произошло дальше.
sourcejedi

Ответы:

1

Я думаю, что третье решение - это путь, когда у вас есть доступ к конфигурации маршрутизатора. Я попытался бы установить «Доменное имя RT-AC68U» пустым.

Следующее, что я хотел бы сделать, это запустить что-то вроде wireshark и наблюдать за пакетами, отправленными и полученными avahai-daemon, а также за любыми пакетами, отправленными с любого доменного имени, заканчивающегося на .local…, если что-то кроме avahai устанавливает LAN доменные имена .localвы найдете там.

Также возможно, что проблема в чем-то совершенно другом, и Wireshark может сказать вам и это.

Если вы используете Avahai исключительно для назначения доменных имен компьютерам в вашей сети, вы можете вместо этого использовать dnsmasq. Вы можете запустить его на своем маршрутизаторе RT-AC88U или на своем компьютере с Ubuntu (на самом деле он, вероятно, уже работает на вашем компьютере с Ubuntu, и вам просто нужно настроить файл конфигурации).

Документация по настройке dnsmasq под Asus-Merlin

Бартон Читтенден
источник
Отказался в предположении, что у Avahi есть ошибка, состоящая в том, что «несовместимость» заставляет его отключать сетевой интерфейс через случайные интервалы, потому что это неправильное представление, которое, похоже, распространяется, без каких-либо конкретных доказательств этого.
sourcejedi
1
Я использую avahi для рекламы услуг AirPlay и AirPrint на устройствах и программном обеспечении Apple
рекламный ролик
1

Поэтому я попытался изменить параметр «host-name» в «avahi-daemon.conf» на что-то, что не является именем хоста машины, и я работал без проблем 2 недели. Может быть, это связано с тем, что на компьютере также запущены samba и Windows, использующие домен «.local» для своих собственных целей?

halfer
источник
Windows / Samba не присваивают специальное значение «.local». (Можно использовать .s в netbios для некоторых целей). avahi по умолчанию включен в Ubuntu / Fedora, и я никогда не видел предупреждение о запуске Samba в то же время. Я не могу себе представить, почему avahi-daemon включает в себя любой код, который устанавливает адреса интерфейса или статус. Спасибо, что вернулись с результатами теста, я надеюсь, что установка продолжит работать!
sourcejedi