unbound in jail als Resolver für Host

pchris

Well-Known Member
Folgendes Problem habe ich hier bei mir. Ein unbound läuft in einer Jail. Er liefert die Namensauflösung für das interne Netzwerk sowie fragt den Rest andere DNS Server im Internet. Sowohl die paralell laufenden Jails als auch das Host-System nutzen den Resolver in der Jail, indem die Adresse in den jeweiligen /etc/resolv.conf Dateien eingetragen ist. Was nun bei einem Neustart des Hosts passiert ist:
  • ntpd findet keine Zeitserver, weil 0.at.pool.ntp.org nicht aufgelöst werden kann
  • wireguard kann das Netzwerk interface wg0 nicht einrichten, weil die Namensauflösung für die Gegenstelle nicht funktioniert
  • sshd hört nur die LAN-Adresse und nicht auf die VPN-Adresse, weil das Wireguard-Interface samt dessen Adresse nicht vorhanden ist

Grundsätzlich glaube ich zu wissen, woran es hier hapert. Die Jail mit unbound wird während des Bootvorgangs erst etwas später gestartet. Somit schlagen die ersten Namensauflösungsversuche fehl. Aber die Frage ist nun, was tun? Drei Möglichkeiten fallen mir ein:
  • unbound doch am Host laufen lassen -> startet es dann früh genug?
  • im Bootvorgang den Start der Jail vorziehen und alles andere warten lassen -> geht das, und wenn ja, wie?
  • die Gegenstelle für Wireguard als IP Adresse konfigurieren bzw. in /etc/hosts eintragen

Gibt es noch andere Lösungsvorschläge?
 
Bau' die jail in eine VNET-jail um, damit die ihren eigenen stack hat. Ich weiß es jetzt nicht sicher ob es das Problem löst, aber das wäre jetzt meine Richtung, die ich einschlagen würde.
Die anderen drei würden mich nicht befriedigen. ;)
 
Ich für meinen Teil würde ein solches Setup nur in dieser Form aufbauen, wenn ich auf dem Host selbst nicht arbeite. Alles was der Host benötigt würde ich dann manuell konfigurieren. Vermutlich arbeitest du aber auf dem Host selbst und möchtest ihn deshalb mit einbeziehen, richtig? Eine solche Jail würde ich dann nicht auf diesem Host betreiben.

Vermutlich kein wirklicher Lösungsvorschlag, sorry. Aber evtl. hast du doch ein Setup, das in diese Richtung geht. Der Hintergrund, weshalb ich es anders aufbauen würde: Der Host darf für mich nicht von einer Jail abhängig sein. Was wenn der Dienst wegbricht? Was wenn die Jail ausfällt?

HTH (irgendwie)
 
Den vermutlichen Fehler hast du ja schon erkannt, ich würd da garnicht soo viel herumdoktorn sondern für das WG Interface die Address per IP eintragen oder nen Hosteintrag erstellen. Das sshd Problem hat sich dann ja auch erledigt.

Was ntpd betrifft: Bist du dir sicher, dass der nicht nach einiger Zeit nochmal neu probiert und dann auflösen kann? ntpd prüft ja normal die Server regelmäßig auf timings/jitter, ....
Eventuell eine Pooladdresse als einzelnen Server eingetragen?

Ich selbst habe einen FreeBSD Server mit unbound in einer Jail, da läuft allerdings auf dem Host openntpd als ntp und der läuft problemlos.
 
  • die Gegenstelle für Wireguard als IP Adresse konfigurieren bzw. in /etc/hosts eintragen

Gibt es noch andere Lösungsvorschläge?
Das mit der IP-Adresse bzw. mit der hosts-Datei funktioniert nur dann, wenn der Endpoint (Gegenstelle) eine feste/statische IP-Adresse hat.
Wenn das nicht der Fall ist (d. h. dynamische IP-Adresse), kannst Du einen Fake-Eintrag in der /etc/hosts benutzen, damit das WG-Interface überhaupt generiert/erstellt wird und danach ziemlich zeitnah (d. h. sofort wenn aus der Jail Internetzugang möglich ist), via cronjob (oder gleichwertig), das bash-Script "/usr/local/etc/wireguard/reresolve-dns.sh wgx" (mit dem WG-Interface als Argument) ausführen lassen. Bei diesem Konstrukt muss man darauf achten, dass jetzt während der bash-Scriptausführung, die Namensauflösung nicht via /etc/hosts-Datei gemacht wird. Im bash-Script ist der Zeitabstand zum letzten erfolgreichen handshake, auf 135 Sekunden hardcodiert.
BTW: Für FreeBSD im bash-Script diese Änderung:
Code:
#    (( ($(date +%s) - ${BASH_REMATCH[1]}) > 135 )) || return 0
    (( ($EPOCHSECONDS - ${BASH_REMATCH[1]}) > 135 )) || return 0
machen.
 
Danke für eure Antworten. Nachdem die Wireguard Gegenstelle eine statische IP-Adresse hat, werde ich wohl diese direkt verwenden. Selbst wenn sich diese Adresse dann einmal im Jahr ändert, kann ich das ja relativ einfach nachtragen. Erscheint mir nun auch als einfache Lösung.

Bezüglich des Arguments, dass der Host nicht von einer Jail abhängig sein soll. Vielleicht habe ich da künftig eh noch eine Chance auf Veränderung. Im Frühjahr des kommenden Jahres soll hier eine Glasfaser vergraben werden. Damit wird auch die Netzzugangssituation eine andere sein. Unter Umständen hab ich dann an der Grenze eine zusätzliche Kiste stehen, die Firewall sowie DNS Auflösung macht. Mal schauen.
 
Zurück
Oben