systemd-resolved nie sprawdza serwera DNS dla domeny lokalnej


12

Od aktualizacji do 17.04 nie mogę już rozwiązywać adresów w mojej sieci lokalnej (silvesternet.local). Otrzymuję następującą odpowiedź:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

W czasopiśmie znajdują się tylko raporty o przekroczeniach limitu czasu transakcji związanych z tym wyszukiwaniem.

Użyłem Wiresharka do wąchania ruchu sieciowego i wygląda na to, że nawet nie próbuje wyszukać nazwy. Brak ruchu dns. Wyszukiwanie innej domeny zewnętrznej działa dobrze.

Wiele problemów dotyczących tego samego tematu wspomina o zmianie pliku nsswitch.conf, ale wydaje się, że to niczego nie rozwiązuje. Moje obecne ustawienia to:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
Biegałeś sudo apt update && sudo apt full-upgrade? Naprawiono błędy w obrazie wydania ...
Zanna

jeśli używasz systemd-networkddo konfigurowania interfejsów, może być konieczne dodanie UseDomains=truew [DHCP]sekcji .networkplików: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
quixotic

Rzeczywiście, blisko z domeną. W rzeczywistości był to błąd w oprogramowaniu edgerouter, który nie ustawił domeny w odpowiedzi dhcp.
Rob van der Most

Odpowiedzi:


10

Wierzę, że jest to zgodne z projektem.

Ubuntu 17.04 przeszedł na systemd-resolved do rozpoznawania nazw i używa tylko LLMNR (wyszukiwanie nazw multiemisji) do rozpoznawania nazw pojedynczej etykiety. Zobacz ten link, aby uzyskać szczegółowe informacje: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

Aby znaleźć uzasadnienie tej decyzji, sprawdź odpowiedź poety w tym raporcie o błędzie: https://github.com/systemd/systemd/issues/2514

UPD: Ten problem można obejść, używając domeny dla sieci lokalnej. Jeśli interfejs sieciowy jest skonfigurowany (ręcznie lub przez DHCP) do korzystania z domeny wyszukiwania, systemd rozwiązany doda tę domenę do nazw z pojedynczą etykietą, a następnie sprawdzi je za pomocą DNS emisji pojedynczej.

Oczywiście lokalny serwer DNS powinien zostać ponownie skonfigurowany w celu rozpoznania tych domen. W przypadku dnsmasq, który odczytuje lokalne pary host-IP z / etc / hosts, można to osiągnąć dodając następujące instrukcje do dnsmasq.conf:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: Lub możesz po prostu wrócić do dnsmasq, jak opisano tutaj /ubuntu//a/911432/692094


I jeszcze jedna strona błędu z kilkoma objaśnieniami: github.com/systemd/systemd/issues/4821
ish-west

Problemem była nazwa domeny. Było to również spowodowane błędem w oprogramowaniu edgerouter. Opcja nazwa-domeny z konfiguracji nie została poprawnie zapisana w konfiguracji dhcp. Dlatego klienci nie otrzymali domeny do przeszukania.
Rob van der Most

8

Ten sam problem mam na Ubuntu 18.04, które również używają systemd-rozwiązany dla DNS. Jego domyślna konfiguracja nie rozpoznaje nazw hostów o pojedynczej etykiecie ani nazw hostów domeny .local według DNS, ale odpowiednio przez LLMNR lub mDNS.

Aby lokalne nazwy hostów z pojedynczą etykietą lub nazwy domenowe w domenie .local były rozwiązywane przez DNS, włączyłem trzeci z „Cztery trybów obsługi /etc/resolv.conf” opisanych na stronie podręcznika systemd-resolved.service :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Podobna odpowiedź została podana tutaj . I znowu, po uzasadnienie domyślne, zobacz odpowiedź poety w tym raporcie o błędzie .


2

Po aktualizacji do 18.04 działało dla mnie skonfigurowanie pliku /etc/systemd/resolved.conf zmieniając parametr Domains na domenę (lokalną lub jak w moim przypadku moja_domena.local). Zmieniłem również parametr DNS, ale wydawało się, że nie jest to istotne, ale wspominam o tym na wszelki wypadek. Aby uzyskać więcej informacji, przejdź do https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html .

Dodatkowo zmieniłem konfigurację avahi (/etc/avahi/avahi-daemon.conf), aby zmienić parametr domeny wewnątrz sekcji serwera z lokalnego (domyślny) na coś innego, jak zauważyli niektórzy ludzie na tym forum.

Dzięki wspomnianym zmianom mogę dotrzeć do komputerów przy użyciu bezbarwnych nazw, na przykład pingowanie do mojego komputera, z którym nawiązano kontakt. Jeśli jednak pinguję do mycomputer.mydomain.local, to nie działa, nazwa FQDN nie zostanie rozwiązana zgodnie z oczekiwaniami.

Mam nadzieję, że pomoże to w niektórych przypadkach lub doprowadzi do bardziej ogólnego rozwiązania.


0

Miałem do czynienia z tym problemem z powodu źle skonfigurowanej nsswitch.conf. Ponieważ 12.04następujący ciąg działał zgodnie z oczekiwaniami. Nazwy hostów bez domeny zostały pomyślnie rozwiązane.

Ale nowa 17.04wersja (jak również wersja 16.10) Ubuntu ze starym szablonem do konfiguracji systemu nss nie działa jak wcześniej.

Błędnie skonfigurowana wersja hostsze starych wersji Ubuntu: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Udana wersja robocza hosts, na przykład od 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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.