mac80211_hwsimとは?
- カーネルモジュールの一つで、仮想の無線インターフェイスを作ることができる
- 2つの仮想インターフェイスを作り、一方をアクセスポイント、もう一方をクライアントにして通信のテストを行うことができる
使い方
# Load the module
$ sudo modprobe mac80211_hwsim
モジュールを読み込むと、仮想インターフェイスが生成される
$ ip a
45: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
46: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
47: hwsim0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ieee802.11/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
wlan0とwlan1が生成された。数を指定しなければ、2つのNICが生成される。hwsim0は全てのチャンネルのフレームを観測できるインターフェイスらしい。
モジュールを解除すると、仮想インターフェイスは消える
# Load the module
sudo modprobe -r mac80211_hwsim
radiosというパラメータが存在し、生成する仮想NICの数をしていすることができる
$ sudo modprobe mac80211_hwsim radios=5
$ ip a
~~略~~
48: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
49: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
50: wlan2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:02:00 brd ff:ff:ff:ff:ff:ff
51: wlan3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:03:00 brd ff:ff:ff:ff:ff:ff
52: wlan4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:00:00:00:04:00 brd ff:ff:ff:ff:ff:ff
53: hwsim0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ieee802.11/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff