ルギア君の戯言

雑多な記事。

Linux をアクセスポイントにする (続き)

調べたらいろいろ分かってきた。

iwconfig wlanN mode master

  • NDISWrapper は× (NDISWrapper の FAQ を参照)。
  • b43 も× (Invalid Argument とか言われた)。
  • rtXXXX も legacy のドライバでは無理のようだ(パッケージに STA (station)ドライバと記されている)。

で、いろいろ巡っていたら hostapd - Linux Wireless によれば

The mac80211 subsystem moves all aspects of master mode into user space. It depends on hostapd to handle authenticating clients, setting encryption keys, establishing key rotation policy, and other aspects of the wireless infrastructure. Due to this, the old method of issuing 'iwconfig mode master' no longer works. Userspace programs like hostapd now use netlink (the nl80211 driver) to create a master mode interface for your traffic and a monitor mode interface for receiving and transmitting management frames.
http://linuxwireless.org/en/users/Documentation/hostapd - hostapd - Linux Wireless

つまり、とてつもなく短く要約すると

# iwconfig wlanN mode master

は古い方法なのでもう動かないだろうと書いてある。


そこで登場するのが、上のページに書いてある

hostapd

だ。IEEE 802.11 Authenticator ということらしいが僕にはさっぱり(笑)


Momonga Linux には入っていないので(ディストリビュータから配布は UbuntuDebianBSD でしかない?)、ビルドしてみた。
さすがは Momonga Linux のことだけあって libnl が 1.1 まで上がっている。このバージョンじゃないとビルドできなかったらしいがそんなこと知らずにあっさり通った。


さて、手元の無線は HP 製の(?) Broadcom Corporation BCM4311 802.11b/g WLAN のチップだ。Hewlett-Packard のページでも

無線LAN 内蔵IEEE 802.11b/g 無線LAN (Broadcom〓、WiFi準拠、オン/オフボタン付き)
無線LANセキュリティ 64/128bit WEP, WPA, WPA2, hardware-accelerated AES,
802.1x authentication types EAP-TLS, EAP-TTLS, PEAP-GTC, PEAP-MSCHAPv2, LEAP, EAP-FAST, EAP-SIM

としか記載されていない。Master Mode が動作するかどうかは定かではない。その一方で Buffalo の PCI 接続のモノで BCM4306 が搭載されたモノは使えたという情報がある(参照: http://wireless.erley.org/ )


とりあえず、

interface=wlan1
driver=nl80211
ssid=test

# hostapd ./hostapd.conf

を起動したあと、

# iwconfig wlan1

してみたら Mode は Master になっていた。

wlan1     IEEE 802.11bg  Mode:Master  Frequency:2.412 GHz  Tx-Power=20 dBm   
          Retry min limit:7   RTS thr=2347 B   Fragment thr=2346 B   
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

これ以外にパソコンが1台しかないので PSP を使ってアクセスポイントを探してみたが見付からなかった。ifconfig で追跡してみたが、検索している間にパケット数は増えなかった。ふーむ。つかえないのかねぇ・・・。

[root@lugia-castle ipv4]# hostapd -dd -B /home/lugia/hostapd.conf
Configuration file: /home/lugia/hostapd.conf
ctrl_interface_group=0
Opening raw packet socket for ifindex 209
BSS count 1, BSSID mask ff:ff:ff:ff:ff:ff (0 bits)
SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf
nl80211: Added 802.11b mode based on 802.11g information
Allowed channel: mode=1 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=11 freq=2462 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=12 freq=2467 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=13 freq=2472 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=15 freq=2484 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=11 freq=2462 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=12 freq=2467 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=13 freq=2472 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=15 freq=2484 MHz max_tx_power=20 dBm
RATE[0] rate=10 flags=0x2
RATE[1] rate=20 flags=0x6
RATE[2] rate=55 flags=0x6
RATE[3] rate=110 flags=0x6
RATE[4] rate=60 flags=0x0
RATE[5] rate=90 flags=0x0
RATE[6] rate=120 flags=0x0
RATE[7] rate=180 flags=0x0
RATE[8] rate=240 flags=0x0
RATE[9] rate=360 flags=0x0
RATE[10] rate=480 flags=0x0
RATE[11] rate=540 flags=0x0
Passive scanning not supported
Flushing old station entries
Deauthenticate all stations
Using interface wlan1 with hwaddr 00:1a:73:49:1e:cf and ssid 'test'
wlan1: Setup of interface done.


それともつかえるのかねぇ・・・

$ iw list
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * WDS
		 * monitor
		 * mesh point

その他の情報

Ubuntu Server で Wireless Access Point を作る (英語)
ブリッジを作成する (Debian なのでそのままでは使えず。) brctl で作って試してみたが、多分、それ以前の問題かも。
対応ドライバリスト (英語) AP (Access Point Infrastructure) のところをみれば良いらしいんだが・・・。
CRDA - Linux Wireless これもいれなくちゃダメ?
RT2X00 での動作実績 不満そうだが動いているらしい。RT3070 を期待している。