Bastille und BHYVE haben beide "leicht" unterschiedliche Anforderungen an die Netzwerkeinstellungen. Hier wird beschrieben, was eingestellt werden muss, damit beide Lösungen gut parallel laufen können. Aber auch wenn jeweils nur Jails oder VMs eingesetzt werden, sind das hier die richtigen Grundlagen.
Jails oder VMs können wahlweise per DHCP eine eigene IP-Adresse aus dem gleichen LAN-Netzwerk wie das Hostsystem beziehen oder mit einer IP-Adresse aus einem privaten Adressbereich auf dem Host betrieben werden. Der Zugriff auf den privaten Adressbereich wird dann per pf
bzw. NAT erlaubt.
NEU: Für ganz ungeduldige habe ich einen Konsole only Abschnitt. Da gibts nur Befehle, keine Erklärungen.
Letzte Aktualisierung:
igb0
. Die Schnittstelle muss an eure primäre Netzwerkkarte angepasst werden. Die aktuelle mit dem Internet verbundene Schnittstelle kann mit route -n get default | grep 'interface:' | grep -o '[^ ]*$'
ermittelt werden, z.B. bge0
(um mal ein anderes Beispiel zu erwähnen)Eine weitere Möglichkeit wäre natürlich die Nutzung einer dedizierten Schnittstelle nur für Jails und VMs, worauf hier aber nicht weiter eingegangen wird.
Zu diesem Zweck werden zwei neue Schnittstellen erzeugt:
localnet0
= Privates Netzwerk nur auf dem Host. Der Host selber hat die IP Adresse 10.0.0.1
und die Jails, bzw. VMs erhalten dann 10.0.0.10-254
publicnet0
= Brücke zum lokalen Netzwerk zusammen mit der Schnittstelle igb0
, darüber erhalten die Jails, bzw. VMs eine IP Adresse per DHCP aus dem LAN Netzwerk des HostsDreh und Angelpunkt unter FreeBSD für diese Konfiguration ist die /etc/rc.conf
, in der hier die nötigen Einstellungen vorgenommen werden:
sysrc cloned_interfaces="bridge0 lo1" # Erzeugt neue Schnittstellen mit den Namen bridge0 und lo1
sysrc ifconfig_bridge0_name="publicnet0" # bridge0 wird in publicnet0 umbenannt
sysrc ifconfig_lo1_name="localnet0" # lo1 wird in localnet0 umbenannt
sysrc ifconfig_publicnet0="addm igb0 up" # igb0 wird der Netzwerkbrücke hinzugefügt
sysrc ifconfig_localnet0="inet 10.0.0.1/24" # Gateway Adresse für localnet0
sysrc gateway_enable="YES" # Die IP Routing Funktion von FreeBSD wird aktiviert
Mit service netif restart
werden die Anpassungen aktiviert und sind per ifconfig
dann auch sichtbar:
publicnet0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=0
ether yy:yy:yy:y:yy:yy
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: igb0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 priority 128 path cost 55
groups: bridge
nd6 options=9<PERFORMNUD,IFDISABLED>
localnet0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 10.0.0.1 netmask 0xffffff00
inet6 fe80::1%localnet0 prefixlen 64 scopeid 0x5
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Damit sind die Vorbereitungen abgeschlossen.
Voilá