Alternativen:
mini howto:
https://www.truenas.com/community/threads/iocage-helper-thread.59988/
Die Variante Shared IP gilt als ausgereifter. Arbeitet man jedoch mit vielen verschiedenen VLANs erscheint es mir sinnvoller mit bridges und VLAN zu arbeiten und gleichzeitig VNET in FreeBSD zu nutzen.
Ab FreeBSD 12 ist Vimage / VNET Support bereits fester Bestandteil des Kernel und muss nicht mehr manuell dazu kompiliert werden.
Shared IP Betrieb mag zwar erprobter sein, VNET erscheint mir jedoch definitv die bessere Lösung. Um sie nutzen zu können muss man den Kernel mit anderen Optionen kompilieren.
### Neuerdings nutzt FreeBSD git zur Versionierung des Kernels und der Ports. Für ältere Systeme bitte in die Historie dieses Artikels schauen um den Kernel per SVN auszuchecken.
Dieser Teil wird auch hier beschrieben: https://forums.freebsd.org/threads/installing-and-updating-the-src-tree-with-git.78367/
pkg install git
cd /usr/src
git clone
https://git.freebsd.org/src.git
ssh://anongit@git.freebsd.org/src.git
vnet config Datei benutzen für die Kernel Kompilierung
cp -v /usr/src/share/examples/jails/VIMAGE /usr/src/sys/amd64/conf/VIMAGE
Kernel kompilieren
cd /usr/src make KERNCONF=VIMAGE kernel
Alternativ mit 8 Kernen kompilieren
make -j 8 KERNCONF=VIMAGE kernel
Paremeter in /etc/sysctl.conf platzieren:
net.inet.ip.forwarding=1 # Enable IP forwarding between interfaces
net.link.bridge.pfil_onlyip=0 # Only pass IP packets when pfil is enabled
net.link.bridge.pfil_bridge=0 # Packet filter on the bridge interface
net.link.bridge.pfil_member=0 # Packet filter on the member interface
pkg install py38-iocage
ZFS Volume muss vorhanden sein, in diesem Beispiel heißt es zroot
iocage activate zroot
iocage fetch
Bestimmte Version
iocage fetch -r 12.2-RELEASE
iocage create -n test -r 12.2-RELEASE
statische IPs und Nutzung von Template
iocage create -n syncthing -r 11.2-RELEASE boot=on vnet=on dhcp=off ip4_addr="vnet0|10.10.101.62/24" defaultrouter="10.10.101.199" ip6_addr="vnet0|2001:1234:1234:1b:5679:a79:752d:2265/64" defaultrouter6="2001:1234:1234:1b:5054:ff:fe44:1062"
In this exampel the host is completely on autoconf, as well as IPv4 and IPv6
iocage create -n syncthing -r 12.2-RELEASE vnet=on dhcp=on bpf=1 ip6_addr="vnet0|accept_rtadv"
Das alleine genügt leider nicht, innerhalb des Gastes sind auch Anpassungen nötig in /etc/rc.conf
ipv6_activate_all_interfaces="YES"
rtsold_enable="YES"
ifconfig_epair0b="SYNCDHCP"
ifconfig_epair0b_ipv6="inet6 auto_linklocal accept_rtadv autoconf"
iocage console <<jailname>>
Zum trennen entweder exit tippen oder CTRL + D
iocage update <<jailname>>
iocage stop <<jailname>>
iocage start <<jailname>>
Auflistung von Jails in Kurzform
iocage list
Auflistung von Jails ausführlicher
iocage list -l
Auflistung vorhandener Templates in Kurzform
iocage list -t
Auflistung vorhandener Templates ausführlicher
iocage list -l -t
Auflistung von Plugin Jails
iocage list -P
iocage fstab -a <<jailname>> <<path>>
iocage fstab -r <<jailname>> <<path>>
Index der verfügbaren Standardplugins:
https://raw.githubusercontent.com/freenas/iocage-ix-plugins/master/INDEX
Github Repo mit den *.json Dateien
https://github.com/freenas/iocage-ix-plugins
Auflistung verfügbarer Plugins
iocage list -PR
Auflistung installierter Plugins
iocage list -P
Plugin abrufen und mit DHCP starten
iocage fetch -P syncthing ip4_addr="igb0|dhcp"
Plugin abrufen und mit IP starten
iocage fetch -P syncthing ip4_addr="igb0|192.168.2.10"
Man kann in iocage auch mit Templates arbeiten. Dies hilft bei der Inbetriebnahme von Jails. ACHTUNG: Templates helfen nicht viele, bereits existierende Jails auf einem Versionsstand zu halten. Dazu sollte man lieber Tools wie Ansible verwenden. Ansonsten sind folgende Dinge bei der Benutzung von Templates zu beachten:
iocage set template=0 syncthing