無線LANアクセスポイント化【8】
Category : サーバ管理日記
Published by M-naka on 2005/11/27
高速化、完了。
4.コンフィグファイル作成・編集
 無線LANカードはpcmciaサービス下で動作する。そのためのバインド設定を明記しておく。/etc/pcmcia/以下に*.confの名称でコンフィグファイルを作成する。カードのハード情報はcardctl identで得た値を使用する。

#madwifi.conf#
device "ath_pci"
class "network" module "ath_pci"

card "I-O Data WN-G54/CB3"
manfid 0x0271, 0x0120
bind "ath_pci"


 ちなみにWN-G54/CB3もCG-WLCB54GSも中身はAtherosのリファレンスモデルらしく、cardctl identで得られる情報が全く同じだった。

 それから、/etc/modules.confに以下を追記。

alias ath0 ath_pci

5.デバイス起動
 コンフィグファイルを作成・編集してpcmciaサービスを再起動させるとネットワークデバイスath0が起動する……ハズなのだが、ifconfigコマンドでもiwconfigコマンドでもath0が出てこない。代わりにwifi0が存在する。ネットワークインターフェースの設定は/etc/sysconfig/network-script/以下に置くのがセオリーなので、ifcfg-ath0を作成し、IPアドレス他ネットワークの設定を書いておき、ifup ath0を試すが……動かない。また変だ。
 困ったときはドキュメント。ドライバソース付属のREADMEファイルによると、

・Madwifi-ngではデバイスwifi0が作成される
・wifi0は作成されただけだとifconfigもiwconfigも受け付けない
・ドライバ付属のwlanconfigで動作モードやインターフェースath0の作成を行う


らしい。これはMadwifi-ngの独自仕様らしく、Madwifiではデフォルトはath0。加えて言うと、/etc/sysconfig/network-script/に置く設定ファイルとはあまり相性が良くないようだ。ここに設定ファイルを置かず、事後的にIPアドレスを割り付ける等は可能なので、設定ファイルは置かないことにした。代わりに以下の内容のシェルスクリプトを起動時に実行させるようにした。

#madwifi.sh#
#!/bin/bash
/usr/local/bin/wlanconfig ath0 create wlandev wifi0 wlanmode ap
/sbin/iwconfig ath0 essid madwifi.mythril.ne.jp
/sbin/iwconfig ath0 key (WEPキー128bit)
/sbin/ifconfig ath0 up
/sbin/ifconfig ath0 192.168.10.30 netmask 255.255.255.0


 これで無線LANインターフェースath0192.168.10.30で起動する。

【20060703追記】
 最新のmadwifi-0.9.1では、デフォルトでath0がManagedモード(通常の無線LANクライアントモード)で起動するので、起動スクリプトの最初でデフォルト起動したインターフェースath0を一度止める必要がある。

#madwifi.sh#
#!/bin/bash
/usr/local/bin/wlanconfig ath0 destroy
/usr/local/bin/wlanconfig ath0 create wlandev wifi0 wlanmode ap
/sbin/iwconfig ath0 essid madwifi.mythril.ne.jp
/sbin/iwconfig ath0 key (WEPキー128bit)
/sbin/ifconfig ath0 up
/sbin/ifconfig ath0 192.168.10.30 netmask 255.255.255.0



6.iptables周り
 今回もブリッジモードではなくルータモードなので、最後はiptable。IPマスカレードとIPフォワードの設定をして初めてpingが通る(気づかないとハマる)。

-A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE
-A POSTROUTING -o ath0 -s 192.168.1.0/24 -j MASQUERADE
-A FORWARD -i ath0 -j ACCEPT
-A RH-Firewall-1-INPUT -i ath0 -j ACCEPT


 これでiptablesを再起動して完了。


 ここまでするとIEEE802.11g/bのアクセスポイントとして見えるようになる。あとはクライアント側にWEPキーを設定すれば繋がる。現状IEEE802.11aは使用不可だが、元々対応カードを所有していないので問題にはならない。

 試した範囲では十分実用に足る。前回Madwifiを試したときはブチブチ切れて話にならなかったが、今回はhostap並に非常に安定している。距離がごく近いこともあり、リンク速度はほぼ54Mbpsフルリンク。AmatsuのMPEG2ファイルも問題なく見れる。

 なお、今のところはWEPキーで暗号化しているだけだが、MadwifiはWPA-PSK(TKIP)やIEEE802.11X+RADIUS認証(要hostapd)に対応している。個人向け用途であればWPA程度で十分だとは思うが、FreeRADIUSを利用すればIEEE802.1Xという、エンタープライズレベルの認証無線LANシステムを構築可能である。これは追々試してみることにする。

 WN-G54/CB3なら3,000円程度で購入可能なので、手間さえ惜しまなければ安価にセキュリティレベルの高い高速無線LANアクセスポイントを構築可能である。Atherosカード、計2枚あるし稼動実績も得られたので、年末年始の帰省時に実家の無線LANもIEEE802.11g化する予定。