Falscher Nameserver durch Resolvconf und NetworkManager festgelegt

Falscher Nameserver durch Resolvconf und NetworkManager festgelegt

Mein DNS-Server ist 192.168.1.152.

Dieser DNS wird den Clients per DHCP bereitgestellt. Die Windows-Clients in meinem LAN lösen Namen mithilfe dieses DNS richtig auf, meine Ubuntu-VM jedoch nicht.

Die VM ist mit Bridge-Netzwerk eingerichtet und erhält ordnungsgemäß den DNS-Server, aber meine lokalen Hostnamen werden von nslookup oder Browsern nicht aufgelöst.

Hier ist eine nslookupvon einer meiner lokalen Domänen:

# nslookup unraid.local
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find unraid.local: SERVFAIL

Folgendes sollte durch die Verwendung meines DNS-Servers aufgelöst werden:

# nslookup unraid.local 192.168.1.152
Server:     192.168.1.152
Address:    192.168.1.152#53

Name:   unraid.local
Address: 192.168.1.152

/etc/resolv.confhat einen falschen Nameserver:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

Ich habe diesen Befehl ausgeführt. Unter DNS-Server wird verwirrenderweise der richtige Server (und mein Standard-Gateway) angegeben.

root@ubuntu:~# systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (ens33)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.152
                      192.168.1.1

Ich möchte die IP des DNS-Servers nicht in einer Konfigurationsdatei „fest codieren“, da ich sie beim Wechseln des Netzwerks nicht auflösen kann.

Wie kann ich resolvconf und NetworkManager dazu bringen,automatischIP des DHCP-Servers in einstellen /etc/resolv.conf?

Antwort1

BekanntsystemdInsekt.

Vorübergehende Problemumgehungohne dass eine Neukonfiguration erforderlich ist, wenn sich die DNS-IPs ändern:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot

Antwort2

Versuchen Sie /etc/systemd/resolved.conf, zu bearbeiten und Ihren gewünschten DNS-Server hinzuzufügen:

ändere das:

[Resolve]
#DNS=

zu diesem (aber verwenden Sie das gewünschte – dies ist ein Beispiel):

[Resolve]
DNS=192.168.1.152

Starten Sie anschließend den Dienst neu:

service systemd-resolved restart

Und wenn Sie den Status überprüfen, sollten Sie sehen

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.152

      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa
                  168.192.in-addr.arpa
                  17.172.in-addr.arpa
                  18.172.in-addr.arpa
                  19.172.in-addr.arpa

Antwort3

Ich habe endlich eine Lösung für dieses Problem für Ubuntu 17.10. Standardmäßig verwendet diese Version von Ubuntu systemd-resolved, was hoffentlich für die nächsten Versionen stabil bleibt.

Um benutzerdefinierte DNS anstelle des lokalen, von systemd aufgelösten Caches zu verwenden, gehen Sie wie folgt vor:

  1. neue Nameserver hinzufügen. Bearbeiten Sie die Datei /etc/systemd/resolved.confals sudoer. Hier habe ich den DNS-Eintrag auskommentiert und meinen DNS [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4

  2. den aktuellen Symlink löschen zu/etc/resolv.conf

  3. einen neuen symbolischen Link erstellensudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. Starten Sie den Dienst neusudo service systemd-resolved restart
  5. Starten Sie den Netzwerkmanager neusudo systemctl restart networking

Und wenn Sie jetzt nach einem Namen suchen, der von Ihrem Add-DNS bereitgestellt wird, sollten Sie den Datensatz aufgelöst sehendig nexus.default.svc.cluster.mydomain

Der letzte Schritt besteht darin, die Reihenfolge der Auflösung zu aktualisieren /etc/nsswitch.conf, indem der DNS vor dem mdns4_minimal platziert wird.

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

Antwort4

Auf meinem System habe ich einen fehlerhaften Symlink gefunden: /etc/resolv.confEs handelte sich um einen Symlink, der auf/run/systemd/resolve/stub-resolv.conf

Diese Datei enthält nur eine Zeile:

nameserver 127.0.0.53#53

Dies hatte zur Folge, dass die DNS-Suche im lokalen Netzwerk häufig fehlte.

Stattdessen habe ich stattdessen /etc/reolv.confauf/run/systemd/resolve/resolv.conf

und funktioniert jetzt einwandfrei.

verwandte Informationen