ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

resolvconf

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Das Paket resolvconf ist ein Manager für die wichtige Systemdatei /etc/resolv.conf, mit der die DNS-Namensauflösung über die glib-Bibliothek konfiguriert wird.

In der Frühzeit der unixoiden Betriebssysteme war es üblich, die zur DNS-Namensauflösung benötigten Informationen – insbesondere die IP-Adressen der Namensserver und den Suchpfad für die Domänen – in der Textdatei /etc/resolv.conf direkt mit Hilfe eines Texteditors[3] einzutragen; seit dem Jahre 2003 verwenden Debian-Systeme und auch Ubuntu-Desktops bis zur Version 16.10 hierfür jedoch den Manager resolvconf, der diese Aufgabe nach Angaben der eingesetzten Netzwerk-Konfigurationsprogramme wie ifupdown, NetworkManager, DHCP-Clients automatisch wahrnimmt. Seit Ubuntu 17.10 wird statt resolvconf der Manager systemd-resolved verwendet.

Hinweis:

Bei einem Rechnersystem mit aktivem Manager für die Datei /etc/resolv.conf sollte man diese Datei nicht selbst direkt mit einem Texteditor bearbeiten, da man sonst Störungen der DNS-Namensauflösung riskiert.

Installation

Bei Ubuntu-Desktop-Systemen wird bei einer normalen Installation bereits ein Manager für die Systemdatei /etc/resolv.conf installiert.

Bei Ubuntu-Server-Systemen benötigt man dieses Paket[1]:

  • resolvconf

Befehl zum Installieren der Pakete:

sudo apt-get install resolvconf 

Oder mit apturl installieren, Link: apt://resolvconf

Man sollte nicht mehrere Manager für die Systemdatei /etc/resolv.conf parallel installieren. Der bei Ubuntu 16.04 als Standard installierte resolvconf und der bei Ubuntu ab 17.10 als Standard installierte systemd-resolved stören sich gegenseitig. Dieser Konflikt wird im Paketmanagment nicht aufgelöst. Bei Systemen ab 17.10 muss systemd-resolved manuell deaktiviert werden, damit keine Störungen auftreten. Der NetworkManager muss zudem so konfiguriert werden, dass dieser resolvconf nutzt.

Bedienung

Bei installiertem resolvconf kann man die Namensserver und den Domänen-Suchpfad über die gängigen Netzwerk-Konfigurationsprogramme festlegen:

ifupdown

Hier erfolgen die Angaben in der Datei /etc/network/interfaces:

  • Bei Verwendung der Methode dhcp werden die vom DHCP-Server empfangenen Informationen vom DHCP-Client direkt an das Programm resolvconf übergeben.

  • Bei Verwendung der Methode static kann man über die Optionen dns-nameservers und dns-search angeben, was das Programm resolvconf eintragen soll. Für Beispiele lese den Artikel interfaces.

Network Manager

Hier erfolgen die Angaben in den Verbindungsdateien im Verzeichnis /etc/NetworkManager/system-connections/ mit Hilfe der Optionen ipv4.dns für die Server und ipv4.dns-search für den Suchpfad. Diese Angaben kann man (als root[4]) direkt per Texteditor in der Verbindungsdatei eintragen, oder man benutzt das Text-Interface von NetworkManager oder dessen GUI. In gleicher Weise kann man auch IPv6-Adressen für Namensserver über die Option ipv6.dns definieren.

systemd-networkd

systemd-networkd enthält keine Schnittstelle zu resolvconf. Man benutzt besser den Manager systemd-resolved aus der systemd-Familie.

Manuelle Konfiguration

Man kann das Programm resolvconf auch über eine Console händisch aufrufen[2] und ihm die Informationen übergeben. Das folgende Beispiel definiert beispielhaft einen lokalen und den Google-Nameserver:

(echo 'nameserver 10.11.12.13' ; echo 'nameserver 8.8.8.8' ) | sudo resolvconf -a eth0.manual
sudo  resolvconf -u 

Im Prinzip schreibt man den gewünschten Inhalt der Datei /etc/resolv.conf auf den Eingangskanal stdin des Programms resolvconf, welches wegen der Option -a diese Informationen im Beispiel unter der Record-Bezeichnung eth0.manual speichert. Man ist selbst für eine sinnvolle Bezeichnung verantwortlich und sollte die Hinweise der Manpage beachten. Ein Aufruf mit der Option -u triggert die Aktualisierung der Datei /etc/resolv.conf.

Alternativ kann man, wenn man ohnehin die Datei /etc/resolv.conf händisch pflegen möchte, das Paket resolvconf deinstallieren und damit die Komplexität seines Systems reduzieren. Man beachte aber, dass dann damit auch NetworkManager funktional eingeschränkt wird und in der Datei /etc/network/interfaces die Optionen dns-nameservers und dns-search nicht mehr funktionieren. Ersatzweise kann/muss man den DHCP-Client direkt konfigurieren.

Hinweise

Es existieren mehrere Varianten des Managers resolvconf, mindestens die ursprüngliche Implementierung von Debian und die des openresolv-Projektes 🇬🇧. Das Programm des openresolv-Projektes kennt die Datei /etc/resolvconf.conf, mit der das Programm selbst konfiguriert werden kann. Siehe hierzu dessen Manpage:

man resolvconf.conf 

resolvconf ersetzt die Textdatei /etc/resolv.conf durch einen symbolischen Link. Die Überschreibung dieses Links oder auch direktes manuelles Ändern des Dateiinhaltes ist eine häufige Ursache für Störungen bei der DNS-Namensauflösung und träges Verhalten beim Zugriff auf das Internet.

Ubuntu-Desktops konfigurieren standardmäßig einen lokalen DNS-Server als Cache; dieser wird realisiert durch dnsmasq (vor 17.10) bzw. systemd-resolved (ab 17.10). Bei einer Verwendung eines solchen Cache darf in der Datei /etc/resolv.conf nur genau ein Namensserver eingetragen sein und dieser Eintrag muss auf den lokalen DNS-Server im Bereich 127.0.0.0/8 zeigen. Änderungen auf andere/weitere Namensserver, auch mit der oben beschriebenen korrekten manuellen Bedienung, führen zu Störungen bei der DNS-Namensauflösung. Die vom lokalen DNS-Server zu benutzenden Forwarder werden weder direkt noch indirekt über die Datei /etc/resolv.conf definiert. Man konsultiere die Dokumentation des als DNS-Cache eingesetzten Programms für weitere Details.

Diese Revision wurde am 29. Dezember 2020 14:33 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, System