合宿の準備として,会場の予約,スケジュール案の決定,プロジェクタ・OAタップの確保,酒や菓子などの買い出し依頼もさることながら,時間をとって行ったのは,サーバの用意です.
こういう集まりで大事なのは,インターネットアクセスです.ペンションを下見する時間はとれませんでしたが,こちらは,docomoのスマートフォン(テザリング機能つき)と,別にモバイルルータを持って行きます.それらに,各参加者のノートPCからアクセスしてもらうという運用も考えましたが,初日夜の「みんなでプログラミング」では,それぞれが作ったファイルを1台のサーバで管理したいこと,そして,インターネットアクセスができないときにも,会場内で閉じた運用をしたかったことから,1台,Linuxが動くノートPCを介することにしました.
ノートPCは,ASUS X200CAです.4GB RAMと500GB HDDを有し,その上タッチパネル対応です.パーティションを一つ取り崩して,Ubuntu 14.04をインストールし,大学・自宅・スマートフォン・モバイルルータと,それぞれの無線LANで,インターネットアクセスができるのを確認しました*1.
合宿での,各機器からこのサーバへの接続ですが,直結ではなく,このノートPCのLANポートと,無線LANルータ(WMR-300)をつなぎまして,これと通信するようにしました.
[asin:B00CDJNMTM:detail]
機器がそろったところで,サーバ設定です.LANポートに固定のIPアドレスを割り当てておく*2とともに,無線LANルータからこのサーバを介して,インターネットアクセスできるよう,ポートフォワーディング(IPマスカレード)の設定を試みます.端末を起動し,sudo -iでrootになってから,まず
# LANG=C ifconfig
を実行して,無線LANに対応するwlan0にはIPアドレス(inet addr)などが割り当てられ,有線のeth0には割り当てがないことを確認しておきます.
サーバの有線側のIPアドレスを192.168.77.1と決めた上で,あとはガッとコマンド実行です.
# cat >> /etc/network/interfaces
iface eth0 inet static
address 192.168.77.1
netmask 255.255.255.0
auto eth0# ifup eth0
# apt-get install isc-dhcp-server
option domain-name "campinwakayama20140916.org"; option domain-name-servers 8.8.8.8, 8.8.4.4; authoritative; subnet 192.168.77.0 netmask 255.255.255.0 { option routers 192.168.77.1; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.77.128 192.168.77.135; }
# service isc-dhcp-server start
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# /etc/init.d/networking restart
# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# iptables-save -c > /etc/iptables.ipmasq_wlan0
# cat > /etc/network/if-pre-up.d/iptables.ipmasq_wlan0
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.ipmasq_wlan0
exit 0# chmod 755 /etc/network/if-pre-up.d/iptables.ipmasq_wlan0
ここまで実行したところで,再起動しました.cat /proc/sys/net/ipv4/ip_forwardを実行すると「1」と出て,ポートフォワーディングが使用可能となりましたが,iptables -Lやiptables-saveの結果を見ると,設定されているように見えません.手動で
を実行しました.Android端末のSSIDを,自宅の無線LANから,無線LANルータ(WMR-300)の提供するものに置き換えて,長いパスワードも入力し,無事に,http://192.168.77.1や,それより外*3へのアクセスができることを確認しました.
ゼミ合宿では夕食の前後に有線・無線の手配をしました.モバイルルータよりもスマートフォンのほうが感度が良く,それらを窓際に置くのが最適と分かりました.サーバ接続と,情報検索などのための外部アクセスは,良好でした.
ネットワーク設定にあたり,以下のページによく目を通しました.感謝申し上げます.