avahi-daemon i problemy z domeną „.local”


12

Mam oparty na Ubuntu 16.04 serwer HTPC / Media Server, który działa 24 godziny na dobę, 7 dni w tygodniu . O ile pamiętam, używając oficjalnej dystrybucji Ubuntu, zawsze miałem problemy z demonem avahi . Problem ten jest często omawiany w Internecie. Niektóre osoby decydują się po prostu usunąć demona, jednak tak naprawdę go potrzebuję, ponieważ uruchamiam serwer CUPS i używam Kodi jako mojego odbiornika AirPlay.

Problem

mDNS / DNS-SD jest z natury niezgodny ze strefami DNS emisji pojedynczej .local . Zdecydowanie zalecamy, aby nie używać Avahi ani nss-mdns w takiej konfiguracji sieci. Uwaga: nss-mdns zazwyczaj nie jest dołączany do Avahi i wymaga osobnego pobrania i instalacji. (avahi.org)

Objawy są proste - po około 2-4 dniach bezczynności połączenie sieciowe zostanie zerwane i zostanie zarejestrowane

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.

Sieć wróci się bez problemów , jeśli fizycznie podłączyć wtyczkę Ethernet lub jeśli ponownie oprogramowanie siebie.

Możliwe rozwiązania

Istnieją trzy rozwiązania wymienione na oficjalnej wiki, które nie działają od czasu, co wydaje się być w czerwcu 2016 r. , Więc udostępniam bezpośredni link archive.org

1.) Edytuj /etc/nsswitch.conf z

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

do

hosts: files dns mdns4

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

od

domain-name=.local

do

domain-name=alocal

3.) „Poproś administratora o przeniesienie strefy .local” (jak powiedziano na wiki)

Co ja zrobiłem

Pierwsze rozwiązanie nie wydaje się pracować dla mnie - demon nadal działa, jednak sieć będzie spadać w ten sam sposób jak poprzednio (aby być uczciwym, na wiki to mówiY nasze M ileage M ay V ary”)

Drugie rozwiązanie powoduje, że demon pozornie funkcjonować prawidłowo (w tym nic złego, jeśli spojrzeć na kłody), ale urządzenia z iOS nie „widzi” urządzenie jako drukarkę lub odbiornik AirPlay (a także iTunes na moim komputerze z systemem Windows)

Trzecie rozwiązanie jest trudne, ponieważ nie jestem dobrze zorientowany w „tajniki” , w jaki sposób sieć funkcjonuje; i nie jestem pewien, czy rzeczywiście tego spróbowałem. Oto, co mam na myśli: na moim routerze Asus z Asuswrt-Merlin przeszedłem do podkategorii ustawień / LAN / DHCP Server / Basic Config. Tam ustawiłem „ RT-AC68U's Domain Name ” jako „lan” (nazwę domeny, którą widziałem w Internecie, ponieważ nie koliduje z niczym, w przeciwieństwie do „local”). O ile rozumiem, to właśnie oznacza „ przesunięcie strefy lokalnej ”. Jeśli jest to w rzeczywistości poprawne, to to rozwiązanie również nie działa dla mnie.

Wniosek

Więc co powinienem zrobić? Walczę z tym problemem od ponad 4 miesięcy i każda odpowiedź online sprowadza się do tych, które już wypróbowałem; szczerze mówiąc, jestem całkowicie zagubiony. Z góry dziękuję!


To nie wyjaśnia, skąd wiedziałeś, że avahi jest przyczyną „awarii sieci”, w przeciwieństwie do tego, że ten komunikat dziennika jest symptomem . Zobacz także unix.stackexchange.com/a/271412/29483
sourcejedi

@sourcejedi Objawy wyszukiwania „losowo spadająca sieć” wskazują na tablice powiązane z Ubuntu, które odnoszą się do tego problemu, a większość osób wspomina, że ​​problemem jest avahi. link
halfer

