web-dev-qa-db-ja.com

avahi-daemonおよび ".local"ドメインの問題

buntu 16.04ベースのHTPC /メディアサーバー24/7を実行しています。私が公式のUbuntuディストリビューションを使用して覚えている限り、私は常にavahi-daemonで問題を抱えてきました。この問題はオンラインでかなり頻繁に議論されます。一部の人はデーモンを削除することにしましたが、CUPSサーバーを実行していて、AirPlay受信機としてKodiを使用しているため、実際にはデーモンが必要です。

問題

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.

ネットワークは元に戻ります問題なく物理的に再接続した場合イーサネットプラグ、またはソフトウェア側を再接続した場合。

可能な解決策

2016年6月のように見えて以来機能していない公式wikiにリストされている3つのソリューションがあるため、私は 非直接archive.orgリンク

1.)編集/ etc/nsswitch.conf from

"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ゾーンを移動するよう管理者に依頼する"(wikiで述べたように)

私がしたこと

最初の解決策は私には機能していないようです-デーモンはまだ機能しますが、-ネットワークは以前と同じようにダウンします(公平に言えば、wikiでitdoes say "[〜#〜] y [〜#〜]私たち[〜#〜] m [〜#〜] ileage [〜#〜] m [〜#〜] ay [〜#〜] v [〜#〜] ary ")

2番目の解決策はデーモンが適切に機能しているように見えますが(ログを見ても問題はありません)、-iOSデバイスはマシンを「認識」できませんプリンターまたはAirPlayレシーバー(およびWindowsマシンのiTunes)

第3の解決策はトリッキーです。ネットワークがどのように機能しているか「インとアウト」に精通していないためです。実際に試したかどうかはわかりません。これが私の意味です:私のAsusルーター実行中 Asuswrt-Merlin 設定サブカテゴリ/ LAN/DHCP Server/Basic Configに入りました。そこで、「RT-AC68Uのドメイン名」を「lan」として設定しました(「ローカル」とは異なり、何とも競合しないため、ウェブ上でアドバイスされたドメイン名です)。私が理解できる限り、それが "。localゾーンの移動"の意味です。これが実際に正しい場合、このソリューションは私にとっても機能しません。

結論

それで、私は何をすべきですか?私はこの問題に4か月以上取り組んできました。オンラインでのすべての答えは、すでに試したものに帰着します。率直に言って、私は完全に迷っています。前もって感謝します!

12
halfer

そこで、「avahi-daemon.conf」の「Host-name」パラメータをマシンのホスト名ではないものに変更しようとしましたが、2週間問題なく実行できました。多分これは、それ自身の目的のために ".local"ドメインを使用してsambaとWindowsを実行しているマシンと関係があったのでしょうか?

1
halfer

3つ目の解決策は、ルーター構成にアクセスできる場合の方法です。 「RT-AC68Uのドメイン名」を空欄にしてみます。

次に、wiresharkのようなものを実行し、avahai-daemonによって送受信されたパケット、および.localで終わるドメイン名との間で送受信されるパケットを監視します。 avahaiがLANドメイン名を.localに設定しているよりも、そこにあります。

また、問題が完全に別の問題である可能性もあり、wiresharkがそれを通知する場合もあります。

ネットワーク上のマシンにドメイン名を割り当てる目的で完全にAvahaiを使用している場合は、代わりにdnsmasqを使用することを検討してください。これは、RT-AC88Uルーターから実行することも、Ubuntuボックスから実行することもできます(実際には、ubuntuボックスですでに実行されているため、設定ファイルを調整するだけで済みます)。

Asus-Merlinでdnsmasqを設定するためのドキュメント

1