Mehrere Netzwerkkarten an eine VM übergeben...

thorsten

Member
Moin,

ich spiele aktuell mit Netzwerk und Virtualisierung herum.
Situation:
Kleiner MiniPC mit Quad-Core Celeron und 4 Netwerkadaptern und FreeBSD 13 als Host OS
Virtualisierung mit bhyve, Guest ebenfalls FreeBSD 13
Ich starte die VM mit folgendem Script:

kldload vmm

echo "Creating tap device..."
ifconfig tap0 create
sysctl net.link.tap.up_on_open=1
ifconfig tap3 create
sysctl net.link.tap.up_on_open=1

echo "Creating bridge..."
ifconfig bridge0 create
ifconfig bridge0 addm igc0 addm tap0
ifconfig bridge0 up
ifconfig bridge3 create
ifconfig bridge3 addm igc3 addm tap3
ifconfig bridge3 up

sh /usr/share/examples/bhyve/vmrun.sh -c 2 -m 2048M -t tap0 -t tap3 -d $1 $1


Die physischen Interfaces igc0 & igc3 bekommen beide ihre IP über DHCP (igc0 hat 10.99.9.1 bekommen, igc3 hat 10.30.140.11)

Die VM startet ohne Fehler und hat folgende Netzwerkinterfaces (Ebenfalls DHCP):

vtnet0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
ether 00:a0:98:f0:02:92
inet 10.99.9.2 netmask 0xffffff00 broadcast 10.99.9.255
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vtnet1: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
ether 00:a0:98:c0:75:61
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Man sieht schon, vtnet1 hat keine IP Adresse.

vtnet0 funktioniert, ich komme ins internet und kann mich per ssh auf der VM anmelden
vtnet1 hat quasi keine Funktion, taucht auch nicht in der Routing Tabelle auf...

Es gibt keine weiteren Konfigurationen: Paketfilter oder sonstiges...

Was mache ich da falsch? Hat jemand eine Idee?

Vielen Dank & Gruß
Thorsten
 
Nimm' mal tap1 und nicht tap3. Der Rest dürfte dann egal bei der Benennung sein.
Ich erinnere mich dunkel, dass tap3 nicht klappen kann, wenn es tap1 und tap2 (noch) nicht gibt/belegt sind.
 
vielen Dank erstmal für die Antwort,

aber leider nein, funktioniert noch nicht :(
Auf den physischen Interfaces kann ich mich auf beiden mit ssh verbinden, also Hardware muss OK sein
... überlege grade an der Zeile sysctl net.link.tap ....
ob man die wohl nur besser einmal am ende der Tap creation macht? --> das war's auch nicht
 
Zuletzt bearbeitet:
.. überlege grade an der Zeile sysctl net.link.tap ....
Ah, übersehen.
sysctl net.link.tap.up_on_open=1 Da bin ich mir unsicher, aber das gilt für alle (...und dann doppelt wär doof). Im Zweifel einzeln genau definieren und mal nachschauen, welche es wirklich gibt: sysctl -a | grep net.link.tap

Dumme Frage noch: In der vm hast du auch DHCP/dhclient für vtnet1 definiert? Probieren kannst du auch, vtnet1 erstmal für nen schnellen Test statisch zu setzen und dann 10.30.140.11 anpingen oder was der gateway ist. 10.30.140.1 ?
 
auweia,
vtnet1="DHCP" war der Hinweis! Danke! Manchmal hat man echt ein Brett vor'm Kopf

... habe übrigens testweise wieder zurückgedreht, habe wieder tap0 und tap3; funktioniert! Die Reihenfolge ist also egal

... jetzt das Ganze ohne DHCP ;)

Danke & Gruß

Thorsten
 
Zurück
Oben