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

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を閉じざるを得なくなりました。

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

こういうのはRadiusを使って実装されてると思うのですが、そこらへんで設定が狂ってるのかな?などと推測しましたが、本当かどうかはわかりません。

帰りの飛行機では遭遇しないよう祈ります。

追記

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

終わり