into the void

ソフトウェアに関する雑多な調査日記

Androidを載せたbeagleboard-xmをWiFi APにするまで(其の弐)

前回まででGW-US54GSXが認識されてath0という新しいインタフェースが生成されるところまで確認できたので、アクセスポイント用の設定を行うところからはじめる。
ここもほとんどが参照先のやり方にそっています。
参照先:http://nitrogen14.blog51.fc2.com/blog-entry-118.html

PC Linux(Ubuntu)上でWiFi APの設定

まずはWiFi AP化に必要なパッケージを追加インストールする。

wireless-tools
iwconfigなどWiFiインタフェース設定用のコマンド類。私の環境ではすでにインストールされていた。
dhcp3-server
DHCPサーバ。WiFi APにつなぎにきたクライアントにDHCPでIPを払い出すために使う。
dnsmasq
DNSキャッシュサーバ。設定が簡単(というか不要)なのでおすすめ。
dhcp3-serverの設定

下記ように設定ファイルを編集、追記する。
ath0インタフェースで接続しにきたDHCPクライアントに対して192.168.11.2-10のアドレスを割り当てるような設定。

/etc/default/dhcp3-server
INTERFACES="ath0"
/etc/dhcp3/dhcpd.conf
subnet 192.168.11.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.11.2 192.168.11.10;
  option domain-name-servers 192.168.11.1;
  option routers 192.168.11.1;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.11.255;
  default-lease-time 6000;
  max-lease-time 72000;
}
iptablesの設定

ath0→eth0でフォワーディングされるパケットついてIPマスカレードがかかるように設定。

iptables -t nat -I POSTROUTING -s '192.168.11.0/24' -o eth0 -j MASQUERADE
iwconfigを使ったath0の設定

ath0をAPモードで動くようにiwconfigで設定する。セキュリティはWEPを使うのでhostpad等の外部プログラムの設定は不要。
とりあえずコマンドラインで直接設定する。

iwconfig ath0 mode Master
iwconfig ath0 essid fragile
iwconfig ath0 channel 6
iwconfig ath0 rate 11M
iwconfig ath0 key 1111111111
カーネルのフォワーディング設定

Linuxカーネルのデフォルト設定ではインタフェース間のフォワーディング動作が禁止されているため、有効化する設定をする。次回の起動から常に有効になるようにファイルを編集する。

/etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

ここまでの設定でiPhoneからの接続してインターネットにも抜けられることを確認できた。
PC上での検証はここまでにしてbeagleboard-xm上での構築にうつってみる。