Host-Only-Netzwerk
In einer Host-Only-Netzwerkkonfiguration werden Netzwerkpakete lediglich zwischen virtueller Maschine und TwinCAT/BSD-Host ausgetauscht. Hierfür wird auf dem TwinCAT/BSD-Host eine vmnet(4)
Schnittstelle angelegt. Die vmnet(4) Instanz dient als Backend für einen emulierten Ethernet-Controller vom Typ virtio-net oder e1000 der virtuellen Maschine. Innerhalb des Gastsystems wird der Ethernet-Controller als Netzwerkschnittstelle erkannt. Die IP-Adressen der Host- und Gast-Netzwerkschnittstellen werden anschließend so konfiguriert, dass sich ein Host-Only Netzwerk ergibt.
Zum Konfigurieren eines Host-Only-Netzwerks wird auf dem TwinCAT/BSD-Host mit ifconfig
eine vmnet(4)
Schnittstelle angelegt und dieser Netzwerkschnittstelle eine private IP-Adresse zugewiesen.
doas ifconfig vmnet create inet 192.168.1.10 netmask 255.255.255.0
Damit die vmnet-Instanz bereits beim Systemstart angelegt wird, kann diese in der rc-Konfiguration hinterlegt werden:
doas sysrc cloned_interfaces+="vmnet0"
doas sysrc ifconfig_vmnet0="inet 192.168.1.10 netmask 255.255.255.0"
Der virtuellen Maschine wird das vmnet(4)-Gerät anschließend als Backend für einen virtuellen Netzwerk-Controller vom Typ virtio-net
übergeben (vgl. Abbildung oben).
Innerhalb des Gastsystems wird das virtuelle Netzwerkinterface so konfiguriert, dass es sich im gleichen IP-Netzwerk wie das vmnet0
Interface des TwinCAT/BSD-Hosts befindet (Beispiel oben: 192.168.1.0/24). Anschließend kann die Host-Only-Kommunikation mit ping-Anfragen zwischen TwinCAT/BSD-Host und Gastsystem überprüft werden.
Der folgende Aufruf startet die virtuelle Maschine samplevm
mit einem virtio-net-basierten Netzwerkcontroller an PCI-Adresse 20. Als Backend wird die zuvor konfigurierte vmnet0 Instanz übergeben.
doas bhyve \
-c sockets=1,cores=1,threads=1 \
-m 2G \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_UEFI.fd,fwcfg=qemu \
-s 0,hostbridge \
-s 20,virtio-net,vmnet0 \
-s 31,lpc \
-A -H -P \
samplevm