読者です 読者をやめる 読者になる 読者になる

ANAの機内WiFiと格闘した話

経緯

いま社員旅行で沖縄に来ています。

移動はANAの飛行機だったのですが、機内WiFiが整備されているということなのでウキウキでスマートフォンを接続しようとしたところ、認証ページから先に進めない症状が発生しました。

仕方ないのでPCを取り出して検証しようとしたところ、キャビンアテンダントの方がPCとにらめっこしている私を見て

WiFi繋がりますか?他のお客様が繋がらないそうでして… 機長に確認したところこのルート(羽田-那覇)では以前にも同様の症状が発生したことがあるようなのですが…

と伝えてきました。私だけの問題でないことがわかったのと、私も同様に繋がらない旨を伝えました。

更に検証を進めると以下のことがわかりました。

まず wgetJavaScriptをダウンロードできないか試してみましたが、かなりの低速でダウンロードを行うが進捗が数%より先に進まない現象に遭遇しました。

以上のことから、以下のように推測を立てました

  • JavaScriptが通信速度に対して巨大なためにサーバサイド側でタイムアウトの処理になっている
  • にも関わらずサーバサイドはレスポンスを返さずに放置を続ける

ということで、 wget -c を繰り返すことで100%のダウンロードが実行できるのではないかと考えました。

実行してみると、確かに全てのファイルをダウンロードすることができました。

しかし、これをブラウザに読んでもらわなければ話になりません。ですので、 localhost にサーバを立ててそこにアクセスすることで認証を突破できるのではないかと考えました。

.js なファイルだけでなく htmlcss もダウンロードし、ディレクトリ構造を再現し、Pythonでサーバを立てました。

python -m http.server

しかし実際に localhost:8000 へアクセスしてみると、JavaScriptによって本物のURLへリダイレクトされてしまいました。

次に、ブラウザのキャッシュとしてダウンロード済のファイルを潜り込ますことができないか検証をしようと思いキャッシュがどこに保存されているのかを確認しようとしました。

grep などを使って探そうとしたのですが、なかなか見つからないうえに圧縮されたバイナリになっていて引っかからないのではないかという懸念もありました。

あれこれと考えていると隣に座っていた同僚が通常のフローでタブレットの接続を行うことに成功しました。

私も試しに認証ページを開くと、なるほど成功しました。

500円ほどを払い接続を開始したのですが、速度がどうにも低速です…。やはりまだ調子が悪いのでしょうか。

と思っていたら、着陸を行う旨アナウンスがあり、PCを閉じざるを得なくなりました。

数分間のみインターネットに繋いだ代償でお金を払ったので少し損をした気分に…。

推測

さて、今回の件について私の推測を以下に記そうと思います。

まず、認証用のサーバはプロキシとして動作していることが推測できます。

認証していないユーザからのリクエストは認証ページにリダイレクトするように動作するものです。

また、このサーバは機内に存在すると推測できます。このルート(羽田-那覇)での同様の症状が報告されている以上、同一機に積まれているサーバの設定かなにかが狂っていると想像するのが自然だからです。

そして、設定が狂っているためにプロキシの動作が異常に重くなるパターンが存在すると思われます。

今回はたまたまそのパターンに入っていたためにレスポンスが遅くなり、タイムアウトになるが、そこで終了。はいさよなら!となるからある程度のレスポンスは返すけど放置、となるのだと思われます。

なので機内の機材を再起動すれば一時的には解決するのではないかな、と思いましたが本当かどうかはわかりません…。

だからなんだという話ではありますが、帰りの飛行機では遭遇しないよう祈ります。

追記

帰りの飛行機でもChromeでは認証ページが開けず、FireFoxに変えてみるとすぐに出来たのですが、以降は通信が全く安定せずまともな環境とはとても言えないものでした。これで1000円は正直高いと思います…。参考までに。

終わり