如何在 2 个独立的 qemu 实例中使用 mac80211_hwsim 连接接入点和站?

如何在 2 个独立的 qemu 实例中使用 mac80211_hwsim 连接接入点和站?

我正在探索使用运行 Linux 的 qemu 进行 wifi 虚拟化。我正在尝试完成以下设置

  • 接入点在第一个 qemu 实例内运行,并带有 mac80211_hwsim 模拟无线电和 hostapd 堆栈
  • 该站在带有 mac80211_hwsim 模拟无线电和 wpa_supplicant 堆栈的第二个 qemu 实例中运行
  • 第二个虚拟机中的站必须能够与第一个虚拟机中的接入点关联

我已经设置的内容:

  • 第一个 qemu VM 生成模拟无线电并使用 hostapd 启动接入点。它定期发送信标帧,并通过tcpdump实用程序在 hwsim0 接口上进行监控
  • 第二个 qemu VM 还将 wlan0 接口设置为具有 wpa_supplicant 配置的站,并发送在 hwsim0 接口上监控的探测请求
  • 两个虚拟机都通过主机上的 Tap 接口(tap0 和 tap1)连接在网桥上,并且可以从以太网接口互相 ping 通对方和主机

到目前为止我尝试过的:

  • 将流量从 hwsim 和 wlan 接口转发到以太网接口,以便它可以使用 iptables 规则到达其他虚拟机。无法使用各种组合
  • 在接入点虚拟机上桥接 eth0 和 wlan 接口(br0 桥接上的 eth0 被从属,wlan0 由 hostapd 自己完成)。也没用

请记住,我们在这里谈论的不仅仅是不同的命名空间,而是两个完全不同的虚拟机,它们试图作为 AP 和工作站相互关联。我知道使用命名空间我们可以轻松实现这一点,我也尝试过。如果这不是我试图解决的问题的正确方法,您也可以建议一些其他解决方案。

答案1

你试过了吗无线网络项目?

vwifi:在 Qemu/VirtualBox/... 上的 Linux 虚拟机之间模拟 Wi-Fi (802.11)

相关内容