mac80211_hwsim - mac80211 的 802.11 无线电软件模拟器

版权:

© 2008, Jouni Malinen <j@w1.fi>

本程序为自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证版本 2 的条款重新分发和/或修改它。

简介

mac80211_hwsim 是一个 Linux 内核模块,可用于为 mac80211 模拟任意数量的 IEEE 802.11 无线电。它可用于以非常接近使用真实 WLAN 硬件的正常情况的方式来测试 mac80211 的大多数功能和用户空间工具(例如,hostapd 和 wpa_supplicant)。 从 mac80211 的角度来看,mac80211_hwsim 只是另一个硬件驱动程序,即,无需对 mac80211 进行任何更改即可使用此测试工具。

mac80211_hwsim 的主要目标是使开发人员更容易测试他们的代码,并使用 mac80211、hostapd 和 wpa_supplicant 的新功能。 模拟的无线电没有真实硬件的限制,因此很容易生成任意测试设置,并始终为将来的测试重现相同的设置。 此外,由于所有无线电操作都是模拟的,因此可以在测试中使用任何频道,而无需考虑监管规则。

mac80211_hwsim 内核模块具有一个参数“radios”,可用于选择模拟多少个无线电(默认值为 2)。 这允许配置非常简单的设置(例如,仅一个接入点和一个站点)或大规模测试(具有数百个站点的多个接入点)。

mac80211_hwsim 的工作原理是跟踪每个虚拟无线电的当前频道,并将所有传输的帧复制到当前启用且与发送无线电位于同一频道上的所有其他无线电。 使用 mac80211 中的软件加密,以便实际在虚拟空中接口上对帧进行加密,从而允许更完整地测试加密。

将创建一个独立于 mac80211 的全局监视网络设备 hwsim#。 此接口可用于监视所有传输的帧,而与频道无关。

简单示例

此示例演示如何使用 mac80211_hwsim 模拟两个无线电:一个充当接入点,另一个充当与 AP 关联的站点。 hostapd 和 wpa_supplicant 用于处理 WPA2-PSK 身份验证。 此外,hostapd 还在处理关联的接入点侧。

# Build mac80211_hwsim as part of kernel configuration

# Load the module
modprobe mac80211_hwsim

# Run hostapd (AP) for wlan0
hostapd hostapd.conf

# Run wpa_supplicant (station) for wlan1
wpa_supplicant -Dnl80211 -iwlan1 -c wpa_supplicant.conf

更多测试用例可在 hostap.git 中找到:git://w1.fi/srv/git/hostap.git 和 mac80211_hwsim/tests 子目录 (http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=tree;f=mac80211_hwsim/tests)