bhyve 和 FreeBSD 来宾的桥接网络不起作用

Sub*_*ito 1 freebsd virtual-machines bridge

我在 rc.conf 中有一个带有 bhyve 和以下 IP 配置的 FreeBSD10 主机:

ifconfig_igb0="inet X.X.X.146 netmask 255.255.255.0 broadcast X.X.X.255"
defaultrouter="X.X.X.254"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm igb0 up"
Run Code Online (Sandbox Code Playgroud)

Tap 设备通过 vmrc 脚本添加。我有另一个来自我的主机的 IPv4 地址,它位于另一个子网中Y.Y.Y.176。主机为我提供了以下使用此 IP 配置桥接网络的指南:桥接网络

根据本指南,我像这样配置了来宾(FreeBSD10)(主机为我提供了 IP 的“虚拟 MAC”):

ifconfig_vtnet0="inet Y.Y.Y.176 netmask 255.255.255.255 ether 02:00:00:8c:46:32"
static_routes="net1 net2"
route_net1="-net X.X.X.254/32 Y.Y.Y.176"
route_net2="default X.X.X.254"
Run Code Online (Sandbox Code Playgroud)

在启动 VM 之前,我像这样设置桥:

ifconfig bridge0 addm igb0 addm tap0 up
Run Code Online (Sandbox Code Playgroud)

tap0是“主机侧”的虚拟机的网络适配器。

这不起作用。我无法从 VM 内部访问网关,也无法从 VM 访问主机。这对我来说很有意义,因为没有路线。目前还不清楚这如何运作。

All*_*ude 5

您可能需要执行以下操作:

ifconfig tap0 up
Run Code Online (Sandbox Code Playgroud)

和/或添加net.link.tap.up_on_open=1/etc/sysctl.conf使其自动启动。

通常,在您给它一个 IP 之前,tap 接口不会出现。

这应该使桥梁工作。

要在 中配置网桥rc.conf

cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm igb0 addm tap0 up"
Run Code Online (Sandbox Code Playgroud)

您还需要:

if_bridge_load="YES"
if_tap_load="YES"
Run Code Online (Sandbox Code Playgroud)

/boot/loader.conf使自来水可以动态创建。

请参阅我在这里写的官方说明。