Warum musste ich resolvconf entfernen, damit dnsmasq wieder funktioniert?

8

Gestern habe ich ein Upgrade auf Precise durchgeführt und dnsmasq funktioniert nicht mehr. Das heißt, DNS-Abfragen an localhost, wo dnsmasq lauscht (127.0.0.1), wurden abgelehnt.

Durch Entfernen von resolvconf ( apt-get remove resolvconf) und Neustarten wurde das Problem behoben (dieser Vorschlag wurde irgendwo bei Google gefunden). /etc/resolv.confsah gut aus mit und ohne resolvconf. Kein Unterschied.

  1. Warum sollte ich resolvconf verwenden? Gibt es irgendwelche Vorteile? Der Wikipedia-Artikel über resolvconf ist zum Kotzen.
  2. Warum hat resolvconf dnsmasq gestört? Ist das ein bekanntes Problem?
lightxx
quelle
bla @ blubb: ~ $ [-f /usr/share/doc/resolvconf/README.gz] && echo "Gefunden" || echo "Nicht gefunden" Nicht gefunden um. Klugscheißer.
lightxx

Antworten:

10

Die einfache Antwort auf (1) lautet: resolvconf richtet sich als Vermittler zwischen Programmen ein, die diese Informationen bereitstellen (z. B. ifup und ifdown, DHCP-Clients, PPP-Dämon und lokale Nameserver), und Programmen, die diese Informationen verwenden (z. B. DNS) Caches und Resolver-Bibliotheken). Ab Ubuntu 12.04 ist resolvconf Teil der Standardinstallation sowohl in der Server- als auch in der Desktop-Variante. Es ist niemals notwendig, resolvconf zu entfernen, und Leute, die es entfernen, verstehen es normalerweise nicht, im Allgemeinen, weil sie resolvconf (8) und /usr/share/doc/resolvconf/README.gz nicht gelesen haben.

Die Antwort auf die zweite Frage lautet, dass resolvconf dnsmasq höchstwahrscheinlich nicht gestört hat. Ich vermute, dass Sie auf Fehler # 959037 gestoßen sind.

Erläuterung: In Ubuntu 12.04 gibt es zwei Möglichkeiten, wie dnsmasq ausgeführt wird. Es gibt die traditionelle Standalone-Version von dnsmasq, die alle Adressen abhört. Und es gibt den neuen NetworkManager-gesteuerten dnsmasq-Prozess, der nur 127.0.0.1 abhört. Letzteres widerspricht dem ersteren, es sei denn, das erstere wird neu konfiguriert. Dieses Problem wurde in Ubuntu 12.10 gelöst, indem der NM-gesteuerte dnsmasq-Prozess 127.0.1.1 anstelle von 127.0.0.1 abhörte und der eigenständige dnsmasq-Prozess gezwungen wurde, nur Adressen abzuhören, die Schnittstellen zugewiesen waren.

jdthood
quelle
Ich habe die Manapage gelesen und kann immer noch keinen zuverlässigen Weg finden, um meinen eigenen Nameservern voranzustellen resolv.conf.
Michael Mior
Wenn resolvconf installiert ist, können Sie eine Nameserver-Adresse voranstellen, indem Sie nameserver x.x.x.x/etc/resolvconf/resolv.conf.d/head eingeben. Beachten Sie jedoch, dass dies im Allgemeinen nicht erforderlich oder empfohlen ist. Im Allgemeinen gibt es eine korrektere Möglichkeit, "Nameserver" -Zeilen zu resolv.conf hinzuzufügen. Im Allgemeinen fügt das Dienstprogramm, das eine Netzwerkschnittstelle konfiguriert, die über diese Schnittstelle verfügbaren Nameserver-Adressen durch Ausführen von resolvconf -abzw. hinzu oder entfernt sie resolvconf -d. Die Priorisierung der auf diese Weise hinzugefügten Nameserver-Adressen wird von geregelt /etc/resolvconf/interface-order.
jdthood
Wenn Sie eine Nameserver-Zeile headeinfügen, wird diese NACH dem Standard-Nameserver hinzugefügt.
Michael Mior
Ich habe es nicht getestet, aber es scheint, als echo x.x.x.x | resolvconf -a lowürde es den Trick tun, einen Nameserver hinzuzufügen, der für alle Schnittstellen der Erste sein möchte.
Michael Mior
Resolvconf setzt den Inhalt von immer headan die Spitze (oben, Anfang) von resolv.conf.
jdthood
2

