さくらのエンジニアが沖縄でネットワークを作ってきたよ 〜Okinawa Open Days NOCチーム活動レポート〜

はじめに

2025年12月3-5日(水-金)に、沖縄県市町村自治会館にてOkinawa Open Days(OOD) 2025が開催されました。OODは2013年からスタートしたイベントで、今年で13回目の開催を迎えます。

さくらインターネットはこのイベントに2017年から関わっています。特に2022年からは会場で参加者が利用するネットワークの構築・運用に協力しており、さくらのクラウドを提供したり、社員がNOCメンバーとして参加したりしています。そこで本記事では、OOD 2025のNOCチームに参加した社員の皆さんに、どのようなネットワークを構築したかを解説していただきました。

全体的な構成など

はじめに芦野光さんから、NOCチームの編成や本番までの作業過程の説明がありました。

NOCチームの編成としては、今年はさくらインターネットから6人、他にNTTドコモビジネスや日本電気からも参加し、合計10人のメンバーで構築にあたりました。

本番までの作業過程としては、まず6月ぐらいに取りまとめ役であるNTTドコモビジネスの吉田さんからネットワーク構築の打診があり、それを受けてさくらインターネットの社内でNOCメンバーを集めました。メンバーは構築経験のある人だけでなく、こういう場で経験を積んでもらうことも重要ということで新卒エンジニアにも参加していただきました。8月ぐらいまでにメンバーを確定し、9月にキックオフミーティングを行って作業を開始しました。

さくらインターネット東京支社で行われたホットステージの様子

NOCのチーム編成はネットワークチームとサーバチームに分かれており、それぞれに必要な機材・ソフトウェアの調達やネットワーク構成などの設計を行った後、11月上旬にホットステージ(本番と同じ機材構成でネットワークを構築してみるテスト)を行います。今回はホットステージをさくらインターネット東京支社で3日間にわたって実施しました。ここで検証を行った後に沖縄へ機材を送り、12月の本番を迎えました。

ネットワーク構成

ネットワークの論理構成図(資料作成:平田さん)

続いてネットワークチームの平田大祐さんから、主にネットワーク構成などの解説がありました。

単にWiFiを提供するだけならアクセスポイントを並べ、それらとインターネットをつなぐためのルータを1個置けば事足りるのですが、それでは作業が簡単過ぎますし勉強にもなりません。そこで毎年、何か新しい技術に挑戦するようにしています。今回はネットワークチームのメンバーで当社の新卒エンジニアである室さんから「EVPNマルチホーミング(EVPN-MH)を組みたい」という要望があり、それを盛り込んだネットワークを作ることになりました。

サーバへの回線を冗長化する仕組みとしてはMulti-Chassis Link Aggregation (MLAG)のように、2台のスイッチでクラスタを組んで各サーバに1本ずつ回線を出して冗長化を行う仕組みがあります。しかしこの仕組みは複雑で、運用が比較的大変です。

EVPN-MHの概念図 (資料作成:室さん)

これに対してEVPN-MHは、複数のスイッチに接続されたサーバやスイッチに対してEVPN-VXLANを用いてL2ネットワークを構築し冗長化や負荷分散などを実現する仕組みです。内部の仕組みとしては複数台のスイッチをBGPで接続して経路情報を交換し、各スイッチからESI-LAGの回線を出して各機器に接続します。オープンな規格になっているので異なる機器を使っても動作しますし、比較的運用もしやすいと考え今回採用しました。

機材としてはNTTドコモビジネスからスイッチを4台ご提供いただき、NOCに2台、会場内のホールに2台設置して、各スイッチ間をeBGPで接続することでEVPN-MHを構成し、そこに各種サーバやWiFi機器を接続してネットワークを構成しました。

上の図は会場の見取り図に機器や配線などを記載したものです。図の上部(ホワイエ)にホール用のスイッチ2台があり、そこからPoE(WiFi機器への電力供給用)のスイッチ4台にLANケーブルで接続し、各PoEスイッチにWiFiのアクセスポイントを接続しています。

IPアドレスの割り当て (資料作成:平田さん)

それからもう1つ、新しい取り組みを行いました。今回は会場ネットワークのIPアドレスとして、192.168.0.0/16のようなプライベートIPアドレスではなく、ISP shared address(ISPがキャリアグレードNAT技術で使用するIPアドレス)である100.64.0.0/10を使いました。イベント参加者から見ると主催者が提供するネットワークはISPの上流に相当することや、192.168.0.0/16のようなアドレスを使うと出展社が持ち込んだ機器が同じIPアドレスブロックだったときにトラブルが起きるので、重複を避けるために採用しました。参加者が使うIPアドレスは約2000個を用意し、枯渇することなく提供できたそうです。

新卒エンジニアが挑んだネットワーク構築

会場ネットワークの物理構成 (資料作成:平田さん)

続いてネットワークチームの室紘基さんからも自らのNOC体験という形で話がありました。今回のNOCで室さんが担当した部分は、ネットワーク機材の設定、EVPN-MHの設定、会場での機材設置や配線敷設などです。このうちEVPN-MHに関しては、NOCとホールに設置した4台のスイッチ、およびPoE用のスイッチに対して設定を行いました。そして、今回のNOCで得たものとして以下を挙げました。

実機ベースでのEVPN構築経験

実機を使ったEVPN構築は室さんにとって初めての経験で、それまで仮想環境や自宅で少し使ってみた程度だったので、この経験が大きかったと述べました。

構築時のトラブルとして、一通りの構築や設定をしてインターネットへの疎通も取れたものの、スループットが十分に出ていないという話になり、先輩たちと一緒にトラブルシューティングを行いました。その結果、本来はASICで処理すべきところをCPUで処理する設定にしていたためにスループットが低下していたことが判明しました。このようなトラブルは仮想環境では検証しにくいので実機を使った検証は重要だと感じました。

また、室さんの普段の業務は運用手順書などがきちんと整えられた環境で行われていますが、NOCの構築作業にはそのようなものはないため試行錯誤が必要で、そういったことを繰り返しながら構築していくところにもやりがいを感じました。

社内・社外のメンバーとのオフラインでの交流

さくらインターネットはフルリモート勤務の社員が多いので顔を合わせる機会が少ないのですが、NOCの活動はそういう人たちに会って話ができたり相談できる貴重な機会でした。特に相談事はやはりオフラインの方がやりやすく、疑問をすぐに解消することができました。またこれは社外の人たちとの交流という点でも同様で、今回のNOCを通して社外の知り合いも作ることができ、それを今後の業務にも活かせると感じました。もっとも、すぐに質問できる環境にいると先に自分で調べることがおろそかになってしまうので、その点は今後改善が必要と思ったそうです。

会場配線の難しさ

OODのように多くの部屋を使うカンファレンスでは、事前の配線計画がとても重要です。今回の場合、会場の図面を見ながらだいたいこのあたりにケーブルを敷設するというレベルでしか設計しておらず、ケーブルの長さなどを綿密に測っていませんでした。しかし実際に敷設してみると予想以上に長距離の配線が必要だったり、ケーブルの養生も不十分で会期中に剥がれてしまったりといったトラブルがありました。それからケーブルの敷設作業は物理作業なので人手が必要ですが、NOC自体が少人数でやっているので敷設作業にかけられる人手も少なく、間に合うのか心配になりながらもなんとか間に合わせることができました。

トラブルシューティングの経験不足

課題と感じたこととしてトラブルシューティングの経験不足を挙げました。トラブル発生時に自分だけでは切り分けができなかったり時間がかかってしまったことが多く、先輩の人たちにかなり頼る結果になってしまいました。このあたりは今後の業務や他のイベントのNOC活動に参加することで経験を積んでいきたいところです。この他にスイッチを設定するコマンドの理解不足なども課題に挙げていました。

サーバ構成

サーバの物理構成 (資料作成:芦野さん)

今度はサーバチームからの報告で、はじめに芦野さんからサーバ構成などの話がありました。

サーバチームの役割は、会場ネットワークを利用する際に必要となる各種サービスを提供することです。具体的にはDNS、DHCP、監視、NTPといったものを用意します。サーバの実装としては、現地に物理サーバを設置し、その中にProxmoxという仮想化のソフトウェアをインストールして仮想環境を作り、その上に各サービスごとにVMを作成してサービスを提供しました。また、会場ネットワークはいくつかのセグメントがあり、それぞれのセグメントごとに適切なIPアドレスをDHCPで割り当てるという設計も必要です。このあたりはネットワークチームと綿密にコミュニケーションしながら構築を進めていきました。

それから、会場側に構築したシステムに加えて、さくらのクラウドと現地のネットワークをVPNで接続し、さくらのクラウドでもサービスを動かして提供しています。例えば今回は会場に置いている監視サーバとまったく同じ仕様の監視サーバをさくらのクラウド上に置き、クラウド側から会場のネットワークを監視しました。クラウド上にサービスを構築するメリットとしては、現地における機材設置などの物理的作業が不要で、事前にすべて構築しておいてあとは会場とクラウドをVPNで接続すればすぐに必要なサービスを提供できるので実質的に工期を短縮できるという点が大きいです。現地〜クラウド間のVPNにはWireGuardを使用しました。昨年のOODではIPsecを使ったのですがトラブルが多く不安定でした。そこで今回はWireGuardにしたところ、シンプルな設定で安定運用できたとのことです。

