第41回学友会総会にて使われた講堂システムの概要
ネットワーク構築について
ここまででシステムの全体ができたので、ネットワークの構築の詳しい話となる。
今回の要であるLANだが、基本的にハブを用いて物理的にパソコンをつなげただけでは作ることができない。まずIPアドレスを変更し、同じネットワーク内にいることが不可欠である。
ネットワークに関して、同じネットワークとは、ルーターのようなものを通さずに構築できる最小のネットワークのことで、具体的にIPアドレスを書けば 192.168.1.* のようになる。
*以外の3つの数字が同じであれば、ルーターを通すことなくお互いに接続できるが、そうでない場合にはネットワークが異なるので、ルーターのようなもので異なるネットワーク同士をつなぐ必要がある。
さらに、IPアドレスをただ設定するだけでなく、通信相手のMACアドレスも取得できなければ通信はできない。
そこら辺の設定をこちらで全て設定するのは大変なので、サーバー機に自動的にネットワークを設定させることにした。
普段家庭でネットワークを利用する際、LANケーブルをただ挿せば接続できるが、あれはDHCPというサーバーがルーターに用意され、そのサーバーがIPアドレスを与えたり、その他接続に必要な設定を行ってくれるからである。その際に、IPアドレスを受け取るクライアント側の設定は、ネットワークに接続したときにDHCPを使うようにするだけである。この設定になっていれば、ネットワークに接続した時点でIPアドレスを要求し、DHCPサーバーがそれを受けてIPアドレスを供給することでネットワークとしてお互いがつながることができる。
よって、同じネットワーク内に複数のDHCPサーバーがあると、IPアドレスの割り当てなどで混乱が生じ、ネットワークが正常に機能しないこともある。
しかし、実は今回のネットワークには2つのDHCPサーバーが稼働している。有線LANのDHCPサーバーはサーバー機に処理させているが、無線LANに関しては無線LANルーターに処理をさせている。
ここがポイントで、無線LANルーターはほぼ確実にDHCPサーバーのあるネットワークで利用されるため、自分自身は無線で接続してきたパソコンに対してIPアドレスを割り当てるものの、有線に関しては関与しないというモードが存在する。今回はAPモード搭載の無線LANルーターだったので、この機能を使った。注意事項は、この無線LANルーターがルーターモードで稼働するとサーバーにつながらなくなってしまうということ。さらにIPアドレスの供給範囲も有線と無線でずらす必要がある。
これにより、有線でのIPアドレスの要求にはサーバー機が、無線でのIPアドレスの要求には無線LANルーターが対処するということが可能となった。
最後にサーバー機に関してだが、CGIを実行するWEBサーバーと、IPアドレスを供給するDHCPサーバー以外に、DNSサーバーを稼働させている。このネットワークのままでは、例えば \verb|192.168.1.10| がサーバーのアドレスなら、サーバーにアクセスするために、このIPアドレスを打ちこまなければならない。これでは使いづらいので、インターネットで使われているDNSと呼ばれるサーバーを使ってIPアドレスに名前をつけることにした。
このDNSサーバーは自分の知っているIPアドレスと名前に対して1対1で設定を行う。もし要求があれば、最も上に存在するDNSサーバーに対し、例えばwww.example.co.jpというアドレスなら、まずjpのアドレスを知っているDNSサーバーに問い合わせる。その後jpを知っているDNSサーバーにcoを知っているDNSサーバーのアドレスを聞き出し、そこに対してexampleのアドレスを知っているDNSサーバーのアドレスを聞き出す。ここで恐らくexampleの管轄下にあるサーバーにたどりつくのだが、そこでwwwのアドレスを知っているDNSサーバーのアドレスを聞き出す。この場合は設定ファイルに、wwwが付いているものはexample.co.jpの名前が変わっただけです、という設定が書き込まれているので、そのサーバーの内部で解決することとなる。この最後の部分で、ようやく先ほど設定した1対1のデータが読み込まれ、IPアドレスが要求元に送られる。このように名前からIPアドレスを聞き出す「解決」という作業は、普通たらいまわしにされるのだが、今回はDNSサーバーが1台しかないので、要求があればすぐに解決して要求元にIPアドレスを返している。
ここまででようやくネットワークの基本部分を構築することができた。
外部ネットワークに関してだが、学内のネットワークは無線LAN講習会を受けた者だけが接続できるような仕組みになっている。無線LANの設定をしたのち、ブラウザから学内LANでの認証ページにアクセスし、IDとパスワードを入力して、プロキシを通すことで外部に出ることができる。
Skypeに関しては、一度ブラウザによってアクセスできる認証ページでログインしたのち、接続の設定でプロキシをブラウザのものと同じにすることにより、接続することができた。
最後に、サーバー機に用いたOSであるが、CentOSを使った。理由はサーバー用に作られ、安定しているということと、私自身初めて作ったサーバーのOSがCentOSであったからである。
サーバー機には富士通のLoox U/C30という、超小型のノートパソコンを用いた。CPUはAtomの1.33GHz程度であったが、処理負担が大きくサーバーがパンクする、ということはなかった。
CentOSでのサーバー構築についてだが、コンソールだけでは日本語の入出力ができないので、実機で管理・編集するにはGUIを入れる必要がある。今回はあまり負担をかけたくなかったので、X Windowをコンソールから起動して使った。
WEBやDNSサーバーなどはファイアウォールで初めから禁止されていることが多いので、それらを切る必要もある。特にDNSサーバーは設定項目に名前がない場合があるので、53番ポートを解放するような記述が必要となる。