Warum muss ich DNS angeben, wenn ich chroot verwende?

1

Als ich das letzte Mal von Live USB auf mein altes kaputtes System umgeschaltet habe, konnte ich keine Verbindung zum Internet herstellen. In diesem Tutorial habe ich gelesen, dass ich OpenDNS zu meinem hinzufügen sollte, /etc/resolv.conf wenn ich DHCP verwende .

Wie beeinflusst DHCP (oder Chroot) mein DNS?

Ist DHCP nicht nur eine Möglichkeit für meinen Router, mir eine IP zu geben? Warum kann ich normalerweise eine Verbindung von Live-USB zum Internet herstellen, während chrootich neuen DNS hinzufügen muss?

Qback
quelle

Antworten:

5

Ist DHCP nicht nur so, wie mein Router mir IP gibt?

Nein, es ist auch die Art und Weise, wie Ihr Router Ihnen zusätzliche Informationen bereitstellt - Gateway-IP, DNS-Server-IP, Standarddomänenname, Zeitserver-IP usw.

Warum kann ich normalerweise eine Verbindung von Live-USB zum Internet herstellen, während ich in chroot neuen DNS hinzufügen muss?

Linux speichert die DNS-Serveradresse in einer Datei. Da chroot die Art und Weise ändert, in der Programme Dateipfade sehen, bedeutet dies, dass sie eine andere Datei im /etc/resolv.confPfad finden, was bedeutet, dass sie möglicherweise eine andere Adresse finden, die dort gespeichert ist.

(Ihr DHCP-Client weiß nichts über Ihre Chroots und aktualisiert nur die Hauptdatei. /etc/resolv.conf Er kann nicht alle möglichen Dateien suchen und aktualisieren .)


Eine häufige Problemumgehung besteht darin, den Pfad "inside" so zu verknüpfen (zu binden), dass er auf dieselbe Datei "outside" verweist. Zum Beispiel können Sie dies tun, bevor Sie in / mnt chrooten:

mount --bind /etc/resolv.conf /mnt/etc/resolv.conf

(Natürlich müssen Sie später die Bereitstellung aufheben, bevor das System die Bereitstellung von / mnt aufheben kann.)

Grawity
quelle
1
Wenn es sich bei Ihrem resolv.confLink um einen Symlink handelt (oder Sie nicht möchten, dass er mit dem Original übereinstimmt), verwenden Sie cp -L /etc/resolv.conf /path/to/etc.
ErikF