もう1つの技術的な見どころとして、クラウド側の構成はすべてTerraformを使ってコードで管理しています。それに加えてTerraformのコードをGitHubで管理し、変更を監視する仕組みも導入しました。GitHub Actionsを使ったCI/CDの仕組みも構築し、GitHub ActionsからTerraformのコードが実行されてリソースの管理がなされるようにしました。このようにすることで、構成変更をするときも誰かがGitHubにプルリクエストを出し、それを他の人がレビューして問題ないことを確認した後に自動的に変更が行われるという、安全なインフラ管理の仕組みを構築できました。

なおGitHub ActionsとTerraformを使ったCI/CDの仕組みについては、芦野さんが書いた記事があります。こちらもぜひご覧ください。

GitHub Actions × Terraform でさくらのクラウドをCI/CD管理する

サーバチームも新卒エンジニアがNOCに挑戦

サーバチームに参加していたさくらの新卒エンジニアである木村峻さんからも発表がありました。木村さんが担当したのはDHCPとDNSです。使用するソフトウェアの選定から自身で担当しました。木村さん自身は会場ネットワークを構築するのが初めてだったのでトラブルが少なそうな安定しているもの、それからある程度高機能であるものを選定基準にしました。実際に利用したソフトウェアはKea DHCPPowerDNSです。この基準で選んでよかったこととして、構築に際してDHCPによるIPアドレス割り当てをランダムアロケーションにしなければならないことになりました。DHCPのソフトウェアによってはランダムアロケーションに対応していないものや複雑な設定を要するものがあるのですが、Kea DHCPでは設定ファイルに1行追加するだけで対応できました。結果的にはDHCPもDNSもトラブルなく運用することができました。

今回の構築で使用したTerraform(左)とAnsibleの設定ファイル

それから、木村さんが今回のNOCで学んだことを2つ挙げました。1つはIaCを使ったシステム構築です。具体的にはcloud-init、Terraform、Ansibleを使いました。cloud-initはサーバの基本的なセットアップ内容を記述し、SSHの鍵を登録します。Terraformはサーバをどのような構成で何台作るかなどを記述します。Ansibleにはサーバ上で使用するサービス(DHCPなど)の設定を記述します。このような方式を採って良かった点として、検証段階からIaCによる構築を行ったため、複数の検証環境を渡り歩きながら作業を進めることができたというのがあります。検証段階ではさくらのクラウド、自宅のPVE(Proxmox VE)クラスタ、ホットステージ用のPVEクラスタという3つの環境を使い分けていましたが、IaCにしていたおかげで検証環境を簡単に移すことができました。また、Terraform providerの選定において、Proxmoxのプロバイダにはbpgtelmateの2種類があり、最初はbpgを使っていたのですがトラブルが多く、telmateに変えて解決しました。このあたりはこれまでに経験してなかったことなので良い経験になったそうです。

長いケーブルを配線(左)したが機器まで届かず(右)

もう1つの学びは物理レイヤーや低レイヤーに関わることができた点です。木村さんはAppRun共用型というサービスの開発を担当していますがこれはすべてさくらのクラウド上で作業が完結し、物理的な機材を操作することはありません。そのため今回のような物理作業を行う機会は新鮮でした。物理作業ならではのトラブルとして、スイッチをつなぐ数十メートルにおよぶ長いケーブルを作成して配線したもののスイッチまで届かず配線がやり直しになったりといったこともありましたが、それでもなんとか開催前日にすべての配線を終えてインターネットに接続できるところまで作業できました。光ケーブルの研磨やコネクタの知識、ネットワーク機器の簡単な操作も学ぶことができました。

この他にも、普段はリモートワークなのでオフラインの現場で他の人が何をしているのかを見ながら作業ができたことや気軽にコミュニケーションが取れること、社外の方々とも関わりを持つことができたことなどもよかったとのことです。

おわりに

室さんや木村さんの話にあったLANケーブルの不足については芦野さんから補足説明がありました。会場が前回と同じだったので同程度のLANケーブルで足りるだろうと予想していたのですが、実は会場は同じでも使用する部屋が追加になっており、その分も配線していたらケーブルが足りなくなってしまったそうです。OODぐらいの規模のカンファレンスになるとLANケーブルもドラムで調達するのですが、いわゆる電器店にはそんなものは売っていないので、沖縄県内の配線業者を探して電話してなんとか調達したそうです。

このようなトラブルもありましたが、今回も参加者の皆さんに安定したネットワークを提供することができ、さらに新人エンジニアの皆さんにも学びの機会を提供できてよかったと思います。機材を提供いただいたNTTドコモビジネスの皆さん、ならびにネットワークの構築を一緒に行ってくださったNOCメンバー各社の皆さん、ありがとうございました。

それではまた次回のイベントでお会いしましょう!

NOCメンバーの皆さんお疲れさまでした!