[gelöst] Jails als virtuelles Entwicklungssystem

goblin

Motivierter Amateur
Mir ist kein besserer Titel zur Beschreibung eingfallen, daher erkläre ich hier nochmal genauer, was ich vorhabe:
Für ein Projekt möchte ich einen Jail als virtuelle Systemumgebung zur Softwareentwicklung verwenden, damit mein Hostsystem (FreeBSD 10 RELEASE) nicht mit der selbstkompilierten Software des Projektes „verschmutzt“ wird (beispielsweise durch eine eigens kompilierte boost-Version). Weiterhin möchte ich die Abhängigkeiten der verwendeten Software durch Pakete auflösen, während mein Hostsystem exklusiv auf Ports setzt.
Soweit so gut, nach allem was ich über Jails gelesen habe sollte das problemlos möglich sein.
Das Problem, das ich jetzt bei der Umsetzung habe, ist dass die Umgebung auf einem Laptop läuft, d.h. die Netzwerkumgebung ist ziemlich dynamisch. Allerdings brauche ich im Jail aber ein Netzwerk, damit ich Pakete installieren kann etc. Die Dokumentationen von ezjail-admin(8), jail(8) und dem Handbuch behandeln alle nur statische IP-Adressen von einer einzigen Schnittstelle. Ich würde jedoch gerne dynamische IP-Adressen verwenden, so wie der Host selber auch.
Ist sowas denn überhaupt möglich, oder wäre die Verwendung einer virtuellen Maschine einfacher?
 
Wie du schon sagst, verlangen Jails an sich eine statische Adresse. Wobei man die Adresse zur Laufzeit ändern könnte, aber das will man meist nicht, da es zu aufwändig ist. Ich würde dir zu NAT raten. Du bindest das Jail an eine lokale Adresse auf lo0, wie zum Beispiel 10.0.0.2/24. Zwischen lo0 und deinem eigenen Netzwerkinterface richtest du per pf oder ipfw ein NAT ein, was vom jeweiligen "öffentlichen" Netz auf das lokale Netz für das Jail NATet. Damit schlägst du mehrere Fliegen mit einer Klappe:
- Das Jail ist vollkommen unabhängig vom "öffentlichen" Netz.
- Du brauchst vom lokalen Admin keine zweite Adresse, bzw. musst dich nicht mir DHCP rumärgern.
- Du kannst so viele Jails wie du willst auf der Kiste haben, zwischen ihnen ein wunderbares virtuelles Netz einrichten.
 
Dankesehr!
An NAT mit pf habe ich auch schon gedacht, aber dann bin ich nicht drauf gekommen, an lo0 zu binden. Dann werde ich das ganze mal ausprobieren.


Edit:
Dank etwas Hilfe aus dem IRC funktioniert es jetzt. Für die Nachwelt, ich habe dem Jail eine statische IP zugewiesen und diese dann mittels pf geNATet (das sollten die relevanten Teile der config sein):
Code:
ext_if = "em0"
jailnet = "192.168.42.0/24"

nat on $ext_if from $jailnet to any -> ($ext_if)

pass from $jailnet to any keep state
 
Zuletzt bearbeitet:
Und wenn du jetzt noch einen Dienst z.B. ssh im Jail anbieten möchtest, kannst du das hier hinzufügen:

Code:
rdr on $ext_if proto tcp from any to $ext_if port 2222 -> $int_if_ip port 22
pass in on $ext_if proto tcp from any to ($ext_if) port 2222
pass in on $ext_if proto tcp from any to $int_if_ip port 22

Dann kannst du von "außen" über Port 2222 den SSH Server auf dem Jail, Port 22 erreichen.
 
Zurück
Oben