web-dev-qa-db-fra.com

problèmes de domaine avahi-daemon et ".local"

J'ai un serveur HTPC/Media basé sur Ubuntu 16.04 qui fonctionne 24/7 . Pour autant que je me souvienne d'avoir utilisé une distribution Ubuntu officielle, j'ai toujours eu des problèmes avec le avahi-daemon . La question est assez souvent discutée en ligne. Certaines personnes décident de simplement supprimer le démon, cependant, j'en ai réellement besoin car j'utilise un serveur CUPS et j'utilise Kodi comme récepteur AirPlay.

Le problème

mDNS/DNS-SD est intrinsèquement incompatible avec les zones DNS unicast .local . Nous vous recommandons fortement de ne pas utiliser Avahi ou nss-mdns dans une telle configuration réseau. N.B .: nss-mdns n'est généralement pas fourni avec Avahi et nécessite un téléchargement et une installation séparés. (avahi.org)

Les symptômes sont simples - après environ 2 à 4 jours de disponibilité, la connexion réseau s'éteindra et cela sera enregistré

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.

Le réseau remontera sans problème si vous reconnectez physiquement Ethernet ou si vous vous reconnectez côté logiciel.

Solutions possibles

Il y a trois solutions répertoriées sur le wiki officiel, qui est non fonctionnel depuis ce qui semble être juin 2016, donc je suis fournissant un non direct) archive.org lien

1.) Modifiez /etc/nsswitch.conf à partir de

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

à

hosts: files dns mdns4

2.) Modifiez /etc/avahi/avahi-daemon.conf

de

domain-name=.local

à

domain-name=alocal

3.) "Demandez à l'administrateur de déplacer la zone .local" (comme dit sur le wiki)

Ce que j'ai fait

La première solution ne semble pas fonctionner pour moi - le démon fonctionne toujours, cependant, le réseau descendra de la même manière que précédemment (pour être honnête, sur le wiki, il ne dit " [~ # ~] y [~ # ~] notre [~ # ~] m [~ # ~] ileage [~ # ~] m [~ # ~] ay [~ # ~] v [~ # ~] ary ")

La seconde solution fait que le démon fonctionne apparemment correctement (rien de mal si vous regardez les journaux) mais le iOS les appareils ne "voient" pas la machine comme une imprimante ou un récepteur AirPlay (ainsi qu'iTunes sur ma machine Windows)

La troisième solution est délicate, car je ne connais pas bien les "tenants et aboutissants" de la façon dont un le réseau fonctionne; et je ne suis pas sûr de l'avoir essayé. Voici ce que je veux dire: sur mon routeur Asus en cours d'exécution Asuswrt-Merlin je suis entré dans une sous-catégorie de paramètres/LAN/DHCP Server/Configuration de base. Là, j'ai défini " Nom de domaine du RT-AC68U " comme "lan" (un nom de domaine que j'ai vu conseillé sur le Web, car il n'entre pas en conflit avec rien, contrairement à "local"). Pour autant que je puisse comprendre, c'est ce que signifie " déplacer la zone .local ". Si c'est en fait correct, cette solution ne fonctionne pas aussi pour moi.

Conclusion

Donc qu'est ce que je devrais faire? Je me bats avec ce problème depuis plus de 4 mois maintenant, et chaque réponse en ligne se résume à celles que j'ai déjà essayées; franchement, je suis complètement perdu. Merci d'avance!

12
halfer

J'ai donc essayé de changer le paramètre "Host-name" dans "avahi-daemon.conf" en quelque chose qui n'est pas le nom d'hôte des machines, et j'ai couru 2 semaines sans aucun problème. Peut-être que cela avait à voir avec la machine exécutant également samba et Windows en utilisant le domaine ".local" à ses propres fins?

1
halfer

Je pense que la troisième solution est la voie à suivre lorsque vous avez accès à la configuration du routeur. J'essaierais de régler le "Nom de domaine du RT-AC68U" sur blanc.

La prochaine chose que je ferais serait d'exécuter quelque chose comme Wirehark et de regarder les paquets envoyés et reçus par avahai-daemon, ainsi que tous les paquets envoyés depuis et vers n'importe quel nom de domaine se terminant par .local ... si autre chose qu'avahai définit les noms de domaine LAN sur .local vous le trouverez là-bas.

Il est également possible que le problème soit tout à fait différent, et Wirehark pourrait vous le dire également.

Si vous utilisez Avahai entièrement dans le but d'attribuer des noms de domaine aux machines de votre réseau, vous pourriez envisager d'utiliser dnsmasq à la place. Vous pouvez l'exécuter à partir de votre routeur RT-AC88U, ou à partir de votre boîte Ubuntu (En fait, il fonctionne probablement déjà sur votre boîte Ubuntu, et vous aurez juste besoin de modifier le fichier de configuration).

Documentation pour la configuration de dnsmasq sous Asus-Merlin

1
Barton Chittenden