Ich habe es gerade bei meiner Installation entfernt. Ich habe pppd manuell verwendet, um meine 3G-Modemverbindung zu wählen, und resolvconf hat meine DNS-Einstellungen gestört, indem ich automatisch meinen Provider-DNS hinzugefügt habe, wenn ich benutzerdefiniertes DNS verwenden wollte. pppd hat Optionen, um dies zu steuern, aber resolvconf hat sie mit seinen eigenen Einstellungen überlastet. Ich würde auch gerne eine Antwort auf diese Frage wissen? Es scheint, als wäre dies eine Art Paket, das es einfacher macht, aber stattdessen komplizierte Dinge?

ps Ich habe diesen Fehlerbericht gefunden: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578

Marko
quelle
danke für deinen Beitrag. Ich hätte es positiv bewertet, aber mir fehlt der Repräsentant.
lightxx
@lightxx: Upvoted für Sie;)
Tomasz Zieliński
Anstatt resolvconf zu entfernen, hätten Sie resolvconf so konfigurieren können, dass Nameserver-Informationen von pppd ignoriert werden.
jdthood
Der normale Inhalt von resolv.conf ist recht einfach. Immer wenn es sich bei dem Computer um einen Server oder gar einen Arbeitsplatz ohne Laptop handelt, scheint es offensichtlich einfacher zu sein, die einzelne resolv.conf zu verfolgen, als das halbe Dutzend verschiedener Dateien, die möglicherweise von resolvconf verwendet werden.
Ericx
@jdthood - Ich sehe nicht, wie das in der Manpage resolvconf.conf gemacht wird. Ich würde mich für Implementierungsspezifikationen interessieren.
dps
1

Die einfache Antwort auf (1) lautet: resolvconf richtet sich als Vermittler zwischen Programmen ein, die diese Informationen bereitstellen (z. B. ifup und ifdown, DHCP-Clients, PPP-Dämon und lokale Nameserver), und Programmen, die diese Informationen verwenden (z. B. DNS) Caches und Resolver-Bibliotheken).

Das geht aus der Paketbeschreibung hervor. Auf Desktops funktioniert es in Verbindung mit NetworkManager, um das Herstellen und Löschen von Verbindungen reibungslos zu handhaben.

Daher wird resolvconf zusammen mit dnsmasq in 12.04 verwendet, um die Verarbeitung von DNS-Informationen auf der Desktop-Version zuverlässiger zu machen. In einigen Situationen macht es die Dinge zwar besser, aber in der gesamten Situation fehlt die Dokumentation an der richtigen Stelle, insb. in der Serverwelt.

Trotz viel Googeln konnte ich nicht feststellen, was für eine Serverinstallation empfohlen wird.

Was (2) betrifft, haben Sie das gegenteilige Problem von mir. Dnsmasq funktioniert gut mit resolvconf auf meinem Computer und aktualisiert die Datei /etc/resolv.conf auf 127.0.0.1, hat jedoch andere Probleme, da dnsmasq die ISP-Nameserver von dhclient auf eth0 (dies ist ein Gateway) nicht erhält und dies auch nicht tut Holen Sie sich die Nameserver, die ich manuell in die Zeilengruppe eth0 in / etc / network / interfaces eingegeben habe.

Warum benutzt du dnsmasq? Führen Sie auch ein Gateway mit 2 Nics aus? Oder ist es nur ein einfacher Desktop? In diesem Fall koordiniert resolvconf mit dem Netzwerkmanager

Adam
quelle
Danke für deine Antwort. Ich hätte es positiv bewertet, leider brauchst du 15 Ruf, um es zu verbessern. lol
lightxx
1
Manpages sind großartig, wenn Sie wissen, was Sie wissen müssen. Wenn Sie dies nicht tun, können sie gelinde gesagt rätselhaft sein. Anleitungen, Beispiele und FAQs sind das, was Sie brauchen, wenn Sie keine Erfahrung in einem Bereich haben.
Adam
upvoted @lightxx in Ihrem Namen :)
fkl