[[Vorlage(Getestet, bionic, focal)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Hinweis Beim Begriff "resolvconf" besteht ein Namenskonflikt: * Es gibt eigenständige Programme und Pakete mit diesem Namen. Diese wurden früher (vor 17.10) auch bei Ubuntu eingesetzt. * Der Name "resolvconf" ist ein Alias für das Dienstprogramm '''resolvectl''' von [:systemd/systemd-resolved:systemd-resolved], welches sich unter seinem Alias ganz anders als unter seinem eigentlichen Namen verhält und die Funktionalität der gleichnamigen eigenständigen Programme eingeschränkt nachbildet. In diesem Artikel wird das eigenständige Programm aus dem Ubuntu-Paket '''resolvconf''' beschrieben. }}} {{{#!vorlage Warnung Ab 17.10 wird [:systemd/systemd-resolved:systemd-resolved] als Manager für die '''/etc/resolv.conf''' statt resolvconf verwendet. Dies sollte man nur in begründeten Ausnahmefällen ändern. }}} {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis()]] 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 [:interfaces:ifupdown], [:NetworkManager:], DHCP-Clients automatisch wahrnimmt. Seit Ubuntu 17.10 wird statt '''resolvconf''' der Manager [:systemd/networkd/#systemd-resolved:systemd-resolved] verwendet. {{{#!vorlage 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 kann man dieses Paket[1] installieren, wenn andere Manager deaktiviert wurden: {{{#!vorlage Paketinstallation 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 [:NetworkManager/NetworkManager_ohne_GUI: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/networkd/#systemd-resolved: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: {{{#!vorlage Befehl (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 [https://roy.marples.name/projects/openresolv openresolv-Projektes] {en}. 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. = Links = * Manpage: * auf eigenem Rechner: {{{man resolvconf}}} * [man:resolvconf:Manpages für alle Versionen von Ubuntu] * [https://roy.marples.name/projects/openresolv] {en} * [:systemd/networkd/#systemd-resolved:systemd-resolved] Alternativer Manager, Standard bei Ubuntu ab 17.10 #tag: Netzwerk, System