見出し画像

クリスマスキャンプのWi-Fiネットワーク環境を構築した話

ライフイズテックでは学校の長期休みの期間に合わせて中高生向けのプログラミングキャンプを開催している。
春と夏は複数の会場でバラバラに開催しているんだけど、冬に開催されるクリスマスキャンプは、参加者全員がホテルに宿泊して数日間にわたって開発をする、最大規模のイベントになっている。

今回は、そのクリスマスキャンプにおいて、参加者向けにWi-Fiネットワーク環境を構築した話について書いてみます。

ちなみに今回のキャンプも参加者した子供達は目をキラキラさせながらすごく楽しそうに開発してましたよ。
春キャンプの募集も開始されているので、中学生、高校生のお子さんがいらっしゃる方は是非参加をご検討くださいませ。


クリスマスキャンプの場所と参加人数

2023年のクリスマスキャンプは長野県にある池の平ホテルで開催されました。

参加者、メンター、を合わせた参加人数は300人。
宿泊や開発のために、東館全館を貸し切りで利用しました。
開発部屋として、大きな部屋を3つ確保して、そこにWi-Fiネットワークを構築します。

会場の事前下見と事前対応

本番2ヶ月前に会場の下見に行ってきました。

  • 会場となる建物には複数のインターネット回線が引かれている

  • 有線のネットワーク品質はとても良い

  • YAMAHAのルータを使っていてアドレス空間等は適切に設定されている

  • 会場に既設のWi-Fiアクセスポイント(AP)はあるが、大人数で使うにはちょっと数が足りなさそう

  • 大人数で開発するには電源容量がちょっと足りない

  • 会場の壁にはLANが設置されていて、そこに接続すれば既設のネットワークの利用が可能

ということがわかったので、

  • ネットワークの上流部分は会場のものをそのまま使う

  • Wi-Fi APは持ちこんで設営する

  • 会場に別の電源系統を引きこみを依頼する

という方針で動くことにした。

Wi-Fi APの準備

夏のキャンプで使った Meraki Go をクリスマスキャンプでも使うことにした。

夏のキャンプでのWi-Fiネットワーク構築の話は以下に書いています。

この記事にも書いたのですが Meraki Go は Cisco のWi-Fiアクセスポイントで、大規模に使うための最低限の機能が揃っている製品です。

  • 複数台のAPの集中管理ができる

  • コントローラはクラウド上にある

  • クラウド上のコントローラから接続ステータスの確認ができる

  • 複数人で管理ができる

と、なかなか便利。
4つまでのSSIDが提供可能なので、今回は3部屋それぞれ用のSSIDと、スタッフ用のSSIDを設定した。

複数ある会場の上流ネットワークの間を端末が移動しても、スムーズに接続が切り変わるように、NATモードで設定。

APの配置の検討

メーカーが公表している Meraki Go の接続上限の目安は、25人(50端末)。
Meraki Go の場合は50端末を超えても、それ以上接続できなくなる、ということはないので、あくまで目安なんだけど、4台あれば、100人(200端末)ぐらいはカバーできるはず。
(※他のメーカーのAPだと、仕様上限を超えると接続できなくなる、というものもある)

そういう前提で今回は、2つの大きい開発部屋の隅に4台設置、小さい開発部屋の隅に2台設置、というようにした。
設置するAPは全部で10台。

もし現地で能力不足を感じたら、予備機を追加で設置する方向で、初期配置はわりとラフに絵を描いた。

  • 運用中のステータスがクラウドコントローラから把握できる

  • 手軽に予備機を追加で設置できる

というのも Meraki Go の良いところだと思う。

電源の整理

今回は1系統20Aの電源を25人を使う、という想定で設計した。
利用する系統ごとにテーブルをグループ分けして、参加者はテーブルに置かれたOAタップを使ってもらう、という形にすることで、1つの系統に電力が集中しないようにする。
キャンプ中にブレーカーが落ちたら大変だしね。

前日設営

Meraki Go は、

  • DHCPを使ってインターネット接続できるネットワークに継ぐと

  • Meraki Go がクラウド上のコントローラに接続しに行って

  • クラウドコントローラ上の設定に合わせてWi-Fiを吹きはじめる

というように動くので、普通にインターネット接続できる環境があれば、設営はとても簡単。

今回は、壁のLANコンセントに継ぐと、インターネット接続ができることが確認できていたので、

  • 会場の隅に Meraki Go を設置

  • 壁のLANコンセントに接続

  • 電源ケーブルを接続

しただけ。

すぐにクラウドコントローラから10台のMeraki Goの稼動が確認できたので、無事に設営終了。
設営所要時間は1時間もかかってない感じ。
便利な時代になったものだ。

電波のチューニングも、自動である程度やってくれる。
ただ初期設定状態だと、4つ分のチャンネルがボンディングされてしまっていて、それだとお互いに干渉する可能性があるので、チャンネルボンディングはしないように設定は行なった。

初日のトラブル(NATテーブル溢れ)

昼に参加者が到着、オープニングイベントの後、開発部屋に移動していよいよ開発開始。
会場横に待機し、クラウドコントローラから利用状況を眺めていると、接続ユーザー数と通信料がどんどん増加していく様子がわかる。
順調順調、と思っていたら突然、インターネットに接続できない、という声が上がりはじめる。

  • クラウドコントローラ上のステータスは特に異常はない

  • ユーザーはWi-Fiには接続できている

  • DHCPでアドレスも取れている

  • ただしインターネットへの接続の調子がすこぶる悪い

  • 大きな開発部屋は2つとも駄目、小さい開発部屋は大丈夫

