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
即可接入网络。
最后更新于