已切换至秋季配色,取自《小市民系列》,若影响可视性等问题请联系邮件地址 [email protected]

12.5 无线网络环境下使用 bhyve

如果宿主机上只有无线网卡,在使用 bhyve 时,会遇到困难,即虚拟机无法获取 IP 地址。此时就需要使用 NAT。让虚拟机通过 NAT 从主机获取 IP 地址。

为了实现这一点,必须创建一个虚拟交换机作为虚拟机的网关。当虚拟机使用网络时,虚拟交换机负责把数据转发给宿主机的无线网卡,这时会触发 pf 防火墙的 nat 规则,自动把该数据包的源地址修改为无线网卡的地址,然后转发给目标服务器。

创建虚拟交换机

以下命令创建了一台名为 public 的虚拟交换机,它的 IP 地址是 192.168.8.1/24。

# vm switch create public
# vm switch address public 192.168.8.1/24
# ifconfig # 可以看到多出一个名为 vm-public 的接口

配置网关和防火墙功能

启动网关服务与 PF

# sysrc gateway_enable="YES"
# sysrc pf_enable="YES"
# reboot

配置 PF

编辑 /etc/pf.conf 文件:

# ee /etc/pf.conf
ext_if="wlan0"      #外部接口 wlan0 是宿主机无线网卡的名字
int_if="vm-public"  #内部接口是 vm-public
nat_net="192.168.8.0/24"  #指定虚拟机使用的内网网段
 
nat on $ext_if from $nat_net to any -> ($ext_if) #启用nat功能
pass in quick on $int_if from any to any 
pass out on $ext_if from any to any

# pfctl -f /etc/pf.conf

虚拟机连接网络

启动虚拟机,重新按下列要求配置网络。

  • 指定 IP 地址为 192.168.8.2~192.168.8.254 中的任意一个

  • 指定子网掩码为 255.255.255.0

  • 指定网关为 192.168.8.1

  • 指定 DNS 服务器为 223.5.5.5

即可接入网络。

最后更新于