上流のルータに問題がありそう。
NATテーブル問題か?、300人程度なら普通は問題ないはずなんだけど、と思いつつ、会場の設備担当の方と一緒に上流ルータを確認。
機種はYAMAHA RTX1200。
NATテーブルセッション数の上限は20000。
あー、これはどこかで読んだよー、
これだ、、、

やっぱりNATテーブル不足が原因。
ルータのタイマーチューニングとかで逃げようかと思ったけど、幸い会場には他にもいくつか上流回線が引かれていて、そこのルータは、YAMAHA RTX1210を使っていた。
それならNATテーブル数は65535なので、ちょっと強い。

設備担当の方と相談して、大きい開発部屋の上流をそのルータに切り替えて、無事に復旧完了。

30分程度で復旧できたとはいえ、現場の方々には大変ご迷惑をおかけしました。

下見での事前確認が甘かったなあ。。。

NATテーブルはどのぐらい使用されていたか

YAMAHAのルータはコマンドラインからNATテーブルの使用数を調べることができる。
接続が安定した頃に確認してみたところ、4万テーブルほど使われていた。
2万が上限のRTX1200では、溢れてしまうわけだ。

そのときにWi-Fi接続されていた端末は400台ほど。
なので、1台あたり100セッションぐらいはNATテーブルを使う計算になる。

タイマーの設定は初期値の15分のままだったので、それを短くすれば消費量を減らせるとは思うんだけど、今時はわりと沢山NATテーブルを消費するんだね。

上流ルータの確認は大事だ。

その他のトラブル

上流切り替え後は、わりと順調に動いていた。

ただ、APの応答がない、というエラーは2回ほど出た。
2回ともAPの電源コンセントが抜けたのが原因。
現地に行き、電源が落ちているのを確認して、抜けているコンセントを挿し直して回復。
電源系統の上流側コンセントが抜けたときには、参加者テーブルのOAタップにも電源が来てなかったんだけど、みんなノートPCを使っていたので誰も気付いていなかった。
そして、APが1台ダウンしても、ユーザー側の端末は自動的に別のAPに繋ぎ直していたので、APダウンに気付いたユーザーもいなかったと思う。

全期間でのネットワーク利用状況

クラウドコントローラのダッシュボードでネットワークの利用状況を確認してみると、

  • キャンプ期間中の接続端末数は 573

  • 1端末あたりの平均的な利用量は 3.1GB

と、かなりしっかり利用されたことがわかる。

ダッシュボードから見たクリスマスキャンプ期間中のネットワーク利用状況

参加者数より接続数が大幅に多いのは、ノートPCだけではなく、スマホやタブレットも繋いだんだと思う。
初日のトラブル以外は特に大きな問題はなかった。

次回検討したいこと

上流ルータの要件確認

今回は上流ルータの問題により初日に接続障害が発生してしまった。
次回は機種確認もちゃんとしよう。

スタッフ向け監視用モニタの設置

Meraki Goによる構築は、

  • 短時間で構築可能

  • ダッシュボードによる現状把握がしやすい

と、なかなか良い。
ただ、せっかくのダッシュボードがあっても見る人がいないと意味がない。
何人かのアカウントは作成していたけど、今回はあまり見てもらなかったような気がする。
次回はスタッフ控え室等のみんなが見えるところに、監視用のモニタ等を置いてダッシュボードを表示して、誰でもネットワークの状況がわかるようにしたほうが良いかもしれない。

Cloudprober等によるエンドポイント側からの監視

障害があった際には、Meraki Go側のダッシュボードでもある程度把握はできる。
ただ、初日の障害については、上流ルータの問題だったこともあり、ダッシュボード側では異常を検知することはできなかった。

実際にWi-Fiに接続した端末からの監視もしておいたほうが良いかもしれない。
手法としては、ラズベリーパイ等を使って、Wi-Fi接続をして、Cloudproberを動かしておく、というのが今的かなと思っている。

別のAPの検討

Meraki Goはとても便利なAPだけど

  • ダッシュボードの機能が Meraki 等に比べると少し貧弱

  • アンテナの数が少ない(2x2)

ということもあるので、今後さらに大人数になったら、Meraki等を使ったほうが良いのかな、とも思っている。
ただ、お値段がねえ。
Meraki Goは、お手頃なのよねえ。

ホテルの皆様に感謝

それにしても、会場として利用した池の平ホテルは、眺め良し、食事良し、温泉良し、館内設備充実、のとても素敵なリゾートホテルでした。
2023年4月にオープンしたばかりのピカピカの新本館の中でもビュッフェでの食事は本当に良かった。
プライベートでもまた行きたい。

そして、事前の準備から、トラブルシュートまで、ずっと付き合ってくれた設備担当の原さんには大変お世話になりました。
池の平ホテルの最寄り駅は茅野で、その近くに「諏訪大社上社本宮」がある。
そこでは、7年に1度、山から大木を曳き出してきて、御社殿の四隅に立てるという「式年造営御柱大祭」が開催される。
原さんから、その大木の上に乗った話を聞けたのもとても面白かった。
次回は2028年、4年後。
それも見に行こうと思う。



ライフイズテック サービス開発部では、気軽にご参加いただけるカジュアルなイベントを実施しています。開催予定のイベントは、 connpass のグループからご確認ください。興味のあるイベントがあったらぜひ参加登録をお願いいたします。皆さんのご参加をお待ちしています!

この記事が気に入ったらサポートをしてみませんか?