In früheren Ubuntu-Distributionen wurden die DNS-Resolver in der Datei /etc/resolv.conf konfiguriert, in dem einfach die Werte bearbeitet und die Datei zur Verwendung gespeichert wurde. Das funktioniert so leider nicht mehr. Aktuell verwenden wir dazu den systemd-resolved Service, der DNS-Namensauflösung für lokale Anwendungen oder Dienste bietet und einfach mit netplan konfiguriert werden kann. Das Tool netplan ist das neue Standard-Netzwerkverwaltungstool unter Ubuntu 20.04.
Zum setzen einer statischen DNS Konfiguration gehen wir wie folgt vor:
Zuerst müssen wir Wissen, welches Interface wir aktuell verwenden. Dazu geben wir in einer Terminalsitzung das Kommando ip a ein.
Als nächstes öffnen wir die netplan Konfigurationsdatei die unter „/etc/netplan“ gespeichert werden. Der Name der YAML Datei kann von Setup zu Setup unterschiedlich sein, in unserem Beispiel verwenden wir die Datei „01-network-manager-all.yaml“.
sudo nano /etc/netplan/01-network-manager-all.yaml
Die Datei sieht erstmal wenig spektakulär aus.
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
addresses: []
dhcp4: true
eth1:
addresses: []
dhcp4: true
eth2:
addresses: []
dhcp4: true
eth3:
addresses: []
dhcp4: true
version: 2
Da wir ja in diesem Beispiel nur die eth0 Schnittstelle verwenden, ergänzen wir den Abschnitt eth0: noch um die DNS Server die wir verwenden möchten. Das ganze sieht dann wie im folgenden Screenshot aus:
In der YAML Datei sind „8.8.8.8, 8.8.4.4“ die DNS-Resolver für Google. Wir speichern die Konfigurationsdatei und verlassen den nano Editor mit Strg+x.
Mit dem nachfolgenden Befehl wenden wir die Änderungen mit netplan an:
sudo netplan apply
Überprüfen können wir unsere Konfiguration mit dem folgenden Kommando:
systemd-resolve --status | grep 'DNS Servers' -A2
Was die folgende Ausgabe erzeugen sollte:
Benutzerdefinierten DNS-Nameserver können auch mithilfe von networkd festlegt werden, das ist aber ein weiterer Artikel.
Danke für die Anleitung. Ich bin OpenSUSE gewöhnt und habe so meine Probleme mit Ubuntu (20.04.3 LTS).
Änderungen an der yaml-Datei (hier /etc/netplan/00-installer-config.yaml) waren bei mir nicht nötig, da meine beiden DNS-Server (192,168.xx.yy und 192.168,xx.zz; Windows-AD) durch das Setup wohl korrekt eingetragen waren. Dennoch führt ein ping auf lokale Namen der Windows-AD (server.mydomain.local) nicht zum Erfolg (Temporay failure in name resolution). Ein nslookup ergibt denn auch, dass hier standardmäßig der Server 127.0.0.53 abgefragt wird, also der lokale Prozess. Wie kann das generell für die Namesauflösung umgangen werden? Was bringt mir dann die Datei /etc/netplan/01-network-manager-all.yaml?
Schon mal versucht, die Namesserver auch in der
01-network-manager-all.yaml
einzutragen und nicht die00-installer-config.yaml
zu verwenden (funktioniert ja offensichtlich nicht)?Danke für die schnelle Antwort.
In /etc/netplan existiert bei mir nur die 00-installer-config.yaml, die demnach – meine Vermutung – die allein gültige ist:
# This is the network config written by ’subiquity‘
network:
ethernets:
eth0:
addresses:
– 192.168.22.17/24
gateway4: 192.168.22.1
nameservers:
addresses:
– 192.168.22.2
– 192.168.22.3
search: []
version: 2