わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

ゼミ合宿〜3. サーバ準備

合宿の準備として,会場の予約,スケジュール案の決定,プロジェクタ・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

# vim /etc/dhcp/dhcpd.conf

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の結果を見ると,設定されているように見えません.手動で

# /sbin/iptables-restore < /etc/iptables.ipmasq_wlan0

を実行しました.Android端末のSSIDを,自宅の無線LANから,無線LANルータ(WMR-300)の提供するものに置き換えて,長いパスワードも入力し,無事に,http://192.168.77.1や,それより外*3へのアクセスができることを確認しました.
ゼミ合宿では夕食の前後に有線・無線の手配をしました.モバイルルータよりもスマートフォンのほうが感度が良く,それらを窓際に置くのが最適と分かりました.サーバ接続と,情報検索などのための外部アクセスは,良好でした.


ネットワーク設定にあたり,以下のページによく目を通しました.感謝申し上げます.

*1:タッチパネルもUbuntuで問題なく使えました.技術の進歩は素晴らしいですねえ.

*2:その一方で,無線のほうは接続時の設定にお任せとなります.

*3:このAndroid端末からすると,WMR-300,ノートPC(X200CA),自宅の無線LANルータを経由して,外へ出ることになります.