Was ist der „richtige Weg“, um Änderungen in /etc/resolv.conf mit /etc/resolv.conf.d vorzunehmen?

11

Ich resolv.confwar früher statisch und du hast es selbst bearbeitet.

Später schrieb der DHCP-Client es mit einigen statischen Einträgen und dem, was er aus der DHCP-Lease erhielt, neu.

Heutzutage haben einige Distributionen - wie meine (Linux Mint 18.1) - einen /etc/resolv.conf.dMechanismus mit mehreren Unterverzeichnissen von Skripten, und ich kann mir keine Gedanken darüber machen.

Was ist dann der richtige Weg?

  • um anzuzeigen, dass ich die in der DHCP-Lease erhaltenen DNS-Server verwenden oder nicht verwenden möchte?
  • Feste Einträge zur resolv.conf hinzufügen, immer oder als Fallback, wenn es keinen durch DHCP-Lease erhaltenen Nameserver gibt?
  • Entscheidungen über die relative Reihenfolge in der Datei zu treffen?

Es macht mir nichts aus, einige eigene Skripte zu schreiben, wenn ich habe, ich möchte einfach nicht gegen den vorhandenen Mechanismus "arbeiten" oder doppelte Arbeit leisten.

einpoklum
quelle
4
Ich deinstalliere resolvconfauf Servern ... unix.stackexchange.com/questions/286195/…
Rui F Ribeiro
Sie können auch konfigurieren dhclient, dass DHCP-DNS-Informationen ignoriert / ersetzt werden. Ich bin mir nicht sicher, ob es dafür einen Mechanismus gibt /etc/resolv.conf.d(aber ich verwende Mint nicht und habe diese Skripte nicht).
Dirkt
@dirkt: Im Moment ist der einzige Eintrag, der in meinen /etc/resolv.confgeht, der localhost (der dnsmasq ausführt), daher ist mir nicht klar, wie dnsmasq, der Mechanismus resolv.conf.d und der DHCP-Client interagieren.
Einpoklum

Antworten:

2

Die Antwort ist einfach: Der resolv.conf.dOrdner befindet sich in / etc / resolvconf / und enthält head / base / original- und tail-Dateien. Wenn jeder von ihnen bearbeitet wird, wird die resolv.confDatei in / etc / aktualisiert.

Angenommen, Sie möchten am Anfang von resolv.confin / etc / eine statische DNS-Adresse headeinfügen (da sie bei jedem Neustart automatisch auf die Standardeinstellungen zurückgesetzt wird), müssen Sie die Datei in /etc/resolvconf/resolvconf.d/ bearbeiten und eingeben zum Beispiel:

nameserver 1.1.1.1
nameserver 1.0.0.1

Starten Sie danach den resolvconf-Dienst neu mit:

sudo service resolvconf restart

Jetzt Katze resolv.confin / etc / und du wirst die neuen Änderungen sehen.

Das Gleiche gilt, wenn Sie Inhalte am Ende der Datei einfügen möchten, die Sie tailanstelle von head/etc/resolvconf/resolvconf.d/ verwenden.

PS: Dies ist 100% getestet und funktioniert Ubuntu und Debian

Bearbeiten: Ich habe bereits die letzten beiden Aufzählungszeichen Ihrer Frage beantwortet, jetzt in Bezug auf das erste Aufzählungszeichen, in dem es darum geht, die von DHCP bereitgestellte DNS-Adresse nicht zu verwenden. Es hängt wirklich davon ab, welche DNS-Software / welches DNS-Paket Sie installiert haben. Ich empfehle Ihnen daher, diesen Beitrag zu überprüfen und sicherzustellen, dass Sie auch den darunter liegenden Beitrag lesen, falls Sie einen haben dnsmasq.

M03
quelle
1
+1, aber dies erklärt nur, wie man einen Teil dessen macht, worüber ich gefragt habe.
Einpoklum
0

resolve.conf und ein solcher Mechanismus existieren seit den letzten Jahren bis heute. Es gibt eine Befehlszeile dhclient, resolvconfdie diese Datei verarbeitet. Im letzten Jahr hat Linux jedoch eine neue Schnittstelle für die Konfiguration von NetworkManager mit dem Namen nmcli eingeführt . Dies ist ein umfangreicher Befehl zum Verwalten jeder dauerhaften Netzwerkkonfiguration (nicht zur Laufzeit). Sie können etwas verwenden wie:

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

Dieser Befehl überschreibt die resolv.confDatei. In RHCA wird empfohlen, die resolv.conf nicht manuell zu bearbeiten und ihre Befehle zu verwenden. Über das von Ihnen erwähnte resolvconf-Verzeichnis kann ich sagen, dass es einige Dienste geben kann, die ihre eigene Conf für DNS haben, so dass sie ihre eigene Conf wie OpenVpn verwenden. Sie können die /etc/nsswitchDatei auch überprüfen , um weitere Informationen zum Auflösen zu erhalten.

Ali Ghasempour
quelle
Ich glaube nicht, dass dies meine Frage tatsächlich beantwortet.
Einpoklum
Nun, vielleicht ist dies mein Miss, der über Ihre Frage verstanden wurde, aber die nsswitchDatei ist eine Ihrer Antworten.
Ali Ghasempour
Ich glaube, @einpoklum möchte die Reihenfolge der DNS-Server in resolv.conf(siehe man resolv.conf) kontrollieren , nicht die Reihenfolge der zum Auflösen verwendeten Mittel ( man nsswitch.conf). Ihre Antwort ist dennoch interessant.
Xhienne
Danke für dein Interesse . Soweit ich weiß, handelt es sich bei resolv.conf um eine sequentielle Datei, deren Auflösungspriorität von oben nach unten liegt.
Ali Ghasempour