雑記 - アクセスポイント設定のメモ Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
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 一式|http://www.realtek.com/downloads/downloadsView.aspx?Langid=4&PFid=48&Level=5&Conn=4&ProdID=277&DownTypeID=3&GetDown=false&Downloads=true#2282]]
が置いてある。これを用いれば 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
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 一式|http://www.realtek.com/downloads/downloadsView.aspx?Langid=4&PFid=48&Level=5&Conn=4&ProdID=277&DownTypeID=3&GetDown=false&Downloads=true#2282]]
が置いてある。これを用いれば 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