綾小路龍之介の素人思考

[linux] 無線 LAN アクセスポイントになる

チップは Atheros でドライバは ath9k が使えると debian の hostapd で素直にセットアップできるみたいだ。適当なアダプタはamazon.comかebay.comで探せ。

# apt-get install iw
# apt-get install wavemon

lspciを使ってデバイスの詳細を確認し、iw listでネットワークアダプタの機能詳細を確認。

# lspci | grep Atheros
00:0b.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)
# lspci -s 00:0b.0 -vv
00:0b.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)
        Subsystem: Atheros Communications Inc. Device 2093
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 168, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 17
        Region 0: Memory at fd100000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=100mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Kernel driver in use: ath9k

# iw list
Wiphy phy0
        Band 1:
                Capabilities: 0x11ce
                        HT20/HT40
                        SM Power Save disabled
                        RX HT40 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 8 usec (0x06)
                HT TX/RX MCS rate indexes supported: 0-15
                Frequencies:
                        * 2412 MHz [1] (17.0 dBm)
                        * 2417 MHz [2] (17.0 dBm)
                        * 2422 MHz [3] (17.0 dBm)
                        * 2427 MHz [4] (17.0 dBm)
                        * 2432 MHz [5] (17.0 dBm)
                        * 2437 MHz [6] (17.0 dBm)
                        * 2442 MHz [7] (17.0 dBm)
                        * 2447 MHz [8] (17.0 dBm)
                        * 2452 MHz [9] (17.0 dBm)
                        * 2457 MHz [10] (17.0 dBm)
                        * 2462 MHz [11] (17.0 dBm)
                        * 2467 MHz [12] (disabled)
                        * 2472 MHz [13] (disabled)
                        * 2484 MHz [14] (disabled)
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps (short preamble supported)
                        * 5.5 Mbps (short preamble supported)
                        * 11.0 Mbps (short preamble supported)
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
...
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
...

ネットワークインターフェイスにIPアドレスを割り当てる。

# cat << EOF >> /etc/network/interfaces
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
        address 192.168.100.1
        netmask 255.255.255.248
        network 192.168.100.0
        up route add -net 192.168.100.0 netmask 255.255.255.248 gw 192.168.100.1
        pre-down route del -net 192.168.100.0 netmask 255.255.255.248 gw 192.168.100.1
EOF

hostapdのインストールと、起動時に自動実行する設定の書き込み。設定ファイルの作成。

# apt-get install hostapd
# cat << EOF >> /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
EOF
# cat << EOF > /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=SSID
hw_mode=g
channel=11
wpa=2
wpa_passphrase=PASSPHRASE
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wmm_enabled=1
ieee80211n=1
EOF

クライアントのMACアドレスと鍵の対応表 /etc/hostapd-psk を作る。クライアントに入力してもらうパスフレーズがPASSPHRASEの場合の例

# apt-get install wpasupplicant
# wpa_passphrase SSID PASSPHRASE
network={
        ssid="SSID"
        #psk="PASSPHRASE"
        psk=38497220976092fc2707a838e4d4385019256149f99f935be22c90159d3b8373
}
# cat << EOF >> /etc/hostapd-psk
**:**:**:**:**:** 38497220976092fc2707a838e4d4385019256149f99f935be22c90159d3b8373
EOF

/etc/hostapd-psk を更新したら、デーモンを再起動させる。

# systemctl stop hostapd
# systemctl start hostapd
# systemctl --lines 100 --full status hostapd
● hostapd.service - LSB: Advanced IEEE 802.11 management daemon
   Loaded: loaded (/etc/init.d/hostapd)
   Active: active (running) since *** ****-**-** 11:33:38 ***; 13s ago
  Process: 10065 ExecStop=/etc/init.d/hostapd stop (code=exited, status=0/SUCCESS)
  Process: 10091 ExecStart=/etc/init.d/hostapd start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/hostapd.service
           └─10094 /usr/sbin/hostapd -B -P /run/hostapd.pid /etc/hostapd/hostapd.conf

*** ** 11:33:38 ************** hostapd[10091]: Starting advanced IEEE 802.11 management: hostapd.
*** ** 11:33:38 ************** systemd[1]: Started LSB: Advanced IEEE 802.11 management daemon.

dhcpdでipアドレスを割り当て、さらにMACアドレスで割り当てるIPアドレスを指定する例

