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 nslookup
von 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.conf
hat 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
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:
neue Nameserver hinzufügen. Bearbeiten Sie die Datei
/etc/systemd/resolved.conf
als 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
den aktuellen Symlink löschen zu
/etc/resolv.conf
- einen neuen symbolischen Link erstellen
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
- Starten Sie den Dienst neu
sudo service systemd-resolved restart
- Starten Sie den Netzwerkmanager neu
sudo 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.conf
Es 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.conf
auf/run/systemd/resolve/resolv.conf
und funktioniert jetzt einwandfrei.