avahi-daemon e problemas de domínio “.local”

8

Eu tenho um Ubuntu 16.04 baseado no HTPC / Media Server que está rodando 24/7 . Tanto quanto me lembro de usar uma distribuição oficial do Ubuntu, eu sempre tive problemas com o avahi-daemon . A questão é frequentemente discutida online. Algumas pessoas decidem apenas excluir o daemon, no entanto, eu realmente preciso dele enquanto estou executando um servidor CUPS e uso o Kodi como meu receptor do AirPlay.

O problema

mDNS/DNS-SD is inherently incompatible with unicast DNS zones .local. We strongly recommend not to use Avahi or ​nss-mdns in such a network setup. N.B.: nss-mdns is not typically bundled with Avahi and requires a separate download and install. (avahi.org)

Os sintomas são simples - após cerca de 2 a 4 dias de funcionamento, a conexão de rede vai cair e isso será registrado

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.

A rede retornará sem problemas se você reconectar fisicamente o plugue Ethernet, ou se você reconectar o lado do software.

Soluções possíveis

Existem três soluções listadas no wiki oficial, que não funciona desde o que parece ser junho de 2016 , então eu sou fornecendo um link não direto archive.org

1.) Edite /etc/nsswitch.conf em

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

para

hosts: files dns mdns4

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

de

domain-name=.local

para

domain-name=alocal

3.) "Peça ao administrador para mover a zona .local" (como dito na wiki)

O que eu fiz

A primeira solução não parece funcionar para mim - o daemon ainda funciona, no entanto, a rede ficará da mesma forma como antes (para ser justo, na wiki, diz " Y nossa M ileage M ay V ")

A segunda solução faz com que o daemon pareça funcionar corretamente (nada de errado se você observar os logs), mas os dispositivos iOS não conseguem "ver" a máquina como um impressora ou um receptor AirPlay (assim como o iTunes na minha máquina Windows)

A terceira solução é complicada, porque eu não sou bem versado nos "ins e outs" de como uma rede está funcionando; e não tenho certeza se realmente tentei. Aqui está o que quero dizer: no meu Asus Router executando Asuswrt-Merlin eu entrei em uma subcategoria de configurações / LAN / Servidor DHCP / Configuração Básica Lá eu defino " RT-AC68U's Domain Name " como "lan" (um nome de domínio que eu vi recomendado na web, porque não entra em conflito com nada, ao contrário de "local"). Tanto quanto eu posso entender, é isso que " movendo a zona .local " significa. Se isso estiver correto, essa solução também não funciona para mim.

Conclusão

Então, o que devo fazer? Eu tenho lutado com esse problema por mais de 4 meses agora, e cada resposta on-line se resume àquelas que eu já tentei; francamente, estou completamente perdida. Obrigado antecipadamente!

    
por halfer 18.03.2017 / 02:01

2 respostas

0

Então eu tentei mudar o parâmetro "host-name" em "avahi-daemon.conf" para algo que não é o nome do host da máquina, e tenho corrido 2 semanas sem nenhum problema. Talvez isso tenha a ver com a máquina executando também o samba e o Windows usando o domínio ".local" para seus propósitos próprios?

    
por 05.04.2017 / 21:20
0

Acho que a terceira solução é o caminho a percorrer quando você tem acesso à configuração do roteador. Eu tentaria definir o "Domain Name do RT-AC68U" em branco.

A próxima coisa que eu faria seria executar algo como wireshark, e observar os pacotes enviados e recebidos pelo avahai-daemon, assim como quaisquer pacotes enviados de e para qualquer nome de domínio terminado em .local ... se algo além de avahai está configurando nomes de domínio de LAN para .local , você o encontrará lá.

Também é possível que o problema seja algo totalmente diferente, e a wireshark também pode lhe dizer isso.

Se você estiver usando o Avahai inteiramente com o objetivo de atribuir nomes de domínio a máquinas em sua rede, considere a possibilidade de usar o dnsmasq. Você pode executá-lo em seu roteador RT-AC88U ou em sua caixa do Ubuntu (na verdade, ele provavelmente já está sendo executado em sua caixa do Ubuntu, e você só precisará ajustar o arquivo de configuração).

Documentação para configurar o dnsmasq em Asus-Merlin

    
por 18.03.2017 / 06:26

Tags