アクセスポイント設定のメモ
Linux で無線アクセスポイント環境を作るには、master mode に対応した無線 chip が必要。 USB 接続の Planex GW-USNano2 で無線 LAN アクセスポイントにすることができたので、その際の設定の流れと気付いた点をメモしておく。
ThinkPad X60s( shuttle XS35-V2 でも確認)に SSD を載せたものへ Ubuntu server 10.04 LTS (lucid 32bit) を入れた環境で試した結果だが、ubuntu に特化したことはないので他の distribution でも大丈夫だと思う。
追記1:64bit の Ubuntu server 10.04 LTS 環境で以下と同等の設定作業を行ったが、kernel panic を起こしてしまった。64bit に固有の問題なのかは不明。今後時間があれば原因究明と修正作業を行いたいが、とりあえず 32bit 環境であれば大丈夫ではないかと思う。
driver module
ちょろっと調べてみると GW-USNano2 で使われている chip は、Realtek の RTL8192CU のようだ。
lucid の kernel は現時点で 2.6.32 base で、RTL8192CU の driver modules (rtl8192cu) は入っていない。(ちなみに kernel 3.1.6 には入っている。module が最新かどうかは分からないけど...)
Realtek のサイトに行くと、driver & utilities 一式 が置いてある。これを用いれば ok 。
ダウンロードした zip file (RTL819xCU_USB_linux_v3.3.1_3083.zip) を展開すると、中には install.sh の他、document, driver, wireless_tools, wpa_supplicant_hostapd といったディレクトリがある。(document 内には、いろいろ設定に役立つ有用な情報の記述された pdf が入っている。)
unzip RTL819xCU_USB_linux_v3.3.1_3083.zip cd RTL8188C_8192C_8192D_USB_linux_v3.3.1_3083.20111213/ ls
driver module をインストールするには、管理者権限で install.sh を実行するだけで良いはず。(実行すると tarball を伸長して、driver のコンパイルならびにインストールを行う。) ここまでで、GW-USNano2 を認識するようになるはず。
sh install.sh
なお driver module は、時々更新されているようなので、新しいものを取ってきて入れた方がいいかも。
wireless_tools, wpa_supplicant, hostapd
lucid に入っている wireless-tools (30~pre9), wpa_supplicant (wpasupplicant-0.6.9), hostapd (0.6.9) はいずれも少々 version が古い。また、上でダウンロードした zip ファイルには(おそらく)realtek の手が入ったものが内包されているので、それらに差し替えることにする。
まずは、lucid のそれらを uninstall (hostapd は default では入ってない)
dpkg -r wireless-tools dpkg -r wpasupplicant dpkg -r hostapd
wireless_tools
次に上で zip を展開した中の wireless_tools ディレクトリに入り、tarball を展開、make install する
cd wireless_tools tar zxf wireless_tools.30.rtl.tar.gz cd wireless_tools.30 make && make install
/usr/local/sbin/ に wireless tool 群(iwconfig 等)がインストールされる。
wpa_supplicant & hostapd
zip を展開したディレクトリ内の wpa_supplicant_hostapd ディレクトリに入る
cd ../../wpa_supplicant_hostapd
この中には、hostapd の設定ファイルのひな形や(多分 realtek の手が入っている)wpa_supplicant や hostapd の zip 圧縮ファイルが入っているので、この zip を伸長し、展開されたディレクトリに入る
unzip wpa_supplicant_hostapd-0.8_rtw_20111118.zip cd wpa_supplicant_hostapd-0.8
この中の wpa_supplicant と hostapd ディレクトリに入り、それぞれ make && make install する
cd wpa_supplicant make && make install cd ../hostapd make && make install
それぞれ /usr/local/sbin, /usr/local/bin にインストールされる。
設定ファイル hostapd.conf
予め package 内に用意されている rtl_hostapd_2G.conf や rtl_hostapd_5G.conf を適当に修正して利用すれば良い。
最初試した X60s には intel の無線 chip が載っているので、GW-USNano2 の interface は wlan1 になっていることに注意し、 とりあえず interface, essid, wpa_passphrase 辺りを修正して hostapd.conf という名前で保存。試しに
hostapd ./hostapd.conf -B
とすると、無線の基地局として外部から見えるようになるはず。 (shuttle XS35-V2 にも無線 chip Realtek 8188CE が内蔵されているが、素の lucid ではこの chip を認識しないので GW-USNano2 の interface は wlan0 になっている。ちなみに、この Realtek 8188CE を認識させるには、Realtek のサイトから driver 一式をダウンロードして make すればよい。)
dhcp server と routing
以降の設定は、もしかしたら便利なツールがあるのかもしれないけど知らないので、既知の技を使って設定する。
あとすべきことは、
- wlan1 へのローカル IP 割り当て
- ローカルネットワーク側の端末に割り振る dhcp server 設定
- iptables で NAT 設定(IP masquerade)
そこでまず、dpkg で dhcp3-server を入れ /etc/dhcp3/dhcpd.conf を適当に記述しておいてから、
iwconfig wlan1 192.168.0.1 /etc/init.d/dhcp3-server start
これで無線側に繋がった機器に IP address が割り振られるはず。
あとは無線側(wlan1)から外部(例えば ppp0)への IP masquerade 設定等をすればよい。(iptablesによるNATやLinuxでのアクセス制御辺りを参照)
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o ppp+ -s 192.168.0.0/24 -j MASQUERADE
Keyword(s):[Linux] [Ubuntu]
References:[アパートの server] [Linux関連その他] [Shuttle XS35-V2] [Ubuntu]