resolvconf

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Hinweis:

Beim Begriff "resolvconf" besteht ein Namenskonflikt:

In diesem Artikel wird das eigenständige Programm aus dem Ubuntu-Paket resolvconf beschrieben.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Starten von Programmen

  3. Ein Terminal öffnen

  4. mit Root-Rechten arbeiten

Inhaltsverzeichnis
  1. Installation
  2. Bedienung
    1. ifupdown
    2. Network Manager
    3. systemd-networkd
    4. Manuelle Konfiguration
  3. Hinweise
  4. Links

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 vor 17.10 bereits ein Manager für die Systemdatei /etc/resolv.conf installiert.

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

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:

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.