Usunąć serwer DNS z systemd-resolved?

Aug 26 2020

Połączyłem się z openconnectsiecią VPN i dodałem serwer DNS (i domenę DNS) do mojego systemd-resolvedi nie działają, więc korzystanie z Internetu jest spowolnione, ponieważ każde nowe żądanie musi czekać na przekroczenie limitu czasu zepsuty serwer DNS, przed przejściem do działającego, pierwotnie skonfigurowanego serwera DNS ( zakładam ).

Jak mogę usunąć ten serwer DNS z systemd-resolved?

$ systemd-resolve --status
Global
         DNS Servers: 10.127.201.221
                      10.63.101.221
                      172.25.2.253
          DNS Domain: blah1.example
                      example.com
          DNSSEC NTA: 10.in-addr.arpa
          ...

Ubuntu Linux 18.04.0 systemd v237

Odpowiedzi

111--- Aug 26 2020 at 19:43

Systemd <v239

Polecenie, którego szukasz, powinno brzmieć:

systemd-resolve --interface=tun0 --revert

Gdzie tun0byłby interfejs do usuwania ustawień DNS z:

--revert
       Revert the per-interface DNS configuration. This option must be combined with
       --interface= to indicate the network interface the DNS configuration shall be reverted
       on. If the DNS configuration is reverted all per-interface DNS setting are reset to
       their defaults, undoing all effects of --set-dns=, --set-domain=, --set-llmnr=,
       --set-mdns=, --set-dnssec=, --set-nta=. Note that when a network interface disappears
       all configuration is lost automatically, an explicit reverting is not necessary in
       that case.

Wygląda na to, że te narzędzia uległy zmianie w systemd v239 (który faktycznie był na mojej maszynie testowej Bionic).

Systemd> = v239

Powyższe polecenie powinno być nadal dostępne w nowszej wersji systemd, jeśli nie, spróbuj resolvectlpolecenia revert. Będziesz potrzebować nazwy interfejsu łącza, które chcesz zresetować. Dawny:

sudo resolvectl revert tun0

Z resolvectlinstrukcji:

przywróć LINK

Przywróć konfigurację DNS dla poszczególnych interfejsów. Jeśli konfiguracja DNS zostanie przywrócona, wszystkie ustawienia DNS dla poszczególnych interfejsów zostaną zresetowane do wartości domyślnych, co spowoduje cofnięcie wszystkich efektów dns, domain, llmnr, mdns, dnssec, dnsovertls, nta. Zauważ, że gdy interfejs sieciowy znika, cała konfiguracja jest automatycznie tracona, jawne przywracanie nie jest w takim przypadku konieczne.

Ponieważ systemd-resolved łączy serwery DNS z interfejsami sieciowymi, powinno to usunąć serwery DNS, o których dowiedział się z tego interfejsu.

Uwagi rozwiązane przez Systemd

To zachowanie systemd-resolvedjest również wspomniane w tym ręcznym wprowadzaniu, odpowiedni fragment:

Inne nazwy z wieloma etykietami są kierowane do wszystkich lokalnych interfejsów, w których skonfigurowano serwer DNS, a także do globalnie skonfigurowanego serwera DNS, jeśli taki istnieje.

Uważam, że chcesz powiedzieć systemd-resolved, aby zapomniał o serwerach DNS dla interfejsu tunelu, resolvectl revertwydaje się, że jest to sposób na zrobienie tego.