# cat << EOF >> /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.248 {
        option routers 192.168.100.1;
        range 192.168.100.2 192.168.100.5;
}
host foobar {
        hardware ethernet **:**:**:**:**:**
        fixed-address 192.168.100.2;
        option host-name "foobar";
}
EOF
# hostapd /etc/hostapd/hostapd.conf

最後にホストで動いているサービスにwlan0からつながるための設定

# /sbin/iptables -A INPUT -j ACCEPT -i wlan0

ブチブチ接続が切れるわけじゃないけど、RSSI値が大体-47から-45程度。リンクスピードが130Mbps。アンテナ同士が近づけばかなり改善するので、アンテナに延長ケーブルを付けたい。

実効的な速度は優先の10分の1程度になってしまった。有線(100Mbpsリンク)と無線(130Mbpsリンク)とでそれぞれsambaマウントしたディレクトリにddでファイル書き込みした場合の速度。有線はリンクスピードの8-9割出ているが、無線はリンクスピードの1割程度。結局有線のほうが早い結果になってる。

$ cd /mnt/wire
$ dd if=/dev/zero of=./test count=10 bs=10M && rm ./test
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 9.18348 s, 11.4 MB/s
$ dd if=/dev/zero of=./test count=10 bs=100M && rm ./test
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 106.746 s, 9.8 MB/s
$ cd /mnt/wireless
$ dd if=/dev/zero of=./test count=10 bs=10M && rm ./test
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 63.8521 s, 1.6 MB/s
$ dd if=/dev/zero of=./test count=10 bs=100M && rm ./test
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 649.335 s, 1.6 MB/s

10 分間隔で "group key handshake completed" というメッセージが出る

ログを眺めていたら、以下のようなメッセージが10分間隔で出ている。これは正常。

# tail -f /var/log/daemon.log
Jul  6 13:59:31 ****** hostapd: wlan0: STA **:**:**:**:**:** WPA: group key handshake completed (RSN)
Jul  6 14:09:31 ****** hostapd: wlan0: STA **:**:**:**:**:** WPA: group key handshake completed (RSN)
Jul  6 14:19:31 ****** hostapd: wlan0: STA **:**:**:**:**:** WPA: group key handshake completed (RSN)
Jul  6 14:29:31 ****** hostapd: wlan0: STA **:**:**:**:**:** WPA: group key handshake completed (RSN)

以下を設定ファイルに追記すれば、間隔を5分にすることも可能。hostapdを再起動。

# echo "wpa_group_rekey=300" >> /etc/hostapd/hostapd.conf
# /etc/init.d/hostapd restart
Stopping advanced IEEE 802.11 management: hostapd.
Starting advanced IEEE 802.11 management: hostapd.
# tail -f /var/log/daemon.log
Jul  6 14:59:34 ****** hostapd: wlan0: STA 00:1d:e0:31:7f:7f WPA: group key handshake completed (RSN)
Jul  6 15:04:34 ****** hostapd: wlan0: STA 00:1d:e0:31:7f:7f WPA: group key handshake completed (RSN)

さらに、時々接続が切断される様子。接続状態をキープしたい。

# echo "wmm_enabled=0" >> /etc/hostapd/hostapd.conf
# /etc/init.d/hostapd restart
Stopping advanced IEEE 802.11 management: hostapd.
Starting advanced IEEE 802.11 management: hostapd.

リファレンス

  1. hostapd Atheros - Google 検索
  2. Drivers - Linux Wireless
  3. ath9k - Linux Wireless
  4. external - Linux Wireless
  5. Atheros AR9160 802.11a/b/g/n 300Mbps PCIバス用無線LANアダプター - 再生屋
  6. Amazon.co.jp: Atheros PCI 無線lanアダプタ アンテナ込 2.4GHz/5GHz 802.11a/b/g/n 300Mbps DNMA-83/AR9160+AR9106: パソコン・周辺機器
  7. DNMA-83 - 802.11n a/b/g wifi 3x3 mini-PCI module, MB82/AR9160+AR9106 | Unex Technology
  8. Unex DNMA-83 - WikiDevi
  9. TL-WN951N - Welcome to TP-LINK
  10. TL-WN851ND - Welcome to TP-LINK
  11. How to find the hardware version on a TP-Link device? - Welcome to TP-LINK
  12. TP-LINK TL-WN951N v3 - WikiDevi
  13. hostapd 10 min - Google 検索
  14. wpa_supplicant / hostapd: Developers' documentation for wpa_supplicant and hostapd

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-08-10T06:40:56+09:00
  2. Modified: 2010-08-10T06:40:56+09:00
  3. Generated: 2017-04-09T23:09:29+09:00