Błędny link, choć nie będę się o to kłócić. Ani też o tym, że wyszukiwane wyrażenie nie pokazuje mi takiego wyniku, przynajmniej z pierwszych 10. Z tego, co napisałeś, mogę jedynie wywnioskować, że nie testowałeś usuwania avahi. Zabawne jest jednak, że wyszukiwanie „Wycofanie rekordu adresu” daje mi kilka wyników dotyczących „losowego wyłączania się sieci”, które zostały rozwiązane jako błędy sprzętowe, brak w avahi. 2) link archive.org w Q pokazuje „Nie znaleziono wyników” dla mnie. 3) które „nie działa dla mnie” dotyczy twojego trzeciego rozwiązania? Implikacja jest taka, że ​​wynik był taki sam jak dla nr 1, ale nie jest w 100% jasny.
sourcejedi

AFAICT Odpowiedź Bartona została napisana przy założeniu, że twoje trzecie rozwiązanie powoduje błąd tylko w przypadku rozwiązania / wykrywania avahi / MDNS / bonjour i nie powoduje problemu z awarią sieci [połączenia]. Byłoby więc naprawdę dobrze wyjaśnić objawy, które widzisz, gdy próbujesz zastosować trzecie rozwiązanie!
sourcejedi

Na przykład w twoich podróżach podejrzewam, że widziałeś odpowiedź tutaj w swoich podróżach. Zwróć uwagę, że odpowiedź nie wspomina wprost o awariach sieci, a pytający nie zaakceptował odpowiedzi ani nie powiedział nic o tym, co stało się później.
sourcejedi

Odpowiedzi:


1

Myślę, że trzecie rozwiązanie jest odpowiednie, gdy masz dostęp do konfiguracji routera. Spróbowałbym ustawić „Nazwę domeny RT-AC68U” na pustą.

Następną rzeczą, którą bym zrobił, to uruchomić coś w rodzaju wireshark i obserwować pakiety wysyłane i odbierane przez avahai-daemon, a także wszelkie pakiety wysyłane zi do dowolnej nazwy domeny kończącej się na .local... jeśli coś innego niż avahai ustawia LAN nazwy domen, aby .localje tam znaleźć.

Możliwe jest również, że problem jest zupełnie inny, a wireshark może ci to powiedzieć.

Jeśli używasz Avahai wyłącznie w celu przypisywania nazw domen do komputerów w sieci, możesz zamiast tego rozważyć użycie dnsmasq. Możesz go uruchomić z routera RT-AC88U lub ze swojego systemu Ubuntu (w rzeczywistości prawdopodobnie działa już na twoim systemie Ubuntu i musisz tylko dostosować plik konfiguracyjny).

Dokumentacja do konfiguracji dnsmasq pod Asus-Merlin


Zlekceważony za sugerowanie, że Avahi ma taki błąd, że „niezgodność” powoduje, że ustawia on interfejs sieciowy offline w losowych odstępach czasu, ponieważ wydaje się, że jest to błędna koncepcja, która się rozprzestrzenia, bez żadnych konkretnych dowodów na to.
sourcejedi

1
Korzystam z avahi do reklamowania usług AirPlay i AirPrint na urządzeniach i oprogramowaniu Apple
halfer

1

Próbowałem więc zmienić parametr „nazwa-hosta” w „avahi-daemon.conf” na coś, co nie jest nazwą hosta maszyny, i działam 2 tygodnie bez żadnych problemów. Być może miało to związek z maszyną, na której uruchomiono także sambę i system Windows korzystający z domeny „.local” do własnych celów?


Windows / Samba nie przypisują specjalnego znaczenia „.local”. (Możliwe jest jednak użycie .s w netbios do pewnego celu). avahi jest domyślnie włączony na Ubuntu / Fedora i nigdy nie widziałem ostrzeżenia o uruchomieniu samby w tym samym czasie. Nie mogę sobie wyobrazić, dlaczego avahi-demon miałby zawierać kod, który ustawia adresy interfejsów lub status. Dziękujemy za powrót z wynikiem testu. Mam nadzieję, że konfiguracja będzie działać od teraz!
sourcejedi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.