Warum verwendet systemd-resolved meinen lokalen DNS-Server nicht?

12

Ich verwende einen lokalen BIND9-Server, um einige lokale DNS-Einträge zu hosten. Wenn ich versuche, nach einem lokalen Domainnamen zu suchen, kann ich ihn nicht finden, wenn ich dig nicht ausdrücklich anweise, meinen lokalen BIND9-Server zu verwenden.

user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2

Ubuntu 17.04 und systemd-resolved werden verwendet. Dies ist der Inhalt meiner / etc / gelöst

# 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

Und die Ausgabe von systemd-resolve --status

Global
         DNS Servers: 192.168.1.7
                      192.168.1.1
          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

Der Abschnitt DNS-Server scheint 192.168.1.7 zu Recht als Haupt-DNS-Server konfiguriert zu haben (meine lokale BIND9-Instanz). Ich kann nicht verstehen, warum es nicht verwendet wird ...?

Civing
quelle
Ich erinnere mich an etwas in der Art, wie systemdGoogle DNS als Fallback verwendet wird ...
William Edwards
Was systemd-resolve heimdal.lan.seerzählt?
Bigon

Antworten:

7

Das Ändern der zu verwaltenden verdrahteten eth0-Schnittstelle löste dieses Problem für mich.

Ändern von ifupdown in managed = true in /etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=true

Starten Sie anschließend NetworkManager neu

sudo systemctl restart NetworkManager

Danach funktioniert es einwandfrei ..

Dies war nicht 100%. Ich habe diese Änderungen auch angewendet, um den Resolver zu testen und zu töten

sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop

Vielen Dank an diesen Blog-Beitrag zum Thema: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/

Lasst uns beten, dass dies funktioniert. Dieses ganze systembedingte Geschäft ist einfach so hässlich.

Civing
quelle
Ein später Kommentar, aber eine systemd-networkdandere Sache wäre zu prüfen, ob das eth0oder das enXGerät eine *.networkDatei in `/ lib / systemd / network /` see info systemd-networkdund info systemd.networkundinfo resolved.conf
jmunsch hat
5

Ich vermute, dass Ihr systemd-resolvedDienst korrekt konfiguriert ist, aber die Anfrage nie angezeigt wird. Die .localDomäne wird speziell von Systemen behandelt, auf denen mDNS ausgeführt wird . avahi-daemon, die mDNS / DNS-SD-Dienste (bei Apple-Produkten auch als "Bonjour" bezeichnet) bereitstellen, können so konfiguriert werden, dass sie bei der Namensauflösung Vorrang vor DNS haben. es scheint, dass Ubuntu dies tut.

Es gibt einige Optionen, aus denen Sie auswählen können:

  1. Benennen Sie Ihre .localDomain in etwas anderes (möglicherweise .internaloder .lan) um. In der Praxis ist dies möglicherweise am einfachsten, da Sie nur einige Änderungen an Ihrem DNS-Server vornehmen müssen. Dies funktioniert am besten mit Avahi. Ich würde diese Methode empfehlen.

  2. Ändern Sie Ihre /etc/nsswitch.confDatei, indem Sie den dnsEintrag vor die mdnsEinträge setzen.

  3. Ändern Sie die Konfiguration von Avahi , um die mDNS-Domäne .localdurch Bearbeiten /etc/avahi/avahi-daemon.confund Ändern (oder Hinzufügen) domain-name=.something(im [server]Abschnitt) zu ändern . Sie müssen dies auf jedem Computer tun, der mDNS verwendet, damit diese weiterhin zusammenarbeiten.

ErikF
quelle
Es tut mir leid zu sagen, dass ich hier die eigentliche Domain verschleiert habe. Es ist keine .local Domain. Die Top-Domain ist eigentlich .se. Ich werde jedoch Ihren Hinweis verfolgen und den Inhalt von nsswitch überprüfen. Entschuldigen Sie die Unklarheiten
Civing
0

Scheint dies als Kommentar besser zu sein, aber nicht genug Ruf ....

Civing antwortete am ehesten so, wie ich es wollte.

Ich musste auch dns=noneden [main]Abschnitt von hinzufügen /etc/NetworkManager/NetworkManager.conf, so sieht es so aus:

[main]
plugins=ifupdown,keyfile
dns=none

Ich habe gerade von 14.04 auf xubuntu 18.04 aktualisiert und ich habe ein LAN, das älter als das ist, mit vielen kleinen Anpassungen, die im Laufe der Jahre angefallen sind. Also möchte ich, dass mein DNS macht, was ich will (ja, ich habe im Laufe der Jahre viele Exemplare von Cricket Lius 'Buch gekauft, beginnend mit der zweiten Ausgabe).

Abgesehen davon hatte ich zuvor die DNS-Auflösungsinformationen, die ich sehen möchte, zur Datei hinzugefügt /etc/resolvconf/resolv.conf.d/head.

Kurz gesagt, nachdem ich eine funktionierende /etc/resolv.conf als root hatte:

cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head

Aber jetzt bearbeite ich einfach /etc/resolv.conf direkt und es bleibt stehen. Besucher in meinem LAN, die systemd / resolvconf verwenden, sind SOOL. Sie existieren nicht.

Lesen hat man 8 resolvconfgeholfen. Viel. Ich habe nicht folgen Sie den Anweisungen für die Umsetzung Dinge , wo die ifup Programm sie finden konnte. Vor allem, weil es in der GUI eine ganze Überstruktur gibt, die von den Aktionen, die während des Upgrades ausgeführt wurden, bereits ignoriert wurde. Das scheint ein größeres Problem zu sein (WTF, Ubuntu?).

Das ist also ein Problem, und es gibt immer noch das Problem, dass das, was ich (vor langer Zeit) in der Benutzeroberfläche der Netzwerksteuerung eingegeben habe, vom neu aktualisierten System nicht befolgt wurde, aber das ist eine ganz andere Frage, sobald ich herausgefunden habe, wie es geht Frag es.

BISI
quelle
0

Bei einem kürzlich installierten 18.04 habe ich die erste Änderung vorgenommen, die von @Civing angegeben wurde:

[ifupdown]
managed=true

Als Sie dann bemerkten, dass /etc/resolv.conf immer auf stub-resolv.conf zeigte und eine angemessene resolv.conf mit dem richtigen LAN-DNS-Server generiert wurde, änderten Sie den Symlink:

/etc/resolv.conf -> /run/systemd/resolve/resolv.conf

und dann lokal alle über Ping aufgelösten Hostnamen.

Es bleibt abzuwarten, wie lange dies noch funktioniert.

Bei der Erstinstallation ist die Einrichtung des WLANs fehlgeschlagen, und ich frage mich, ob bei der Installation /etc/resolv.conf in diesem Ausgangszustand belassen wurde.

Ein Vorschlag ist also, sich anzuschauen, was gelöst erzeugt wird. Möglicherweise haben Sie bereits eine Arbeitsgrundlage.

rhaleblian
quelle