Wyszukane w systemie Ubuntu 17.04 wyszukiwania DNS losowo kończą się niepowodzeniem


38

Uaktualniłem do Ubuntu 17.04 i wydaje się, że teraz ma nowy mechanizm rozpoznawania nazw DNS po raz pierwszy wprowadzony w Ubuntu 16.10.

Otrzymuję teraz błędy wyszukiwania DNS w 50% przypadków. Każde inne połączenie z nslookup kończy się niepowodzeniem, a połowa połączeń jest w porządku, a połowa daje to:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

Z tego, co rozumiem, ten adres IP serwera DNS jest teraz używany do reprezentowania rozwiązania systemd, który dokonuje pewnego rodzaju wyszukiwania meta, aby uniknąć spowolnienia zapytań DNS (czy coś takiego ...). Widzę dokładnie to samo zachowanie na dwóch komputerach, które zaktualizowałem do 17.04 w ostatnim tygodniu.

Masz pojęcie, na czym polega problem i właściwy sposób jego rozwiązania?

Przed aktualizacją wszystko działało dobrze (od 16.04 lub 16.10, nie pamiętam które, przepraszam). Myślałem, że 17.04 było wydaniem LTS, ale teraz widzę, że podskoczyłem z pistoletu i nie będzie uważany za stabilny aż do kwietnia. A więc jestem tu.

Warto również zauważyć ... wydaje się, że przeglądarki nie wykazują problemów, ale nslookup, ping, git itp.


2
Wskazówka na przyszłość: wersje Ubuntu to rok, w którym wyjdzie .w miesiąc, w którym zostanie wydane. (Więc w twoim przypadku będzie to 04/ 17)
timotree

Wygląda na to, że rozwiązany przez system zatłoczenie w dystrybucji powoduje problemy innych ludzi .
moodboom

Odpowiedzi:


46

Ubuntu 17.04 nie może rozpoznać serwerów DNS z obsługą DNSSEC od 18.04.2017. Wyłącz DNSSEC za pomocą tego demona:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Opcjonalnie ponownie skonfiguruj resolvconf, jeśli pomieszałeś go (powiedz „tak”, aby „przygotować /etc/resolve.conf do aktualizacji dynamicznych?”):

sudo dpkg-reconfigure resolvconf

Uruchom ponownie systemd rozwiązany:

sudo systemctl restart systemd-resolved

Twój DNS powinien zacząć działać. Możesz to sprawdzić, próbując systemd-resolve www.google.comzobaczyć odpowiedź.


Dziękuję za odpowiedź - czy możesz wyjaśnić, co robi?
bertieb

Ubuntu 17.04 nie może (aż tutaj) rozpoznać serwera DNS z obsługą DNSSEC. Wyłączam DNSSEC za pomocą tego demona.
Sajad Bahmani

Dzięki, czy możesz edytować to wyjaśnienie w swojej odpowiedzi? :)
bertieb

To rozwiązanie nie działało dla mnie - po ustawieniu tego, za każdym razem, gdy przeprowadzam wyszukiwanie za pierwszym razem, pojawia się błąd SERVFAIL, po kilku próbach udaje się, a następnie wyniki są buforowane.
Guss

1
@SamuelL. jeśli chodzi o tee, to tylko fantazyjny sposób na wydrukowanie czegoś i jednoczesne przesłanie go do pliku. Zazwyczaj możesz przekierować dane wyjściowe do pliku za pomocą> [znak większy niż], ale wtedy nie zobaczysz danych wyjściowych. Tee pozwala przejść do obu miejsc. Resolvconf „konfiguruje rozwiązanie”.
moodboom

12

Przełączałem się między zarządzaniem systemd a ręcznym zarządzaniem /etc/resolv.conf i nie znalazłem jeszcze systemowego mechanizmu rozwiązywania DNS.

Najwyraźniej jest co najmniej jeden błąd libnss w Ubuntu 16.10 i prawdopodobnie nadal w 17.04. Istnieje wiele osób z problemami DNS, odkąd system Ubuntu 16.10 włączył systemd rozwiązany, oto jedna analiza, a tutaj jest obejście innej osoby. Żadne z nich nie działało dla mnie, dopóki ręcznie nie nadpisałem /etc/resolv.conf za pomocą serwerów DNS Google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Jest to całkowicie poprawne rozwiązanie , jeśli nie potrzebujesz dynamicznej konfiguracji DNS. Tylko upewnij się, że zatrzymałeś i wyłączyłeś systemd rozwiązany:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Zmiana na resolveconf nie pomogła w moim problemie, jak wrócić do korzystania z systemd-rozwiązanego? (Dzięki)
Edward Moffett,

1
Spróbuj:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom 17.07.17

1
Stary, właśnie uratowałeś mój system !! BRAVO
rewolucyjny

Dobrze pracował w 18.04
André M. Faria

4

Ubuntu 17.04 i inne dystrybucje obejmują systemd, w tym systemd-resolved, który poddaje użytkowników raczej ciężkiej rozdzielczości DNS.

  • Jak wspomniano w odpowiedzi SjB, obsługa DNSSEC może powodować problemy.
  • systemd-rozwiązany wysyła polecenia ping do wszystkich programów rozpoznawania nazw DNS, aby mógł korzystać z najszybszego. Może to powodować problemy z VPNami itp. W bardziej złożonych środowiskach.
  • Certyfikaty serwera DNS są zweryfikowane, miałem błędy, jeśli mój zegar jest przekrzywiony.

Nie sądzę, że to koniecznie ZŁA zmiana, to po prostu DUŻO zmian. Spróbuję zaktualizować i rozszerzyć tę odpowiedź, gdy dowiem się więcej.



1

wystarczy dodać serwer nazw /etc/systemd/resolved.conf DNS = 194.109.xxx.xxx (na routerze, zewnętrzny serwer nazw)

systemctl uruchom ponownie systemd-rozwiązany

nie trzeba zmieniać rand z 3 na 2, nie trzeba zmieniać ustawienia dnssec na off


Niestety, to samo nie rozwiązuje problemu „nieudane żądanie”.
moodboom

Zgadzam się z @moodboom, to też mnie nie rozwiązuje.
André M. Faria
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.