2005年12月25日

WWWの障害?

[ Search]

このBlogは私の研究室内に置いてある個人用サーバに設置されているのだが,大阪に出張に行ったあたりからアクセスができなくなることがあった.
他のウェブサイトは問題なく見れていたので,大阪側のネットワークの問題かと思っていたのだが,松山に戻ってきて自宅からアクセスしても同様の症状になっていた.
どうやら大阪側の問題ではなかったらしい.

色々と試してみたところ,研究室のサーバが提供している他の機能は特に問題なく稼動しており,アクセス障害が発生するのはWWWのみ.
となると,WWWを提供しているapacheというサーバソフトに問題が発生したと考えるべきなのだろうが,これが学内からだと問題なくアクセスできるし,ログをチェックしてもエラーの痕跡はない.
ということで,まずは研究室のサーバの不具合が原因という線は消してもよさそうだ.

次に考えるべきはネットワークのトラブル.研究室のPCはまず研究室内のLAN,次に学部の建物のネットワークを経由して,大学全体のネットワークに接続,そこから学外のネットワークにつながっている.
24日から26日にかけてはネットワーク周りの工事のため,学部の建物のネットワークが断続的に止まるのだが,現在の症状はその前から発生しているので,今回の原因ではない.
そもそも学外からでもWWW以外は普通につながっており,学内からだとWWWも通常どおり使えているので,単にネットワークが止まっているというタイプの障害ではないと思える.

じゃあ,いったい原因はどこにあるんだ?と材料を求めて自宅から大学の総合情報メディアセンターのウェブサイトにアクセスしてみたところ,研究室のサーバにアクセスしたときと同様,うまくアクセスできない.
愛媛大学の他のウェブページも試してみたところ,どれもアクセスしにくい状況になっている.

状況を整理してみると,

A.学外から愛媛大学の学内サーバへのアクセスが困難になっている
B.学内からだと普通にアクセスできる
C.アクセスが困難になっているのはWWWのみで,他のサービスには問題なくアクセスできる

この材料から導き出されるのは,学内と学外をつなぐファイアウォールのWWW関係で障害が発生したということか.

と思って,自宅のPCにあるファイアウォールのログを何気なく見たところ,ACKパケット関係のエラーがやたらと出ていた.ACKパケットってインターネットの接続確立につかうやつだっけ?
ということで,ACKについて調べてみたところ,ACKは受信側が送信側(多くの場合はサーバ)に出す返事のようなもので,これがちゃんと送信側に届かないと送信側は同じデータを再送信し,そういう状態が何度も続くと送信自体をやめてしまうらしい.

試しにパケットモニターというソフトで受信したデータを解析してみた.
すると,アクセスができないページにアクセスした場合,まったくデータが流れてこないのではなく,最初のデータは流れてきている.しかし,それに続くデータが流れてこないため,結果としてページを表示できなくないようだ.
まさにACKパケットが相手に届いていない場合に起きる症状と同じに見える.

ということは,今回の障害は,大学のファイアウォールが学外から学内のWWWにアクセスした場合のACKパケットをちゃんと通していないのが原因なのだろう.
SYNフラッドアタックという攻撃を防止するための方法として接続側からのACKパケットの待ち時間を短くするというものがあるらしいので,もしかするとその待ち時間を短く設定しすぎたのかもしれない.

どちらにせよ,月曜日になるまで復旧はしないんだろうなあ.
おそらくファイアウォールの設定の問題だろうからすぐに直るとは思うけど,ハード的な問題だと下手すると年末年始は今のままとかになるんだろうか...